精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

給開發維護大型項目開發者的建議

系統
假設你是正在開發和維護一個包含2000個類并使用了很多框架的Java開發人員。你要如何理解這些代碼?在一個典型的Java企業項目小組中,大部分能夠幫你的高級工程師看起來都很忙。文檔也很少。你需要盡快交付成果,并向項目組證明自己的能力。你會如何處理這種狀況?這篇文字為開始一個新項目的 Java開發者提供了一些建議:

假設你是正在開發和維護一個包含2000個類并使用了很多框架的Java開發人員。你要如何理解這些代碼?在一個典型的Java企業項目小組中,大部分能夠幫你的高級工程師看起來都很忙。文檔也很少。你需要盡快交付成果,并向項目組證明自己的能力。你會如何處理這種狀況?這篇文字為開始一個新項目的 Java開發者提供了一些建議:

假設你是正在開發和維護一個包含2000個類并使用了很多框架的Java開發人員。你要如何理解這些代碼?在一個典型的Java企業項目小組中,大部分能夠幫你的高級工程師看起來都很忙。文檔也很少。你需要盡快交付成果,并向項目組證明自己的能力。你會如何處理這種狀況?這篇文字為開始一個新項目的 Java開發者提供了一些建議。

0. 不要試圖一下子搞懂整個項目

好好考慮一下,為什么理解項目代碼是***位的?大部分情況是你被要求修復一個bug或者加強系統已有功能。你要做的***件事情不是理解整個項目的架構。當對項目進行維護時,這樣(理解整個項目架構)可能會對你造成巨大的壓力。

即便是有著10年可靠編程經驗的Java開發者可能也沒有理解項目的核心工作機制,盡管他們可能已經在這個項目工作超過一年(假設他們并非原始開發人員)。比如,對于認證機制或事務管理機制。

他們是怎么做的?他們對于自己負責的部分非常了解,并且能夠交付價值給小組。每天的交付價值遠比了解一些以后還不確定有沒有的東西重要的多。

1. 關注于盡快交付價值

那我是否定了你對于項目架構理解的熱情了么?完全不。我只是要求你盡早的交付價值,一旦你開始一個項目,搭建了開發環境,你就不應該花一兩周時間才交付什么,無論他的規模大小。假如你是一個有經驗的程序員卻兩周都沒有任何交付,你的經理怎么會知道你是真的在工作還是在看新聞。

所以交付可以使大家都輕松起來。不要認為你能夠做有價值的交付前必須理解整個項目。這是完全錯誤的。加一段javascript的驗證代碼對業務就很有價值,經理能夠通過你的交付達到對你的信任。這樣能夠向上級領導證明你的貢獻以及員工價值。

日復一日,在你不斷修復bug及增強功能之后,就能夠慢慢開始理解項目架構。不要低估對系統方方面面理解時需要花費的時間。花3-4天理解認證機制,2-3天理解事物管理。這些都是依靠之前的相似項目的經歷,但關鍵還是要花時間才能透徹的理解。要在日常工作中擠出時間,不要向經理要求特定的時間來做這些。

找找項目是否有一些不斷維護的單元測試用例。有效的單元測試用例是理解大型項目代碼的很好途徑。單元測試能夠幫助理解代碼片段,包括一個單元的外部接口(單元如何被調用以及返回內容)及其內部實現(調試單元測試比調試整個實際用例簡單許多)。

你如果能夠很好的理解一些內容,寫一些筆記,或者畫一些類圖、時序圖、數據模型圖,以便你或日后其他的開發者維護。

2. 維護大型項目所必須的技能

你能從事當前的工作,必然已經具有良好的java技術。我們來談談能夠讓你在新項目中良好表現的其他技能。大部分時間,你在項目中的任務是修復bug和增強功能。

有兩項很重要的技能能夠協助你維護大型項目代碼。

2.1 能夠迅速發現需要的類

在任何維護活動中,無論是修復bug或增強功能,***個動作就是識別出當前修復或增強的用例中調用的類。當你定位到需要修復或增強的類/方法,就已經完工了一半。

2.2 能夠分析變更的影響

當你在完成必要的修改或增強工作后,最重要的就是要確認你的修改沒有破壞代碼的其他部分。你要用你的java技術及對其他框架的理解找出變更可能影響的部分。下面有兩個簡單的例子詳細描述了***提及的情況:

a)當類A的equals()方法變更后,調用一個保護A實例的List的contains()方法時就會被影響到。若Java知識不夠,很難考慮到這樣的影響。

b)在一個web項目中,我們假設“user id”保存在session中。一個新入程序員可能在“user id”中加入一些信息作為bug修復的方法,但是卻不知道會影響到那些關聯“user id”的用例。

當你提高了如上兩個技能,盡管你對項目不是非常了解,但大部分的維護任務會變得簡單很多。若你修復一個bug,你會定位并修復這個bug,并且保證變更不會破壞項目的其他部分。若你增強或加入一個特性,基本上你只需要模仿現有的特性使用相似的設計。

在一個在線銀行項目中,為什么“查看賬戶摘要”和“查看交易歷史”的設計需要巨大的差別呢?如果你理解了“查看賬戶摘要”的設計,完全可以模仿開發出“查看交易歷史”的功能。

就修復bug和增強來說,你不必完全理解所有2000個類的工作內容和代碼如何運行來推動系統。你若有上面的技能,就能很快定位需要修改的代碼的部分,使用良好的java和框架技能修復,保證變更不會破壞項目的其他部分并交付,盡管你可能只知道一小部分項目的設計。

3. 使用工具找到需要的變更內容以及變更產生的影響

繼續我們盡快交付的主題,你應當尋找那些能夠通過盡量少的了解項目但能幫助你盡快實施交付的工具作為輔助。

3.1 迅速發現需要變更內容的工具

無論是修復bug還是系統增強,首先都要找到該用例調用的你需要修改的類及方法。基本有兩種方式理解一個用例的工作方式,靜態代碼分析和運行時分析。

源碼分析統計掃描所有代碼并且展示類之間的關系。市場上有很多設備與工具。比如:Architexa, AgileJ, UModel, Poseidon等。

所有的靜態代碼分析工具缺點在于無法確切展示用例中類或方法的運行時調用情況。因此Java新加入了特性,如回調機制(callback patterns)。如靜態分析工具無法推斷出當頁面提交按鈕被點擊時哪個Servlet被調用了。

運行時分析工具能夠展示類和方法在用例運行時的狀態。工具包括:MaintainJ, Diver,jSonde,Java Call Tracer等。這些工具可以捕獲運行時的堆棧狀態,并以此為一個用例生成序列圖和類圖。

序列圖展示了該用例在運行時所有調用的方法。若你在修復一個bug,那這個bug很可能就是這些被調用的方法之一。

若你在增強已有功能,利用序列圖理解調用流程然后再修改。可能是新增一個驗證,修改DAO等。

若你在新增功能,找到一些相似的特性,利用序列圖理解調用流程然后模仿開發新功能。

要小心挑選運行時分析工具。信息過多是這類工具的主要問題。選擇一些提供簡單過濾無效信息并能夠方便的查看各種視圖的工具。

3.2 迅速發現需要變更內容的工具

若單元測試有效,可以通過運行單元測試發現變更有沒有破壞其他測試用例。有效維護并且覆蓋大型企業應用的單元測試還是比較少的。下面有一些針對該情況的工具。

仍然是有兩種技術靜態代碼分析和運行時分析可以使用。市場中有很多靜態代碼分析工具可用。如:Lattix, Structure101, Coverity, nWire and IntelliJ’s DSM。

給定一個變更后的類,上述工具均可識別對該類存在依賴的類的集合。開發者需要根據這些信息“猜測”可能產生影響的用例,因為這些工具無法展示運行時類之間的調用關系。

市場上的可以用于運行時影響分析的工具并不多,除了MaintainJ。MaintainJ先捕獲在一個用例中調用的所有類和方法。當所有用例的上述信息都被捕獲之后,就很容易發現類的變更對用例的影響。MaintainJ能夠有效工作的前置條件就是項目的所有用例都應當先運行一遍,以便能夠獲得運行時的依賴關系。

總之,目前你在迅速準確分析變更影響方面,還是可以從工具中獲得有限的幫助。首先根據需要實施一些影響分析,然后根據自己或小組其他高級成員評審來判斷變更的影響。你可能需要上面提到的工具對你的判斷進行反復確認。

4. 對上述內容的兩個忠告

4.1 不要降低代碼質量

為了快速交付,所以沒有全盤理解架構,但絕不能以降低代碼質量為條件。下面是一些你可能因為只考慮快速交付而引發的代碼質量問題。

因為修改代碼涉及到很多的依賴,所以新增代碼相對而言風險較小。例如,有5個用例都調用了某個方法。為了改進某個用例,你需要修改這個方法的實現。最簡單的做法就是復制這個方法,重命名,然后在改進的用例中調用新方法。千萬不要這么做。代碼冗余絕對是非常有害的。嘗試對方法進行包裝或者重寫,甚至是直接修改,然后重新測試所有用例,通常停下來想一想,然后親手去實施,是一個比較好的方式。

 

[[64937]]

 

另一個例子是將“private”方法改為“public”,使得別的類也可以調用。盡量不要將非必須的部分暴露出來。假如為了更好的設計需要重構,就應當著手去做。

大部分應用都有確定的結構和模式來實施。修復或增強程序時,確認你沒有偏離這樣的模式。若對約定不確定,請其他的高級開發者來審核你的變更。若你必須做一些違背約定的實施,盡量放置于一個規模較小的類中(一個200行代碼的類中的私有函數應當不會影響應用的整體設計)

4.2 不要停止深入理解項目架構

按照文章列出的方式,假設你能夠在對項目了解較少的情況下進行交付并以此持續下去,可能你會停止對項目架構的深入了解。這樣從長遠角度來說對你的職業生涯沒有幫助。當你的經驗增加時,你應當承擔比較大的模塊任務。如構建一個完整的新特性或者修改項目的一些基礎設計等較大的改進。當你能夠做這些改進時,你對項目的整體架構應該相當了解。文中列舉的方法是讓你在最短的時間內提升自己,而不是阻止你完整理解整個項目。

5. 結論

整篇文章集中在對項目進行必要了解的前提下進行快速交付。你可以在不降低代碼質量的前提下這么做。

若修復一個bug,迅速定位并修復。有必要可以使用運行時分析工具。若新增一個特寫,可以尋找相似特寫,理解流程(有必要使用工具)并編寫。

或許這些聽起來很簡單,但是實用嗎?當然。但前提是你有良好的java技術以及對框架足夠了解才能先修改代碼,然后對變更影響進行分析。對變更影響的分析比實施變更需要更多的技巧。你可能需要高級開發人員協助你分析變更影響。

大約有50%的IT可操作預算用于簡單的bug修復和功能增強。根據文中的建議,對于維護活動中的經費的節省應當還是很有幫助的。

【編輯推薦】

  1. 頑固Bug:Windows 8 RC奈我何?
  2. 系統管理自測32問之7:有關Bug跟蹤系統
  3. 專訪Linus Torvalds:對所有Bug一視同仁
責任編輯:Yeva 來源: cnbeta
相關推薦

2015-12-08 09:13:05

開發維護Java項目

2015-08-26 10:36:32

ios開發漫談

2015-08-31 10:11:43

iOS大項目開發

2022-03-14 10:24:31

編程語言開發

2011-12-05 22:44:53

Android

2012-04-02 22:49:58

Android

2013-01-16 16:32:11

開發者iPad平板

2015-06-04 13:15:11

獨立開發者

2014-09-23 10:20:46

開發者

2010-12-03 11:17:12

2013-10-22 09:54:42

開發者應用

2015-07-10 12:38:30

手游開發工作建議

2012-06-13 01:23:30

開發者程序員

2015-05-12 14:05:49

谷歌開發者

2017-11-27 13:09:00

AndroidGradle代碼

2013-05-15 10:02:08

軟件開發開發者

2013-11-26 09:43:36

開發日志博客

2015-03-17 14:31:53

Web開發web開發者云開發環境

2011-08-09 11:13:07

iPhone游戲網絡連接測試游戲

2013-09-16 13:14:50

Android開發者優化
點贊
收藏

51CTO技術棧公眾號

欧美哺乳videos| 国产一区二区在线电影| 亚洲色无码播放| 日韩欧美在线看| 日韩视频中午一区| 国产乱子伦农村叉叉叉| 巨骚激情综合| 国产乱人伦偷精品视频不卡| 欧美激情图片区| 久久精品国产亚洲av久| 国产一区二区高清在线| 日韩欧美福利视频| 国产日韩欧美大片| 蜜桃免费在线| 国产高清在线观看免费不卡| 庆余年2免费日韩剧观看大牛| 日本 欧美 国产| 国产精品传媒| 欧美日韩国产一级片| 日本欧美黄色片| 黄色网页在线看| 久久久亚洲高清| 亚洲在线免费看| 中文字幕人妻一区二区三区视频| 伊人久久久大香线蕉综合直播 | 国产精品无码网站| 日韩欧美看国产| 亚洲一区二区三区视频在线播放 | 国产原创欧美精品| 国产精品777777| 欧美天天在线| 久久久av亚洲男天堂| 人妻av无码一区二区三区| ccyy激情综合| 91精品国产色综合久久ai换脸 | 久久免费在线观看视频| 久久国产精品成人免费观看的软件| 亚洲国产精品推荐| 精品人妻人人做人人爽夜夜爽| 嫩草伊人久久精品少妇av杨幂| 激情av一区二区| 97碰在线视频| 性欧美ⅴideo另类hd| 国产精品久久久爽爽爽麻豆色哟哟 | 特级毛片www| 亚洲精品影院在线观看| 欧美刺激性大交免费视频| 国产精品久久久久久成人| 成年人网站国产| 天堂资源最新在线| 成人精品免费看| 粉嫩精品一区二区三区在线观看| av小说天堂网| 国产精品羞羞答答xxdd| 亚洲va久久久噜噜噜| 国产精品一区二区av白丝下载| 美美哒免费高清在线观看视频一区二区| 日本久久久久久久久久久| 亚洲永久精品在线观看| 国产日韩亚洲欧美精品| 992tv成人免费视频| 日韩精品一区二区av| 亚洲国产精品一区制服丝袜| 亚州国产精品久久久| 国产无遮挡又黄又爽| 亚洲黄色视屏| 人体精品一二三区| 无码人妻精品一区二区| 热久久免费视频| 国产精品一区久久| va婷婷在线免费观看| 国产99久久久国产精品| 国产精品日韩高清| 神马精品久久| 国产日产欧美一区| 久久av喷吹av高潮av| 亚洲性图自拍| 岛国av一区二区在线在线观看| 97成人在线观看视频| 精品裸体bbb| 欧美一区二区久久| 182在线视频| 成人高清av| 欧美成人免费在线观看| 日本一区二区免费在线观看| 污视频网站在线播放| 日韩影院免费视频| 亚洲一区亚洲二区| 国产精品久久久久久久久粉嫩av| 少妇人妻好深好紧精品无码| 国产电影一区二区在线观看| 久久91亚洲人成电影网站 | 日韩欧美午夜| 欧美成人中文字幕| 精品国产xxx| 国产剧情一区在线| 欧美成人蜜桃| av网址在线| 色系网站成人免费| 亚洲精品一区二区18漫画| 香蕉久久精品日日躁夜夜躁| 日韩最新在线视频| 男女视频免费看| 免费高清在线视频一区·| 国产精品露出视频| 农村妇女精品一二区| gogogo免费高清日本写真| 手机在线观看免费av| 中文字幕二三区不卡| 国产黄色激情视频| 亚洲电影有码| 欧美va亚洲va在线观看蝴蝶网| 国产三级视频网站| 欧美日韩一区自拍| 国产精品中文久久久久久久| 特黄aaaaaaaaa真人毛片| 国产精品三级在线观看| 国产午夜福利100集发布| 亚洲精品大全| 在线播放精品一区二区三区| 久久精品性爱视频| 国产主播一区二区| 日本一区二区久久精品| а√在线中文在线新版| 日韩一级在线观看| 亚洲av无码国产精品麻豆天美| 伊人久久亚洲热| 999久久久| 国产精品久久久久久福利| 午夜精品爽啪视频| 香蕉久久久久久av成人| 亚洲乱码电影| 国产精品视频99| 久久欧美在线电影| 91精品国产一区二区三区动漫| 免费在线观看av的网站| 不卡免费追剧大全电视剧网站| 亚洲午夜精品久久久久久性色| www.日本高清| 狠狠干成人综合网| 亚洲一区二区三区777| www.国产精品.com| 色婷婷综合在线| 中文人妻一区二区三区| 尤物在线精品| 国产精品二区三区| 色网在线观看| 欧美成人一区二区三区在线观看| 久久精品亚洲a| 免费观看在线综合色| 视频在线精品一区| 99久久婷婷国产综合精品首页 | 欧美成人精品一区二区综合免费| 一区二区中文字| 亚洲综合色av| 美女网站视频在线| 精品国产露脸精彩对白| 久草福利资源在线观看| 国产成人高清在线| 日本中文字幕亚洲| 欧美日韩一区二区三区在线电影 | 欧美日本黄视频| 精品国自产在线观看| 亚洲国产一区在线观看| 天堂www中文在线资源| 一本色道久久综合亚洲精品不卡| 精品一区二区三区国产| 综合在线影院| 日韩中文字幕亚洲| 国产a级免费视频| 亚洲高清免费观看高清完整版在线观看 | 黑人巨大精品欧美一区| 亚洲成人动漫在线| 精品亚洲自拍| 国产精品久久久久久久久男| 欧美成人hd| 亚洲成人av中文字幕| 天堂网视频在线| 国产精品国产三级国产aⅴ入口 | 亚洲欧洲一区二区福利| 91n在线视频| 久久丁香综合五月国产三级网站| 国产一区二区三区视频 | 日韩a级大片| 国产精品wwwwww| 黑森林av导航| 日本色护士高潮视频在线观看| 日韩欧美高清在线| 六月丁香婷婷综合| 成人欧美一区二区三区黑人麻豆 | 久久精品国产v日韩v亚洲| 国产高清在线观看视频| 欧美性69xxxx肥| 欧美第一页在线观看| 91在线播放网址| 亚洲黄色av片| 99亚洲精品| 永久久久久久| 先锋影音国产精品| 444亚洲人体| 欧美精品总汇| 久久久在线免费观看| 在线免费观看的av网站| 亚洲成色777777女色窝| 中文字幕+乱码+中文字幕明步| 日本一二三不卡| 国产亚洲精品成人a| 成人开心激情| 国产欧美日韩亚洲一区二区三区| 成人网中文字幕| 一个人www视频在线免费观看| 丝袜美腿精品国产二区| 人人妻人人澡人人爽精品日本| 在线一区二区三区四区| 精品视频久久久久| 国产精品欧美一区喷水| 中文字幕免费在线播放| 国产一区二区在线影院| 少妇黄色一级片| 国产日韩专区| 国产美女在线一区| 欧美a级在线| 日本免费在线视频不卡一不卡二| 国产自产精品| 视频一区视频二区欧美| 成人免费视频网| 国产情侣一区二区三区| 欧美最猛性xxxxx免费| heyzo中文字幕在线| 久久精品99无色码中文字幕| 国产午夜视频在线观看| 亚洲老司机av| 完全免费av在线播放| av网站免费在线看| 成人午夜电影小说| 91香蕉视频在线观看视频| 日韩成人免费电影| 高清在线观看免费| 999亚洲国产精| 丁香六月激情婷婷| 欧美日韩亚洲三区| 成人在线视频一区二区三区| 天天久久综合| 久久免费看毛片| 久久久久国产精品| 丰满女人性猛交| 综合激情婷婷| 青青草视频在线视频| 中文字幕一区二区三区欧美日韩| 桥本有菜av在线| 亚洲一区二区三区无吗| 无码毛片aaa在线| 欧美欧美全黄| av在线观看地址| 亚洲少妇一区| 日本在线视频www| 日韩在线一区二区| 色婷婷一区二区三区av免费看| 免费在线观看不卡| www.99r| 国产成人精品影视| 中国极品少妇videossexhd| 91在线观看地址| 91视频免费在观看| |精品福利一区二区三区| 91插插插插插插| 亚洲国产欧美在线人成| 亚洲第一在线播放| 欧美日韩高清影院| 性一交一乱一透一a级| 亚洲国产高潮在线观看| 黄色在线小视频| 日韩一二三在线视频播| 午夜激情在线| 欧美最猛性xxxxx免费| 天天射天天操天天干| 日本一区二区乱| 国语自产精品视频在线看抢先版图片 | 欧美亚洲爱爱另类综合| 国产一区二区区别| 黄色一级视频播放| 一本色道88久久加勒比精品| 五月天婷婷激情视频| 国产一区二区在线电影| 在线免费播放av| 国产精品久久久久久户外露出| 中文字幕av久久爽av| 精品女厕一区二区三区| 亚洲图片中文字幕| 亚洲成色777777在线观看影院| 内衣办公室在线| 欧美成人免费全部观看天天性色| 超碰在线99| 92国产精品久久久久首页| 欧美顶级毛片在线播放| 在线观看日韩片| aa国产精品| 色婷婷综合在线观看| 91在线丨porny丨国产| 亚洲欧美精品久久| 日韩欧美999| 国产高清视频免费| 中文日韩在线观看| 欧美aa免费在线| 亚洲最大福利网站| 日韩国产在线| 99久久久无码国产精品6| 国产激情视频一区二区在线观看| 91成人破解版| 精品国产户外野外| 精品国精品国产自在久不卡| 在线播放日韩精品| 欧美日韩国产观看视频| 99国产在线观看| 日韩专区精品| 91淫黄看大片| 99久久99久久精品免费看蜜桃 | 欧美日韩国产综合视频| 欧美激情一区二区三级高清视频 | 久久综合伊人| 最近中文字幕无免费| 一区二区在线观看视频在线观看| 中国精品一区二区| 亚洲人成五月天| 伊人久久综合一区二区| 国产综合动作在线观看| 亚洲一区二区三区| 99精品视频国产| 亚洲婷婷综合久久一本伊一区| 手机av免费观看| 亚洲女人天堂色在线7777| 女人高潮被爽到呻吟在线观看| 国产精品一级久久久| 黄色欧美成人| 国偷自产av一区二区三区麻豆| 亚洲色欲色欲www| 中文字幕一区二区人妻痴汉电车| 亚洲免费人成在线视频观看| 秋霞伦理一区| 精品国产91亚洲一区二区三区www| 国模吧视频一区| 亚洲av无码久久精品色欲| 亚洲柠檬福利资源导航| 99国产精品99| 超碰91人人草人人干| 蜜桃精品视频| 国产欧美123| 不卡在线视频中文字幕| 久久午夜免费视频| 精品一区二区三区三区| av电影一区| 欧美在线激情| 日本欧美一区二区三区乱码| 第一次破处视频| 欧美日韩一区二区在线观看| 婷婷成人激情| 成人免费在线网址| 中文字幕乱码亚洲无线精品一区 | 亚洲精品国产九九九| 拔插拔插海外华人免费| 不卡一区二区三区四区| 日韩在线播放中文字幕| 中文字幕日本精品| 国产麻豆一区二区三区| av一区二区三区免费观看| aaa亚洲精品| wwwwww在线观看| 欧美猛少妇色xxxxx| 激情视频极品美女日韩| 黑森林福利视频导航| 国产视频一区二区三区在线观看| 中文字幕在线观看精品| 久久九九有精品国产23| 精品视频高潮| 我看黄色一级片| 伊人婷婷欧美激情| 日本福利片在线| 国产精品丝袜一区二区三区| 中文字幕一区二区三区在线视频| 强迫凌虐淫辱の牝奴在线观看| 在线观看视频一区二区| 黄页视频在线播放| 精品久久久久久一区| 麻豆精品久久精品色综合| 精品无码人妻一区二区三| 亚洲另类欧美自拍| 国产亚洲观看| 日韩av三级在线| 成人欧美一区二区三区黑人麻豆| 亚洲产国偷v产偷v自拍涩爱| 国产成人精品综合久久久| 中文一区一区三区免费在线观看| 极品粉嫩小仙女高潮喷水久久| 欧美精品免费视频| 黄色在线网站噜噜噜| 在线码字幕一区| 91在线高清观看| 亚洲AV无码一区二区三区少妇| 日本欧美一二三区| 国内视频精品|