Team的組成:
Team leader 新進(jìn)公司的,有多年的開(kāi)發(fā)經(jīng)驗,開(kāi)發(fā)過(guò)不少大型項目,對Design很熟,主要在項目中負責Class設計,但對業(yè)務(wù)邏輯不了解。
程序員A 也是新進(jìn)公司的,有幾年經(jīng)驗,寫(xiě).net程序很熟,但同樣對業(yè)務(wù)邏輯不了解。
程序員B 呆在公司有大半年了,程序經(jīng)驗比較豐富,從VB4作起,在Team正式成立前,已經(jīng)在這個(gè)項目上獨自研究了幾個(gè)月了,對業(yè)務(wù)邏輯有一定的了解。
程序員C 新進(jìn)公司的,接觸比較少,但估計水平不錯,否則不會(huì )進(jìn)這個(gè)Team.
我,呆在公司也有大半年了,因為是一畢業(yè)就進(jìn)入公司,所以IT經(jīng)驗也就大半年,比他們都少,之前參加過(guò)幾個(gè)項目。因為手上活已經(jīng)基本結束,就臨時(shí)加入了,對這個(gè)項目的業(yè)務(wù)邏輯了解是0
項目介紹
這個(gè)項目是一個(gè)子項目,為一個(gè)online商業(yè)程序提供核心的業(yè)務(wù)模塊,原來(lái)的code是用asp寫(xiě)的,沒(méi)有幫助文檔,沒(méi)有注釋?zhuān)怯善渌鹃_(kāi)發(fā)的,現在公司決定要自主開(kāi)發(fā),把應用程序轉到.net平臺下,最大的困難就是沒(méi)有任何的幫助,公司市場(chǎng)部的人也只是知道個(gè)表層的東西,給了本手冊,但非常簡(jiǎn)單,我們以這手冊為起點(diǎn)。
在我進(jìn)入Team前,項目已經(jīng)進(jìn)行了一個(gè)多月了,整個(gè)source code有1500個(gè)asp文件,和當前有關(guān)的有60-100個(gè)文件,文件組織的還好,但因為之前的維護,中間有不少垃圾code,需要我們分別出來(lái),項目完成時(shí)間是4個(gè)月,現在還有不到3個(gè)月的時(shí)間。
說(shuō)說(shuō)目前的狀況吧,因為項目是標準的reverse engineering,Team leader決定在有一個(gè)大概的了解基礎上先設計class,這一個(gè)月中他們主要精力就是設計,現在基本的class有了,但發(fā)現因為對業(yè)務(wù)不知道,到了無(wú)米下鍋的地步,我的任務(wù)就是和程序員B一起分析asp code,然后寫(xiě)業(yè)務(wù)邏輯,文檔要求是只需要描寫(xiě)最上層的業(yè)務(wù),比如說(shuō)是根據客戶(hù)的設定,然后作一些決定,但我在這一周的時(shí)間內,感覺(jué)這樣作有些不對,因為我們基本上對業(yè)務(wù)都不了解,只模糊的知道些,但這些知識不足以讓我們寫(xiě)出準確的業(yè)務(wù)分析,常常是看了大斷的code后,才有個(gè)印象,但哪些值具體是如何相互影響的,也說(shuō)不清楚,因為他們依賴(lài)于讀code,所以連asp的測試平臺都沒(méi)有,這兩天我試著(zhù)在VS2005上搭了個(gè),這樣可以更清楚的分析,之前,我寫(xiě)過(guò)些相似的項目,也是從asp到.net,當時(shí)我是直接翻譯,完了后,重新設計,需要的時(shí)間可能會(huì )長(cháng)些,但我是這樣認為的,因為在對業(yè)務(wù)不了解的前提下,首先是要保證功能上不能有差錯,直接翻譯,可以保證這一點(diǎn),在寫(xiě)的過(guò)程中,隨著(zhù)對程序的了解越來(lái)越深入,在之后的重新設計時(shí)就得心應手了,而現在的作法,讓我覺(jué)的沒(méi)底,因為我自己不能僅依靠讀就能準確的分析出(明天就可以step by step跟蹤了,哈),如果換是我是leader,我覺(jué)的在開(kāi)始階段的大量設計是不必要的,而且很可能是無(wú)用的,只要根據oop的思想,先設計出幾個(gè)必需的class,然后一一對應翻譯原代碼,當基本功能實(shí)現后,在重新設計,這樣在deadline之前一定可以出一個(gè).net版本(當然有些不對),有了這個(gè)版本,我們測試起來(lái)也方便的多,原比調試asp code效率高,然后在重新考慮設計,可能要推倒重來(lái),但至少有了一個(gè).net的基礎了,這樣的話(huà)可以省下時(shí)間,因為看目前的進(jìn)展,實(shí)在有些懸,我寫(xiě)好一個(gè)文檔很慢,寫(xiě)程序的人還要先理解我的文檔然后才能開(kāi)發(fā),而且我還要在告訴他細節(我自己也不能完全確定)。不知道我這樣的思路對不對,或是有什么更好的方法。
下面是我在用VS2005調試純asp項目的一些心得
VS2003有asp debug功能選項,但VS2005沒(méi)有,根據MS的說(shuō)法就是為了要讓顧客更早的轉入到.net下,所以在2003以后的VS下不在explicit支持script的調試了(老天,那么多asp code不是一下子就能轉過(guò)來(lái)的啊,真TMD)。要作也是可以的,但麻煩些,其實(shí)用起來(lái)也不很順,實(shí)在是沒(méi)辦法的辦法。
1。在IE里打開(kāi)開(kāi)關(guān)(為了JS) Internet options ->advanced -> Disable script debugging
2。在VS2005用web application 建立一個(gè)solution(沒(méi)有這個(gè)的可以去MSDN上下載,不要使用web site建立),這樣就可以象VS2003一樣使用了。
3。在IIS中在對應的web site中 從Directory tab,選 Configuration ->Debugging tab -> 選client, server debugging在重啟IIS
4。在調試時(shí)可以在js文件中用debugging; 這樣當用IE直接裝入asp page時(shí)(不要從VS2005中按F5進(jìn)入),就可以從popup出來(lái)的windows中選調試工具(選擇VS2005),這樣就可以在VS2005中調試了,否則就要用attach process的方法。