大道至簡:軟體工程實踐者的思想

大道至簡:軟體工程實踐者的思想

《大道至簡:軟體工程實踐者的思想》是2012年8月出版的圖書,作者是周愛民。

基本介紹

  • 書名:大道至簡:軟體工程實踐者的思想
  • 作者:周愛民
  • ISBN:978-7-121-17790-3
  • 頁數:228頁
  • 定價:49.00 元
  • 出版時間:2012年8月
  • 開本:16開
內容簡介,版本介紹,媒體評論,作者簡介,目 錄,

內容簡介

本書提出了審視軟體工程的全新視角和軟體工程的體系模型(EHM,軟體工程層狀模型)。本書用非工程的方式重新解析軟體工程現象,全面、細緻而深刻地分析了工程中各個環節的由來、價值及其內在關係。綜合論述開發、工程二者的現狀,例如對程式設計師“工匠思想”的起源進行廣徵博引的分析,也對工程中“敏捷過程”的經驗主義本質進行深至髓質的論證。全書語言輕快,可讀性強,薄且有味。
本書是在“思想方法學”這一軟體工程尚未涉足過的領域中的實習之作。作者親歷國內軟體工程的英雄時代、泡沫時代,從失敗中醒覺而創建獨特的思考方法,對軟體開發、工程中的現狀深刻反思,從而完成這本專著。在缺乏獨立思維、對國外工程理論亦步亦趨的國內工程界、開發業界,該書無疑是一份激盪新思的佳作。本書是第一本討論軟體工程思想本源的書籍,也是第一本從工程實踐出發溯源而論的佳作。
本典藏版在內容上以該書第二版為底本並進行了大量的文字修訂,補充追加了第三版中的“具體工程”一章。並且,考慮到典藏的價值,本書收錄了公開文檔“幕後故事”的精華摘選。

版本介紹

對第二版的讚揚
最關鍵的還是思想和觀念上的一些改變。
石頭
立刻就被這本書深深地吸引住了,好幾次在車上看得入迷了差點錯過下車。
大P
一口氣通讀下來後,能夠留在我短時記憶十分糟糕的大腦里的就只剩下:語言只是工具、boss 是“經營者”,以及軟體工程中作者的一些感悟。
wangwei
我們的名詞太多了。其實我感覺最好的方法論,是《大道至簡》,本來就是簡單的道理何必複雜化?軟體開發工程師就是把複雜的東西簡單化。否則只能叫技術員。
藍葉菱
作者是程式設計師出身,是真正的軟體工程實踐者,這本書確實是一個有真正經驗的人的總結。(這)在書中還是有不少體現的——這是我真實的感受!
Suilj
又這么一口氣看完了這本書,兩三個小時對著電腦,哈哈,樂在其中。
高峰
雖然是一本探討軟體工程方面的書,但包含其中的思維方法和道理,其實對其他許多情況也都是適合的。
RealTwo
真的將軟體工程分析得很透,這本書你能夠看到很多以前你學到的東西的縮影。他用生動形象的語言和插圖給了一個詮釋。(軟體工程層狀模型的)每一部分都是經典獨到的。如果你細細品味,可以學到很多屬於你的管理與設計的技巧。
suifengfeiyang1697
還沒有讀完一遍,我就已經有讀第二遍的想法了!!!
雷偉波
本想隨意翻翻,但看完第一章就忍不住看完了。
王德水
一本值得一看的好書,裡面都是周愛民多年來對軟體工程實踐的思想,值得我們去閱讀,
去思考。
TV9
很精簡的一本書,就一百多頁,但是裡面詮釋的東西卻是軟體工程的一些精髓。
extinct
不斷逼迫你去思考,從自己的親身經歷和愚公移山這個人所盡知的經典故事出發幫助你去思考。
陳瑞江
一本能讓我有讀第二遍的衝動的少有的書。讀起來好像在聊天,將以往工作中的問題、疑惑擺出來,講清楚,化解掉。將市面上充斥著的各種理論、方法加以梳理。
zmoka
對第一版的讚揚(摘選)
國人對軟體工程的深刻經驗,薄且有味。
肇宇
清楚地闡述了軟體工程的關鍵問題,絕對不像那些教科書一般說教。
Sqlxx
以獨特的視角洞悉軟體工程的精髓。
雲海天潮
不做工具的奴隸,而做思想的主人。
狂奔的蝸牛
雖然有很多個人色彩在裡面,……但這種思想讓我受益匪淺。
Fireice
喜歡這種寫作的風格,以及短小的篇幅。
雲風
願朋友們也能從中感悟些什麼。
LwT
推薦序
停下來,思考才是進步的本質
我個人的工作是非常忙碌和繁雜的,由於Borland/CodeGear 同時擁有Win32、.NET和Java 的產品和開發工具,因此我必須了解這三個平台的知識和技術——更不用說軟體工程了。因為Borland/CodeGear 近幾年來除了有Together 這個產品之外,Borland/CodeGear 內部的許多R&D 團隊也開始使用敏捷開發(Agile Development)的軟體工程來研發新產品,尤其是,Borland/CodeGear 擁有目前.NET 和Java 平台上最先進的MAD/DDA 技術和產品了。
因此我必須閱讀大量的技術書籍,每天在Internet 上不斷地補充新知,以應付工作上的需要。長期的積累,雖然讓我學習了許多技術,但是真正讓我不斷超越昨日自我的因素,並不光是這些單點的技術,而是多參考業界大師級人物的思想,以及更實際地看看我們同儕的思考,更重要的是,不時地停下來融合思考的結果。以前我非常享受在工作時與李匡正先生、蘇國鈞先生以及我的其他好友共同討論的時光,蓋因在這些好友的談話和思想中,蘊藏了他們豐富的知識和智慧的精華,讓我受益良多。
愛民是我大陸的好友,年輕有活力。每次我到大陸,如果有時間和他見面,他總是有許多話和我談論。愛民和我還有一個共同點,那就是我們倆都是技術書籍的作者,這讓我更進一步認識到在我了解的技術書籍作者中,愛民是一位非常有實力的佼佼者。
由於工作的關係我認識了愛民,也讓我有機會能親自聆聽他的一些想法、經驗和智慧的結晶,因此我非常幸運地能夠藉由這個機緣不斷地成長和進步。如果您不像我這么幸運,能夠因成為愛民的好友而獲益良多,現在您可以藉由閱讀愛民的新作《大道至簡》來擷取他的思想精華。適時地停下來,參考優秀軟體人才的想法,搭配我們學習的各種技術,最後再加入自己融合思考的結果,您將會體驗到從未有過的成就感。如果您還不知道這個成功秘訣的話,那么不妨就從《大道至簡》開始吧。
李維
2007 年1 月
李維
Embarcadero 大中華區技術總監
喬治亞工學院信息研究所畢業,擁有超過20 年的豐富系統開發經驗,熟悉CodeGear 的各種RAD 開發工具,例如Delphi、C Builder、Delphi Prism 和JBuilder 等。此外,李維先生先後任職於鼎新計算機及康大信息等公司,使用Informix、MS SQL Server 和Oracle 等大型資料庫,熟悉數據模型(Data Model)和套用系統。李維先生為知名計算機技術作家及專業技術研討會講師,其所撰寫的技術文章有超過100 篇被廣泛地刊登在RUN!PC、CSDN 等著名的計算機雜誌中,而所著作書籍之中有多本中文Delphi/C++Builder 作品是最被津津樂道的,並最為大中華區開發人員熟知的。李維先生對於雲端運算有豐富的見解,日前於台灣、泰國、新加坡、馬來西亞舉辦過多場“雲端策略和解決方案”研討會。
第四版前言
不要急
我是天生的急脾氣。據父母說,我曾經與哥哥各分得一桃,便見我一口、兩口,未等到第三口咬實在,桃就已經全下了肚。然後便眼巴巴地看著哥哥吃得歡樂,而我卻連桃的滋味都不太知道。
不知道我的父母是不是拿了《西遊記》中的故事來哄我,但若以我小時候的性急,確實可以做到“桃味不知”。以至於到了後來,等到我十多歲的時候,漸漸懂事了,便在自己的書房寫了一幅字:默然心自澄,謙遜品漸高。
箇中還有許多緣由,但終歸是漸漸地安靜了下來。
安靜下來了,便有了機會來反思一下。若是總急於去解釋什麼、爭辯什麼,那么眼裡便只見別人的弊端,耳中便只有別人的錯漏,因而也就總是很難回頭來看看自己。可能那個自己,正立在田間地頭指指戳戳,出言絮絮狀若村婦。
讀書
在我看來,反思既不是設問,也不是反問,更不是某種思維法(例如逆向思維),它只意味著對一個目標的持續關注。
讀書與寫書,是我持續關注的一個目標。
然而就讀書來說,我讀得不多。我習慣大量地收集與歸目,這一方面是為了查閱的方便,另一方面,當遇到某些問題或思考傾向了某個話題,我總是能及時地知道“找某類書來翻翻”。收集這些書的目的,原本也無過於此。
但我總歸還是讀些書的。我讀書很細、很慢,常在空白處寫寫畫畫,甚不愛惜。讀書如食,貪而成嗜,這種讀法的所得是難為淺讀者道的。不過回到我們這裡的話題,這樣地收集與讀書,或是我常常“反思”的一個源起。
寫書
寫書是我的另一種反思。
但凡一件事情,我們都該有自己的觀點。對於這觀點,應該先說清楚它,再堅持它,再嘗試否定它。《大道至簡》一書三版,便是我在說清楚自己的觀點。而我這五年來沉默與堅持,便是不斷地向自己挑戰:我說得對嗎?我在陳述一種什麼樣的道?這是道嗎?這是未來嗎?這是方向嗎?以及,這一切或許原本就是錯的?!
正如我一直以來在做的,寫書即是在整理我的觀點,堅持它,而後嘗試否定它。這樣的反思是我這些年來寫作的主要動力。我的所得,往往不是在於追求新的技術,進而去學習、套用它們,以獲得某種技藝上的純熟,而是往往在於對它們背景里那些舊的、真實的、剝離了廣告術語的東西的追問。這種追問,既是對別人的,也是對自己的。惟只這樣公平地置疑,才脫離了促狹的味趣,而變成進步的動力。
這才是本書的姊妹篇《大道至易》的由來,也是本書發行它的第四版的原因。
第四版
首先,坦率地說,這一版並沒有什麼新東西。
若以完整性而言,第三版(點評版)已經有本書的全部內容了。但點評版的問題在於版式過亂,印刷質量也有問題,並且它的字型太小以至於影響到了閱讀。因此若繼續刊印點評版,其實是對讀者的不負責任——所以如果你是第三版的讀者,那么第四版真的只益“典藏”。若退至第二版,則又因為內容上缺少“第十章具體工程”,而無法作為姊妹篇《大道至易》(以下稱做“易”)的參考。當然,再追溯至第一版(電子版,2005.11.06),則內容上缺的就更多了。
“易”是本書的後續,並基於本書中幾個關鍵問題的反思。這些反思起至本書電子版發布後不久,只是在這么多年之後,我才有將它寫成一本書的能力與閱歷罷了。但是“易”一書的寫作風格和內容體系與本書完全不同,因此根本上無法做成同一本書。
所以一定程度上來說,這本“典藏版”既是為讀者“典藏”而出,亦是專為《大道至易》的發行而出。在內容上以第二版為底本,加上了第三版中的“具體工程”一章。並且,考慮到典藏的價值,本書收錄了公開文檔“幕後故事”的精華摘選。惟只陳述這一事實,敬請讀者謹細遴選。
致謝
感謝所有的讀者、編者以及一直以來支持我的朋友們。
感謝李維先生為本書作序。
感謝所有對這本書提出意見、觀點和評論的朋友們。
感謝那些在這本書的撰寫與出版中給我幫助與支持的同事、好友和同行專家們。
感謝博文視點資訊有限公司。
感謝我的中學語文老師。
感謝Joy。En,……我最愛的妻。
周愛民
2012 年5 月

媒體評論

這是一本閃爍著思考光芒的作品,它的精彩就在於作者深入的思考。
——蔣濤CSDN總經理《程式設計師》總編輯
停下來,思考才是進步的本質。
——李維原Borland/CodeGear公司大中華區首席技術官
傳達了探究工程本質的獨立思考精神。期待它能激發朋友們的共鳴,知其然且知其所以然,以至簡之道應變萬端。
——譚群釗盛大遊戲總裁兼首席技術官
就如本書,最後所有的故事、理論不過是為了理解一個公式、陳述一幅圖形而已。
——王昊DELPHIBBS總版主平台架構師
體現了一個軟體開發人員的認真的思考,展現了他的獨特思想。
——鄒欣點評專家
《大道至簡》和《走出軟體作坊》,一莊一諧,用自己的深思與實踐,探索中國軟體工程實踐之路。
——呂建偉(阿朱) 點評專家
實踐出真知,軟體工程領域尤其如此,作者以本書將這些真知灼見做了一次傾情奉獻。
——王瑋點評專家
這本書對軟體項目管理生動的探討——在點評版更顯其特色,是對軟體項目管理實踐的“格物致理”。
——LwT點評專家

作者簡介

周愛民(Aimingoo),有十餘年的軟體開發、項目管理、團隊建設的經驗。曾任多家軟體公司高級程式設計師、項目經理、部門經理、區域總經理等職,前支付寶(中國)公司業務架構師,前盛大網路平台架構師。目前主要從事軟體工程、體系架構和語言基礎方面的研究與實踐。
■ 2001 年,主持完成的“極光數據處理倉庫中心繫統”被河南省信息產業廳授予
省高新技術產品二等獎。
■ 2003 年,被美國Borland 公司授予“Borland Delphi 產品專家”稱號。
■ 2004 年,出版《Delphi 原始碼分析》,被譽為“Delphi 領域精品著作”。
■ 2005 年,發布《大道至簡——軟體工程實踐者的思想》第一版(電子版)。
■ 2006 年,發起開源項目Qomolangma OpenProject,探討語言系統基礎技術。
■ 2008 年,出版《JavaScript 語言精髓與編程實踐》,電子工業出版社。
■ 2008 年,發起開源項目derlang,探討erlang in delphi,以及erlang 的套用技術。
■ 2009 年,在開源項目QoBean 中嘗試Meta Language 與DSL 等實現。
■ 2009 年,發布《動態函式式語言精髓》(電子版)。
■ 2012 年,出版《JavaScript 語言精髓與編程實踐(第2 版)》,電子工業出版社。
■ 2012 年,出版《大道至易——實踐者的思想》,人民郵電出版社。
■ 2007 年至2012 年,出版《大道至簡——軟體工程實踐者的思想》第二版、第三
版(點評版)、第四版(典藏版),電子工業出版社。

目 錄

第一章編程的精義.........................................................................................................1
第一節編程的精義........................................................................................... 2
第二節能不能學會寫程式的問題................................................................... 3
第三節程式= 算法+ 結構.......................................................................... 4
第四節語言....................................................................................................... 6
第五節在沒有工程的時代............................................................................... 6
第二章是懶人造就了方法..............................................................................................9
第一節是懶人造就了方法............................................................................. 10
第二節一百萬行代碼是可以寫在一個檔案里的........................................ 11
第三節你桌上的書是亂的嗎......................................................................... 13
第四節我的第一次思考:程式= 算法+ 結構+ 方法................................ 14
第三章團隊缺乏的不只是管理.....................................................................................21
第一節三個人的團隊..................................................................................... 22
第二節做項目= 死亡遊戲........................................................................... 24
第三節做ISO 質量體系的教訓..................................................................... 25
第四節誰動搖了你的制度............................................................................. 27
第五節“那我們就開始開發吧”................................................................... 28
第六節組織的學問:角色............................................................................. 29
第七節跟隨螞蟻,但不要栽進螞蟻洞裡.................................................... 31
第八節“什麼是增值稅發票?”................................................................... 33
第四章流於形式的溝通................................................................................................37
第一節客戶不會用C,難道就會用UML 嗎............................................... 38
第二節項目文檔真的可以用甲骨文來寫.................................................... 39
第三節溝通的三層障礙................................................................................. 42
第四節最簡溝通............................................................................................. 45
第五節為不存在的角色留下溝通的渠道.................................................... 47
第六節流於形式的溝通................................................................................. 49
第五章失敗的過程也是過程........................................................................................51
第一節做過程不是做工程............................................................................. 52
第二節做過場................................................................................................. 54
第三節實現,才是目的................................................................................. 54
第四節過程不是死模型................................................................................. 55
第五節“刻鵠類鶩”與“畫虎類狗” ............................................................... 57
第六節工程不是做的,是組織的................................................................. 59
第六章誰是解結的人...................................................................................................61
第一節是誰的問題......................................................................................... 62
第二節正視你的成功..................................................................................... 64
第三節總得先做點兒什麼吧......................................................................... 65
第四節你不是團隊的腿................................................................................. 68
第五節三鼓而竭............................................................................................. 71
第六節先人後己............................................................................................. 74
第七節自相矛盾............................................................................................. 76
第七章從編程到工程...................................................................................................79
第一節語言只是工具..................................................................................... 80
第二節關注點................................................................................................. 81
第三節程式..................................................................................................... 82
第四節方法..................................................................................................... 83
第五節過程..................................................................................................... 84
第六節工程..................................................................................................... 85
第七節組織..................................................................................................... 87
第八節BOSS .................................................................................................... 89
第九節上帝之手............................................................................................. 90
第八章你看得到工具的本質嗎.....................................................................................95
第一節利器何以為先..................................................................................... 96
第二節神乎其技又有什麼用呢..................................................................... 97
第三節工具的本質......................................................................................... 98
第四節惟手熟爾........................................................................................... 100
第五節魯班帶了個壞頭............................................................................... 101
第六節工匠思想........................................................................................... 103
第七節化而用之,融通與融同................................................................... 105
第八節南橘北枳........................................................................................... 109
第九章現實中的軟體工程.......................................................................................... 113
第一節大公司手中的算盤........................................................................... 114
第二節思考項目成本的經理....................................................................... 118
第三節審視AOP........................................................................................... 121
第四節審視MDA/MDD ................................................................................ 122
第五節審視AP 和XP .................................................................................. 125
第十章具體工程........................................................................................................131
第一節預言——《人月神話》及其地位................................................... 132
第二節錯誤的命題——對《人月神話》的反思....................................... 136
第三節具體工程以及工程的具體化........................................................... 139
第四節控制規模........................................................................................... 142
第五節隔離問題域....................................................................................... 145
第六節這樣是不是太簡單了....................................................................... 148
第七節鄭人的履........................................................................................... 150
第十一章是思考還是思想..........................................................................................153
第一節軟體工程三個要素的價值............................................................... 154
第二節其實RUP 是一個雜物箱................................................................. 155
第三節UML 與甲骨文之間的異同.............................................................. 156
第四節經營者離開發者很遠,反之亦然.................................................. 157
第五節矛盾:實現目標與保障質量........................................................... 157
第六節枝節與細節....................................................................................... 158
第七節細解“法”與“式”....................................................................... 159
第八節靈活的軟體工程............................................................................... 162
附錄一愚公移山記.....................................................................................................165
附錄二愚公移山記(文言)......................................................................................173
附錄三幕後故事(摘選)..........................................................................................179
參考文獻.......................................................................................................................193
前言後語.......................................................................................................................195
版本歷史.......................................................................................................................203

相關詞條

熱門詞條

聯絡我們