博客 / 詳情

返回

《軟件開發的 201 個原則》(中譯本) 出版了

來源:章老師説

前後歷時近 2 年,軟件工程領域的經典著作《軟件開發的 201 個原則》(201 Principles of Software Development)終於在國內正式出版了。

在此,感謝組織和參與翻譯的 15 名百度同學,大家做了一件非常有意義的工作。同時,大家也一致同意將本書翻譯的稿酬全額捐贈給希望工程。

在此,要感謝百度和電子工業出版社博文視點的支持。大家在“打造精品”這個目標上有非常一致的共識。在這個工作中,我感受到了情懷和責任。

本次很榮幸得到原書作者 Alan Davis 兩次專門撰文。軟件大師的專業風範在其中有非常充分的展現,非常值得我們學習。

本次也非常榮幸的邀請到來自清華大學及多家公司的專家和老師撰寫推薦序。非常感謝大家對於本書出版所提供的支持。

有興趣的同學,可以直接點擊本文最後的“閲讀原文”或掃描下圖的二維碼到京東購買。

image.png

下面是我在去年夏天代表翻譯團隊所寫的譯者序,請大家指正。

譯者序

其實我不是譯者,而僅僅是一名“校對者”。大家讓我來寫這篇譯者序,盛情難卻,無法推脱。

《軟件開發的 201 個原則》是我於 2017 年至 2020 年在百度舉辦“代碼的藝術訓練營”時使用的指定教材。這本書的內容深受訓練營學員的好評。由於之前沒有中文版,對於部分英文基礎不太好的同學來説閲讀有些困難。終於在 2019 年底,有十多名“代碼的藝術訓練營”的畢業生自發組織起來,開始了此書的翻譯。我從 2020 年 5 月初加入校對工作,完成全部的校對,我大約花費了 80-100 個小時。由此推斷,負責翻譯的同學花費了數倍於此的時間。非常感謝這些同學的無私付出!

初識《201 個原則》是在 20 年前。當時我還在清華大學讀書,在老師的指導下做一個有一定規模的軟件研發項目。在項目的研發過程中,遇到了不少軟件工程方面的問題。於是在那一年,我閲讀了大約 10 本軟件工程方面的書籍,包括《Code Complete》(代碼大全)、《Rapid Development》(快速開發)、《ProgrammingPearls》(編程珠璣),等等。《201 個原則》是我當時在清華圖書館中發現的一個“寶貝”。我必須説,這本書對我的影響非常深,很多我現在經常提起的軟件工程原則,其實都源於對這本書的閲讀。

2006 年我離開清華,到目前已經在工業界工作十多年,經歷了多家公司。我發現,雖然我們的軟件研發規模已經和 20 年前有了很大的發展,但是在軟件研發的理念方面的進步還是太慢了。有太多的軟件從業者,即使已經工作多年,但對於軟件研發的基本理念和原則還是瞭解不多。以我多次的調查,閲讀超過 2 本“真正的”軟件工程書籍的人是非常少數的。很多軟件工程師,仍然在使用非常低效的、甚至是錯誤的方法在工作!

於是在 2015 年,我在百度開辦了“代碼的藝術”面授課程,其中就重點推薦了《201 個原則》。而在 2017 年做“代碼的藝術訓練營”的時候,這本書就成了指定教材。為什麼要選擇這本書?因為它對軟件工程的內容覆蓋全面,且篇幅短小。對於一個短期培訓班來説,如果選擇類似《Code Complete》這樣的書籍,閲讀所需要的時間有些太多了。在這個場合,《201 個原則》是一個性價比更高的選擇。另外,我常常感覺,對於一個軟件工程師,掌握正確的意識是比掌握具體知識更重要的。如果有正確的意識,即使不記得具體的知識點,還可以在需要的時候進行查閲。而反過來就不是這樣了。

必須要説,《201 個原則》寫於 1995 年,距今已經有 25 年時間。這也成為很多人擔心的來源— 計算機技術的發展如此之快,這本書是不是已經過時了?但是,正如我在“代碼的藝術”課程中所述的“知識、方法、精神”三者的對比,方法的變化速度遠遠慢於知識。尤其是在本次校對過程中,我驚奇的發現,本書中真的可以説是“過時”的原則還不到 5 個!是軟件研發的方法變化太慢,還是本書的內容太深刻?我想兩者兼而有之。在此,我必須要對本書的原作者 Alan M. Davis 致敬,並對《201 個原則》中所有原則的貢獻者和歷史上所有軟件工程領域的大師們致敬!

最後,要隆重的介紹本次負責翻譯的百度同學。他們是:葉王,馬學翔,吳斌,王冰清,楊光,曾浩浩,李殿斌,甘璐,李子昂,肖遠昊,賈儒,王瑩,張苗,李雙婕,榮文升。另外,經過大家的商定,本書翻譯出版的所有稿酬,都將捐贈給公益事業。

對所有的讀者,所有的閲讀此書的軟件工程師,所有準備從事軟件研發的同學們,希望本書能夠對你們有所幫助!

章淼博士

百度 BFE 團隊技術負責人,百度代碼規範委員會主席

2020 年 6 月 14 日寫於百度
點擊進入獲得更多技術信息~~

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.