作者Pegasus170 (鲁蛇肥宅台劳+前义务役)
看板Military
标题[讨论] My Way, High Way, API Way
时间Tue Jul 22 13:09:19 2025
刚刚看到F126级巡防舰出现IT介面整合的问题,正好想起过去的案子,这里来闲聊一下。
我们都知道世界各级战斗舰上武器装备之多,多到每个系统整合架构师会发出各种国骂。然
而,就我的经验中,最常出现的灾难有以下几类:
第一:我们都是黑箱,驱动端不需要知道细节(My Way)。很多写程式的人,都习惯把模组
们当成一个个黑箱,透过介面交换资讯。但是呀,很多这样想的人,都是活在一个完美世界
,接收端可以无限制即时回应(Highway)。这个错误更常出现在习惯API式模组开发(API
Way)的年轻世代中,而且特别是印度出身的工程师简直是着了迷一般迷信这套。
但实际上,只要是呼叫都会有延迟跟容量上限。几毫秒的延迟,对雷达及指令相关的双向资
料传输上,就可以是被击中或闪躲成功的差异。所以好的演算法跟致密的结构很重要,跟一
般商业IT不同,不可以幻想无穷尽的记忆体给那个每秒几万笔传输;这个是在很多商业软体
及介面开发时,都不必太考虑的问题。
另外,只要是演算跟伺服器,都会有负荷上限,也就是说,你呼叫端一个固定时间内传出的
呼叫,必须小於接收端的处理能量及介面暂存区的容量,而且你还要考虑进入了暂存区就会
保证有延迟及丢弃。如果开发者幻想着每个呼叫都是保证的同步呼叫,那在高压力环境之下
保证会来个time out或者not responding,这样子会干扰呼叫端对於下一步指令的应对,久
而久之系统就会出现错误的内容给使用者,这样轻则造成指挥官误判,重则武器系统不听话
暴走。
所以设计时,必须要考虑容错及资料修补,而偏偏资料修补这块很少出现在商业软体开发上
,必经这是要出演算法得东西(所以演算法一直是计算机科学领域中重中之重)。
第二:该死的资料格式。为了有效的传输,当然就是被传输的越精简越好。过去有类似EDI
Fact / ASN这类的固定长度传输,好处是解译速度超快,而且有很多成熟的演算法加入读取
跟拆解,这也造成很多政府机关仍然对这类形式很有爱。只是呀,这20年来,资料格式已经
上太空好久了。过去有XML引领了30年的风骚,现在有JSON在那边长江後浪推前浪。如果两
端系统在这些格式之间需要转换,轻则减慢速度回到上一段的问题,重则在文数字及符号之
间出现不相容,然後直接给你错误的编码让你掉出错误处理闭包(closure)。而还有一个
问题是,不论是XML或者JSON,在资料解译跟转线上,就算在在最佳演算法之下,仍输给EDI
这类以长度决定一切的格式,但是那些外包的码农公司,还是很迷信「新就是好」。
第三:头过身就过。这个问题特别容易发生在这几年迷信API跟Micro Service万岁的年轻工
程师上(还有那该死的Swagger被误用及滥用)。基於第一点,很多程式开发人员在面对一
大堆程式码之下,变成只关心介面之间测试过即可,跟Domain Experts及Special Matter E
xperts互动不足,甚至也轻视了规格书及Use cases的意义(我就遇到过规格书无用论,只
要设计好Swagger即可代替文件)。变成只要介面间传输成功及格式正确即可;最多糟糕是
看到Swagger就直接开始写程式,连思考前两点的非功能性需求都不管,然後功能性需求只
以规格书出发,不去厘清制作者那个灰色地带,这个特别是在非同领域的外包程式开发人员
身上特别容易发生。
最後一点是:农夫都一样,种稻米跟种西瓜的都可以互相转换。这几年各公司为了控制成本
,都会把程式开发外包。可是这就是灾难的起点。一个长年开发射击指令的资深工程师,他
们必定知道那些业界的眉角,一但看到相关功能中模拟两可的规格书,一定会去问清楚。但
是外包工程师如果没有经验,会直接被自己的不同领域的直觉所蒙蔽而开发出不符合高压力
需求的模组。而这个已经在航空业界软体出现过一些问题,但绝大多数都幸亏能提早发现修
复。
好啦,牢骚发一发,给各位看倌献丑了。
再来就是美食副时间:
果然韩流不是叫假的,我也喜欢吃辣炒猪肉套餐^_^:
https://i.imgur.com/nwn7FZB.jpeg
同样是猪肉,中国北方扣肘子加回锅肉:
https://i.imgur.com/968Bv57.jpeg
--
Grundriss Weisheit
グルトリスハイト
https://i.imgur.com/4LqlURK.jpg
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 184.147.45.96 (加拿大)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Military/M.1753160962.A.612.html
1F:推 ARCHER2234 : 不行,韩式餐点我不会看 07/22 13:20
2F:推 kira925 : 大家被硬体进步惯坏了 07/22 13:23
3F:推 classskipper: 推 07/22 13:23
4F:→ Pegasus170 : 台积电也是其中一份子^_^ 07/22 13:24
5F:→ Pegasus170 : 台积电的晶片也惯坏了一堆软体工程师 07/22 13:24
6F:推 FishJagor : 推 07/22 13:27
7F:推 fuhrershih : 韩式套餐一份多少钱? 07/22 13:28
8F:推 Wooctor : 推 07/22 13:33
9F:→ Pegasus170 : 22加币 07/22 13:35
10F:推 MIshad : 同意 现在一堆软体优化烂到炸就是没有自己的底层 架 07/22 13:35
11F:→ MIshad : 构在别人打包功能之上的软体怎麽优化还是会有毛病 07/22 13:35
12F:→ Pegasus170 : 楼上,印度工程师很喜欢玩堆积木,别期待优化。所 07/22 13:36
13F:→ Pegasus170 : 以我这边有个笑话,是今天标题的原型:My Way, Hig 07/22 13:36
14F:→ Pegasus170 : hway, Indian Way 07/22 13:36
15F:推 ARCHER2234 : 等等,这个笑话我不是业界好像也常常听到,为什麽呢 07/22 13:40
16F:→ ARCHER2234 : ? 07/22 13:40
17F:→ Pegasus170 : 友好握手 07/22 13:42
18F:推 ARCHER2234 : 我现在在想是谁常常跟我吐槽印度 07/22 13:43
19F:→ zo6596001 : Show me Da wei ! My buda ! 07/22 14:37
20F:推 skyhawkptt : 内容赞 餐点棒 相关书单准备上....XDDD 07/22 14:56
21F:推 fuhrershih : 22加币好像有点小贵,但是内容物看起来应该管饱 07/22 15:49
22F:→ fantasyhorse: 那句是不是跟轻度 中度 重度 印度梗是一样道理? 07/22 15:50
23F:推 BW556 : 推 07/22 17:04
24F:推 utn875 : 优文,推 07/22 17:46
25F:→ Pegasus170 : 是一样呀!但是西方人不用中文,有他们自己的梗。 07/22 19:10
26F:推 cppwu : 算力就过剩,没有最佳化的软体架构也能活的下去…… 07/22 19:11
27F:→ cppwu : 这年头有时候都会有是不是只剩MCU的韧体在斤斤计较 07/22 19:11
28F:→ cppwu : 效能 07/22 19:11
29F:→ cppwu : 的错觉 07/22 19:11
30F:→ Pegasus170 : 小菜可以续。 07/22 19:11
31F:→ Pegasus170 : 但是军事武器装备可没办法那样奢侈地冲算力,一条 07/22 19:14
32F:→ Pegasus170 : 军舰或一架战斗机的电力跟重量是很斤斤计较地^_^ 07/22 19:14
33F:→ Pegasus170 : 军工产业很在乎最佳化/优化,日本工程师这点也蛮强 07/22 19:15
34F:→ Pegasus170 : 的。 07/22 19:15
35F:→ MartianIT : 22加便宜呀 这样在一小时航程外加税小费至少30镁 07/22 20:23
36F:推 user1120 : 推 07/22 22:51
38F:→ CLisOM : Q 07/23 08:24
39F:→ CLisOM : 现在硬体太强,工程师不需绞尽脑汁,AI写软体目前 07/23 08:27
40F:→ CLisOM : 也只能写到功能达标没法优化太多吧? 07/23 08:27
41F:→ Pegasus170 : AI伺服器算力都很强大,AI用自己持有的算力来写程 07/23 09:31
42F:→ Pegasus170 : 式,当然不需要替自己的程式优化呀!^_^ 07/23 09:31
43F:推 CGT : 软体工程师都会追求新的技术,毕竟他们职涯可能转 07/23 09:34
44F:→ CGT : 去开发军工以外的领域,除非你保障他们吃一辈子。 07/23 09:35
45F:→ CGT : 前苏联的软体演算法很强,也是因为硬体落後欧美 07/23 09:36
46F:→ Pegasus170 : 而那个影片的优化/最佳化也是基於过去原始的电脑架 07/23 09:51
47F:→ Pegasus170 : 构下不得不做的妥协。在2000年以後出场的电脑架构 07/23 09:51
48F:→ Pegasus170 : ,都几乎不需要那样做了。现在的战斗系统用得更少 07/23 09:51
49F:→ Pegasus170 : ,原因其实不复杂,就跟我指导教授说的笑话一样: 07/23 09:51
50F:→ Pegasus170 : 萤幕上两个点,现实距离一英哩。 07/23 09:51
51F:推 SRNOB : 现在不一样了 过阵子会大爆发 AI写程式太想 07/23 11:19
52F:→ SRNOB : 我过去两天让AI跑的超过我自己十年的份 07/23 11:19
53F:→ Pegasus170 : 那个22加币是完税价 07/23 16:26
54F:推 lab214b : 推专业相关 07/26 10:19
55F:→ lab214b : 1.鱼与熊掌难以兼得,可否对比一下API的好处? 07/26 10:19
56F:→ lab214b : 2.习惯用copilot或cursor协作的新码农加入,会恶化 07/26 10:19
57F:→ lab214b : 吗? 07/26 10:19
58F:→ lab214b : 3.有军中同侪论文就是研究自动调用套件快速开发系 07/26 10:19
59F:→ lab214b : 统,不是好方向吗? 07/26 10:19
60F:推 lab214b : 退位後这份专业经验很值钱呢! 07/26 10:22
61F:→ lab214b : 退伍 07/26 10:22
62F:→ Pegasus170 : API的好处是用在战略规划系统中无状态(stateless) 07/26 13:00
63F:→ Pegasus170 : 功能。比如兵推地图上的当下参数回传(不是双向更 07/26 13:00
64F:→ Pegasus170 : 新喔!),snapshot报表生成这类需要非即时但要可 07/26 13:00
65F:→ Pegasus170 : 接受的反应速度但不需要後续连动。 07/26 13:00
66F:→ Pegasus170 : 人工智慧协助工具当然没问题,但如果像当今一堆印 07/26 13:01
67F:→ Pegasus170 : 度软体外包公司把这些工具当成程式码检核标准,嘿 07/26 13:01
68F:→ Pegasus170 : 嘿嘿……懂得都懂^_^ 07/26 13:01
69F:→ Pegasus170 : 所以在欧美,要踏入军工产业,一种是在相关单位服 07/26 13:03
70F:→ Pegasus170 : 役过,一种是大学或研究所时期跟对教授摸过军事相 07/26 13:03
71F:→ Pegasus170 : 关专案研究。 07/26 13:03