《夢斷代碼之讀書筆記之三》
現在已經讀完這本書的大部分了,無論是從作者的筆下,還是從查閱的相關資料中已經對這本書有了很深的了解了,我覺得這是我讀過的三本書中最有趣的一本書,無論是内容方面還是作者的感覺方面,下面我将把我對這本書的最後幾章的感悟和大家分享一下:
第七章《細節視圖》,在這一章裡,我看到了Chandler項目對細節視圖的追求。這一章開始部分提到,項目小有進展,釋出了新版本,盡管其中都還沒法用,隻是滿足可能對卡普爾及其團隊進度好奇的外部軟體開發者們的興趣,但OSAF内部的氛圍卻完全不同。當長期一籌莫展的項目有所突破時對于整個團隊都是振奮人心的。同時我們看到了細節視圖對于軟體項目的重要性,平時我們覺得隻要代碼寫好就可以了,其實真正傳遞使用者的軟體在視圖上要求也很嚴格。
第八章《白闆上的即時貼》,在軟體開發編寫代碼的時候,當你把系統的一塊新部件放進去,總要看看之後的5年獲10年自己會不會後悔--你是否能拓展它、替代它。總是按照計劃執行遠沒有保持較快進度并清楚做到哪一步來的重要。如果總是往計劃裡摻水,進而達到目标,就會變成退而求其次,完成的特性更少。白闆上的即時貼不僅能夠列出軟體開發過程中的問題,還同時大概的規劃了軟體開發的流程,使得程式員們在開發的過程中不至于偏離正軌或者盲目,加上每天的站立會議,我想這樣軟體釋出的時間就會大大的縮短。磨刀不負砍柴工,有了一個好的開始,有了一個好的計劃會給整個軟體開發帶來很多好處。做事要講究方式方法,好的方法會事半功倍。軟體不會像制造水管制造汽車一樣,有固定的不改動的規格,甚至永遠都不需要改動,但是每一個軟體都有各自的不同之處,不能照搬照抄。“開發軟體仍屬難已有事。自我起步于今20年,但它絲毫沒有變容易--你可以多下力氣,但本質上都會遇到同樣的協調問題。那就是我們存身的宇宙,是以得進行适當的調整--把食物切成小塊,細嚼慢咽消化掉,然後再吃下一口。”書中這樣寫道,是啊,做軟體難,做一個好的軟體更難,但是既然我們選擇了做軟體,即使在難做我也會堅持下去,慢慢的來,慢慢的做,堅持下去就會成功。
第九章《方法》,結構化程式設計的主要規則是讓程式的每一層都該自成一體,在此後的幾十年裡不斷推動創新的産生。這樣對于出錯處理和代碼複用都帶來了好處。除非開發者為個人工作制定計劃并遵循之,否則工作将不可預料,項目就會無法控制、不可管理。是以制定計劃很重要,但堅持更重要。我們都為組織工作;組織需要計劃;除非你的工作足夠獨立,否則必須按照進度工作;如果你不自己做進度安排,别人就會給你做安排;這樣别人就會控制你的工作。這或許是我們今後走入社會工作需要參考的幾點吧。品質不該是一種後悔藥,而應展現在生産過程的每一個階段上。缺陷總是存在的。我們應正确合理的看待它。成功往往是鐵一般紀律的副産品——一種堅決做出又在每一次遇到挑戰時大聲重申的選擇,限制着項目的範圍。
第十章《工程師和藝術家》,第十一章《通往狗食飯之路》,從中我領悟到了一些道理:拿到一個大問題,将其切分成為可個别了解和解決的小問題。并無魔法。隻是得巨細靡遺。複雜的問題,大的工程往往不是一蹴而就的,我們要有耐心一步步一點點的去解決它。時間總會比想象中用的多,即便你考慮到侯世達法則亦然。我們或許以後要考慮到這一點。不要瞎猜下一步該怎麼走,傾聽來自真實使用者的建議和抱怨。這些真實使用者是在千裡之外還是就在眼前并不重要,重要的是拿到實踐回報。我們要憑借使用者為自己指引方向。軟體之本質困難,仍是強加于技術進步的人類自由意志和不确定性的通行費。這值得我們深思。錯誤屬于人類,計算機不會犯錯。我們應盡量去避免錯誤。為了做軟體付出的每份努力都最終注定是不夠的,這種思路中有着某種自由度。它意味着總有進一步努力的空間,新一代總會來啃咬難題,某地總有某人歡迎“另一個”程式。我們應該意識到這一點,盡自己努力就好。
現在已經總結完了我對本書各個章節的了解,引用了其中說的很好的話來作為我的總結,這本書的博大精深,我想沒讀的人應該會後悔吧!很榮幸能夠在老師的引領下讀了這本書,其中的很多道理是我以後走入社會工作要時刻銘記的,當然很多真谛也隻有親自實踐,才能領略到其中的滋味。