新的起點(diǎn) 新的開始

          快樂生活 !

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


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

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

          評論

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

          問題的關(guān)鍵還是我們的程序員水平不夠,大量不可復(fù)用的代碼造就了一個(gè)不可維護(hù)的系統(tǒng),這樣的系統(tǒng)哪怕是功能都實(shí)現(xiàn)了,我都稱它為垃圾工程。所以現(xiàn)在我招人都特別謹(jǐn)慎,只會(huì)SSH卻不懂設(shè)計(jì)模式的人一定不要。  回復(fù)  更多評論   

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

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

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

          簡單的說就是沒設(shè)計(jì)好就開工了,實(shí)現(xiàn)確定好接口、基類、核心方法、開發(fā)規(guī)范等再怎么做也不會(huì)爛  回復(fù)  更多評論   

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

          從上到下,上邊都沒有好的設(shè)計(jì)分析,全把責(zé)任推脫道下邊,下邊怎么會(huì)有好的設(shè)計(jì)呢。牽扯的很多。  回復(fù)  更多評論   

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

          一般都是設(shè)計(jì)先行,然后code,但是我遇到的大部分情況都是code開始之后,改變了設(shè)計(jì),這個(gè)時(shí)候什么組重要:重構(gòu)!?。。?!  回復(fù)  更多評論   

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

          而Spring Hiberante 等優(yōu)秀的工具,在軟件架構(gòu)上也應(yīng)該沒有問題。

          這句話已經(jīng)表明沒職業(yè)素質(zhì)了。
          基本的懷疑精神的沒有還談什么思想。  回復(fù)  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          公告

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

          統(tǒng)計(jì)

          常用鏈接

          留言簿(13)

          隨筆分類(71)

          隨筆檔案(179)

          文章檔案(13)

          新聞分類

          IT人的英語學(xué)習(xí)網(wǎng)站

          JAVA站點(diǎn)

          優(yōu)秀個(gè)人博客鏈接

          官網(wǎng)學(xué)習(xí)站點(diǎn)

          生活工作站點(diǎn)

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 南岸区| 闸北区| 长海县| 利津县| 环江| 香河县| 克山县| 江山市| 阿拉善盟| 萝北县| 新巴尔虎右旗| 华池县| 崇礼县| 社会| 蓬安县| 阿尔山市| 本溪市| 台南市| 大竹县| 乌拉特后旗| 韩城市| 通城县| 山阳县| 富阳市| 湖南省| 南郑县| 安远县| 常德市| 仁布县| 鲜城| 汽车| 衢州市| 慈溪市| 万载县| 肥城市| 临朐县| 安阳县| 马鞍山市| 周宁县| 张家口市| 兴安盟|