成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

論DRY原則如何避免重復 提升軟件質量

開發 項目管理
2008年8月到2008年12月,作者參加了某省級無線運營商的網上營業廳3期項目的開發,并擔任項目經理的職位。通過這次經歷,作者提出了對DRY原則的展望和未來圍繞DRY原則可能出現的新工具、新方法。

2008年8月到2008年12月,作者參加了某省級無線運營商的網上營業廳3期項目的開發,并擔任項目經理的職位。網上營業廳是該無線運營商的省級網上門戶,是其電子化營銷渠道的重要組成部分。本文結合作者的實踐,以網上營業廳3期項目為例,討論了DRY原則在整個軟件生命周期過程中,對于保證軟件質量的指導作用和意義。這其中包括了需求分析階段,軟件設計和開發以及軟件測試等階段。通過在這些軟件過程中使用DRY原則,提高了軟件的易用性,可維護性和可擴展性等重要的軟件質量評價指標。最后,作者提出了對DRY原則的展望和未來圍繞DRY原則可能出現的新工具、新方法。

2008年8月到2008年12月,我參加了某省級無線運營商的網上營業廳3期項目,在這個項目中,我擔任了項目經理的角色。

網上營業廳是該運營商的省級網上門戶,是電子化營銷渠道的重要組成部分。其主要功能包括:企業形象宣傳;新業務、新活動推廣;客戶進行業務查詢和辦理等。隨著客戶對電子渠道認知度的提升,原有的網上營業廳2期在硬件方面,已經無法滿足日益增長的客戶數。在軟件架構方面,已經無法快速響應頻繁復雜的需求變更。因此,該運營商提出了對于網上營業廳3期項目的建設計劃。3期建設的預期目標為:把網上營業廳的注冊客戶數從200萬提升到500萬,并從硬件、軟件等各方面保證客戶正常使用。

該項目的人員組成包括:1名項目經理,1名軟件開發經理,1名系統實施經理,3名程序員,2名頁面制作,2名系統實施共10人。項目的開發平臺為J2EE。 該項目的硬件大體情況為:14臺IBM BCH ,安裝apache,作為 web前端服務器。6臺IBM P52A,安裝weblogic,作為應用服務器。2臺IBM P570作為身份認證服務器。2臺IBM P570,安裝oracle,作為數據庫服務器。操作系統使用了紅帽企業版 linux 5,以及AIX5.3。 目前,網上營業廳3期成功通過終驗,并按時上線。在月初、月末的業務辦理高峰期,能夠保證客戶的正常訪問。此項目得到了該省級無線運營商和我所在公司領導的認可。

DRY原則的全稱是Don’t Repeat Yourself,直譯為“不要重復你自己”。首次接觸這個概念時,我認為它僅僅是應用在編碼范疇的一個編碼原則,旨在幫助程序員避免使用復制,粘貼等手段,到處拷貝代碼。隨著對軟件項目的認識和實踐,我發現DRY原則實際上是貫穿整個軟件生命周期的,保證軟件質量的重要原則。從廣義上來講,軟件中的各種資源和代碼一樣,都可能面臨著被到處復制的危險。當客觀條件發生變化,要求資源發生變更的時候,就要同時修改多個資源。如果這些資源被重復地使用在系統中的各處,將直接影響軟件質量中的可維護性和可擴展性因素。

下面,我將結合網上營業廳3期項目,詳細論述我們的項目組是如何在項目中成功地借助DRY原則來保證軟件質量的。 在需求分析階段,我們曾經遇到這樣一個問題。客戶使用系統前,首先用手機號碼和密碼登錄。當客戶辦理某個業務的時候,系統會向客戶發送短信驗證碼,客戶需要將該驗證碼輸入到網頁中的驗證框中,驗證通過后才能辦理業務。系統通過短信二次驗證碼驗證了客戶確實是該號碼的擁有者。這種驗證本來是合理且有效的,但在2期系統中,當客戶辦理完一個業務想再辦理另外一個業務的時候,還要再次進行短信二次驗證。也就是說,每辦理一個業務,就要進行一次短信驗證,客戶體驗可想而知。經驗告訴我,這個需求違反了DRY原則。我們通過和2期的設計人員以及客服人員進行溝通,發現2期系統這樣設計的初衷是為了提高安全性。其實,仔細分析就會知道,這種驗證方法保護的是客戶在登錄期間丟失手機的賬戶安全。簡言之,2期系統的驗證方法犧牲了絕大多數客戶的使用體驗,卻僅僅保護了極小概率發生的特殊情況。不僅給客戶重復地發短信驗證碼,影響了客戶體驗,而且提升了系統的開銷。最后,在DRY原則的指導下,我們把短信驗證改為了一次登錄期間僅驗證一次,極大地提升了客戶體驗,進而從易用性方面提升了軟件質量。

在設計和開發階段,DRY原則可以在更多的方面對軟件開發進行指導。例如對于系統運行期異常處理機制的設計。每一個業務處理過程都可能發生異常,所以需要專門的異常處理代碼來處理異常情況。網上營業廳目前擁有約40多項業務,雖然各個業務的正常處理流程各不相同,但發生異常后的處理流程卻是完全相同的。我們在做系統流程設計時,根據DRY原則,充分考慮了這種情況。最后決定,使用過濾器來統一各個業務的異常處理流程,將分散在系統中的異常處理模塊設置到過濾器中。當異常處理流程變更時,我們僅需要在過濾器這一處對其進行修改,大大降低了軟件的維護成本。

再一個例子是數據庫訪問通用模板類設計。網上營業廳是免不了對數據庫進行操作的。大家知道,從數據庫獲取連接,使用連接,并在最后關閉連接,是每次使用數據庫必須做的操作。如果我們在所有模塊中的數據庫訪問都執行這3步操作,那將會浪費巨大的人力成本。在DRY原則的指導下,我們提煉了數據庫操作的一個流程模板,那就是獲取連接,使用連接和關閉連接。通過結合面向對象的設計方法,我們設計了一套對數據庫進行操作的模板類。使用這套模板類,開發人員只需把精力集中到對數據庫連接的使用上,也就是更加專注于業務邏輯。而無需關心連接的獲取,關閉等操作。這樣做不但節約了時間,也節省了人力,而且提高了軟件的可維護性和可擴展性。

在軟件測試方面,DRY原則仍然具有用武之地的。例如測試用例的設計。不論是白盒測試還是黑盒測試,DRY原則已經潛移默化地融入了這些測試用例的設計原則當中。例如白盒測試就是要盡量避免重復的路徑覆蓋;而黑盒測試中的等價類劃分技術,也是要避免重復的測試數據被使用。從而提高了測試的效率,加快了軟件故障或新需求的處理速度,提高了軟件的可維護性。

通過以上論述可知,DRY原則是一項可以貫穿整個軟件生命周期的指導原則。通過項目組正確地應用和實踐這一原則,我們從最大程度上保證了網上營業廳3期的易用性,可維護性,可擴展性等重要的質量指標。 DRY原則的應用領域還不止這些,它的某些觀點在目前看來似乎過于超前。例如DRY原則認為:軟件的設計文檔是對代碼的重復,軟件的需求文檔是對驗收測試文檔的重復,軟件模型是對數據庫結構的重復等等。我認為,隨著軟件開發技術和工具的進步,在不久的將來,也許軟件的設計文檔完全可以通過代碼自動生成,軟件的需求文檔也能夠自動轉化為驗收文檔等等。圍繞DRY原則,也一定會涌現出一大批優秀的軟件工程工具。這樣一來,我們就能夠進一步發揮DRY原則的作用,最大限度地對各個實體進行解耦,讓系統中的每一項功能僅由一個實體來完成。DRY原則一定會對軟件質量的保證有著越來越重要的作用和意義。

【編輯推薦】

  1. 對敏捷開發的五大誤解
  2. 應用軟件項目的配置管理實例
  3. 軟件需求分析與管理的十個問題
責任編輯:彭凡 來源: javaeye
相關推薦

2025-06-03 08:05:00

設計原則開發代碼

2011-04-07 11:44:02

軟件質量項目

2022-03-25 09:22:42

代碼開發

2021-06-30 08:00:00

代碼DI開發

2021-08-19 15:19:16

代碼開發模型

2024-05-23 12:11:39

2020-02-05 09:13:43

編程開發編碼

2024-09-23 20:55:04

2010-02-24 14:02:52

軟件開發

2025-03-04 00:00:33

2022-09-14 12:26:13

質量管理企業關系管理

2020-12-03 15:54:15

軟件開發工具

2011-12-17 22:48:30

Android

2010-10-28 09:52:51

iPhone OS蘋果

2019-02-11 13:55:03

Linux重復性壓迫損傷命令

2024-10-29 08:17:43

2022-10-11 08:00:00

人工智能機器學習數據

2023-08-15 08:32:09

yaraQA語法規則

2009-05-07 08:48:16

iPhone蘋果移動OS

2021-10-08 10:02:53

勒索軟件攻擊贖金
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产视频日韩 | 日韩中文在线视频 | 亚洲高清在线观看 | 亚州毛片 | 欧美成人精品一区二区男人看 | 国产精品久久久久久久免费观看 | 成人中文字幕在线 | 国产成人精品av | 亚洲免费在线视频 | 福利av在线 | 91玖玖| 人人擦人人 | 国产精品一区2区 | 国产三级一区二区三区 | 91免费在线 | 久久国产电影 | 99精品99 | 国产精品视频偷伦精品视频 | 亚洲一区在线播放 | 国产成人免费视频网站高清观看视频 | 国产精品亚洲综合 | 国产片网站 | 国产高潮av | 天天综合91 | 狠狠躁18三区二区一区 | 中文字幕成人在线 | 久久精品黄色 | 狠狠色综合久久婷婷 | 日日骚av| 精品久久国产 | 免费一级欧美在线观看视频 | 国产福利资源在线 | 国产精品欧美精品 | 亚洲国产精品激情在线观看 | 日韩国产欧美一区 | 久久国产美女视频 | 免费成人午夜 | 精品99久久久久久 | 黄色av观看 | 国产日韩一区 | 伊人一二三 |