編程如做菜

來源:互聯網
上載者:User

 

作者:胡陽

摘自:http://www.the5fire.net

 

寫程式有時候就像是做菜一樣。很多人都這麼比喻過,從寫程式和做菜的對比中我們能得到什麼啟發呢?因為寫一個程式的周期相對是比較長的,而做菜的過程確是很短(時間太長了會有人餓暈過去的,呵呵)

【淺析】

先從小程式說起,一個小程式的開始,都是胸中有溝壑,敲鍵如有神。只需要腦海中有大概的一個構思就可以了,隨便做出來個什麼東西,最後不合心思大不了再改。就如自己隨便做一些家常菜一樣,不需要嚴格工序,有菜,有鍋,有火,加熱即可食用。不在乎美味與否,好看與否,反正最後都是下自己的肚子,香苦自知。
再來說大程式,精品菜。這些東西都是比較講究的,光是胸中有溝壑是不夠的,因為你的溝壑可能不足以覆蓋整個程式的始末。
所以要有嚴格的工序,無論你是用敏捷還是用RUP或者是XP,都要有一個規範作為指導,不可肆意妄為,否則會破壞整體結構。而對於做菜,無論你坐什麼川菜,粵菜,或湘菜,你都要按照一定的步驟來走,需要遵守菜譜才行,川菜需要麻辣,那你就不能讓酸辣,不然整盤菜就變味了。

【過渡】

我個人感覺之所以那些精品菜比較美味、受人歡迎,除了有嚴格的工序之外,還需要有相當的輔料才行。一盤菜的色香味,出了菜料本身,更多的因為輔料的使用。就像是一個完整的程式,除了用SSH或者SSI或者其他的一些架構之外,更多的是對架構的一些補充,或者是架構涉及不到的地方,如使用ant自動構建,Maven來進行專案管理,或者js提升使用者體驗。
這些東西都是脫離主體之外,但有缺之不可。因此,才有了“一千個程式員(廚師),就會創造一千個程式世界(美味佳肴)”這句話。同樣的材料,同樣的架構,不同的人來做效果完全不同。主要取決於創造者的閱曆,經驗,以及領悟。

【深挖】

即便是對於相同的菜譜,相同的廚具,相同的作料,不同的程式員做出來的味道也會截然不同。造成這樣的差別除了上面所說的經驗、閱曆、領悟能力不同之外,還取決於程式員的基本共如何,有沒有很好的刀工,有沒有很好的勺工。另外還有一項最為重要的就是程式員對菜譜的理解,對菜料的理解,以及對作料的理解,甚至是對廚具的理解。
即便是一個擁有很多經驗、閱曆,以及領悟能力超人並且有很好的基本功的程式員,如果不理解菜譜,不瞭解菜料,不瞭解作料,不瞭解廚具,我想即便是做出來一摸一樣的菜肴,也只是在“色”上有了一定的功夫,談不到“香”,更談不上“味”。
在上述內容之外其實可以牽扯出來最最本質,最最重要的東西——對上述內容的掌握,只有充分掌握上述內容才能綜合的運用,才能把各種材料和自己的技藝精湛的發揮出來,最終可以超越菜譜,到達“創”的境界。

【總結】

做一個出色的廚師很難,做一個優秀的開發人員也不易,架構用的再熟練充其量也是個技工,只有不斷的掌握其本質,掌握環境,平台,才能真正做到:胸中有溝壑,下筆如有神的最高境界,此溝壑才是真正的溝壑。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.