學習筆記之三十年軟件開發之路 - Things I Learnt The Hard Way (in 30 Years of Software Development)

三十年軟件開發之路git


  • 軟件開發
    • 先明確問題,再開始寫代碼
    • 將步驟寫爲註釋
    • Gherkin是幫助你瞭解指望(expectation)的好幫手
    • 單元測試很好,集成測試更好
    • 測試可讓API更好
    • 作你知道如何在命令行上運行的測試
    • 時刻準備好扔掉你的代碼
    • 好的語言生來帶有綜合測試
    • 將來思路是垃圾思路
    • 文檔是寫給將來本身的情書
    • 功能文檔是份合同
    • 若是一個函數的描述包含「和」,這就是不對的
    • 不要使用布爾型變量做爲參數
    • 注意界面的變化
    • 好的語言自帶集成的文檔
    • 一門語言毫不僅僅是一門語言而已
    • 有時候,寧願讓應用程序崩潰也不要什麼都不作
    • 若是你知道如何處理該問題,那麼就處理它
    • 類型決定你的數據是個什麼東西
    • 若是你的數據具備模式(schema),請使用結構(structure)來保留它
    • 理解並保持cargo cult的方式
    • 不要管所謂的「合適的生產力工具」,你只須要盡力去push進程
    • 「正確的工具」比你想象的更明顯
    • 不要跟你項目以外的事情糾纏
    • 數據流動比模式更重要
    • 設計模式是用來描述解決方案的,但它不能找到解決方案
    • 學習函數式編程的基礎知識
    • 認知成本是可讀性的殺手
    • Magical Number 7 ,正負二(7+-2的範圍內)
    • 走捷徑挺nice的,但只是在短時間內如此
    • 抵制「輕鬆」的誘惑
    • 老是在你的日期中使用時區
    • 老是使用UTF-8
    • 從笨辦法開始
    • 日誌用於事件,而不是用戶界面
    • Debugger們被高估了
    • 始終使用版本控制系統
    • 每次提交一個更改
    • 當你過分交換時,「git add -p」是你的朋友
    • 按數據/類型組織項目,而不是功能
    • 建立庫
    • 學會監控
    • config文件是個好東西
    • 命令行選項很奇怪,但頗有幫助
    • 不單單是功能組成,還有應用程序組成
    • 即便是作APP,也要從原始的東西開始
    • 優化是面向編譯器的
    • 經過懶惰(評估)
  • 在團隊/工做上
    • code review並非爲了彰顯風格
    • 代碼格式化工具還能夠,但它們也不是無往不勝的
    • 代碼風格:遵循它就是了
    • ...除非代碼樣式是Google Code樣式
    • C / C ++只有一種編碼風格:K&R
    • Python只有一種編碼風格:PEP8
    • 顯式優於隱式
    • 公司想要專才,但全才在公司待的時間更長
    • 心中有用戶
    • 處理用戶數據的最佳安全方法是壓根不捕獲它
    • 記下來那些「讓我花了一個多小時才解決的愚蠢失誤」
    • 若是它沒法在你的計算機上運行,那麼你就有麻煩了
  • 我的生活
    • 該停下來的時候,就停下來吧
    • CoC保護的是你,而不是別人
    • 學會說不
    • 你負責你代碼的使用
    • 當還沒完成時,不要說「已經完成了」
    • 你將從痛苦中瞭解你自身
    • 人們之因此會對代碼/架構感到生氣/煩惱,是出於關心
    • 從你的煩惱中學習
    • 注意人們對你的反應
    • 學會識別那些人格有毒的人,並遠離他們
    • 謹防微觀侵略
    • 不,我不認爲這樣的人是「會改正的」
    • 只有當你意識到本身是那類有毒的人/微侵略者時,纔有可能本身改正
    • 英雄項目:總有一天你必須作的事情
    • 不要混淆「英雄項目」與「英雄綜合症」
    • 知道什麼時候該果斷辭職
    • IT世界是一個很是小的「蛋」
    • 紙質筆記實際上頗有幫助
    • Trello很是酷,但Post-it更好
    • 在博客中記錄你笨手笨腳的解決方案仍然比什麼都不寫要好
    • ...但請關閉評論
    • 把你的笨手笨腳的解決方案發布到網上
    • 列出「我不知道的事情」
相關文章
相關標籤/搜索