新的起點 新的開始

          快樂生活 !

          我們的代碼怎么了??!!!!


               入行也幾年了,回首這幾年的經歷。發現沒有一個項目能夠讓人滿意,不是Bug滿天飛就是延期。到底為什么呢?客戶太刁蠻?管理問題?技術問題?還是? 拋開其他因素,聊聊我們開發人員的問題。
               先從目前的項目談起,現在我在項目是在以往代碼上開發新的應用,好多代碼是01年左右寫的,日后不斷的添加新功能,目前源代碼有200M左右。看看代碼,上千行的方法不計其數,也佩服印度阿三把代碼寫成這樣還能保證業務正確,尤其還是銀行相關的。雖然方法很長,不過Log 確實很詳細,基本可以通過Log 定位那里有問題。而對于目前開發,難道還有繼續寫成千上萬行的方法嗎?
               目前JEEWeb應用,不論是規范的EJB+JSF  還是開源的Hiberante Spring struts,都是分層的架構,應該從架構上沒有問題,看了看公司另外項目的代碼,雖然已經上09年了,也應用了JSF Spring hiberante 等很完善架構,為什么還是不能讓客戶,發人員滿意呢?追根究底,軟件其實就是一行一行代碼實現的,所以本質還是代碼出問題了!!
               現在有前人總結的設計模式,OO設計思想,以及優秀的UML工具,很好的領悟這些東西,應該可以保證我們的設計沒有問題,而Spring Hiberante 等優秀的工具,在軟件架構上也應該沒有問題。所以問題還是我們的Code。打開我們的Code,誰能拍著胸口說我們的代碼沒有任何沒有拷貝張貼?誰能保證說我們的代碼具有很好的可維護性呢?往往會有很多理由,比如工期太緊,沒時間重構或者都是遺留代碼沒有辦法重構。而最好的結局呢,代碼越來越難維護,Bug多的QA都失去了信心,而我們開發人員越來越沒有底氣了,項目也一度延期或被取消。
                設計能力解決問題能力以及職業素養是我們開發人員的核心競爭力,而這些能力就是在不斷優化我們的領域模型,以及不斷編寫優秀的代碼中慢慢提高的,不是看幾本設計方面架構的方面的書就Ok的。正如Clear Code作者說比喻的,軟件開發人員就是匠人,你寫的每行代碼就是你的產出,你的作品。
                其實我們大多數人其實都知道這些道理,但其實都習慣了,不想改進而已。這就是問題所在!! 沒辦法,那就從流程上控制,敏捷開發想從流程上來避免這些問題,首先測試優先,使我們不得不前期設計可以測試的領域模型,結對編程讓另外一個人檢查你的代碼,讓你不能隨意聊天看網頁,提高效率,培養職業修養。而實際應用呢,好多公司老板感覺兩個人用一個電腦不是效率很低, 一個人不是閑人嗎?所以結對被取消了,工期一緊,測試取消了。所謂敏捷開發基本是掛牛頭賣狗肉。
                所以,還是從我們自身來解決問題,首先多看看前人的經驗總結,比如OO設計思想,在設計中,通過各種方式在設計上減低代碼耦合度。在編寫代碼上,遵循成熟的代碼規范以及不斷的重構代碼,減少代碼中臭味。
               總之,既然從事了這個行業,就要熱愛這個行業,牢記在心的就是:我們的每一行代碼就是我們的產品!保證我們每一行代碼都是高質量的,優秀的!
           

          posted on 2009-04-29 22:05 advincenting 閱讀(1840) 評論(6)  編輯  收藏 所屬分類: OO設計

          評論

          # re: 我們的代碼怎么了??!!!! 2009-04-29 22:38 fu

          問題的關鍵還是我們的程序員水平不夠,大量不可復用的代碼造就了一個不可維護的系統,這樣的系統哪怕是功能都實現了,我都稱它為垃圾工程。所以現在我招人都特別謹慎,只會SSH卻不懂設計模式的人一定不要。  回復  更多評論   

          # re: 我們的代碼怎么了??!!!![未登錄] 2009-04-30 09:16 Brian

          fu說的太絕對了,模式這東西來自于實踐的積累。這個實踐不僅僅是代碼的實踐,更多的是業務理解的實踐。要求程序員都是業務專家是不現實的,也是不可能的。所以我認為問題的關鍵是在于業務水平的缺乏,而非編程水平。  回復  更多評論   

          # re: 我們的代碼怎么了??!!!! 2009-04-30 09:20 bera

          簡單的說就是沒設計好就開工了,實現確定好接口、基類、核心方法、開發規范等再怎么做也不會爛  回復  更多評論   

          # re: 我們的代碼怎么了??!!!! 2009-04-30 09:43 淘聲依舊

          從上到下,上邊都沒有好的設計分析,全把責任推脫道下邊,下邊怎么會有好的設計呢。牽扯的很多。  回復  更多評論   

          # re: 我們的代碼怎么了??!!!! 2009-04-30 17:50 xzqttt(at)gmail.com

          一般都是設計先行,然后code,但是我遇到的大部分情況都是code開始之后,改變了設計,這個時候什么組重要:重構!!!!!  回復  更多評論   

          # re: 我們的代碼怎么了??!!!! 2009-04-30 20:28 m

          而Spring Hiberante 等優秀的工具,在軟件架構上也應該沒有問題。

          這句話已經表明沒職業素質了。
          基本的懷疑精神的沒有還談什么思想。  回復  更多評論   

          公告

          Locations of visitors to this pageBlogJava
        1. 首頁
        2. 新隨筆
        3. 聯系
        4. 聚合
        5. 管理
        6. <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          統計

          常用鏈接

          留言簿(13)

          隨筆分類(71)

          隨筆檔案(179)

          文章檔案(13)

          新聞分類

          IT人的英語學習網站

          JAVA站點

          優秀個人博客鏈接

          官網學習站點

          生活工作站點

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宜丰县| 娱乐| 康平县| 赤峰市| 沾益县| 贵南县| 惠水县| 襄城县| 垣曲县| 湘阴县| 水富县| 南江县| 乳山市| 如东县| 宁武县| 旬邑县| 柳江县| 伊春市| 龙门县| 尉氏县| 庄浪县| 开化县| 营口市| 隆回县| 泸水县| 盐山县| 铜陵市| 仲巴县| 安国市| 交城县| 扬中市| 安福县| 平江县| 余庆县| 嘉禾县| 灵山县| 景德镇市| 宣恩县| 新乡市| 桂东县| 瑞安市|