第一章:概論
為什麼我們要反覆的敲寫、去學習已經存在的方法函式,為什麼不能直接呼叫別人已經實現的演算法來完成我們的專案呢,最初學習程式設計的時候我也有過這樣的想法,但是通過本章的閱讀學習我對這些問題有了深刻的認識。那就是軟體=程式
+軟體工程,我們程式設計師用來安身立命的程式是別人能夠看得懂,能夠維護的程式,程式演算法只是基礎,我們要加上軟體工程的相關知識做出一款款令使用者滿意的軟體,切實的為使用者帶來方便,切實的給使用者解決實際問題。一款看似簡單的軟體,其不但要有合理的軟體架構、軟體設計與實現、還要有各種檔案和資料來描述各個程式檔案之間的依賴關係、編譯引數、連線引數等等,這些都是軟體構建的過程。只有從基礎的程式演算法學習做起,才能夠將功能做好,而要設計出開發出一款令使用者滿意的軟體,還需要軟體工程相關知識。我們必須要學好程式演算法,打牢基礎,這樣才能夠在以後的開發過程中避免出現低階錯誤,才能夠做出真正的軟體,而不是**的累計體。
書中講到軟體的五個特殊性:
複雜性、不可見性、易變性、服從性、非連續性。軟體工程涉及到方方面面,極其複雜的關係和知識,其是把系統的、有序的、可量化的方法應用到軟體的開發、運營和維護上。之前我們所了解的軟體就是可以實現某個功能的小東西,而現在我對軟體有了重新的認識,軟體包括太多太多。我過去做的軟體存在太多太多問題,滿意注重使用者體驗,存在很多bug,正如書中所言:
bug的多少可以直接衡量乙個軟體的開發效率
/使用者滿意度、可靠性、可維護性。其次我的**健壯性太差太差,這些都是我以後要去學習去解決的問題。還記得老師說過,一款軟體的好壞取決於使用者量的多少,而好的使用者體驗,**健壯性高的軟體其使用者量也一定會大。
軟體一定是用來解決使用者的需求,而不是憑空想象出來的,nabcd中,
need
即指需求。軟體開發的流程也一定是有預計時間的,在這點上我之前做的不好,我從來不計算自己在做某一題某一專案所花費的時間,對自己的效率能力完全的沒有概念,以後開發過程中應該盡量嚴格的掌握時間,不斷的了解自己的開發效率。
第二章:個人技術和流程
程式模組化對於開發者來說非常的重要,因為乙個龐大的專案有還能多人來完成,他們之間相互依賴,方法呼叫方法,這樣必須要保證每個人的方法都必須是穩定的,質量***的,所以我們要學會單元測試。並且要寫一段測試一段,而不能夠等到最後再來測試,往往在軟體開發後期發現的bug修復起來要花費更多的時間和精力。好的單元測試必須能夠準確快速的保證該模組的基本功能的實現,並且盡量做到自己來做單元測試。要保證單元測試的獨立性,可以認為狗仔資料,來保證單元測試提高到獨立性和功能的基本實現。文中多次提到
github
的使用管理,存放源程式和其他文件,到目前我還沒有註冊實現自己的
github
,我應該重視
github
的使用,這是自己的戰利倉庫。
第三章:軟體工程師的成長
1. 積累軟體開發知識,提高技術技能。這一點我深有體會,在開發web專案中,我們使用的是
eclipse
軟體,這款軟體我沒有漢化,所以導致很多問題的出現,在前期乙個專案要配置的東西,匯入的
jar包,配置
tomcat
等都是對這款軟體的認識,後來我發現一款設計前端非常好用的軟體
sublime
,其做前端頁面的美工等非常的快捷實用,不需要
eclipse
那樣繁瑣執行慢等問題,對開發平台的熟練掌握也是軟體工程師的成長,我應該嘗試著去了解去使用更多的開發軟體,這樣我就可以在做專案的某一部分選擇最適合的軟體來進行開發。
2. 積累問題領域的知識和經驗,對於it人士來說是發表自己文件,問題解決辦法等場所,我時常會在裡邊尋求出現問題的解決方法,這樣也不斷的積累對問題的認識,對問題的解決。
3. 對通用的軟體設計思想和軟體工程思想的理解。
4. 提公升職業技能,這些技能很重要,但是在大學裡邊學習的還是少之又少,希望以後在企業可以得到鍛鍊和培養。
5. 實際成果
對工作效率和質量的評估,人月這個詞彙可以有效的評估程式設計師的工作效率。
快速閱讀《構建之法》 構建之法閱讀筆記01
自己從3月4日開始讀 構建之法 在粗讀一遍後,自己產生如下疑問 1.風格真的很重要嗎?總覺得清晰易讀即可 2.編寫軟體時,是程式簡潔高效但不易讀好?還是程式冗餘效率低下但是方便別人閱讀易維護好?3.使用者體驗主要體現在哪些方面?介面美觀,反映速度快,功能齊全足夠了嗎?4.本書只說了團隊模式,並未對如...
01《構建之法》閱讀筆記01
個人感受 我過去的做法 1 寫程式以實現功能為主要目的,所以有時候為了功能的保證,會不太注重演算法的使用。2 在團隊專案中,習慣了個人程式設計,和團隊成員溝通偏少。為什麼這樣不好 1 不注重演算法的使用,會無端的浪費空間和執行時間,使程式效率大大降低。2 團隊成員之間交流過少時,融合會經常出現問題,...
構建之法閱讀筆記01
從第一章概論中提到,軟體工程要創作足夠好的軟體。而有一些同學認為,所謂好軟體,就是沒有bug的軟體,所謂軟體工程,就是把軟體中的bug都消滅掉的過程,這確實抓住了軟體工程中的乙個要素,和軟體打交道的專業人士都知道軟體有bug,軟體團隊的很多人都整體和bug打交道,bug的多少可以直接衡量乙個軟體的開...