读《移山之道》的收获与疑问(阅读作业之刘明篇)
《移山之道》是一本介紹軟件開(kāi)發(fā)方法(MSF)和工具(VSTS)的書(shū),這本書(shū)講程序設(shè)計(jì)的基本原則,講如何在工具的幫助下進(jìn)行軟件的開(kāi)發(fā)、如何與人合作、如何管理軟件工程,講微軟解決方案及方法論。
最開(kāi)始我以為這本書(shū)只是單純地介紹講解軟件工程的知識(shí),讀了此書(shū)才發(fā)現(xiàn)是以講故事的形式寫(xiě)作的。我覺(jué)得這樣的方式很有意思,相比于傳統(tǒng)的教科書(shū)形式,我更喜歡這樣的形式。
我在讀其他的很多專業(yè)書(shū)籍時(shí),都覺(jué)得光是讀書(shū)上的內(nèi)容是很難透徹理解書(shū)上的知識(shí)的,只有在實(shí)踐中運(yùn)用到這些知識(shí)或是遇到問(wèn)題時(shí),才能逐漸地吃透那些知識(shí),將對(duì)所學(xué)內(nèi)容的生搬硬套化為純熟運(yùn)用。《移山之道》這樣的寫(xiě)作方式顯然讓我這樣初次接觸軟件工程的菜鳥(niǎo)更容易理解。不過(guò),也正如書(shū)中作者所說(shuō),這本書(shū)“太活了”,對(duì)我來(lái)說(shuō),這本書(shū)讓我對(duì)軟件工程開(kāi)發(fā)的整體流程與細(xì)節(jié)均有所了解,但作為"查資料時(shí)的工具書(shū)",卻不太合適。
?
《現(xiàn)代軟件工程講義》是一套理論和實(shí)踐相結(jié)合的,面向?qū)嵺`,強(qiáng)調(diào)“做中學(xué)”,通過(guò)豐富的材料講人在軟件工程中的不同角色和作用的一套講義。
這套講義很注重團(tuán)隊(duì)合作以及個(gè)人在團(tuán)隊(duì)項(xiàng)目中該如何發(fā)揮的問(wèn)題,講解了進(jìn)行軟件工程開(kāi)發(fā)的整體流程,并且針對(duì)學(xué)習(xí)的不同階段布置了大量的作業(yè)訓(xùn)練。
我認(rèn)為這套講義和《移山之道》這本教材相輔相成,配套閱讀效果很好。講義和教材一樣,都很生動(dòng)、很鮮活,我很喜歡這樣的教學(xué)方式,這樣的方式讓我覺(jué)得教授知識(shí)與接受知識(shí)都很自然,而不是枯燥的在翻工具書(shū)。
?
下面主要敘述幾個(gè)我覺(jué)得比較重要的問(wèn)題。
一、MSF方法論
MSF敏捷開(kāi)發(fā)模式,是一種方法論。
VSTS是一種全面系統(tǒng)的軟件開(kāi)發(fā)工具。
VSTS兼顧了MSF整個(gè)開(kāi)發(fā)生命周期中各階段和各方面的緊密聯(lián)系將工作項(xiàng)的管理同源碼管理和構(gòu)建管理整合起來(lái),形成一個(gè)功能強(qiáng)大而使用方便的應(yīng)用環(huán)境。其他各種開(kāi)源工具如CVS和ANT往往都只專注于開(kāi)發(fā)流程中的某一方面,需要人為地在整合上花費(fèi)精力。
在《白話MSF》那一篇里,開(kāi)篇果凍問(wèn)阿超的那段話,確實(shí)讓人糾結(jié),有好多句子我完全讀不通,心中發(fā)堵。。不過(guò)阿超同學(xué)的白話解析讓我有種豁然開(kāi)朗的感覺(jué)。書(shū)中說(shuō)到MSF對(duì)“大企業(yè)才有用處,而且容易被人用來(lái)忽悠”。MSF對(duì)我們現(xiàn)在所進(jìn)行的團(tuán)隊(duì)項(xiàng)目幫助大嗎??就像愛(ài)因斯坦的相對(duì)論和牛頓經(jīng)典力學(xué)的關(guān)系一樣。對(duì)于我們現(xiàn)在所做的小型項(xiàng)目,遵循MSF的原則是否大材小用,導(dǎo)致過(guò)程復(fù)雜麻煩沒(méi)有必要?
若自己目前所進(jìn)行的任務(wù)是由帶頭人分配的。那么怎樣才能確定自己每天所做的任務(wù)是對(duì)實(shí)現(xiàn)“共同的遠(yuǎn)景”有幫助的?若我認(rèn)為自己所做的事情收益較低,但一時(shí)間又沒(méi)有更好的辦法,有必要向老板提出來(lái)嗎?
MSF提倡自下而上的計(jì)劃,每個(gè)人有充分的權(quán)力估計(jì)并決定自己的任務(wù)需要多長(zhǎng)時(shí)間,而不是上級(jí)交給的時(shí)間,即讓真正做這件事的人按照自己的估計(jì)去完成任務(wù)。這樣的方式,可能會(huì)讓某些對(duì)自己不夠自信的成員故意延長(zhǎng)自己需要的時(shí)間,拖整個(gè)團(tuán)隊(duì)的后腿。而且,沒(méi)有來(lái)自上級(jí)的壓力,成員給自己制訂的時(shí)間足夠充裕,懶懶散散地完成任務(wù),很難使個(gè)人得到磨煉獲得進(jìn)步。當(dāng)然我也隱約覺(jué)得是我這種思想太落后了,不適應(yīng)現(xiàn)在的企業(yè)發(fā)展了。。。
需求的變化可能導(dǎo)致未完成的產(chǎn)品“過(guò)時(shí)”,不再具有商業(yè)價(jià)值。面對(duì)這種情況,我認(rèn)為,預(yù)防是最好的措施,但我們?cè)鯓硬拍茏龊眠@個(gè)預(yù)測(cè)呢?
二、提高個(gè)人技術(shù)
我是個(gè)基礎(chǔ)不夠扎實(shí)的小菜鳥(niǎo),編程經(jīng)驗(yàn)少,對(duì)于團(tuán)隊(duì)項(xiàng)目難免有點(diǎn)畏懼心理,為了不給團(tuán)隊(duì)拖后腿,我重點(diǎn)關(guān)照了《提高個(gè)人技術(shù)》這一章。
我也覺(jué)得看別人代碼時(shí)很難看懂,除非知道這個(gè)代碼是要做什么的,這樣還能根據(jù)需求推出來(lái)代碼中每一部分的作用。對(duì)于根據(jù)代碼搞明白程序要解決什么問(wèn)題這種事,簡(jiǎn)單的我還能做到,復(fù)雜一些的就無(wú)能為力了。。更何況也許還有好多著名的算法我都不知道不了解。不過(guò)看代碼有什么技巧嗎?難道是看得多了就會(huì)看了嗎?
這一章的內(nèi)容通篇看下來(lái),我發(fā)現(xiàn),并沒(méi)有太多的提到編程技巧,甚至是幾乎未出現(xiàn)。而是主要講解了由MSF而來(lái)的移山精簡(jiǎn)方法論,以及需求分析、性能測(cè)試和效能分析。這些是屬于工程的前期和后期工作,書(shū)中顯然對(duì)這一部分更加注重。
三、代碼復(fù)審
代碼復(fù)審是要求自己、同伴以及團(tuán)隊(duì)對(duì)代碼共同進(jìn)行審查的,看起來(lái)是性能測(cè)試與效能分析的正式版與加強(qiáng)版。
既然要求同伴和團(tuán)隊(duì)都對(duì)代碼進(jìn)行審查,那他們自然是要先對(duì)代碼進(jìn)行研究的,然后發(fā)散思維對(duì)代碼創(chuàng)作者提出很多問(wèn)題,這個(gè)過(guò)程中,可能會(huì)出現(xiàn)一些代碼創(chuàng)作者原本沒(méi)有考慮到的問(wèn)題,集思廣益嘛,但是也不能保證這些未考慮到的問(wèn)題都是重要的、必要的,實(shí)際上可能大部分問(wèn)題都是無(wú)足輕重的,也許最后得出的結(jié)論是解決這個(gè)問(wèn)題的成本遠(yuǎn)遠(yuǎn)高于所獲得的收益,于是這個(gè)問(wèn)題自然就跳過(guò)。
若想要對(duì)代碼提出一些確實(shí)有必要的、能大幅度提高效率的問(wèn)題,顯然要對(duì)代碼的理解很深,而論到對(duì)代碼的了解程度,有誰(shuí)能比得上寫(xiě)代碼的人呢。然而,寫(xiě)代碼的人一開(kāi)沒(méi)有發(fā)現(xiàn)的問(wèn)題,也不是他再對(duì)代碼復(fù)審幾遍就可以發(fā)現(xiàn)的。
代碼復(fù)審確實(shí)是很有存在的必要,但是我覺(jué)得效率不夠高。代碼復(fù)審可能經(jīng)常發(fā)現(xiàn)不了什么有意義的問(wèn)題,直至這個(gè)產(chǎn)品在眾多用戶的使用過(guò)程中,無(wú)意識(shí)地發(fā)現(xiàn)問(wèn)題。產(chǎn)品的很多缺陷都是由此才會(huì)被發(fā)現(xiàn)的。
轉(zhuǎn)載于:https://www.cnblogs.com/WWW-Buaa/archive/2012/10/31/2748130.html
總結(jié)
以上是生活随笔為你收集整理的读《移山之道》的收获与疑问(阅读作业之刘明篇)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: EXT 删除 监听
- 下一篇: Web布局连载——两栏固定布局(五)