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