1.程式=演算法+結構+方法
程式設計的第一要務是先把事情分析清楚,把事件先後的邏輯關係和依賴關係搞清楚,然後再去寫**實現。**是不存在的,存在的只是思想。
程式設計退到資料結構更合理。
演算法是對乙個程式的邏輯實現的描述,而結構是邏輯實現所依附的資料實體。
所有演算法的描述中,有且僅有順序、分支、迴圈這三種執行邏輯。
程式語言只有喜歡不喜歡的問題,沒有會不會的問題。語言的差別主要表現在適用範圍上。
方法:面向過程是對「流程」、「結構」和「程式設計方法」的高度概括;
而物件導向本身只解決了「結構」和「程式設計方法」的問題,並沒有對「流程」加以改造。物件導向的資料結構是樹。
2.學了長時間的程式設計,卻不會寫程式,主要是因為沒有把所學的知識分類、歸納,整整齊齊地放在腦子裡。
3.專案程式設計經驗:總體結構->物件導向,關係->資料結構,實現->演算法
4.軟體工程的瀑布模型
瀑布模型將軟體開發的過程分成需求、分析、設計、開發和測試五個主要階段。
5.軟體工程層狀模型(ehm)
6.過程
過程伴生工程而出現。過程解決的是工程中角色間的關係問題。
過程說的是很多人(團隊)如何組織在一起進行開發的問題。它首先把工程中的環節分解出來。這樣,有了環節,就有了角色;有了角色,就有了溝通。
過程中的問題,就是角色、環節和溝通的問題。
哪些環節重要,取決於具體的程式設計行為,也就是具體的專案。
7.軟體工程體系層次
工具、方法和過程也是軟體工程的三個要素
8.軟體開發的本質需求是:實現。
實現方法總是最先出現的,而後才有分析和設計方法。
9.scott的「成為敏捷軟體開發人員」三個關鍵見解:(都是圍繞「如何解決問題」而提出的「敏捷方法」)
「你不必非要做乙個超人」---強調溝通:找別人解決問題比自己解決問題來的迅速
「敏捷性只是乙個思維集」---敏捷的根源:學會思維而不是立即著手解決問題
「成為一名博學型的專家」---「知道更多」則更容易找到解決問題的方法,因而比「精通」重要
10.分治
「分類法」也是思維方法的問題。從思維法的角度來看,廣義工程考慮的是對工程問題的「統治」,而具體工程則考慮的是「分治」。
所謂分治,關鍵在於隔離問題域:
找到造成混亂的問題之間的關係,以及分類出無關的問題;
把問題放到介面上去討論,而不是放在裡面去討論。
在乙個專案中:
把問題分解在ehm圖的不同層中,用不同的角色去解決;
將「域」間關聯密切的問題,放在關注點介面上,由相關的角色去解決。
初讀《大道至簡 軟體工程實踐者的思想》收錄
初次讀完這本書,思想裡還是作者的思想,不過這本書還是給了我點教訓,一直覺得自己做開發不合適,就現在 看完這本書的時候,我覺得我錯了,不是自己做開發不合適,而是自己的思想一直這樣去想問題,從未放開去拼搏 一次,真正的去做個實在的東西出來,才是最真的。有些文字我並沒有理解,不單單是我收錄的這部分,還有很...
《大道至簡 軟體工程實踐者的思想》讀後感
大道至簡 源自老子的道家思想。道,即道理,理論。大道,即事物的本源,生命的本質。大道至簡的含義就是最有價值的道理其實是最樸素的道理,很重要的道理,其實是很平常的道理。它很簡單,簡單到一兩句話就能說明白。所以這個 大道至簡 可以適用任何行業。世界 雖變化萬端,而理為一貫。在學習任何東西之前,都要首先了...
讀《大道至簡 軟體工程實踐者的思想》有感
第一次讀完這本書時,感覺深深地松了一口氣,因為從頭讀到尾讀懂的地方很少,糊里糊塗,沒能進行好好地思考。前幾天,在電腦上找到這本書又讀了一次,再加上課堂上老師的一些講解,才稍微有點懂了。這本書的作者匠心獨運,語言平實易懂,形象生動。向初學者介紹了什麼是程式設計,向愚公式碼農介紹了什麼是方法,向頭重手亂...