2015年11月15日 星期日

程式設計人應該知道的97件事

1. 我們應該讓例外浮現到架構的最高層,讓通用的例外處理機制來處置,以確保系統處於安全的狀態,例如,可能需要回復交易,寫Log,還有警示管理員,最後有禮貌地回報給使用者。

2. 審慎的練習(Deliberate Practice),代表重複,執行任務的時候要以熟練該任務的一個或多個面向為目標,多次重複這個過程。 專家級的技術,是隨著時間推移逐漸累積而來,而不是一口氣在第一萬個小時達到! 儘管如此,一萬個小時實在很多: 大約是每周二十小時並且持續十年。面對如此程度的承諾,你也許會擔心你不是成為專家的料。是,你是,所謂偉大,在很大程度上是一種意志力的選擇,是屬於你的選擇。

3. 若你從夠遠的地方觀察任何活動,程序或是訓練,它都會顯得很簡單。沒有開發經驗的經理認為程式設計師做的事情很簡單,而沒有管理經驗的程式設計師,也認為經理做的事情很簡單。寫程式是某些人得花上一些時間才做得來的事情。而其中困難的部分--思考--最不容易被人看見,以最不為外行人所賞識。業界一直以來的願景,都是希望用減少撰寫程式的方式來簡化軟體開發,這對於真正了解開發究竟牽涉什麼的程式設計師來說無疑是幼稚的。不過,導致這錯誤的心理過程 (覺得應該很簡單)就是人類的天性。

     當你沒有積極參與這些事,就會有種無意識的傾向,以為這些事情都很簡單,而且像魔法一般完成的。當魔法一直持續發生, 一切都很好,一旦魔法停止了,專案就遇到麻煩了。

4. 身為一個專業的城市設計師,你必須讓自己的專業領域知識隨時保持在最新的狀態。你需要用晚上的時間,周末的時間,甚至休假時間來自我學習;所以你不能把這些時間用來為專案加班。你真的以為腦外科醫生每周60小時都在做手術? 飛行員每周60小時都在天上飛?當然不是。工作準備和接受教育才是他們職業的核心部分。

5. 軟體評估的主要目的並非是預測專案的成果;是為了判別出專案的目標是否能實現,讓專案得以掌握。因此,評估時程的用意是為了使適當的專案管理與規劃成為可能,允許專案的利益關係人基於實現目標上做出承諾。

沒有留言:

張貼留言