《高效程序員的45個習慣啸如,敏捷開發(fā)修煉之道》讀書筆記

1. 做事

指責不會修復bug鱼响。把矛頭對準解決問題的辦法,而不是人组底。這是真正有用處的正面效應丈积。

  • 勇于承認自己不知道答案,這會讓人感覺放心债鸡。一個重大的錯誤應當為當做是一次學習而不是指責他人的機會江滨。
  • 如果一個團隊成員的行為一再傷害了團隊,我們必須要求他離開厌均。
  • 如果大部分團隊成員(特別是開發(fā)領導者)的行為都不職業(yè)唬滑,并且他們對團隊目標都不感興趣,你就應該主動從團隊中離開棺弊,尋找更適合自己發(fā)展的團隊晶密。

2. 欲速則不達

不要墜入快速的簡單修復之中。要投入時間和精力保持代碼的整潔模她、敞亮稻艰。

  • 一次又一次的快速修復,每一次都不探究問題的根源侈净,久而久之就形成了一個危險的沼澤地尊勿,最終會吞噬整個項目的生命僧凤。
  • 在工作壓力之下,不去深入了解真正的問題以及可能的后果元扔, 就快速的修改代碼躯保,這樣只是解決表面的問題,最終會引發(fā)大問題澎语。

3. 對事不對人

對事不對人途事。讓我們驕傲的應該是解決了問題,而不是比較出誰的注意更好擅羞。

4. 排除萬難盯孙,奮勇前進

做正確的事。要誠實祟滴,要有勇氣去說出實情振惰。有時,這樣做很困難垄懂,所以我們要有足夠的勇氣骑晶。

  • 看到糟糕的代碼,不要只是嚷嚷抱怨草慧。相反桶蛔,你應該重寫這些代碼,并比較重寫前后的優(yōu)缺點漫谷。列出重寫理由仔雷,會有助于你的老板(以及同事)認清當前形勢,幫助他們的到正確的解決方案舔示。

5. 跟蹤變化

跟蹤技術變化碟婆。你不需要精通所有技術,但需要清楚和知道行業(yè)的動向惕稻,從而規(guī)劃你的項目和職業(yè)生涯竖共。

  • 迭代和增量式的學習。每天計劃用一段時間來學習新技術俺祠。
  • 了解最新行情公给。
  • 如饑似渴的閱讀。

6. 對團隊投資

提供你和團隊學習的更好平臺蜘渣。通過午餐會議可以增進每個人的知識和技能淌铐,并幫助大家在一起進行溝通交流。喚起人們對技術和技巧的激情蔫缸,將會對項目大有裨益腿准。

7. 懂得丟棄

學習新的東西,丟棄舊的東西捂龄。在學習一門新技術的時候释涛,要丟棄會阻止你前進的舊習慣加叁。畢竟倦沧,騎車要比馬車車廂強得多唇撬。

8. 打破沙鍋問到底

不停的問為什么。不能只滿足于別人告訴你的表面現象展融。要不停的提問直到你明白問題的根源窖认。

9. 把握開發(fā)的節(jié)奏

解決任務,在事情變得一團糟之前告希。保持事件之間穩(wěn)定重復的間隔扑浸,更容易解決常見的重復任務。

  • 以固定燕偶、有規(guī)律的長度運行迭代喝噪。

10. 讓客戶做決定

讓你的客戶作決定。開發(fā)者指么、經理或者業(yè)務分析師不應該做業(yè)務方面的決定酝惧。用業(yè)務負責人能夠理解的語言,向他們詳細解釋遇到的問題伯诬,并讓他們做決定晚唇。

11. 讓設計 指導 而不是 操縱 開發(fā)

好設計是一張地圖,它也會進化盗似。設計指引你向正確的方向前進哩陕,它不是殖民地,它不應該標識具體的路線赫舒。你不要被設計(或者設計師)操縱悍及。

12. 合理使用技術

根據需要選擇技術。首先決定什么是你需要的接癌,接著為這些具體的問題評估使用技術并鸵。對任何要使用的技術,多問一些挑剔的問題扔涧,并真實的做出回答园担。

  • 這個技術框架真能解決這個問題嗎?
  • 你將會被他拴住嗎枯夜?
  • 維護成本是多少弯汰?

13. 保持可以發(fā)布

保持你的項目時刻可以發(fā)布。保證你的系統隨時可以編譯湖雹、運行咏闪、測試并立即部署。

14. 提早集成摔吏,頻繁集成

提早集成鸽嫂,頻繁集成纵装。代碼集成是主要的風險來源。要想規(guī)避這個風險据某,只有提早集成橡娄,持續(xù)而有規(guī)律的進行集成。

15. 提早實現自動化部署

一開始就實現自動化部署應用癣籽。

16. 使用演示獲得頻繁反饋

清晰可見的開發(fā)挽唉。在開發(fā)的時候,要保持應用可見(而且客戶心中也要了解)筷狼。每隔一周或兩周瓶籽,邀請所有的客戶,給他們演示最新完成的功能埂材,積極獲得他們的反饋塑顺。

17. 使用短迭代,增量發(fā)布

增量開發(fā)俏险。發(fā)布帶有最小卻可用功能塊的產品严拒。每個增量開發(fā)中,使用1~4周左右迭代周期寡喝。

18. 固定的價格就意味著背叛承諾

基于真實工作的評估糙俗。讓團隊和客戶一起,真正地在當前項目中工作预鬓,做具體實際的評估巧骚。有客戶控制他們用的功能和預算。

19. 守護天使

使用自動化的單元測試格二。

20. 先用它再實現它

先用它再實現它劈彪。將TDD(Test Driven Development,測試驅動開發(fā))作為設計工具顶猜,它會為你帶來更簡單更有實效的設計沧奴。

21. 不同環(huán)境,就有不同問題

不同環(huán)境长窄,就有不同問題滔吠。使用持續(xù)集成工具,在每一種支持的平臺和環(huán)境中運行單元測試挠日。要積極的尋找問題疮绷,而不是等問題來找你。

22.自動驗收測試

為核心業(yè)務邏輯創(chuàng)建測試嚣潜。讓你的客戶單獨驗證這些測試冬骚,要讓它們像一般的測試一樣可以自動運行。

23.度量真實的進度

度量剩下的工作量。不要用不恰當的度量來欺騙自己或者團隊只冻。要評估那些需要完成的待辦事項庇麦。

  • 用小時來評估工作量。

24. 傾聽用戶的聲音

每一個抱怨背后都隱藏了一個事實喜德。找出真相山橄,修復真正的問題。

  • 沒有愚蠢的用戶住诸。
  • 只有愚蠢驾胆、自大的開發(fā)人員涣澡。

25. 代碼要清晰的表達意圖

要編寫清晰而不是討巧的代碼贱呐。向代碼閱讀者明確表明你的意圖∪牍穑可讀性差的代碼一點都不聰明奄薇。

  • 應該讓自己或團隊的其他任何人,可以讀懂自己一年前寫的代碼抗愁,而且只讀一遍就知道它的運行機制馁蒂。

26. 用代碼溝通

用注釋溝通。使用細心選擇的蜘腌、有意義的命名沫屡。用注釋描述代碼意圖和約束。注釋不能替代優(yōu)秀的代碼撮珠。

27. 動態(tài)評估取舍

動態(tài)評估權衡沮脖。考慮性能芯急、便利性勺届、生產力、成本和上市時間娶耍。如果性能表現足夠了免姿,就將注意力放在其他因素上。不要為了感覺上的性能提升或者設計的優(yōu)雅榕酒,而降設計復雜化胚膊。

28. 增量式編程

在很短的編輯/構建/測試循環(huán)中編寫代碼。這要比花費長時間僅僅做編寫代碼的工作好得多想鹰∥赏瘢可以創(chuàng)建更加清晰、簡單杖挣、易于維護的代碼肩榕。

29. 保持簡單

開發(fā)可以工作的、最簡單的解決方案。除非有不可辯駁的原因株汉,否則不要使用模式筐乳、原則和高難度技術之類的東西。

  • 當你覺得所編寫的代碼沒有一行是多余的乔妈,并且仍能交付全部的功能時蝙云,這種感覺就對了。這樣的代碼容易理解和改正路召。

30. 編寫內聚的代碼

讓類的功能盡量集中勃刨,讓組件盡量小。要避免創(chuàng)建很大的類或組件股淡,也不要創(chuàng)建無所不包的大雜燴類身隐。

31. 告知,不要詢問

告知唯灵,不要詢問贾铝。不要搶別的對象或是組件的工作。告訴它做什么埠帕,然后盯著自己的職責就好了垢揩。

32.根據契約進行替換

通過替換代碼來擴展系統。通過替換遵循接口契約的類敛瓷,來添加并改進功能特性叁巨。要多使用委托而不是繼承。

33. 記錄解決問題的日志

維護一個問題及其解決方案的日志呐籽。保留解決方案是修復問題過程的一部分锋勺,以后發(fā)生相同或類似的問題時,就可以很快找到并使用了绝淡。

  • 要記錄團隊做出一個重要決策的原因宙刘。否則,在6~9個月后牢酵,想再重新恢復決策過程的時候悬包,這些細節(jié)就很難再記得了,很容易發(fā)生相互指責的情形馍乙。

34. 警告就是錯誤

將警告視為錯誤布近。簽入帶有警告的代碼,就跟簽入有錯誤或者沒有通過測試的代碼一樣丝格,都是極差的做法撑瞧。簽入構建工具中的代碼不應該產生任何警告信息。

35.對問題各個擊破

對問題各個擊破显蝌。在解決問題時预伺,要將問題域與其周邊隔離開,特別是在大型應用中。

36. 報告所有的異常

處理或向上傳遞所有的異常酬诀。不要將他們壓制不管脏嚷,就算是臨時這樣做也不行。在寫代碼時要估計到會發(fā)生的問題瞒御。

37. 提供有用的錯誤信息

展示有用的錯誤信息父叙。提供更易于查找錯誤細節(jié)的方式。發(fā)生問題時肴裙,要展示出竟可能多的支持細節(jié)趾唱,不過別讓用戶陷入其中。

38. 定期安排會面時間

使用立會蜻懦。立會可以讓團隊達成共識甜癞。保證會議短小精悍不跑題。

39. 架構師必須寫代碼

優(yōu)秀的設計從積極的程序員那里開始演進阻肩。積極的編程可以帶來深入的理解带欢。不要使用不愿意編程的架構師——不知道系統的真實情況运授,是無法展開設計的烤惊。

40. 實行代碼集體所有制

要強調代碼的集體所有制。讓開發(fā)人員輪換完成體統不同領域中不同模塊的不同任務吁朦。

41. 成為指導者

成為指導者柒室。分享自己的知識很有趣——付出的同時便有收獲。還可以激勵別人獲得更好的成果逗宜,而且提升了整個團隊的實力雄右。

  • 你會感到給予別人教導,也是提升自己學時的一種方式纺讲,并且其他人亦開始相信你可以幫助他們擂仍。

42. 允許大家自己想辦法

給別人解決問題的機會。指給他們正確的方向熬甚,而不是直接提供解決方案逢渔。每個人都能從中學到不少東西。

  • 用問題來回答問題乡括,可以引導提問的人走上正確的道路肃廓。

43. 準備好后再共享代碼

準備好后再共享代碼。絕不要提交尚未完成的代碼诲泌。故意簽入編譯未通過或這個沒有通過單元測試的的代碼盲赊,對項目來說,應被視作玩忽職守的犯罪行為敷扫。

44. 做代碼復查

復查所有的代碼哀蘑。對于提升代碼質量和降低錯誤率來說,代碼復查是無價之寶。如果以正確的方式進行绘迁,復查可以產生非常實用而高效的成果惨险。要讓不同的開發(fā)人員在每個任務完成后復查代碼。

45. 積極通報進展與問題

及時通報進展與問題脊髓。發(fā)布進展狀況辫愉、新的想法和目前正在關注的主題。不要等著別人來問項目狀態(tài)如何将硝。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末恭朗,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子依疼,更是在濱河造成了極大的恐慌痰腮,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件律罢,死亡現場離奇詭異膀值,居然都是意外死亡,警方通過查閱死者的電腦和手機误辑,發(fā)現死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門沧踏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人巾钉,你說我怎么就攤上這事翘狱。” “怎么了砰苍?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵潦匈,是天一觀的道長。 經常有香客問我赚导,道長茬缩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任吼旧,我火速辦了婚禮凰锡,結果婚禮上,老公的妹妹穿的比我還像新娘黍少。我一直安慰自己寡夹,他們只是感情好,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布厂置。 她就那樣靜靜地躺著菩掏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪昵济。 梳的紋絲不亂的頭發(fā)上智绸,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天野揪,我揣著相機與錄音吮成,去河邊找鬼煤蹭。 笑死零渐,一個胖子當著我的面吹牛赞哗,可吹牛的內容都是我干的。 我是一名探鬼主播看彼,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼哆窿,長吁一口氣:“原來是場噩夢啊……” “哼糠涛!你這毒婦竟也來了殴边?” 一聲冷哼從身側響起憎茂,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锤岸,沒想到半個月后竖幔,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡是偷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年拳氢,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛋铆。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡馋评,死狀恐怖,靈堂內的尸體忽然破棺而出戒职,到底是詐尸還是另有隱情栗恩,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布洪燥,位于F島的核電站,受9級特大地震影響乳乌,放射性物質發(fā)生泄漏捧韵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一汉操、第九天 我趴在偏房一處隱蔽的房頂上張望再来。 院中可真熱鬧,春花似錦磷瘤、人聲如沸芒篷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽针炉。三九已至,卻和暖如春扳抽,著一層夾襖步出監(jiān)牢的瞬間篡帕,已是汗流浹背殖侵。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留镰烧,地道東北人拢军。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像怔鳖,于是被迫代替她去往敵國和親茉唉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內容