像繪畫那樣寫代碼

來源:互聯網
上載者:User

很久不寫代碼,發現寫代碼的習慣有點變化了。以前基本都是把一個類(或者功能)寫好了,並測試通過了,再去寫另一個類。至於兩者如何互動的,事先要考慮清楚,也就是要做設計,畫UML圖等。至少是先寫的功能,要充分考慮未來調用者的各種使用情境。就像在一張白紙上作畫,第一筆總是很難的,所以往往也是最苦悶的時候,寫代碼的進度也很慢。現在不一樣了,根本不等把細節考慮,就開始寫代碼。先是大概把代碼架構寫了,想到什麼就先寫下什麼,還沒有確定的細節,就用虛擬碼,文字說明或者不完整的代碼來大意示意一下。就這樣,東一下子西一下的就把幾個相關的類(功能)的架構給勾勒出來。雖然還無法編譯通過,但是卻讓我對整個結構有了更多的認識,細節不斷變得清晰,然後不斷填充。這邊的細節確定了,那邊也就確定了,就這樣來來回回的填充,很快所有的虛擬碼或者不完整代碼就都變成了真正的代碼。等到所有空白都填上了,就可以F5編譯了。這時候,編譯器還會發現一些錯誤,繼續修補直至編譯通過。最後是運行調試,直至得到預期結果。

 

於是就想到,繪畫的時候,我們會首先用簡單的幾筆勾勒出大致的輪廓,然後不斷的補充細節。剛開始的時候,看不出是什麼東西,但隨著細節的不斷加入,就越來越生動了。你不可能說畫一個人的肖像的時候,先把每一根頭髮都描繪出來,然後才是畫眼睛,畫鼻子......你當然會先勾勒出髮型,眼睛和鼻子的位置,然後再來回細描,每一次都會力圖保證所有的部位在細節的細密程度是一致的,而不能說頭髮很細緻而眼睛很粗陋。我不懂繪畫,但我覺得這是要力圖保證協調,保證全域觀。看電影裡的大師作畫,開場總是隨便在紙上隨便點上幾筆,甚至是隨意的潑墨,然後就著這些墨跡,這裡加一筆,那裡加一筆,一幅栩栩如生的畫就誕生了,讓人歎為觀止。還有另一種繪畫方式,就是列印。紙從一頭進入,從另一頭出來,畫面是一行行的繪製出來的,細節也是一次性完成的,並不是來回補充上去的。

 

手繪和列印的區別就是,手繪前不需要考慮細節,只要胸中有一個大概的輪廓和思路即可,細節可以在繪畫過程中不斷補充。而列印,需要在一開始就把所有細節都考慮清楚,並在一開始就把細節做好。如果開始時沒有把細節考慮清楚,那麼列印結果是無法挽回的。手繪則可以通過再加入更多的細節來平衡以達到修補的目的,因為關注的是整體,而不是某一個局部。而且因為細節是不斷加入的,所以發現錯誤的時候還有時間補救。不過,如果設計圖(即底稿)很好的話,列印則可以得到更好的效果。所以,手繪具有靈活的特點。而列印則可以保證品質。

 

想想看,敏捷開發方式和瀑布型開發方式,不正好是跟手繪和列印類似?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.