享受程式碼之美
《程式碼之美》推薦序(作者:熊節)
“希望寫出漂亮程式碼的開發者可以向藝術家們學習一些東西。畫家常常放下手中的畫筆,然後遠離畫布一段距離,圍著它轉一轉,翹起腦袋,斜著看看,再從不同的角度看看,在不同的光線下看看。在尋求美的過程中,他們需要設計這樣一些視角並使它們融為一體。如果你的畫布是個整合開發環境(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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式碼之美---遞迴之美遞迴
- 程式碼之美_感悟
- 《程式碼之美》 ——序
- 《程式碼之美》的故事
- 程式碼之美:又見“鉅著”
- 程式碼之美:重新擦亮思考的火花
- 程式碼規範&《數學之美》讀後感
- 如何享受程式設計?程式設計
- 程式設計之美之電話號碼對應英語單詞程式設計
- 程式之美 存乎於心
- 程式設計之美之買票找零程式設計
- 如何獲取和使用酒店協議程式碼,享受預訂優惠協議
- 演算法之美一書完整程式碼釋出連結整理演算法
- 通才與專才之辯 | 享受工作系列
- 程式設計之美複習筆記程式設計筆記
- 程式設計之美之高效安排見面會程式設計
- 程式設計之美之最短摘要生成程式設計
- Golang之美Golang
- Go併發程式設計之美-CAS操作Go程式設計
- Go併發程式設計之美-互斥鎖Go程式設計
- 程式設計之美leetcode之編輯距離程式設計LeetCode
- 指令碼之美│VBS 入門互動實戰指令碼
- 遞迴之美 - Loki庫TypeList原始碼剖析 (轉)遞迴Loki原始碼
- 美觀的搜尋框程式碼例項
- 美觀開關按鈕程式碼例項
- 對齊之美
- 微信小程式實戰(一)之仿美麗說微信小程式
- 程式設計之美初賽第一場--焦距程式設計
- 程式設計之美初賽第一場--樹程式設計
- 演算法字串位包含程式設計之美演算法字串程式設計
- Mybatis原始碼之美:3.4.解析處理parameterMap元素MyBatis原始碼
- 漢字之美,拼音之韻
- [程式設計之美][2.2] 不要被階乘嚇倒程式設計
- 讀《團隊之美》
- 《專案管理之美》專案管理
- 程式設計師必看:程式的美,不止動畫的美程式設計師動畫
- 程式碼壞味道之程式碼臃腫
- 磨皮美顏演算法 附完整C程式碼演算法C程式