1. 程式人生 > >【軟件工程】閱讀《構建之法》1-5章的感想

【軟件工程】閱讀《構建之法》1-5章的感想

activity col 工程 隱藏 每一個 記錄 錯誤 做的 矛盾

作業要求來自於:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2178


第1章

其實第一章就是在解釋軟件工程的內涵,好比如軟件=程序+軟件工程,程序=數據結構+算法。。。

在1. 2.5節中說到了一個問題:什麽 是好的軟件? 文中的答案是:軟件沒有缺陷.

我個人覺得這是有點片面的,再者,如果軟件沒有缺陷的話怎麽會需要後期維護,而且軟件都是有周期性的,好比如去年你使用的貨幣是紙幣,今年你使用的貨幣是電子貨幣,這兩者是貨幣,只不過是因為時代的發展方式不同而已,但是你不能要求一個專註於紙幣的軟件突然翻改成電子貨幣的吧,這已經不是原來那個軟件的構建了,你能看到的就是一個全新的軟件,這跟原來那個其實關系不大。再找了度娘,她告訴了我比較全面且讓我認可的答案。

真正的好軟件在於:

1.操作方便,簡單易用

2.功能全面,起碼在某個方面是很完善的,好比如滴滴,在打車的道路上因沒有完善好某些功能導致些許翻車造成悲劇

3.拓展性強 也就是文中提到的易維護性


第2章

第二章告訴我們單元測試,回歸測試,效能分析和個人軟件開發流程等等。。。

在2.1節中說到“軟件的很多錯誤都來源於程序員對模塊功能的誤解,疏忽或不了解模塊的變化。”我覺得很有道理, 畢竟做的東西不止要自己看得懂,還有別人也要看得懂,好比如模塊之間的功能明確,我倒覺得命名是一個有利於理解模塊的功能的有效工具,比如模塊命令為SaveActivity,Md5Utils,大概一看就知道這個模塊是在做什麽東西了。這也就涉及到代碼的規範了。。

在2.3節說明了個人開發流程,軟件工程師比大四學生多讀了三年書,多工作了3年,在需求分析和測試上明顯得花了更多時間。而工程師與學生的區別在於編程上工程師所花的時間相對於學生少,擔在測試上多。那盡管比學生有優勢的工程師就能算上優秀的工程師了嗎?

我的疑惑是:軟件開發時必須要有需求分析和測試,假如我把理想中的軟件做好了再去弄測試會有怎麽樣的後果呢?


第3章

第三章主要了解了軟件工程師的成長,和如何去衡量自己的能力與價值。

一個人的成長離不開一個團體,在一個開發團隊中,所需要的技術是要不一樣的。就好比如踢足球,總要有人專門負責守門,有人傳球這樣,才能讓一個團隊蓬勃發展。那怎麽樣去衡量一個人在某一塊的技術層面上是可以的,按文中的話講就是靠技術賺錢,證明其技術是專業的。

初級軟件工程師的成長可以通過積累軟件開發相關的知識,經驗,和實戰結果,從時間,缺陷等質量去評估自我能力,從而進一步去提升自身的技術水平,但是工程師也只是工程師,我更想知道什麽樣的數據能說明一個軟件工程師是優秀的?


第4章

第四章是說兩個合作的事情

我覺得這章有點意思,相對於我們的專業,我們很多大作業就是組隊做,這本來是一件好事,但是因為合作也是容易產生矛盾,好比如我寫的是這個意思,然後別人看到的理解到的就是另一個意思,然後就一直錯下去,結果就需要重頭再來,這就是代碼規範的重要性吧,我前面也已經有說到了,我自身也覺得有必要,代碼規範之後可讀性高,能讓別人更好地理解和維護程序。代碼好比一個人的習慣,習慣決定命運。因此,寫程序時要特別註意代碼規範。如果把這個問題能夠解決的話,其實合作上更多會是思想上的沖突,就是我想這樣做,你想那樣做,那最後到底要哪樣做的一種交流溝通。再者合作的好處除了有更多的想法之外,還能使得彼此在這方面上更上一層樓。

代碼復審能夠解決一些隱藏的bug和看其是否符合開發規範,會對軟件後期的維護產生重要影響,同時也會影響用戶體驗,這沒有什麽問題

主要是:什麽時候才能算復審成功,或是說,復審到什麽程度之後就可以進入下一個環節了?在代碼復審後,我們把復審過程中的記錄整理出來,從中去解決,但是不斷重復這個過程花的時間和精力也是很多的。好比如寫一個c程序,代碼幾千行,運行的結果沒什麽問題,但是從中會出現一些warnning的提示,是否我們都要把每一個warnning解決掉?


第5章

第五章講的是團隊模式,有主治醫師模式,明星模式,社區模式,寫了再改模式等等。

我的疑惑是:有這麽多模式,那哪一種才是最好的團隊模式呢?我覺得其實很難去評定哪種模式的最好的,好比如一個初生公司,一開始的模式可能會是主治醫師模式,但是當公司做大了,可能就會變成功能團隊模式了,這都是不同時期下造就不同的模式,只能說,哪種合適現狀的哪種就是最好的。瀑布模型一開始也是單向,不可逆的生成模型,但是當他發現這種模型是滿足不了需求的,難以去修改,於是出現了生魚片模型。但是我還是不太明白:團隊的最好狀態是各會其能呢,還是樣樣都會?


順帶分享最近看到的兩篇比較實際的文章:

一個好的新人工程師是什麽樣子https://www.jianshu.com/p/63afdfc1efe8

給軟件開發初學者https://www.jianshu.com/p/353afbe45017

看完可以想想是否繼續走程序員的路了。。。。

【軟件工程】閱讀《構建之法》1-5章的感想