程式碼整潔之道--讀書筆記(3)

畅知發表於2024-09-06

程式碼整潔之道

image-20240904225436374

簡介:

本書是程式設計大師“Bob 大叔”40餘年程式設計生涯的心得體會的總結,講解要成為真正專業的程式設計師需要具備什麼樣的態度,需要遵循什麼樣的原則,需要採取什麼樣的行動。作者以自己以及身邊的同事走過的彎路、犯過的錯誤為例,意在為後來者引路,助其職業生涯邁上更高臺階。

本書適合所有程式設計師閱讀,也可供所有想成為具備職業素養的職場人士參考。

第三章:說“是”

img

如果你能夠一直信守承諾,大家會以為你“是一名嚴謹負責的開發人員”。

在我們這行中,這也是最有價值的評價。

3.1 承諾用語

口頭上說;心裡認真;付諸行動;

這也就是承諾的三個步驟:

(1)口頭上說自己將會去做。

(2)心裡認真對待做出的承諾。

(3)真正付諸行動。

3.1.1 識別“缺乏承諾”的徵兆

我們有竭力逃避承擔責任的傾向。

注意以下三種型別的詞,當他們出現時候你就要警覺自己不必把此承諾太當真。

  • 需要/應當。“我們要把這活做完。”“我需要減肥。”“有人應當負責去推動這件事。”
  • 希望/但願。希望明天我能完成這個任務。”“希望改天我們能再見面。”“但願我有時間做這件事。”“但願電腦能快點。”
  • 讓我們(而不是讓我)。讓我們回頭再見。”“讓我們把這事做完。”

3.1.2 真正的承諾聽起來是怎樣的?

尋找相似的句子:我將........之前............

你對自己將會做某件事做了清晰的事實陳述,而且還明確說明了完成期限。

那不是指別人,而是說的自己。你談的是自己會去做的一項行動,而且,你不是可能去做,或是可能做到,而是必須做到。

到了所到時間之後,面臨兩個結果,要麼完成,要麼沒完成。

如果你沒做到,他人就能擺出你先前的承諾讓你難堪。由於失信於人,你會感覺很糟糕。告訴別人自己沒能兌現承諾時,你會感到十分難堪(如果那人曾當面聽你做出承諾的話)。

作者在這裡還說明沒能信守自己的承諾的潛在想法,並且給出對應的應對方法。

  1. 之所以沒成功,是因為我寄希望於某某去做這件事。

    原因:你只能承諾自己能完全掌控的事。比如,如果你的目標是完成一個還依賴於另一團隊的模組,那麼你無法承諾自己既能夠完成這個模組,還能實現該模組與其他團隊所負責模組間的無縫整合。

    應對方法:如果最終目標依賴於他人,那麼你就應該採取些具體行動,接近最終目標。

  2. 之所以沒成功,是因為我不太確信是否真能完成得了。

    應對方法:即使目標無法完成,你仍能全力前進,離目標更近些。

    例如:

    • 把這25個bug全部過一遍,努力重現這些bug。

    • 和發現bug的QA一起坐下來,看下bug重現時的現場。

    • 用本週能支配的全部時間,嘗試逐一修復bug。

  3. 之所以沒成功,是因為有些時候我真的無能為力。

​ 應對方法:如果你無法兌現承諾,那麼最重要的就是儘早向你的承諾物件發出預警,越快越好,越早越好。

​ 這裡有一點要注意:

如果你不盡早告訴他人可能的問題,就錯失了讓他們幫助你達成目標、兌現承諾的機會。

3.2 學習如何說“是”

堅持原則

如果不寫測試,他或許可以更快點完成任務。如果不做重構,不執行整套迴歸測試,或許也可以快點完成任務。此時,如果是專業開發人員,就不會放棄底線。

首先,這種假設本身就是錯誤的。即使不寫測試,不做重構,省掉完整的迴歸測試,Peter也無法更快完成任務。多年經驗告訴我們,打破這些紀律和原則,必然會拖慢進度。

其次,身為專業開發人員,Peter有責任根據標準規範自身工作。程式碼必須經過測試,程式碼必須要有對應的測試程式碼。要確保程式碼清晰整潔,而且必須確保沒有影響到系統的其他部分。

如果要“加班”,就需要考慮自己的經理儲備,口頭上說自己會在週末搞定這些事情很容易的,但要真正花精力高質量地完成工作會困難許多。

專業人士對自己的能力極限瞭如指掌。他們十分清楚自己還能保持效率加班多長時間,也非常明白要付出的代價。

總結

專業人士不需要對所有請求都回答“是”。不過,他們應該努力尋找創新的方法,儘可能做到有求必應。當專業人士給出肯定回答時,他們會使用正式的承諾,以確保各方能明白無誤地理解承諾的內容。

相關文章