• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            冰果

            技術(shù)群:26678700     
            交流QQ: 704839634
            合作: 1) 可兼職遠(yuǎn)程辦公開發(fā); 2) 有一套Go+Python開發(fā)的行業(yè)短信云平臺可合作;3)目前正在開發(fā)物聯(lián)網(wǎng)、大數(shù)據(jù)平臺。

            編程思考(三)

                                          兩條路
                   新開發(fā)一個系統(tǒng),和維護(hù)一個比較大的老系統(tǒng),那個比較舒服?
                   不工作就拿錢是最舒服的,我不講這個不現(xiàn)實的;在一個老系統(tǒng)上做二次開發(fā),常常更痛苦,所以常見一些人推翻重來。
                   推翻重來的理由是,所花時間更少;但這些人從來都不考慮風(fēng)險,如果你理解錯老的業(yè)務(wù)流程,帶來的可能是新的大問題。
                   推翻重來,體現(xiàn)出一個程序員的重構(gòu)水平,他沒法控制別人的代碼了,也可能體現(xiàn)這個人跟人交流問題。
                   我常常反對推翻重來,除非萬不得已,因為凡事都有例外。
                   所以,當(dāng)往一個比較大的老系統(tǒng),添加一些新功能時,出現(xiàn)兩條路,出現(xiàn)兩類程序員。

                   那么,如果堵住推翻重來這條路,逼迫我們面對老系統(tǒng),情況又怎么樣?
                   5年以上的系統(tǒng),多多少少總形成基本工具庫和業(yè)務(wù)工具庫,如果公司不逼迫新來同事去學(xué)習(xí)去使用的話,又形成兩條路。
                   一類人是只管寫自己的新代碼,要一個工具類或函數(shù),書上或系統(tǒng)api(如c標(biāo)準(zhǔn)庫\stl\boost\ java jdk等等)不能滿足他的話,他就要重新造輪子了,他絕對不看已有代碼里是否已經(jīng)實現(xiàn)或類似實現(xiàn)。他對comm\util\commutil等等從名字都可以看出的目錄或包,視而不見。
                   另一類人,他們很勤奮,常常看看周圍是否有可利用的資源,能利用則利用,他們?nèi)プx周圍的代碼,了解已有業(yè)務(wù)流程,一年半載后,對系統(tǒng)越來越熟悉。
                   一年半載后,誰速度快,誰更輕松,誰理解業(yè)務(wù)更深刻,誰重構(gòu)更快更好?
                   結(jié)果不言自明。
                   有因必有果,有果必有因。

            posted on 2010-10-29 13:03 冰果 閱讀(1939) 評論(8)  編輯 收藏 引用 所屬分類: 其它

            評論

            # re: 編程思考(三) 2010-10-29 14:33 溪流

            如果涉及到的新功能已經(jīng)觸及到老系統(tǒng)的根基了,何不趁機(jī)重來呢?如果每次都能適時地實行重構(gòu),不過多老的系統(tǒng),看上去都可以很清爽。

            不過lz后半段里的第一類人倒是很常見,呵呵,沒辦法。不過這算什么輪子?請別玷污輪子一詞~~~這只是無聊的重復(fù)而已。不過另一類人也不見得多么明智。如果是對于充滿“輪子”的5年以上的老系統(tǒng),熟悉了又如何?浪費(fèi)生命而已。這種情況下還不如第一類人。  回復(fù)  更多評論   

            # re: 編程思考(三) 2010-10-29 14:36 溪流

            LZ的(一)(二)都很泛泛而談,說實在的沒啥意思。這篇終于涉及到對于實際情況的討論了。  回復(fù)  更多評論   

            # re: 編程思考(三) 2010-10-29 15:56 天下

            要看程序員們等其他人的意見.

            維護(hù)及重構(gòu)都不是一個人的事.
              回復(fù)  更多評論   

            # re: 編程思考(三) 2010-10-29 19:52 nomagic

            有時候情況可能更糟糕,我碰到過的情況是:要維護(hù)的老系統(tǒng)異常龐大,它是公司盈利的核心產(chǎn)品,但是設(shè)計水平和代碼水平都很糟糕,充滿bug,非常脆弱。為了保證系統(tǒng)大多數(shù)時候可用,到處使用sleep(1)這樣的代碼來保證線程之間上下文邏輯的正確性,甚至加入了定時重啟服務(wù)程序的邏輯。另外,經(jīng)常招一些實習(xí)生來繼續(xù)堆砌代碼。開發(fā)新的功能總是匆匆忙忙,做過最簡單的測試就認(rèn)為功能可用了,除非用戶提出,否則根本不考慮性能、安全性、易用性等等問題。文檔與代碼中的實際邏輯相差較大。因為系統(tǒng)龐大,且勉強(qiáng)可用,所以公司領(lǐng)導(dǎo)不考慮重寫。。。。這種系統(tǒng)讓人絕望,只能跳槽!  回復(fù)  更多評論   

            # re: 編程思考(三) 2010-10-29 19:56 nomagic

            繼續(xù)補(bǔ)充:開發(fā)人員經(jīng)常出差帶現(xiàn)場改代碼。水平好一點的實習(xí)生私底下也說這程序水平太爛。但是老板說,這個程序是公司創(chuàng)業(yè)初期幾個元老沒日沒夜趕出來的,正因為有了它,公司才能活到現(xiàn)在。。。  回復(fù)  更多評論   

            # re: 編程思考(三) 2010-10-30 18:56 kula

            推倒重來是好是壞,從來都不是一個簡單的問題.

            老系統(tǒng)歸根接底, 存在了太多的技術(shù)欠債.我曾經(jīng)維護(hù)過的一個系統(tǒng),30萬行c源代碼.代碼之間交叉引用的關(guān)系錯綜復(fù)雜.有將近6年的歷史.隨著公司老員工的離去.沒有人能夠理解代碼表達(dá)什么含義.每每遇到一個bug.大家都要集體開會.討論這個代碼應(yīng)該如何改.怎樣對一個代碼做出修改而不至于引發(fā)更多的bug.整個開發(fā)過程類似于抽積木的游戲.大家都在費(fèi)盡心力的抽積木. 想增加新功能變成了一件遙不可及的事情.業(yè)務(wù)部門天天抱怨.認(rèn)為技術(shù)部門只是故意找借口推脫. 士氣陷入低落. 產(chǎn)品在市場上也缺乏競爭力. 我最后也離開了這家公司.

            當(dāng)時我的選擇也有兩種,第一,是苦心讀源碼,花個一年半載的時間理解業(yè)務(wù)問題.第二種是推到重來.

            但我的考慮是..人生多么寶貴..干嘛要花時間在一件不能給我?guī)硖嗍找娴氖虑樯? 有這一年半載的時間做什么不成.于是我向領(lǐng)導(dǎo)提出了建議.推倒重來,按照我的理解重構(gòu)系統(tǒng). 結(jié)果也毫不猶豫的被否決了. 于是我做出了第三種選擇. 離職走人. 找到了一家更適合我的.能學(xué)到更多東西的公司.

            人生苦短.何必和自己過不去. 讓自己陷入老項目的泥潭中去呢.

              回復(fù)  更多評論   

            # re: 編程思考(三) 2010-10-30 20:45 溪流

            @kula
            老系統(tǒng)的出現(xiàn),就是因為之前該推倒且代價不大的時候沒推倒  回復(fù)  更多評論   

            # re: 編程思考(三)[未登錄] 2010-11-26 16:20 123

            該重構(gòu)就要重構(gòu),這個不好一概而論對錯。那么多重構(gòu)書,不是教人無聊找事的。
            關(guān)鍵是,你們上面提到那些案例,老板都摻和進(jìn)來了,只能用【震驚】來形容,當(dāng)然,老板本身懂的除外。
            不了解現(xiàn)有代碼的基礎(chǔ)上,不是重構(gòu)而是重做,心態(tài)問題  回復(fù)  更多評論   

                                                        
            狠狠综合久久综合88亚洲| 久久99精品久久久久久hb无码| 女人香蕉久久**毛片精品| 99久久国语露脸精品国产| 国产高清国内精品福利99久久| 久久一区二区免费播放| 国产精品99久久久精品无码| 久久SE精品一区二区| 亚洲国产精品久久久久| 无码国内精品久久综合88| 亚洲伊人久久大香线蕉苏妲己| 亚洲另类欧美综合久久图片区| 久久人爽人人爽人人片AV| 久久成人国产精品一区二区| 伊人久久无码中文字幕| 婷婷久久综合九色综合九七| 国产69精品久久久久777| 久久婷婷五月综合成人D啪| 伊人久久综在合线亚洲2019 | 久久99精品国产麻豆| 久久久久国产成人精品亚洲午夜| 日韩AV无码久久一区二区| 久久久久综合国产欧美一区二区| 久久夜色精品国产网站| 精品久久久久久中文字幕大豆网| 久久精品?ⅴ无码中文字幕| 丰满少妇人妻久久久久久| 亚洲精品无码久久久久去q| 婷婷久久精品国产| 久久久久人妻一区精品 | 老司机午夜网站国内精品久久久久久久久| 亚洲色大成网站WWW久久九九| 一级女性全黄久久生活片免费 | 欧美久久久久久午夜精品| 久久香蕉国产线看观看乱码| 中文字幕乱码人妻无码久久| 久久人与动人物a级毛片| 国产亚洲精品久久久久秋霞| 久久精品日日躁夜夜躁欧美| 久久久久久精品无码人妻| 亚洲欧美日韩中文久久|