中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 業(yè)界動態(tài) > 其它信息 > 好代碼不值錢
免費:OPhone主題設計大賽宣講會 回到列表 兩個程序員的故事
 好代碼不值錢

作者:外刊IT評論 時間: 2011-03-27 文檔類型:翻譯 來自:外刊IT評論

長久以來我一直主張:好代碼是廉價的代碼。

當我跟做開發(fā)的同事說出這話時,他們的第一反應是一種驚愕,然后是將近一個星期的嘲笑,把它當作一個笑話來講。當他們走近看我的表情、知道我是認真的時,才收斂一點。

當最初的驚愕消退后,他們會用一些這樣的話來反駁:“好代碼不廉價,好代碼是采用經(jīng)過數(shù)十年計算機科學研究和積累得出的最佳實踐設計模式和方法論建立起來的精心制作的程序代碼。”
我只好繼續(xù)解釋為什么他們給出的好代碼的定義有問題的原因是(這是很多開發(fā)人員都忽視了的一個原因):知曉各種設計模式,框架,技術技巧只是事情的一方面,而知道何時該、何時不該應用他們才是更重要的問題。在不知道一種技巧方式如何能對系統(tǒng)的開發(fā)有幫助的情況下,這種模式方法極有可能成為一種開發(fā)的阻礙,而不是一種有益的幫助。

我還要解釋說,我所說的“廉價的代碼”是指這些代碼只需要很少的人/天數(shù)就能開發(fā)出來,并不是說是由沒有經(jīng)驗的開發(fā)人員、在很少的工資報酬下、用6個月封閉式、只有烤白薯和豆腐湯可吃的環(huán)境中開發(fā)出來的東西。

但是 … 設計模式畢竟是個好東西 … 不是嗎?
當然,但它們好在哪里?它們能提供什么好處?

  • 容易維護
  • 產(chǎn)品更健壯
  • 容易理解
  • 易于日后的改進提高
  • 更好的可跟蹤性

你會發(fā)現(xiàn)所有的這些最終都落到一點上:從長期的角度看,它們能讓你更快的做事情。這事情有可能是系統(tǒng)遷移,或是增加一個新功能,不論是什么,通過運用這些方法模式,你會在時間效率上獲得實實在在的好處。

這么說,我們觀點一致嗎?

怎么說呢,讓我給你們說個例子,我們看看實現(xiàn)它的幾種方式。

系統(tǒng)

用PHP創(chuàng)建一個發(fā)郵件的表單,表單里有幾個表單項,用郵件把這些數(shù)據(jù)發(fā)送給某個人。除此之外,表單里的內(nèi)容還要存入MySQL數(shù)據(jù)庫里。

現(xiàn)在,用什么方式實現(xiàn)它們最好?按照傳統(tǒng)的說法,采用最好的實踐設計模式,你可能會想到這些:

  • MVC
  • N-層設計,包括數(shù)據(jù)庫抽象層
  • 對象關系映射(ORM)
  • 可能用到的框架
  • XML配置和相關模型
  • 等等.

我可以說,這簡直是瘋了,客戶的這些需求完全可以用10幾行代碼、一個小時里(包括測試時間)完成,而且所有的那些方法模式所希望達到的效果(諸如可讀性,可移植性,穩(wěn)定性)都有了。如果使用上面列出的那些,反而真正的會達不到這個目標,使代碼復雜化,難于理解和維護修改。

那現(xiàn)在,假設客戶又來了,要求做一些改動,比如要增加一個管理員的界面。這樣的話,你就勝利了,你已經(jīng)實現(xiàn)了很多很有用處的東西;然而這是因為你在第一次開發(fā)這個系統(tǒng)時付出了很大的代價。我要向你聲明的是,即使我現(xiàn)在把這些簡單的代碼進行重構,增加一些簡單的業(yè)務層,也仍然比按你要求的那種過度技術化的初始實現(xiàn)方案要簡單的多。

再說了,如果客戶要求的只是在表單里增加一個屬性,那你的N-層設計方案會讓你痛苦不堪,因為你需要改動各個層,包括那些CRUD代碼。

SCRUM

我發(fā)現(xiàn)Scrum能吸引我的最大一個原因是它能迫使你敏捷開發(fā);它能迫使你在每個Sprint結束的時候把東西都實現(xiàn)、發(fā)布。它不會讓你做出目前用不到的多余的東西;它不會允許你在實現(xiàn)東西上有任何所謂“正確方式”的奢侈行為。

相反,在你需要的時候你才去重構。當然,這會有一定的風險,因為在實現(xiàn)某些功能上你會花去比當初已經(jīng)做了一些基礎工作的情況下要更長的時間。然而,產(chǎn)品開發(fā)就像是一個沙漠中四處漂移的沙丘,你永遠不可能準確的知道一個產(chǎn)品在將來會做如何的改動。所有的你花在實現(xiàn)這些很有吸引力的各種模式上的時間很可能會成為一種完全的浪費。

復用性

有些人會指出,我所說的方式產(chǎn)生的代碼不具有太多的復用性,不能在新開發(fā)的一些其它系統(tǒng)中使用。我對這個問題的回復就是,在根本不知道某些東西是否/如何/在哪將會被復用的情況下去設計一個可復用的東西,這就跟去實現(xiàn)一些你根本用不到的功能或你的應用里跟本用不到的功能一樣愚蠢而糟糕。如果你有一個清楚的遠見,知道什么地方會復用這些東西,這就不同了,因為你確實有一個內(nèi)部的業(yè)務需求在指導你正確的開發(fā)方向。

我的最后的思考 …

  • 了解你的設計模式,知道它們各自的好處(我一直認為,好的程序員和偉大的程序員之間的區(qū)別就在于偉大的程序員理解他們的模式);
  • 讓你的代碼廉價:
    • 當模式能夠給你帶來好處,而且為你省時時才去使用它們;
    • 如果不是這樣就不要使用它們(例如:想想你最近的一次為什么要把系統(tǒng)遷移到一個不同的數(shù)據(jù)庫上?);
    • 當框架能夠幫你提高開發(fā)速度時才使用它們;
  • 在必要的時候重構,不要做一些超前性的開發(fā);

我想,如果你能按照這些指導原則做事,你會發(fā)現(xiàn)開發(fā)周期變短、實現(xiàn)的代碼更簡潔,易于調(diào)試,易于維護修改。

原文:http://www.aqee.net/2011/03/16/good-code-is-cheap-code/

本文鏈接:http://m.95time.cn/news/other/2011/8367.asp 

出處:外刊IT評論
責任編輯:bluehearts

作者文章
兩個程序員的故事
有多少開發(fā)人員是超過四十的?
創(chuàng)業(yè)該怎樣開始
關鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設計比賽 網(wǎng)頁制作 web標準 用戶體驗 UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點最新 站點最新列表
周大!熬•自然”設計大賽開啟
國際體驗設計大會7月將在京舉行
中國國防科技信息中心標志征集
云計算如何讓安全問題可控
云計算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機會
阿里行云
云手機年終巨獻,送禮標配299起
阿里巴巴CTO王堅的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機主題設計大賽
欄目最新 欄目最新列表
《YoungNWP》第3期發(fā)布
奧斯卡大師亞洲巡講火熱報名中
Internet Explorer 9 平臺預覽版4
國內(nèi)最大規(guī)模web前端技術聚會深圳站
綠色IT--云計算真的環(huán)保嗎?
妙手回春:網(wǎng)站可用性測試及優(yōu)化指南
Phpcms 2010模板大賽火熱開賽
水晶石技法西安特訓營系列報道
插畫中國56期插畫培訓火爆招生中
喬家大院里的女人與Photoshop創(chuàng)意設計

藍色理想版權申明:除部分特別聲明不要轉載,或者授權我站獨家播發(fā)的文章外,大家可以自由轉載我站點的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權歸我站和作者共有。

轉載要求:轉載之圖片、文件,鏈接請不要盜鏈到本站,且不準打上各自站點的水印,亦不能抹去我站點水印。

特別注意:本站所提供的攝影照片,插畫,設計作品,如需使用,請與原作者聯(lián)系,版權歸原作者所有,文章若有侵犯作者版權,請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯誤,請用報告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關的廣告鏈接,違者封ID
請您注意:
·不良評論請用報告管理員,以利管理員及時刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項有關法律法規(guī)
·承擔一切因您的行為而直接或間接導致的民事或刑事法律責任
·本站評論管理人員有權保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權在網(wǎng)站內(nèi)轉載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報告錯誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設計之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設計》
犀利開發(fā)—jQuery內(nèi)核詳解與實踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2