ASP.NET 的項(xiàng)目終于結(jié)束了,每次都是以興奮的心情開(kāi)始,但最后的挫折很大。雖然受到了挫折,但是每次的心得還是有的,比如說(shuō):
第一,設(shè)計(jì)文檔的重要性。在系統(tǒng)開(kāi)發(fā)之前一定要把系統(tǒng)的設(shè)計(jì)做好,包括系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)、系統(tǒng)的架構(gòu)、業(yè)務(wù)邏輯分析、抽象出基本類和他們的關(guān)系、系統(tǒng)的功能模塊劃分等。由于時(shí)間比較緊張,前期設(shè)計(jì)工作沒(méi)有做到位,導(dǎo)致開(kāi)發(fā)工程中重復(fù)性修改,系統(tǒng)代碼有點(diǎn)冗余,部分代碼沒(méi)有有效重用。
第二,分層的好處。課堂上老師把分層的好處說(shuō)了一大堆,這次在項(xiàng)目里真正的體會(huì)到了。這次課程設(shè)計(jì)把系統(tǒng)分為四層,表示層,業(yè)務(wù)層,數(shù)據(jù)訪問(wèn)層,數(shù)據(jù)庫(kù)。在課程設(shè)計(jì)過(guò)程中,采用了分層,就可以分開(kāi)開(kāi)發(fā),也可以分開(kāi)測(cè)試,工作獨(dú)立性比較好;代碼很容易理解,由于封裝了底層的功能,代碼規(guī)范簡(jiǎn)潔;在系統(tǒng)開(kāi)發(fā)過(guò)程中,數(shù)據(jù)庫(kù)有所變動(dòng),學(xué)生作業(yè)表修改了一個(gè)字段,此時(shí)只需將數(shù)據(jù)訪問(wèn)層的老師類的讀取學(xué)生作業(yè)信息的功能更改一下,而不必更改業(yè)務(wù)層和表示層,剝離了耦合度,系統(tǒng)拓展性比較好。
第三,測(cè)試的尷尬。本人做事向來(lái)比較小心,做完每個(gè)功能塊后,一定測(cè)試一下,由于時(shí)間比較緊張,后來(lái)的部分代碼沒(méi)來(lái)得及測(cè)試,到最后檢查的時(shí)候發(fā)現(xiàn)老師上傳作業(yè)模塊有bug,真后悔當(dāng)初沒(méi)好好測(cè)試。更讓我心痛的是,由于自己前期設(shè)計(jì)方面的工作沒(méi)做到位,竟然發(fā)現(xiàn)有的功能還沒(méi)有實(shí)現(xiàn),比如為老師分配課程和某些驗(yàn)證。痛定思痛,一是由于前期系統(tǒng)設(shè)計(jì)考慮不到位,另一方面也是自己沒(méi)有做好測(cè)試,沒(méi)有對(duì)系統(tǒng)的設(shè)計(jì)做測(cè)試,自己對(duì)于系統(tǒng)的測(cè)試有慣性思維,用自己的開(kāi)發(fā)思路測(cè)試,結(jié)果發(fā)現(xiàn)不了一些bug。測(cè)試最好還是讓別人來(lái)做,這就是旁觀者清吧。應(yīng)該對(duì)自己的整體設(shè)計(jì)做好測(cè)試之后再進(jìn)行開(kāi)發(fā),盡量避免后期因?yàn)橄到y(tǒng)設(shè)計(jì)的不足帶來(lái)的bug。
第四,團(tuán)隊(duì)合作。這次的項(xiàng)目我是真心感覺(jué)團(tuán)隊(duì)的合作很重要呀。哪怕是一個(gè)4個(gè)人的小組,即使是一個(gè)人做的不好也會(huì)影響整個(gè)團(tuán)隊(duì)的項(xiàng)目。可是每次往往都會(huì)有那么一個(gè)兩個(gè)奇葩,讓人無(wú)語(yǔ)。
最后還有一點(diǎn),就是這次項(xiàng)目讓我們都提前感受到以后上班的樣子了,呵呵,壓力是絕對(duì)有的,累是肯定的,但是,我想說(shuō)的是,一切都是苦中有樂(lè),值!既然選擇軟件開(kāi)發(fā)這條路,我想就要有這種思想準(zhǔn)備了,更何況是自己喜歡的事呢,把壓力化為動(dòng)力,把累當(dāng)作是一種快樂(lè)的享受,這樣才能更好去學(xué)習(xí),去走這條道路。