機房合作版到了尾聲,看著我們每天的記錄,有太多的成長。不知道是不是大家的通病,在一件事情開始之前,總把它設(shè)想成多么艱難,自己絆著自己的腳,漸漸相信了原來恐懼本身才是最恐懼的事情,之前看他們合作使用的工具,高大上,給人一種不容易接近的感覺,
機房合作版到了尾聲,看著我們每天的記錄,有太多的成長。不知道是不是大家的通病,在一件事情開始之前,總把它設(shè)想成多么艱難,自己絆著自己的腳,漸漸相信了原來恐懼本身才是最恐懼的事情,之前看他們合作使用的工具,高大上,給人一種不容易接近的感覺,一旦自己經(jīng)歷才有資格說和別人感同身受。這次合作感觸很多,不管對我的學習和交流都是一種提高。
這是我們合作的第一個項目,作為組長不知道是我的幸運還是不幸,開始真的壓力山大,雖然個人重構(gòu)也是結(jié)束沒多久,現(xiàn)在可是三人合作共同去完成,還是無從下手,不知道第一步要干什么,SVN視頻看完了也還很模糊,開始總是很沉重的,但日子還是要繼續(xù),就去找?guī)煾福勒l合作完了就和他們交流每個階段都注意些什么。于是制定了第一個計劃(11月4號-12月4號),計劃每天晚上著手合作的事情,發(fā)現(xiàn)四五天過去了,沒什么進展,7號晚上第一次開會只是將計劃說了一下,分了一下工,我負責畫用例、類圖和時序圖,金博負責設(shè)計數(shù)據(jù)庫,然后代碼就負責D層,春陽負責原型圖,加上U層代碼,最后B層就分配到了我,可是發(fā)現(xiàn)畫圖時一些類的方法的參數(shù)不知道如何定義,這時才感覺需求分析真的很重要,也很必要,我們拿出一晚上時間把每個功能用到的方法、方法傳遞的參數(shù)和返回的類型還有數(shù)據(jù)庫中用到的每張表,每張表的字段和類型討論了一下,然后我在畫類圖的時候不再用糾結(jié),后來一次和文康師哥聊天,指導(dǎo)了我們每個階段注意的問題,稍改變了一下計劃,合作的事情不能這么拖著,團結(jié)起來一口氣完成,挺有道理的,于是修改了計劃,接著之前,制定了10天的計劃(畫圖3天,代碼實現(xiàn)3天,調(diào)試3天,補充文檔1天),安排每個人每天任務(wù),我主要還是畫圖,金博負責數(shù)據(jù)庫設(shè)計,春陽負責研究設(shè)計模式的使用。
畫類圖大概用了1天半,不過完善類圖差不多用了2天,這里最大的感悟就是為人民服務(wù)絕不是口號,合作框架還是三層思想,但這次每層的類都是EA自動生成,看著生成后的類,知道有了表頭、類、方法、參數(shù)等著這些注釋才舒服些,真的是畫圖時如果細膩些,組員就會減少一些工作量,這也是應(yīng)該的,畫時序圖大概用了1天多,類圖定義好的話,時序圖相對容易很多,不過對于一些邏輯判斷自己也拿不準,這次我很幸運當了組長,又很幸運負責B層代碼,個人重構(gòu)驗收時師哥說我三層理解有問題,不會抽象,我當時真的不理解,也不知道自己問題出在哪里,通過這次畫圖,我明白了B層調(diào)用工廠創(chuàng)建接口,還要調(diào)用接口的方法,其實就是調(diào)用D層方法,而之前我直接返回接口就完事了,然后在U層調(diào)用接口的方法,直接和數(shù)據(jù)庫打交道,沒有達到解耦的目的,終于對邏輯判斷有了一點點理解,記得個人重構(gòu)總結(jié)時說一些遺留問題等到合作時來彌補,有些東西是到了一定階段才慢慢理解。這個階段金博主要建立數(shù)據(jù)庫和使用的一些存儲過程、視圖的編寫,春陽主要查資料我們使用的策略、職責鏈、模板、抽象工廠、外觀等模式如何使用,如何體現(xiàn)在類圖上,當然原則上每天開會,不過有時有問題也隨時交流去解決。
有了EA生成的類圖,建立好項目,這些類要包含在項目中,系統(tǒng)框架就成型了,他們看著圖和文檔,寫代碼簡直是太容易的事情了,寫代碼大概用了2天時間,中間也遇到很多事情,SVN使用不熟練,有時一個人在修改文件,另一個更新提交就會出現(xiàn)沖突,只能退回到之前版本,在工具的使用上,也請教了不少同學,在這里除了了解SVN的更新和提交代碼功能,還代碼隨時備份的思想。我負責的B層代碼,最糾結(jié)的應(yīng)該算是設(shè)計模式的添加了,個人重構(gòu)時下機沒有使用策略,這次我們決定一定要加上,再加上職責鏈的使用,每個類中的方法不知如何下手,跟春陽也討論了不止一兩次,也搜了很多他們博客,等實現(xiàn)以后走一遍代碼發(fā)現(xiàn)其實也就那么一回事,很難說一個人的潛力有多大。
調(diào)試代碼在我看來是最有意思的階段了,如果不是自己親眼看到絕對不會相信是自己寫出來的,最容易出現(xiàn)問題的幾乎是D層SQL語句拼錯,參數(shù)沒有賦值,也有命令類型錯誤等,還有就是U層有時沒有賦值,也有一些思路的差別,比如充值之前要返回一個卡的金額,充值之后也要返回一個金額顯示,開始是寫到B層充值方法里面,后來發(fā)現(xiàn)返回的類型U層滿足不了,不得已將卡的判斷返回到U層,然后再充值。調(diào)試階段也是很好的交流機會,你可以看到他們思考問題的方式,春陽比較善于思考,思路很靈活,而我就是很依賴網(wǎng)絡(luò),比如下機計算消費時間,出錯了就去網(wǎng)上找方法,而不是自己先去思考,這也是一種習慣吧,之前總是說靠自己,原來靠自己是先靠自己大腦,然后再借助巨人肩膀,這樣應(yīng)該會更加深刻;金博很有耐心,很會為知識結(jié)網(wǎng),而且他學習一個東西比較踏實。畢竟是三個人寫的代碼,調(diào)試中各種問題,調(diào)試也是時間最長的。總之,相信自己,更要相信代碼。
這次合作,讓我看到之前自己漏掉的東西,比如畫圖的規(guī)范,比如策略模式,比如如何在B層邏輯判斷,而且現(xiàn)在是三個人一起完成,我所做的就不能只考慮一個人,你在一個團隊中,領(lǐng)導(dǎo)一個團隊,交流溝通很重要,自主去付出更重要。只要去做總會進步的。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com