享受程式碼之美

hzbook2008發表於2011-05-27

享受程式碼之美


《程式碼之美》推薦序(作者:熊節)


“希望寫出漂亮程式碼的開發者可以向藝術家們學習一些東西。畫家常常放下手中的畫筆,然後遠離畫布一段距離,圍著它轉一轉,翹起腦袋,斜著看看,再從不同的角度看看,在不同的光線下看看。在尋求美的過程中,他們需要設計這樣一些視角並使它們融為一體。如果你的畫布是個整合開發環境(IDE)而你的媒介就是程式碼,想一想,你如何做到離開畫布一段距離,用挑剔的眼光從不同的視角來審視你的作品?──這將使你成為一個更優秀的程式設計師,並幫你寫出美麗的程式碼。”

寫這段話的Alberto Savoia在他的文章裡真的沒有講什麼令人敬畏的高技術或是大架構,他講的是每個計算機系的大二學生都熟悉的二分查詢。所以Savoia真的是在講如何寫出漂亮的程式碼,所以才選擇了這麼一個所有人都清楚得不能再清楚的例子。你會覺得這種事情都是些不諳世事的小程式設計師才會熱衷於乾的吧?可這位Savoia卻是從Google離職以後開創了Agitar Software公司()的不折不扣的創業者。有意思嗎?一個鬍鬚花白、在這個行業裡廝混了數十年、擁有自己公司的老傢伙,還在樂此不疲地談論“漂亮的程式碼”。

這本《程式碼之美》(Beautiful Code)就是由三十多篇像這樣有意思的文章組成的。像Brian Kernighan、Tim Bray、Charles Petzold、Douglas Schmidt、Yukihiro Matsumoto這樣的名字,你甚至很難想象他們同時出現在同一本書上。或許也只有“漂亮的程式碼”這樣的話題才能激起他們共同的興趣。於是就有了這本了不起的書:從正規表示式匹配器到影像處理,從通訊到基因排序,這些可能是世界上最優秀的程式設計師毫不吝嗇地向讀者展示:不論面對什麼問題、使用什麼語言,程式碼的美感都是始終存在的,而且這種美感應該是程式設計師畢其一生不懈追尋的。

作為《重構》的譯者,不時有人會問我一些關於重構的問題,其中一個問題讓我最感為難:為什麼要這樣做?真的,如果不是要修改程式碼,也不是要新增功能,為什麼要把這段程式碼抽取出來呢?讓每個方法都保持5行以內的長度到底有什麼好處呢?這種時候與其說是有什麼利弊權衡,毋寧說就是為了讓程式碼“更漂亮”。當然了,在大部分時間裡,軟體開發是一項集合了科學、工程和服務的工作,但──至少在我們的內心深處──它多少還有那麼一點藝術的成分。除了完成任務以外讓自己手上的程式碼更具美感,也算是對自己作為程式設計師的夢想的小小堅持吧。

所以,既然你已經拿起了這本書,就暫時放開那些功利的目標吧──別誤會,這可不是一本沒用的書,透過閱讀這些“高手”們的程式設計心得,對自己的能力提升就算不能立竿見影至少也有潛移默化之功。但那也只是裝珍珠的盒子而已。在一個安靜的週末,給自己泡上一杯清茶,跟著三十三位頂尖高手暢遊在程式碼世界,在他們的指引下遍賞程式碼之美,這才是作為一個程式設計師最大的享受呢。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16502878/viewspace-696439/,如需轉載,請註明出處,否則將追究法律責任。

相關文章