l

2013年4月16日 星期二

不是我不跑,Code麻了叫我怎麼跑?

Apr. 11 22:00~22:46

image

不是我不跑, code麻了(程式碼跟爛泥巴一樣)叫我怎麼跑?

***

前幾天談到《Clean Code》(無瑕的程式碼)這本書(請參考《Clean Code之錯誤處理》),今天要談一下書中第一章提到的一句話,這句話寫得很好,若能看透個中含意,鄉民們的軟體開發人生將是彩色的。翻開課本第6頁:

True professionals know that you will not make the deadline by the mess. Indeed, the mess will slow you down instantly, and will force you to miss the deadline. The only way to make the deadline—the only way to go fast—is to keep the code as clean as possible at all times.

(真正的專家知道你為了趕時間所寫出來的爛程式並不會讓你趕上截止日期。事實上,這些因為趕時間所寫出來的爛程式將會立刻拖慢你的進度,而且會使得你錯過截止日期。讓你趕上截止日期的唯一方法--也是唯一讓你開發速度變快的方法--就是隨時儘可能的保持乾淨的程式碼)

***

Teddy遇到太多鄉民,都存在以下的想法:

  • 我沒時間,為了趕上截止日期所以我不做設計(寫出很髒的code),反正程式可以動就好了。
  • 我沒時間,為了趕上截止日期所以我不做重構,反正程式可以動就好了。
  • 我沒時間,為了趕上截止日期所以我不做code review,反正程式可以動就好了。
  • 我沒時間,為了趕上截止日期所以我不寫測試,反正程式可以動就好了。
  • 我沒時間,為了趕上截止日期所以我不做持續整合,反正程式可以動就好了。
  • 我沒時間,為了趕上截止日期所以我不XXX,反正程式可以動就好了。
  • 我沒時間,為了趕上截止日期所以我不寫程式,反正錢騙到手就好了。

以上想法存在兩個很嚴重的問題:

  1. 誰說省掉一堆事情不做就可以趕上截止時間?
  2. 程式是真的可以動,還是看起來可以動,實際上不能用?

請問有多少鄉民相信書中所寫的上面這段話?再強調一次:

The only way to make the deadline—the only way to go fast—is to keep the code as clean as possible at all times.

這句話也算是呼應了Andy Hunt 與 Dave Thomas 所說的:「Rather than construction, programming is more like gardening」、「All programming is maintenance programming」。

***

扯來扯去,這些都是敏捷開發的基本精神。敏捷開發不是玩玩撲克牌每天罰站15分鐘畫畫工作看板就沒事了。如果不相信這些理念,不管是導入哪種敏捷開發方法,要成功,很難。

***

友藏內心獨白:這種現象該算是知易行難、知難行易、還是知難行難?

4 則留言:

  1. 這就是我特別喜歡另一本書的原因(The clean coder),整本書講的就是這樣的心法。節錄11.2節如下:
    "當事情十分困難時,要堅信你的紀律原則...戰勝壓力煎熬的唯一方法,便是依靠那些你已經知道切實有效的東西。" 簡體中文本翻譯的品質相當不錯。

    回覆刪除
  2. 中國大量翻譯這些大師級的作品,台灣就很少了 ...

    回覆刪除
  3. 的確,看到那麼多簡體版的外文書,真的是人多好辦事。以前Teddy小時候是對岸看台灣的書,這幾年變成台灣看對岸的書。看起來這個趨勢是回不去了...

    有種被『溫水煮青蛙』的感覺...Orz

    回覆刪除
  4. 以目前程度而言,
    感覺像是「知易行難!」@@

    回覆刪除