身為一名程式設計師,當一本叫做《程式設計師修煉之道》的書出現在面前,又怎能忍住不去看呢?於是,出現了下邊的讀書筆記。
該書確實博大精深,包含了很多內容,但很多都是點到為止。那種心中有劍的感覺,躍然紙上,或許高手都是如此吧。根據多年武俠觀摩經驗,一定要把不懂的記下來,以後肯定大有用處。那就記。
第一章:注重實效的哲學(a pragmatic philosophy)
說實話,第一遍看完這章,我只記住了「破窗戶理論」和兩個寓言--石頭湯和煮青蛙,卻不知道注重實現的哲學到底長什麼樣-_-!,沒辦法,天生愚鈍,再找一遍吧,找到如下關鍵字:
一. 負責,也就是咱們所說的幹一行愛一行,也就是職業素養;
二. 變化,就是所謂的大局觀;
三. 合理,就是做「做夠好的軟體」。完美,只存在於夢裡,或許夢裡也沒有完美;
四. 學習,不斷的提供自己;
五. 交流,這裡說的不是和計算機交流;
愛崗敬業,注重實效,注意方法,積極進取,以人為本,這是做事的基本準則吧?這一章充分體現了哲學的普適性。
第三章:基本工具(the basic tools)
工欲善其事,必先利其器,沒什麼好說的。文字編輯器,shell,原始碼管理,文字操作,**生成。。。總之,人之所以為人,是因為人懂得創造工具,使用工具。
第五章:彎曲,或折斷(bend,or break)
解耦與得墨忒耳法則(google了下demeter,介紹如下:德墨忒耳是希臘奧林珀斯十二主神之一,羅馬名字刻瑞斯(ceres)。她是宙斯的姐姐,掌管農業的女神,給予大地生機,教授人類耕種,她也是正義女神,感覺這裡說的不是這個人。。。)
函式的得墨忒耳法則:某個物件的任何方法都應該只呼叫屬於一下情形的方法:
它自身傳入該方法的任何引數
它建立的任何物件
任何直接持有的組建物件
元程式設計,乙個古老而又時髦的詞,很多內容,暫且不表。
時間耦合--關於程式的時間--併發和次序。
第六章:當你編碼時(while you are coding)
這章主要介紹了一些編碼時的經驗,包括:演算法速率(big o),重構,測試,對嚮導的警惕。可以看作是對最新的程式設計方法的乙個選擇和總結。
第七章:在專案開始之前(before the project)
挖掘需求,挖掘,說明需求分析的複雜。需求文件是對需要完成的某些事情的陳述(會保持抽象),它不是和使用者的聊天記錄。商業政策經常會改變,所以我們並不想把它們硬性的寫入需求。那麼怎麼辦呢?把需求文件和策略文件分開,並用超連結吧兩者連線起來。需求應該深入到商業邏輯的本質,而不能知其然,不知其所以然。也就是確定ddd裡的模型。
當遇到不可能解開的謎題時,考慮它是否是真正的約束。
構建原型比空談更有實效。
作為注重實效的程式設計師,應該傾向於把需求蒐集、設計、以及實現視為用乙個過程--交付高質量系統--的不同方面。
不要做任何形式的奴隸。
第八章:注重實效的專案(pragmatic projects)
注重實效的團隊,再次祭出了第一章的那幾個原則。
足夠好的軟體。
無處不在的自動化。
專案編譯(生成**,回歸測試);
構建自動化;
自動化管理(**生成,批准流程);
無情的測試
該書沒有太多的**,應該作者是在乙個哲學的高度來教授自己的經驗。可以歸類為到軟體方法學,只是他的方法沒有明確的定義,只有乙個原則:實效。
程式設計師修煉之道
在所有的弱點中,最大的弱點就是害怕自己暴露弱點。j.b bossuet,politics from holy writ,1709 provide options,don t make lame excuses 提供各種選擇,不要找蹩腳的藉口 don t live with broken window...
程式設計師修煉之道
1 通過自己工作上的不斷努力,成為公司的骨幹員工,構建自己的不可替代性。2 學院派講究的是把簡單問題複雜化,實戰派講究的是把複雜問題簡單化,模組化。3 c語言,資料結構與演算法,編譯原理。4 修煉程式的內功,是學習抽象能力和描述能力,與語言無關。5 獲得智力資本,從而為自己的資產提供最佳的方式 摘自...
程式設計師修煉之道
現在技術門派眾多,光程式語言就有幾十種,尤其是現在移動網際網路如此之火,以至於很多人加入到 iphone,android 的開發陣營中去。年初還有位朋友說,現在 android 的開發人員真是難招,從事 android 開發一年,總工作時間不超過兩年,這樣的人才的起薪都得 20k 以上。其實這是一種...