以程式設計為專業 5 年後的 14 條經驗

大道至簡, 當人向您推銷巨型複雜的XXOO系統時, 您和您團隊若無能掌握, 請不要輕易的採用, 它所帶來的負面果報, 遠超過您所想像的高昂組織代價, 且因您的莫視不管, 您同樣是組織的加害者之一 - WisdomFish


以程式設計為專業 5 年後的 14 條經驗

排列不分先後: 

1. 當性能遇到問題時,如果能在應用層進行計算和處理,那就把它從資料庫層拿出來。排序和分組就是典型的例子。在應用層做性能提升總是要比在數據庫層容易的多。就像對於MySQL,sqlite更容易掌控。

2. 關於共時同作計算,如果能避免就儘量避免。如果無法避免,記住,能力越大,責任越大。如果有可能,儘量避免直接對線程操作。儘可能在更高的抽象層上操作。例如,在iOS中,GCD,分發和隊列操作是你的好朋友。人類的大腦沒有被設計成用來分析那些無窮臨時狀態——這是我的慘痛教訓所得。

3. 儘可能簡化狀態,儘可能局部本地化,適用至上。

4. 短小可組合的方法是你的好朋友。

5. 程式碼註釋是危險的,因為它們很容易更新不及時或給人誤導,但這不能成為不寫註釋的理由。不要註釋雞毛蒜皮的事情,但如果需要,在某些特殊地方,戰略性的長篇註釋是需要的。你的記憶會背叛你,也許會在明天早上,也許會在一杯咖啡後。

6. 如果你認為一個用例場景也許「不會有問題吧」,它也許就是一個月後讓你在發佈的產品中遭受慘痛失敗的地方。做一個懷疑主義者,測試,驗證。

7. 有疑問時,和團隊中所有相關人交流。

8. 做正確的事情——你通常會知道這指的是什麼。

9. 你的使用者並不傻,他們只是沒有耐心理解你的捷徑。

10. 如果一個開發人員沒有被安排長期的維護你們開發的系統,對他保持警惕。80%的血、汗、淚水都是在軟體發佈後的時間裡流的——那時你會變成一個厭世者,但也是更聰明的「行家」。

11. 任務清單是你的好朋友。

12. 主動讓你的工作更有樂趣,有時這需要你付出努力。

13. 悄無聲息的崩潰,我仍然會為此從噩夢中驚醒。監控,日誌,警報。清楚各種的假警報和不可避免的感覺鈍化。保持你的系統對故障的敏感和及時警報。

14. 複雜是大敵。

*邊註:Rich Hickey先生的談話和Robert Martin先生的《Clean Code(程式碼整潔之道)》一書最近給我的工作帶來了非常積極正面的影響。

英文原文:14 lessons after five years of professional programming / 譯文:外刊IT評論
Comments