技術債務
當你發現必須在「幹得好」和「幹得快」之間做出抉擇的時候,一般都會選擇「幹得快」,並提醒自己將來再來返工。下一輪迭代自有其新的問題,工作重點轉移到新問題上,老問題還存在。
martin fowler把它分成:蓄意和無意
把技術 債務立即記錄到任務卡上,在惡化前償還。
無論你承諾了什麼,都得小心處置,顧及後果,盡快償還你的技術債務吧,否則你會被你的輕率而後悔。
童子軍規則
要讓離開時的營地比進入時更加乾淨
編碼:讓模組check in 的時候比check out的時候更加整潔
團隊把系統當成乙個整體來維護,不再「各人自掃門前雪」,團隊互相幫助,互相清理**。
變數可讀性,長函式分割成更短,迴圈依賴,增加乙個藉口解耦策略和實現細節。。。。
1.重構**的最佳起點是清理已有的基礎**和基於這些**寫的測試用例
2.避開重寫一切的**
3.逐步增加的小改動勝過一次性的大改動
4.在每次開發迭代後,確保已有的測試用例都通過
5.個人好噁和利己主義不能摻雜到開發中來
6.新技術不是重構的理由
7.要記住人總是會犯錯的
在你重構之前
1.理解當前**的優缺點
2.原有的**都是經多年的測試並實戰過的**,花費時間多
3.逐步反饋資訊來評估改動的對系統的影響,做一些測試
4.不要看不爽就重構
5.如果新的技術框架在功能性,可維護性或生產力上會有顯著提公升,可以考慮
6.新的設計未必會比原來的好,多考慮
謹防共享
抽取公共的方法或類的時候,需要考慮清楚,是否是真正的公用,否則會適得其反,更加難以維護
通向高效能之路布滿了髒**炸彈
重構時,注重成本,理清結構
遵守編碼規範
確保**格式一樣,自動執行
靜態**分析工具掃瞄**
每個人都配置好工具
測試覆蓋率過低,終止構建
**注釋:團隊理解**的含義,對待注釋要對待**一樣來維護
**審查
態度溫和,有建設性建議
每個星期正式的**審查日
編碼標準的自動化
對注釋的乙個注釋
**說不清,注釋來補充
**審查
**審查日:2個小時一次,迴圈制模式,讓審查者輪流執掌每一次審查會議,可以讓專家加入進來,可以作為一次團隊的知識分享
自動化自動化測試:每天和每週末,非工作時間執行(包括效能測試,穩定性測試)
充分利用**分析工具:使用工具發現bug,規範**
在睡覺的時候(或度週末的時候)進行測試
充分利用**分析工具
美在於簡單
易用不是一種能力,為呼叫方考慮,為客戶考慮
瀏覽**,閱讀**的時間
易於檢索
清晰的布局
緊湊格式(**跟詩一樣)
封裝行為,而不僅僅是狀態
額外的設計
好玩的額外功能,但並無用處
遵守yagni原則,現在不用就不要寫
可能會有用,現在就寫,「雪球」會越高越大
系統需求不是隨便新增
柏拉圖:風格之美,和諧、優雅及優美的節奏盡在於簡單
不管系統有多複雜,但每個單獨的組成部分都保持著它的簡潔性,單一職責,方法的功能如同其名稱描述的一樣,
5~10行語句的短方法過於極端,這種是比較難,但我想這種間斷正是我們希望達到的目標
領域語言裡的**
含義在**中體現
易用不是一種能力
關於**布局的麻煩事
封裝行為,而不僅僅是狀態(看下書本中的例子)
** yagni(you aren』t gonna need it 你絕對不會需要它)
使用者需要什麼, 而不是我們提供什麼
責備先自責
不斷學習
有針對性的勤加練習,提公升自身的能力
不要在你的測試**裡裝可愛
了解你的侷限性,知己知彼
通曉兩門以上程式語言
使用者會怎麼做
當你卡住的時候,你會四處張望,需求幫助;而使用者卡住的時候,他們會縮小他們的注意力範圍,做好使用者體驗
在責備別人之前先檢查自己的**
不斷學習
閱讀書籍,資料
找到乙個號導師
利用虛擬世界,網路導師
了解你使用的框架和類庫
分享解決乙個比較通用的問題方法
分享所學的知識
加入學習小組
參加研討會
學習業務知識
考慮回學校
有針對性的勤加練習,提公升自身的能力
不要在你的測試**裡裝可愛
在你的**中,注釋,日誌,測試資料,想想一旦公開出去是否有問題,你會臉紅嗎?
了解你的侷限性
通曉兩門以上程式語言
每年學習一門新的語言
程式設計師應該知道的97件事
上星期拿了三本書來看,其中一本就是 程式設計師應該知道的97件事 大概通讀了一遍裡面有73位著名的人物,分別寫了97件事。每個人都有自己總結的一句話,對於程式設計師們確實很實用。這裡面的人物在程式設計師這一職業中有工作20年以上的經歷,有自己開公司的也有是博士 教授的。若能認真遵守這97件建議,我想...
《程式設計師應該知道的97件事》樣章
謹慎行動 act with prudence seb rose 無論你承諾了什麼,都得小心處置,顧及後果 無名氏 在一次迭代開始時,各項任務看上去安排得張弛有度,但仍無法避免在某段時間會承受到巨大進度壓力。當你發現必須在 幹得好 和 幹得快 之間作出抉擇時,一般都會選擇 幹得快 並提醒自己將來再來返...
《程式設計師應該知道的97件事》 不斷學習
你需要不斷學習,才能保持自己的 市場號召力 否則,你會變成恐龍,在乙個職位上日復一日,直到有一天,你不再被需要,或者你的工作被外包給了某個更便宜的機構。為了保險起見,你需要為你自己的教育負起責任。以下列出了一些學習途徑,它們中的大多數可以在網際網路上免費獲得。如果你真的想沉浸在一項技術中,那就親自動...