讓你看看什么是真正的設計!
程序員X在一個IT咨詢公司工作,這一天他的Slack收到了來自老板的一條消息,可是這個經常使用200G內存的軟件又一次崩潰了,他看不到老板在說什么,于是就直接去找老板。
他打開了老板辦公室的門,看到老板慌忙地把瀏覽器關掉, 問道:“有什么事嗎?我正在工作。”
“我的Slack崩潰了,看不到你發的消息。”
“奧,是這樣,” 老板說,“下星期是我外甥女的7歲生日,我姐姐想讓我給她做一個慶祝生日的網站,你能幫忙嗎?”
“當然,沒問題!”
程序員回到了座位上,預定了第二天的會議。
“老板吩咐我們給他的外甥女做一個網站,怎么開始呢?”
“那當然得先選技術棧啊!” 另外一個程序員說到。
他們花了兩周的時間來討論用什么技術棧,最終確定了一個列表, 這里僅僅是前端列表:
“不錯,不錯,我們有前端技術了,讓我們開始吧!”
三個月以后
老板坐在辦公室吃三明治,這時候他想起了一件事情。
“X, 3個月前我讓你給我的外甥女建一個網站,現在網站到底在哪兒?”
“先生,我們正在開發前端,我們寫了測試,并且創建了后端的Mock,我們很快就會完成了!”
“什么?你在開玩笑嗎?滾出去!”
程序員X知道老板為什么發火,因為老板知道他們不應該使用Fad.js,他們應該使用Even-More-Fad.js。
項目啟動6個月以后
前端完成了, 可是他們還需要一個后端, 于是程序員X又舉辦了一個會議。
“好了, 朋友們,我們得開始寫后端了, 對于用什么框架,歡迎各抒己見!”
20個程序員給了20個建議,基本上,每個人都選擇了自己最喜歡的,能讓自己獲得更好工作的框架。
經過了一周的爭論,他們發現了一個新的編程語言,由Google和Facebook聯合推出,新的語言叫做“頑皮小腳本”。
于是每個人都同意用這個新語言。
程序員X幻想著這個項目完成以后,他就可以到Face-oogle去工作了。
項目開始1年以后
項目進展不順利,程序員X的頭上開始冒汗了。
“頑皮小腳本” 有很多的Bug,他們不知疲倦地Fix,實際上是為Google和Facebook提供免費勞動力。
雖然他們還沒有開始一行代碼的編寫,但是X知道再努力一下,成功就在不遠處。
這個時候老板把他叫進了辦公室。
“X,你這個白癡,一年前我讓你給我的外甥女建個網站,你到底在干什么?”
“先生,馬上就做完了,再給我兩周就行!”
“算了吧。去年我外甥女自學了一點HTML和Javascript, 她自己就把網站建起來了!”
程序員X震驚了!
一個HTML網站!到底是誰做的!
“這太荒謬了, 她怎么去測試呢?她寫測試用例了嗎?”
“她打開瀏覽器,這兒點點,那兒點點不就行了?”
“但是她是怎么Mock后端數據庫的?怎么集成微信、微博、QQ的?緩存呢?負載均衡呢?如果CDN掛掉了怎么辦?如果她想把網站改成SPA該怎么辦?!”
“滾出去,你這個白癡!”
程序員X回到了座位上,他到知乎上寫了一個很長的文章,抱怨這些剛進入編程領域的孩子們不講究任何標準,他們這樣會毀掉軟件產業。
文章得到了一千個贊同,每個人都同意現在入門編程的標準確實降低了。
原文鏈接:
https://www.pythonforengineers.com/the-attack-of-the-over-engineering-cowboy-programmers/
后記:這個小品文生動地詮釋了什么是過度設計和過度工程,程序員X在沒有搞清楚真正需求的情況下就貿然開始設計,選擇了復雜的前端和后端,嘗試了各種熱門的東西,這樣的項目必敗無疑。
【本文為51CTO專欄作者“劉欣”的原創稿件,轉載請通過作者微信公眾號coderising獲取授權】