• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 如何開發不可維護的軟件?(2)

    發表于:2014-02-12來源:酷勤網作者:不詳點擊數: 標簽:維護
    程序員可以與簡潔性和優雅作斗爭,然后反過頭構建精心制作的巴洛克式的構建和部署環境。這是一項不受控制的事,程序員可以在不面對客戶的情況下,

      程序員可以與簡潔性和優雅作斗爭,然后反過頭構建精心制作的巴洛克式的構建和部署環境。這是一項不受控制的事,程序員可以在不面對客戶的情況下,或者項目經理不審查或者不理解的情況下完成,所以很容易失控。當你把八種不同的工具用不同的腳本語言鏈接起來時,記得不要寫文檔。

      不要設置測試/分段平臺

      修改產品系統是很令人興奮地事。不要費勁巴拉的搭建測試/分段平臺,相反要保留秘密登錄入口和后門URL,以測試新的特性。把測試數據和真正的數據混合起來放到數據庫中,

      既然你不使用版本控制軟件,保存軟件舊版本的副本,以防萬一。不要把日志信息插入到代碼中。在測試過程中,不要禁止傳出電子郵件,信用卡授權信息等等。

      從頭編寫所有模塊

      不要費勁巴拉使用像Django、Rails或者CakePHP一樣很容易理解的框架,你可以自己寫一個更好的模板引擎,ORM,排序或者哈希算法。每當我看到代碼中諸如”比已有字典算法要快“或者”替換了PHP庫函數,因為那些函數參數順序太爛了“的注釋時,我都忍不住的想弄死自己。

      增加對特殊版本的庫和資源的依賴

      盡可能的加入第三方代碼,在你需要時鏈接盡可能多的共享庫。我曾經見過依賴于很大的外部庫文件只為了使用其中一個函數的代碼。修改第三方庫文件源代碼,這樣就可以保證在有新版本出現時,那些第三方庫就不會自動更新,但不要把你修改的版本置于版本控制中,我會用diff命令比對你的版本和最原始版本,并發現其中不同的。

      ……但是不要保護或者編寫依賴性說明文檔

      因為更新和升級錯誤給我打緊急電話的,是所有工作電話中最多的。一個看似無害的WordPress升級,Linux包更新,或者新的jQuery發布將會引發一系列的錯誤。不要讓你的代碼自動檢查特定版本或者你修改的外部資源副本或者第三方庫文件,甚至不要添加注釋以提醒你自己。

      使用一坨不同的編程語言,跟上潮流

      每天HackerNews和Reddit都會對一些新又酷的編程語言唧唧歪歪,在你為客戶編寫軟件時就可以試用那些語言。任何牛逼的程序員都應該瞬間學會一門編程語言,所以如果繼續承接你代碼的程序員是個菜鳥那不是你的問題。不同語言的邊界、不兼容的API和數據格式、不同服務器配置需要等,都是很有意思的挑戰,把這些貼到SackOverflow秀一下也是怪牛逼的。我確實看到過PHP網頁中嵌入Ruby代碼,因為每個人都知道PHP爛透了而Ruby好太多。半生不熟的項目,中止的Rails和Node.js項目,尤其是NoSQL解決方案(這個伸縮性更強)都是我的菜。

      編程建議:

      你的代碼是否是完美面向對象并閃閃發光的,這沒什么鳥用。當程序員不得不維護一個遺留系統時,他們幾乎總是看到意大利面條式的代碼。我很擅長使用diff、grep和ctags等工具追蹤代碼、重構、調試,我終究會搞明白你的代碼。如果不使用版本控制軟件、代碼有太多依賴和定制、沒有測試/分層平臺,那些最漂亮優雅的代碼依然非常難搞。這就像在滿是囤積物的房子里,找一個裝飾漂亮、干凈的房間一樣,就算找到了,有啥鳥意思?

    原文轉自:http://www.kuqin.com/shuoit/20131025/335874.html

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>