好程序員的十大習慣之二 寫代碼以前胸有成竹

[做者按:你們的好習慣有不少,這其中必然存在重要的和非重要的,我也看過網上有寫N大習慣的,可是寫的都比較隨意。感受就是直接寫本身的經驗同樣。我在寫每個習慣以前,都在琢磨,爲何要把這個習慣放到這裏。下一個習慣又是什麼?你們也能夠幫忙一塊兒來分析,能夠在回覆的時候,加上本身的建議,謝謝了!]程序員

不清楚本身要作什麼的程序員,不可能作出好的代碼出來。這話雖然有點絕對,但必定適用於不少人。我知道有一些程序員,在作任務的前期,幾乎就是在浪費時間。你去問他作得怎麼樣了,他會告訴你遇到什麼什麼困難了,可是你要是幫他分析一下他真正要完成的事情,你會發現,他根本還不知道本身要作成什麼樣子。他是本身理解一點作一點,根本不論是否須要這個。有時候他所謂遇到的困難,都是他本身憑空想出來的。編程

我喜歡胸有成竹地寫代碼的感受,一鼓作氣,耐人尋味。寫完以後,感受全身充滿了氣息,就好像被打通了任督二脈。血脈流轉很是強烈。就一句老話講:痛則不通,通則不痛。講的應該也是這個道理。沒想清楚如何實現的時候,或者程序模型沒有創建好以前,總感受頭痛眼花。這種情況會視問題的難易程度而定,有時候作夢都在思考。我甚至有一次在夢裏把問題解決了。那一次睡覺完的感受很是好。真是:ide

夢裏太白撥一點,spa

醒來更能上九天!it

但這些以前,必定是咱們對於咱們要作的東西深入理解了。是深入,而不是全面。第一要理解到精髓,第二要用淺顯的話總結。這就是深刻淺出的道理。理解到精髓是爲了方便擴展,用淺顯的話總結是爲了方便抽象。這兩點正好是咱們編程所追求的目標。io

只要咱們知道咱們作什麼,工做效率可以提高不少。我就有一個例子,有一次一個業務人員葛工,跑到我這裏來,讓我幫他改一個系統。這個系統我歷來沒看過,相關業務我也不是很清楚。結果2小時就搞定了。怎麼搞的呢?我就和葛工商量,我說這樣,你坐在我旁邊,你把你要的東西在軟件上比劃,我把相關代碼調出來,看是否你要的地方。就這麼兩我的坐在屏幕前,一對一的幫助,很快我就改好了他要的功能。class

提及這個故事,你們天然可以想到了敏捷中的和客戶結對的作法。是的,我認爲敏捷實踐中的經驗,其實就是用組織的形式來彌補咱們我的很差習慣所帶來的效率問題。我曾經總結過,RUP關注的是事理,XP關注的是人性。你可以發現我在寫不少習慣的時候都會提到敏捷。這是它偉大的地方。效率

有時候咱們的工做是瑣碎的一堆事。這個時候,一個好的習慣,就是花2分鐘時間,在一張紙上列出你全部要完成的事項。而後對照這張紙進行工做,每完成一個劃掉一行。直到最後完成。我相信不少人都用過這個方法。這個方法在這種狀況下的做用很是大。他很容易把咱們的精力集中到問題上。不然,咱們完成了第一項以後,就會容易有很長時間不知道接下來該作什麼。這是一種時間管理方法,也是一種小目標的管理方法。擴展

其實說到底,就是人在知道本身作什麼(目標)的狀況下,和不知道本身作什麼的狀況下的效率和效果是不同的。軟件

最後說一句,在《高效能人士的七個習慣》中,這個習慣應該叫以終爲始。但我並無生搬硬套,仍是本着實踐中確實有效的方式去寫這個習慣。

相關文章
相關標籤/搜索