• <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è)短信云平臺(tái)可合作;3)目前正在開發(fā)物聯(lián)網(wǎng)、大數(shù)據(jù)平臺(tái)。

            編程思考(三)

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

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

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

            評(píng)論

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

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

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

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

            LZ的(一)(二)都很泛泛而談,說(shuō)實(shí)在的沒(méi)啥意思。這篇終于涉及到對(duì)于實(shí)際情況的討論了。  回復(fù)  更多評(píng)論   

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

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

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

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

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

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

            繼續(xù)補(bǔ)充:開發(fā)人員經(jīng)常出差帶現(xiàn)場(chǎng)改代碼。水平好一點(diǎn)的實(shí)習(xí)生私底下也說(shuō)這程序水平太爛。但是老板說(shuō),這個(gè)程序是公司創(chuàng)業(yè)初期幾個(gè)元老沒(méi)日沒(méi)夜趕出來(lái)的,正因?yàn)橛辛怂静拍芑畹浆F(xiàn)在。。。  回復(fù)  更多評(píng)論   

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

            推倒重來(lái)是好是壞,從來(lái)都不是一個(gè)簡(jiǎn)單的問(wèn)題.

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

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

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

            人生苦短.何必和自己過(guò)不去. 讓自己陷入老項(xiàng)目的泥潭中去呢.

              回復(fù)  更多評(píng)論   

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

            @kula
            老系統(tǒng)的出現(xiàn),就是因?yàn)橹霸撏频骨掖鷥r(jià)不大的時(shí)候沒(méi)推倒  回復(fù)  更多評(píng)論   

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

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

                                                        
            综合久久给合久久狠狠狠97色| 久久精品国产亚洲αv忘忧草 | 99久久夜色精品国产网站| 国产成人精品久久| 日韩一区二区三区视频久久| 热99RE久久精品这里都是精品免费| 国产亚洲精品美女久久久| 久久精品免费网站网| 久久久久亚洲精品无码蜜桃| 久久强奷乱码老熟女网站| 国产情侣久久久久aⅴ免费| 99久久免费国产精品特黄| 色综合久久精品中文字幕首页| 精品国产乱码久久久久软件| 97精品伊人久久久大香线蕉| 无码久久精品国产亚洲Av影片| 久久国产视屏| 成人国内精品久久久久影院VR| 亚洲国产另类久久久精品小说| 色综合久久久久综合99| 66精品综合久久久久久久| 国产麻豆精品久久一二三| 久久WWW免费人成一看片| 久久精品国产亚洲Aⅴ蜜臀色欲 | 精品无码久久久久久久动漫| 97久久久久人妻精品专区 | 午夜精品久久久久| 精品久久久久久无码中文字幕| 久久精品99久久香蕉国产色戒| 国内精品九九久久精品| 国产精品一区二区久久精品涩爱| 久久强奷乱码老熟女| 日本精品久久久久影院日本| 国内精品久久久久久久涩爱| 国产精品99久久久久久宅男| 99久久国产热无码精品免费久久久久| 激情伊人五月天久久综合| 国产精品一久久香蕉国产线看 | 久久久久亚洲AV无码专区网站| 91精品国产91久久综合| 青青国产成人久久91网|