寫軟體不是造汽車
寫軟體和做其他事情是不一樣的。當我們製造別的東西的時候——像汽車、玩具、椅子、畫作、甚至包括數字產品如平面圖片和3D模型——我們做出來的成品就是最終的結果。而開發軟體則不是,我們做出來的產品永遠不可能有最終的結果——我們需要向計算機解釋如何根據任意的輸入來輸出任意可能的結果。
寫軟體不像造汽車,或者可以這麼說,它更像是建立一個汽車裝配生產線。
我們很容易瞭解汽車製造的設計觀念,產品設計師只要拿著一張設計圖紙,說一聲“照這個做”,然後工程師們就可以開工了,開始製造一個看上去真實存在的東西。
假設我們的產品設計師需要給一個網站開發一個使用者資料管理系統,一個簡單而完美的設計也許就是在佈局好的頁面中放置幾個佔位符文字,用來顯示使用者名稱、使用者頭像和一些基礎資料資料。然而,這僅僅是開發軟體過程中的假設階段,實際操作很複雜。比如使用者如何編輯這些欄位?視窗頁面太窄了怎麼辦?頁面如何在各種螢幕的閱讀器中展示不錯的效果?產品設計師只是假設了一些理想狀況下的頁面,但是開發者卻需要將每一種可能遇到的情況都考慮到。
回到剛才打的“汽車裝配生產線”這個比喻,產品設計師提出一些看上去很簡單的需求,就像“可以把駕駛室的車門顏色由紅色替換成藍色嗎?”這樣的需求。這是一種誤導——做一輛紅色車門的汽車看起來很簡單,但實踐起來卻非常困難——我們需要調整生產線上的配色系統以便讓其支援噴刷多種顏色的油漆,這就要增加一些區域性噴色的邏輯,並且需要增加配置選項以允許人們在生產線上可以選擇需要噴刷的油漆顏色。還有就是需要購買一些新的噴漆嘴,因為紅漆比藍漆流動更快一些。而且需要安排更好的健康保險,因為一旦銷售人員知道你製造的汽車只有一扇門是紅色的,他們會瘋狂地扔東西。
在軟體開發中也會發生類似的事情。“嘿,這個使用者管理系統看起來很不錯,可以在使用者生日的時候傳送一條祝福訊息嗎?”於是你又接收到了一條看似簡單的需求。
當你在開發軟體的時候,你並不是在構建使用者管理系統中的一個頁面,而是在建立一條裝配生產線,它由一堆的零部件組成,而且可以每次生成正確的使用者管理頁面。
英文原文:Writing Software is not like Building a Car 翻譯:html5tricks - 蔣麗麗
相關文章
- 軟體定義汽車:蘋果+小米造車前瞻(附下載)蘋果
- “軟體定義汽車”下的軟體虛擬化技術
- 中汽中心:2019年智慧汽車車載通訊軟體測評報告
- 軟體定義汽車之SOME/IP介紹
- 羅蘭貝格:智慧汽車軟體白皮書
- 2020年數字化汽車報告:打造軟體驅動的汽車企業
- 全球大型汽車製造商成立汽車業區塊鏈聯盟MOBI區塊鏈
- SkyEye對接CANoe:助力汽車軟體功能驗證
- 特斯拉、華為們要用軟體重新定義汽車?
- 【智慧製造】中國製造2025獻禮之汽車篇
- 某大型汽車製造企業ArkControl全球首發體驗報告
- 守好軟體定義汽車下的質量之門
- 軟體構造八
- 2024,汽車管理 API 介面創造綠色出行API
- 特斯拉市值超九大汽車製造商之和
- 中國汽車工業協會:2022年汽車製造業利潤略有增長
- 軟體工 程是不是教會不怎麼會寫程式的人開發軟體?你的觀點?
- 智慧工廠 | 數字孿生汽車製造工藝車間
- 一九產業AI速寫:汽車篇產業AI
- 大企造車,領存造盤,領存自主可控固態硬碟與汽車智慧化同行硬碟
- 中國汽車工業協會:2022年汽車製造業營業收入小幅增長
- 經緯恆潤SOA功能安全開發方案, 助力車企軟體定義汽車
- 華為首次全面闡述汽車戰略:我們不造車,但要創造70%新價值
- 【智慧製造】汽車智慧製造技術應用及智慧工廠案例
- Strategy Analytics:BlackBerry軟體全球已部署超過2.15億輛汽車
- AFS:預計2022年全球汽車製造商將因缺芯削減331萬輛汽車
- 全球十大最有價值汽車製造商 電動汽車公司市值佔比達50%
- 亞馬遜雲科技加速佈局發力汽車行業 賦能自動駕駛、車聯網和軟體定義汽車亞馬遜行業自動駕駛
- 10款深度偽造軟體
- 美國定製汽車製造商接受比特幣支付比特幣
- 市值最高的汽車製造商(附原資料表)
- 汽車製造行業SRM供應商管理系統行業
- 歐洲汽車製造商協會:2020年1-8月歐盟汽車銷量下降32%
- 歐洲汽車製造商協會:2020年歐洲汽車銷量創紀錄最大跌幅
- 虛擬ECU:徹底改變汽車軟體開發與測試
- “AutoSW 2021智慧汽車軟體開發大會” 在滬圓滿落幕
- 經緯恆潤汽車軟體持續整合平臺全新發布
- 【Zeekr_Tech】汽車軟體RTOS-之AUTOSAR OS多核控制簡介
- 波士頓諮詢:追尋軟體定義的夢想汽車(上)