排列不分先後:
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(程式碼整潔之道)》一書最近給我的工作帶來了非常積極正面的影響。