《構建之法》讀後感

2022-08-17 08:51:18 字數 1917 閱讀 1667

軟體工程,我之所以選擇這個專業是感覺自己編出來乙個可以實現我想要的目的的程式蠻好玩的,從未想過,什麼是軟體工程,除了敲一敲**還要幹什麼。入學一年來除了基本的數學英語之類,就學了c和c++這兩種語言。

而書中給出了「軟體=程式+軟體工程」。程式設計全在程式裡了,軟體工程,軟體、的、工程,重在工程二字,體現了它是一項工程。那軟體工程又要做什麼呢?學程式設計跟它又有什麼關係呢?為了不當乙個門外漢的管理者?

「軟體工程是把系統的、有序的、可量化的方法應用到軟體的開發、運營和維護上的過程。包括領域:軟體需求分析、軟體設計、軟體構建、軟體測試、和軟體維護。」

讀完全書後,再回過頭來看定義,發現還真就是這幾件事。

開發乙個軟體,需要以個團隊,乙個團隊有很多人,恩多了就會有很多事。如何溝通,如何分配任務,如何保證高效的工作……

溝通是個問題,尤其是和客戶溝通。最大的感覺就是,怎麼知道使用者的需求,真的是好麻煩啊!使用者居然有時候自己都不知道自己的需求是什麼!或者,還會變來變去!顧客就是上帝,還能怎麼著?改!

對於我來說,從未想過這個問題,需求是什麼?老師的作業寫得一清二楚,用什麼方法,實現對什麼的什麼,其中……而且程式很短,大多幾十行,不需要提前畫個流程圖、不需要一部分一部分的測試、不需要去想交完作業後這個程式還能怎麼著。

對於迴圈不確定迴圈幾次,推演麻煩了乾脆直接除錯,根據結果改。出了錯誤就一行行檢查,或是看錯誤輸出顯示是哪一行,最多再用除錯,加個斷點什麼的。畢竟總共就那點東西,老師出的題也是最基礎的知識。頂多在函式、模擬較多的時候,寫幾個就執行一下,成功了在繼續寫,一直細心檢查是不可能的。但如果**出錯……可真的就是抓破腦袋也找不到了。

這是個很不好的習慣,我大一一年一直作為老師的助理,上機課前做好作業,上課就負責幫同學們解決程式設計的問題,結合這些經驗,讓我深有感觸。

分號、括號等用成了全形,標頭檔案裡類的建構函式沒有相應的,某個單詞拼寫錯誤……有時錯誤輸出可能多達幾十行,且每乙個都是看起來風馬牛不相及。看老師解決幾次後,我也學會了幾招,比如把main函式除return 0全部注釋掉,把不必要的成員函式注釋掉,再一步步取消注釋,看什麼時候會出錯。

現在來看,這其實就是再把時間倒退,是程式設計者之前應該乾而沒有幹的事——確保每一塊都是對的。

c語言主要就是圍繞函式,有時我圖省事,會讓乙個函式執行多個功能——反正主函式看著整潔就ok了。這很明顯是不符合規範的,函式——就是要執行乙個功能到最好。

更為省事的是,一我不寫注釋,二,我的變數名從a開始排,排到幾算幾,函式名也是最簡的描述。

大一上學期學c語言時,老師展示過乙個輸出日曆的程式,我覺得好玩,自己花了乙個週末寫完,又陸陸續續改了幾天,直到滿意。到下學期學c++時,老師讓寫了乙個日期類,最後附加題是按日曆的格式輸出。我暗自高興,我早就寫過了,直接複製貼上過來,對一對引數,把scanf、printf,改成cin、cout就行了!

然而,開啟之後我發現自己看不懂了……引數a,b,c都是什麼東西?這個引數從哪傳到哪的?最要命的是,我當時不知道算某一天是星期幾是有現成公式可以套的,所以當做數學題來解,計算步驟很多……

最終我花了一晚上來研究我自己的**。看似當初省了時間其實是得不償失。幸好我當時腦子一抽,把每乙個運算放到了單獨的函式裡,分的很詳細乙個函式只管一件事,否則更是一團亂麻看不懂(在當時我自己看來就是腦子抽了閒著沒事才這樣做,雖然這是個正確的做法)。

看完書,才知道老師課件中那長長的寫著超煩的變數名、函式名有什麼用。為什麼類名首字母要大寫,每次都要按shift感覺很煩。命名是有規範的(規範具體是什麼不在贅述),程式不止要讓自己看懂,還要方便別人去讀,必要的注釋也尤為重要。

而且總是敲了沒幾行就開始糾結一些小問題,這裡是輸入正數,萬一輸入負數怎麼辦?雖然輸入負數程式照常執行,但就不符合題意了,要不要加乙個dowhile迴圈?可這樣會不會顯得程式太長,相似的輸入還有好幾個……

總而言之,要檢查乙個模組無誤後再寫下乙個,要寫注釋,要寫輸入提示,要好好用英語去取變數名,不要過早去糾結一些小問題。

不要嫌麻煩!!!

構建之法讀後感

書中有提到一句名言 軟體 資料結構 演算法 但是,在真正進行軟體開發時,我們會發現 我們所需要的資料結構和演算法都是現成的,我們只要進行呼叫和實現就可以了。在我學習了本書的第一章後,我認識到了 軟體 程式 軟體工程 從此也可以擴充套件為 軟體企業 軟體 商業模式 軟體從最初的乙個簡單的程式,擴充套件...

《構建之法》讀後感

前段時間,我自學了 構建之法 的1,5,17章,並產生了很多自身的體會。首先,在第一章中我大致了解了我可以在書中學到什麼,如何落實學習。1.1節通過三個簡短的對話,啟發我對什麼是程式,什麼是軟體,什麼是軟體工程,也了解到了乙個軟體不是簡簡單單就能說寫就寫的,還需要考慮各種因素,如人們的需求,功能的可...

構建之法讀後感

第一章 軟體工程。寫軟體就是碼 寫出來,組合語句和演算法,實現需要的功能。但是軟體的開發需要一定步驟,有團隊合作精神,經過需求分析明白客戶需求,要什麼功能,並完成軟體的概要設計,再進行討論並與客戶溝通。然後進行軟體設計,然後程式 編寫,軟體測試debug,體驗版,後續維護等等。這樣才是乙個專案。軟體...