# 工程設計與選擇 - 以二戰鋼鐵巨獸做對比 #### 前言 身為工程師,我們每天都會下很多決定,如這一段程式碼要用什麼結構撰寫,要使用何種技術、框架? 我們每天都在面對這樣的抉擇。在這條路上,我們從錯誤中汲取經驗,並且承擔著這些錯誤帶來的後果。 今天我想分享一下我過去看到的一個案例與最後怎麼了: 導入Rx #### Rx Rx 是什麼? 可以用一張官網的圖窺探究竟,細節本文就不去提及,我們可以想像這是一個潮流的library,非常強大,全世界都在用。人才市場都多少會提到要會這個東西。 聽到這邊,我們是否會想,那我們是否就直接開始使用就好了? 因為是潮流用了肯定沒錯! ![](https://hackmd.io/_uploads/HJsuMhAI3.png) [這邊可以看官網](https://reactivex.io/) #### 先講個故事吧 - 二戰 澄清: 這邊的資料很多屬於從網路上、wiki或者其他不一定可靠的來源加上筆者一定程度的簡化後才在此呈現出來。左右整個戰況的因素很多,這邊會相對專注在戰車發展的角度做分析,加上歷史細節會有些許誤差但不影響筆者想表達的事情。 ##### 德國閃電戰 ![](https://hackmd.io/_uploads/Skgoz20U3.jpg) [wiki](https://zh.wikipedia.org/zh-tw/%E9%97%AA%E7%94%B5%E6%88%98?useskin=vector#) 閃電戰令德國在戰爭初期帶來極大優勢,德國迅速擴張領土。並且在西線戰場取得了原本認為不可能達成的勝利。 ##### 巴巴羅薩行動 德國與蘇聯便有互不侵犯條約的東縣,原本無戰事的東線戰場,也因為德國在其他戰場取得了空前的勝利,間接導致其有自信發起了巴巴羅薩行動將蘇聯拉入戰局並開啟了東線戰場。 ##### 斯拉夫鐵騎 不過進入東線戰場後,馬上就遇到了強敵,立即阻礙了德軍進攻的速度。 ##### T-34 因為其各種特性,加上當時後實行閃電戰的三號、四號戰車並沒有有效擊毀T-34的主炮,東線戰場因此停滯不前(加上其他如補給線過長、沒有準備冬天作戰的裝備等)。 ![](https://upload.wikimedia.org/wikipedia/commons/8/88/Tank_monument_next_to_the_metro_station_Shulyavska.JPG) ##### 德國的反制 - 虎式 - 強大精準的88公厘戰車砲 - 正面裝甲達100 mm厚 - 首戰 15分鐘內就擊毀13輛 T- 34 ![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/94/Tiger_131_%287527948486%29.jpg/1280px-Tiger_131_%287527948486%29.jpg) ##### 德軍的選擇 - 體積越大越好 - 裝甲越厚越好 - 砲管越粗越好 ##### 為什麼最後德國還是輸了? - 虎式過重的重量,令其懸吊系統難以負荷高強度操作 - 也因為過重的重量,拋錨的虎式也不容易拖曳 - 生產物資匱乏 - 虎式人工生產速度慢 ##### 數量的差距 從數量的角度上來看,虎式雖然戰績非常的好,但是其數量實在太少,很少士兵真的遇到虎是戰車並與其交戰。 以下是從1942年4月至1944年8月生產的戰車數量 - 虎式: 1346 - T-34: 84070 - 薛曼(美國): 49234 從以上數據來看,假設每台虎是戰車都帶上一百發彈藥,並且百發百中,虎式還沒辦法將所有戰車踢出戰局。我想從此角度來看,就多少看出德國難以用這個戰車(技術)扭轉整個戰局 #### 結語 回到本篇文章工程的設計與選擇 假如我們新中在做選擇時有以下的想法: - 開發速度快? - 程式碼最少? - 彈性最高? - 功能最強? 或許可以想想二戰這個戰車的例子,也許能有不同的考量 ##### 對了,剛剛說的rx呢 當初在引入Rx這個library後,因為種種原因(因工程師普遍偏向新手,加上rx程式debug不易造成各種事情都寸步難行),最後決定將其從所有程式碼內拔除。整件事情下來損失非常之慘重,所有事情都被推遲了多個月。