《程式設計師必讀之軟體架構》譯者序

米粽發表於2014-10-09

譯者序 2.0

在本書行將出版之時讀到周愛民老師寫的推薦序,感觸良多。因而書還未面世,譯者序就寫了第二稿,倒也跟 IT 行業的風格挺契合——很多軟體首次釋出時的版本號都是 2.0,甚至更高。

初識軟體架構

我是從一個小網際網路公司走出來的野生程式設計師。小公司裡沒有很細的分工,程式設計師必須像萬金油,什麼都會一點。資料怎麼分表、後端介面怎麼分、URL 結構怎麼定、前後端怎麼接,這些都得搞定。事情多了,必須想清楚。

我在盛大創新院做的最後一個專案是一個 iOS 垂直社交應用。兩個同事合作開發 iOS 客戶端,而我在這個專案裡的工作是開發一個 REST 架構的資料服務。需求很簡單,就是根據客戶端的應用場景編寫一整套 API。當第一個里程碑的所有工作完成之後,我發現需求開發只佔用了一小部分時間,而設計關係型資料庫的結構,設計認證、授權和報告,設計應用簽名和令牌,設計 REST 風格的 URL 結構,開發 API 除錯工具,編寫 API 文件,這些事情卻耗費了大量的時間。我就想,花了這麼多時間做這些事情,並沒有增加任何功能,又感覺不能不做,這到底是為什麼?對這個問題的思考和學習,應該算是我對軟體架構的入門。

怎麼會翻譯這本書

兩年前我進入 IBM,參與的專案是一個適用於大型資料中心的儲存資源管理工具。這個工具的規模和複雜程度遠遠超出大多數面向普通使用者的網際網路應用,自然對架構的要求更為嚴苛。而 IBM 作為一家傳統軟體企業,深厚的技術積累也令我大開眼界,給了我很多學習和思考軟體架構的機會和資源。

我們專案的架構師會貢獻程式碼,會參加程式碼評審/回顧;我們有預先架構設計,也有架構演化;我們執行 SCRUM 方法;任何人對設計有意見,都可以給架構師寫郵件,只要有理有據,就能說服他更改設計;等等。在此之前我從未見過這樣奇特的組合。很快地適應了以後,我又想,這麼好的方式,居然只有我們在用?直到今年三月,在微博上看到圖靈的李鬆峰老師為 Software Architecture for Developers 一書徵召譯者。讀過樣章後才發現,我們就是作者理想中的團隊啊!既然如此,何不嘗試翻譯這本書?

架構離我們並不遙遠

寫給程式設計師的軟體架構,這是一個很有趣的出發點。長久以來,架構師在程式設計師群體中聲名狼藉,軟體架構被很多人認為是一項脫離現實、高高在上的工作。其實對程式設計師來說,架構近在眼前!下至介面設計,上至技術選型,不論你是否意識到,每個程式設計師或多或少都接觸和參與過一些架構工作。架構師也自然而然成為相當一部分程式設計師的職業發展方向——你看,我們努力想要成為自己咒罵的人。

本書的作者是一位經驗豐富的架構師。他從最簡單的基本概念入手,對軟體架構進行了層層深入的細緻講解,結合自己的實踐經驗,總結出很多實用的準則和方法,並且附上一個完整的開源專案來對這些內容加以佐證,幫助讀者學習和理解。翻譯這本書,在我看來更是對軟體架構的一次系統的學習,不僅豐富了我對軟體架構的理解,更改變了我對架構師這個角色的一些固有印象。這本書令我獲益匪淺,希望更多有志成為架構師的程式設計師朋友也能從中有所收穫。

周愛民老師的序

十一假期結束後開啟郵箱,收到圖靈的李靜老師的郵件,得知周愛民老師會為這本書撰寫推薦序。驚喜,因為愛民老師是包括我在內的很多人所敬仰的資深前輩。惶恐,因為我在軟體架構方面還是個菜鳥,寫作能力更與愛民老師相去甚遠。

要來愛民老師的文章一讀,“然後忘掉”,寫得真好!我從未受過任何電腦科學或軟體工程的專業訓練,大學所學的化學專業也跟計算機毫無關聯。因此,去看去聽去做,並且牢牢記住,使我得以在這個行業一步步走到今天。自從對軟體架構產生興趣,也是如此逐漸學到很多概念、方法。雖然清楚架構必有權衡,不能十全十美,然而瞭解的知識越多,就更想面面俱到,反而放不開。殊不知,牢牢記住,也給自己畫地為牢,陷入愛民老師所說的困局。

如果說這本書幫我畫了一個更大的圈,那麼愛民老師的文字則告誡我要跳出這個圈。我面前的架構之路還很長,不知何時能走出圈外,走到愛民老師今日所處之地。

謝謝你們

這本書的翻譯能夠完成,我最想感謝的人是成都七中的高中語文老師王正可。王老師是我近二十年學生生涯中最重要的一位老師:她是第一個讓我對語文產生興趣的人。王老師教給我文字的藝術,幫助我找到閱讀和寫作的樂趣,對我而言這是一筆巨大的財富。如果不曾有幸成為她的學生,我想我不會養成寫作的習慣,更不可能有翻譯圖書的想法。

為了讓我能夠安心地翻譯,家裡的領導承擔了洗衣、做飯、掃地(以及數錢)等繁瑣的家務。對一些難以理解的字句,她也和我一起討論。作為一個非球迷,她還陪我熬夜觀看了好多場世界盃比賽,大大減輕了我因為拖延翻譯而產生的負罪感。圖靈公司的李鬆峰和李靜兩位老師,對我翻譯這本書給予了極大的肯定和支援,並且縱容了我逾期未完工的行為。這本書也有他們的一份付出。

鄧鋼
2014 年 10 月
上海

相關文章