義大利麵與程式碼
各種色香味俱全的義大利麵如圖所示,尤其是左下角的“千層麵”好吃極了 :D...
四種美味的義大利麵
言歸正傳,儘管義大利麵灰常好吃,但是“義大利麵式的程式碼”卻讓程式設計師吃盡了苦頭(程式設計師,你懂的)。正如種類繁多的義大利麵一樣,“義大利麵式的程式碼”更是玲琅滿目、五花八門!
既然人們喜歡拿義大利麵與程式碼作比較(又稱隱喻),想必二者多少有些相似之處。
那就先從美味的義大利麵說起吧,如圖所示,色香味俱全的義大利是最終狀態,是廚師精心烹調的結果。而在烹調之前,它們只是麵粉、肉末、番茄醬、食鹽等等一系列主輔料,是廚師根據顧客的要求把它們按比例混合、加工成為各種口味的義大利麵。
既然義大利麵做好了,那麼“義大利麵式的程式碼”又是如何加工出來的呢?作為程式設計師,俺非常清楚這個加工過程:首先,客戶將功能需求以口頭或書面形式告知客戶經理;接著,經客戶經理對需求進行簡單分析(分解為輸入和輸出),並將分析結果告知程式設計師;然後,程式設計師根據分析結果進行“填空”,即實現從輸入轉換到輸出之間的空白;最後,層層提交給客戶驗收功能。若幸運的話(驗收通過),“義大利麵式的程式碼”就算大功告成了。若更幸運的話(需求變更),程式設計師很快就能品嚐到親手製作的“美味佳餚”了!
為什麼義大利麵如此誘人,而“義大利麵式的程式碼”卻慘不忍睹?!——請程式設計師仔細回憶“填空”的過程,我們把程式語言作為被加工的原料,嘗試用語言提供的各種基本元素及結構來“烹調”,儘管我們最終實現了使用者需求,而得到的卻是一坨“義大利麵式的程式碼”。其中的問題在於,我們用“元素”合成了“義大利麵”。而更恰當的做法則是,先用“元素”合成“原料”,然後將“原料”混合、加工成為“義大利麵”。這樣,只需適當調整原料的配比及加工工藝即可烹調出多種口味的“義大利麵”。簡單地說,“元素”即程式語言,“義大利麵”即客戶需求,而缺失的“原料”不僅包括領域知識,而且還有對程式的設計時及執行時概念模型的設計和認知!
美味的義大利麵本該盛在餐盤裡供人品嚐,而不應出現在程式碼中!
相關文章
- 驚了!goto 語句讓 Go 程式碼變成義大利麵條嗎?Go
- 無伺服器可能導致程式碼進入分散式義大利麵條糨糊2.0新時代 - TechRepublic伺服器分散式
- 幽默圖:什麼是Bug纏身?什麼是義大利麵條?什麼是大泥球?
- 最佳Vue開發實戰系列(一):設計一個回味無窮的高擴充套件性路由,比義大利麵香【詳解+實踐貼上程式碼】Vue套件路由
- 義大利商業協會:過去10年義大利城市實體店7萬家關閉
- 2019年義大利職場收入資料
- 義大利機構:20年內義大利報紙銷量暴降九成 2/3報刊亭關閉
- 義大利JUROP真空泵PN45D
- 探索麵部識別與WebRTCWeb
- CA:2020年義大利電子商務報告
- 義大利數字支付行業相關資料行業
- 新百利開戶-⒈⒎〇⒏⒋⒉⒉⒉⒉⒈⒈-_我要發大財義cu
- 自定義AndroidStudio程式碼模板Android
- Xcode自定義程式碼塊XCode
- 20200820 - 程式導向和麵向物件物件
- 調查顯示義大利新生兒出生率低與家庭經濟狀況有關
- 結對程式設計的利與弊程式設計
- 自定義Android Studio程式碼模板Android
- 義大利消費者協會:2018年義大利家庭聖誕餐桌平均消費為90歐元
- 麵包店裡的程式設計狂想程式設計
- Nestjs最佳實踐教程(六): 簡化程式碼與自定義約束JS
- 低程式碼與大語言模型的探索實踐模型
- Confindustria Radio TV:2021年義大利共有421個電視訊道
- 外國月亮也不圓,義大利建築公司拖欠工資
- 政策加持下,義大利遊戲行業要起飛了嗎?遊戲行業
- 大資料分析的目的與意義大資料
- Flume內建攔截器與自定義攔截器(程式碼實戰)
- xcode10 自定義程式碼塊XCode
- 麵霸篇:Java 集合容器大滿貫(卷二)Java
- 義大利企業面臨的網路風險持續加劇
- 某義大利小哥,竟靠一個快取中介軟體直接封神?快取
- El Hijo:義大利式西部片風格的潛行遊戲遊戲
- js程式碼與html程式碼分離示例JSHTML
- rubymine設定自定義快捷程式碼片段
- 程式碼整潔之道 – 有意義的命名
- Python異常程式碼含義對照表Python
- 程式導向和麵向物件的對比(轉)物件
- 君子喻於義,小人喻於利
- 大廠程式碼規範