敏捷開發大家談(三)--敏捷開發技術在電子商務軟體中的應用(2)

pharos發表於2019-03-08
  第四章 敏捷開發技術在電子商務軟體的推廣

1. 電子商務軟體實施的高風險性

軟體開發行業目前同時存在兩種情況,它既是一個非常成功的又是具有很多問題的行業。

2. 在跨平臺系統的移植上的應用

電子商務系統經常會出現跨平臺的移植。重要的一點就是從功能角度講,移植前後是否一致。一些敏捷開發中的最佳實踐也是可以使用的,比如你可以把所有的需求以測試的方式提煉出來。很多專案都是使用這種方式而且非常成功。

而且使用這種疊蓋式方式,也能夠從專案程式的角度看移植程式有多快。

3. 在電子商務軟體外包公司的應用

軟體外包是非常普遍的。在實踐中發現敏捷式開發對外包也是非常有效的方法。實踐中敏捷式開發比一般的開發方式估算的方法更快,而且用的人要少一些。

  希望中國更多的軟體公司可以採用敏捷開發技術,使我們的軟體產業能夠得到更加快速的提高和發展!(作者: 徐禕 就職於東方鋼鐵電子商務有限公司,職務為首席專案經理。目前就讀上海交通大學MBA班 )


四、敏捷開發常用工具
 
工欲擅其事,必先利其器,能利用工具是人與動物的最大區別。然而,大多數商業化工具價格不菲,已經加入WTO好幾年了,再用盜版會給企業帶來很大的不確定性,並且盜版用多了,往往會失去一種程式設計師的自豪感,丟掉一種文化。經過幾個月的摸索,本著以下原則,偶選擇了一些適合中小企業開發的工具,當作自己的工具箱:
(1)適用於中小型企業,中小型專案(<500萬),功能適度

(2)易用性好,具備必要的文件

(3)免費或低價

基於這些工具,慢慢形成了一套敏捷開發過程。

(一)、工具簡介

下面簡單介紹這些工具,這些工具有些偶已經有相當的使用經驗,有些正在使用,有些只是剛選定。除直接用於.net開發的工具中外,還包括一些開發相關的軟體設計、專案管理工具。偶的主要開發經驗是Web開發,桌面開發和原型開發,對Mobile開發不熟悉,也就沒這方面的推薦了。

1,執行平臺

常用的也就.net framework 1.1, 2.0, 和mono了,都是免費的。從功能、效能及安裝基礎來講,自然.net framework要優於mono了。mono是開源的,.net framework類庫可以反編譯,從透明的角度講兩者都差不多。如果你想在非windows平臺上開發,或者想研究執行時的實現,可以研究mono,否則還是用.net framework吧。

2,伺服器

我用過的也就IIS5.0,IIS6.0,Apache加一個mod,還有mono的xsp,這也沒啥好比較的,自然首選IIS6.0了。不過IIS雖然免費,但是至少得windows server版本才執行得爽,至少得花幾千元。XP上的IIS很不爽,據說也能裝全版IIS6.0,不過還是得折騰。開發用的話,用Apache加一個.net的mod,或者mono的xsp,還是挺好用的。Apache的缺點是對新版.net framework的支援較IIS6.0滯後。

3,IDE

tnnd,這個選擇空間也很小。首選自然是VS 2003或2005,如果VS 2005速成版將來免費的話,偶就選定這個了,或者選價格並不算高的VS 2005 專業版。可惡速成版、專業版中沒單元測試,在這裡BS微軟10000遍。堅決抵制VSTS版!

其它可選的有SharpDevelop和mono develop。對於不開發Web程式的初學者來說,用SharpDevelop其實也挺不錯的,整合的Nant,NDoc,NUnit都是很有用的工具。SharpDevelop沒斷點除錯功能,但熟用NUnit的話可以彌補這一不足。

如果對類庫理解得比較深入的話,採用SharpDevelop,生產力其實也挺高的――即使是進行Web開發。SharpDevelop的缺點之一是暫時沒重構功能,在下一個版本里會有。缺點之二是記憶體佔用比較大,還有效能比VS低得多,大專案,大程式可能不爽。我測試過,用SharpDevelop開啟一個大於3M的C#原始檔(嘿嘿!是csgl還是tao的,忘了),掛了;用VS 2003開啟大概要花幾十秒。

btw,我個人認為其實就用記事本寫中小型(<3000行)的C#程式,效率其實也挺高的,這時候會更加註意類的設計,思路會更清晰一些,當然,速度會慢一些。

4,類庫和文件

類庫是.net平臺的資產。目前.net下成熟的類庫比較少,和java比,最大的不足就是這裡了。最常用的類庫當然是.net framework了,其它各方面的類庫在網上都能搜尋到一些。類庫的關鍵資產要素是dll和文件。看文件要看一手資料,第一手資料就是原始碼或反編譯過來的程式碼,然後就是各類的原始文件,一般是chm格式的。如果看原始碼習慣的話,效率會很高,並且,建議用反編譯工具看程式碼,不建議直接看原始檔,原因其一是反編譯工具提供了很多有用的附加功能,其二是反編譯的程式碼比原始檔更真實。常用的反編譯工具是Reflector。

.net下的文件是爽死了,比javadoc的pp多了。因此在寫程式碼的時候應該注意,多寫///註釋,然後用Ndoc自動生成chm文件,多爽呀。

很多開源專案提供原始碼和少量的文件,但它的原始碼中有大量的///註釋,可用NDoc自動生成chm文件。即使沒有///註釋,採用NDoc生成文件也是很值的。

5,資料庫

MS SQL Server Express版應該是免費的,但標準版和企業版價格還是不低的,還是用開源的好。對功能有要求就用PostgreSql,沒要求就用MySql。偶現在是GIS專案用PostgreSql,一般專案用MySql。資料庫管理用EMS MySQL Manager Lite和EMS PostgreSql Manager Lite,免費,好用,介面很豪華,效能還行。

6,設計與建模

偶選定的UML建模工具是JUDE,2M大,免費但不開源,比ArgoUML功能多、好用。比Visio 的UML功能不知道強大多少倍,比Together也好用。缺點就是隻是建模工具,和程式碼不同步。另一個缺點就是不能自動生成文件。不過偶喜歡這樣的工具,強大,體積小,靈活,方便。並且偶覺得它在設計時用就行了,具體的類的文件用NDoc生成。JUDE是基於java的,得安裝java虛擬機器。好像它跨平臺也不怎麼樣,我在linux下沒執行成功過。

開源或免費的資料庫建模工具試過很多,感覺都不成熟不好用,最後選擇了一個商業軟體――CASE Studio 2,價格100-300美元,功能很實用,支援很多資料庫,生成的文件也很pp。

7,敏捷開發工具

NUnit――單元測試。

NAnt――build工具。前面已經提及。

NDoc――文件生成。前面已經提及。

CruiseControl.Net ――持續整合,暫時還沒用過。

NUnit,NAnt,NDoc用的好的話,感覺非常爽,寫程式會有藝術家的感覺。

8,團隊協作工具

版本管理:CVS和SVN,推薦SVN。客戶端推薦用TortoiseSVN――非常可愛的小烏龜。

Bug管理:偶選用的是BugTracker.NET,簡單,用ASP.Net寫的,小專案夠用了。

需求管理、專案管理、日程、經費計算與管理:還是在用Word、Outlook、Excel。要免費的話可用永中Office試用版,一樣好用。

(二)、優勢

1,價效比高。對於10人規模的團隊,看看軟體成本:

執行平臺:.net framework 1.1或2.0,免費

伺服器:1套windows 2003 server版,數千元

IDE:1套VS 標準版或專業版,數千元,其它用express版就行了

類庫和文件:免費

資料庫:免費。用商業資料庫,讓客戶掏錢。

設計與建模:1套CASE Studio 2就行了,數千元

敏捷開發工具:免費

團隊協作工具:1套MS Office(帶Visio的)就行了,數千元,其它人用永中。

 

整個下來,不足20000元。

2,易用性好

反正我的感覺是和商業軟體差不多或者稍差

3,易擴充套件

上面工具大部分是開源的,並且很多工具之間協作性比較好,這樣可以用來定製適合自己的生產線。老外的那一套生產線,比如RUP,MSF及其相關工具,除價格貴外,其靈活性也不高,別人的生產線不一定適合自己用。這時上面工具的優勢就出來了。

(三)、搭建軟體生產線

流程1:專案管理流程

用Office管理需求。用SVN進行原始碼管理和文件管理,BugTracker.NET進行 Bug管理和事務管理。儘量將程式、檔案、文件的維護自動化。

流程2:開發管理流程

開發過程中所維護的檔案越少越好。偶覺得應該儘量少用UML圖寫文件,只寫最關鍵的部分。類的文件最好由NDoc直接生成。偶用UML工具的時間很少。寫程式碼的過程就是類設計過程。不妨比較這兩個流程:(1)用例分析->採用UML工具設計類->由UML工具生成程式碼或撰寫程式碼->重構程式碼,自動更新UML文件。(2)用例分析->撰寫程式碼->重構程式碼。第一個流程只有一個優勢,就是人對圖形的理解比對程式碼的理解更加直觀,但是多了很對累贅工作。第二個流程少了很多步驟,並且可以隨時根據程式碼逆向工程出類圖出來,

我還是喜歡以程式碼為基礎的流程。撰寫程式碼也可分為2個過程,第一個過程是寫出一個程式碼框架,所有的方法都是UNDO,寫出屬性,介面,寫出///文件。這應該是設計過程。這個過程基本上只產生、維護原始檔。

類圖可以通過visio逆向工程,類設計文件可以通過NDoc自動生成,並且提供了一個測試基礎,可以根據這個測試基礎寫測試程式碼了。測試程式碼最好也只寫個框架,但是要寫好///註釋,然後生成測試文件。這應該是設計過程。第二個過程是實現過程,把類文件和程式碼框架提交給相關人,實現、測試、重構......一切都自動進行......整個過程中只有一份東西,就是原始碼,開發過程中的交付件應該都從原始碼中自動生成。

資料庫指令碼和文件用CASE Studio 2維護。最後提交、上線、驗收都很好辦,所要的東西biaji一下子都出來了。要申報著作權直接從原始碼和chm文件中弄一部分出來就夠了。

開發的核心是原始碼,所有文件應該體現在原始碼的結構、關係和註釋中。控制整個開發流程的核心工具是Nant。要是能把用例分析過程體現在原始碼中就好了!
 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3433/viewspace-269192/,如需轉載,請註明出處,否則將追究法律責任。

相關文章