青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

coreBugZJ

此 blog 已棄。

每個程序員都必須遵守的編程原則 (轉)

  本文是從"The Principles of Good Programming"這篇文章翻譯而來。  


  好的編程原則跟好的系統設計原則和技術實施原則有著密切的聯系。下面的這些編程原則在過去的這些年里讓我成為了一名優秀的程序員,我相信,這些原則對任何一個開發人員來說,都能讓他的編程能力大幅度的提高,能讓他開發出可維護性更強、缺陷更少的程序。


  我不要自我重復
這也許是在編程開發這最最基本的一個信條,就是要告訴你不要出現重復的代碼。我們很多的編程結構之所以存在,就是為了幫助我們消除重復(例如,循環語句,函數,類,等等)。一旦程序里開始有重復現象的出現(例如很長的表達式、一大堆的語句,但都是為了表達相同的概念),你就需要對代碼進行一次新的提煉,抽象。
  http://en.wikipedia.org/wiki/Don%27t_repeat_yourself


  提煉原則
跟不要自我重復原則相關,這一原則是說程序中任何一段具有功能性的代碼在源代碼文件中應該唯一的存在。
  http://en.wikipedia.org/wiki/Abstraction_principle_(programming)


  保持簡單
簡單化(避免復雜)永遠都應該是你的頭等目標。簡單的程序讓你寫起來容易,產生的bug更少,更容易維護修改。
  http://en.wikipedia.org/wiki/KISS_principle


  不要開發你目前用不到的功能
除非你真正需要用到它,否則不要輕易加上那些亂七八糟用不到的功能。
  http://en.wikipedia.org/wiki/YAGNI


  用最簡單的方法讓程序跑起來
在開發時有個非常好的問題你需要問問自己,怎樣才能最簡單的讓程序跑起來?這能幫助我們在設計時讓程序保持簡單。
  http://c2.com/xp/DoTheSimplestThingThatCouldPossiblyWork.html


  不要讓我動腦子
這實際上是Steve Krug 關于web界面操作的一本書的書名,但也適用于編程。主旨是,程序代碼應該讓人們花最小的努力就能讀懂和理解。如果一段程序對于閱讀者來說需要花費太多的努力才能理解,那它很可能需要進一步簡化。
  http://www.sensible.com/dmmt.html


  開放/封閉原則
程序里的實體項(類,模塊,函數等)應該對擴展行為開放,對修改行為關閉。換句話說,不要寫允許別人修改的類,應該寫能讓人們擴展的類。
  http://en.wikipedia.org/wiki/Open_Closed_Principle


  為維護者寫程序
任何值得你編寫的程序在將來都是值得你去維護的,也許由你維護,也許由他人。在將來,當你不得不維護這些程序時,你對這些代碼的記憶會基本上跟一個陌生人一樣,所以,你最好還是當成一直在給別人寫程序。一個有助于你記住這個原則的辦法是寫程序時時刻記著,這個將來要維護你寫的程序的人是一個有嚴重暴力傾向,并且知道你住在哪里的精神變態者。
  http://c2.com/cgi/wiki?CodeForTheMaintainer


  最少意外原則
最少意外原則通常是使用在用戶界面設計上,但這個原則同樣適用于編寫程序。程序代碼應盡可能的不要讓閱讀者感到意外。也就是說應該遵循編碼規范和常見習慣,按照公認的習慣方式進行組織和命名,不符常規的編程動作應該盡可能的避免。
  http://en.wikipedia.org/wiki/Principle_of_least_astonishment


  單一職責原則
一個代碼組件(例如類或函數)應該只執行單一的預設的任務。
  http://en.wikipedia.org/wiki/Single_responsibility_principle


  最小化耦合關系
一個代碼片段(代碼塊,函數,類等)應該最小化它對其它代碼的依賴。這個目標通過盡可能少的使用共享變量來實現。低耦合是一個計算機系統結構合理、設計優秀的標志,把它與高聚合特征聯合起來,會對可讀性和可維護性等重要目標的實現具有重要的意義。
  http://en.wikipedia.org/wiki/Coupling_(computer_programming)


  最大化內聚性
具有相似功能的代碼應該放在同一個代碼組件里。
  http://en.wikipedia.org/wiki/Cohesion_(computer_science)


  隱藏實現細節
隱藏實現細節能最小化你在修改程序組件時產生的對那些使用這個組件的其它程序模塊的影響。
  http://en.wikipedia.org/wiki/Information_Hiding


  笛米特法則(Law of Demeter)
程序組件應該只跟它的直系親屬有關系(例如繼承類,內包含的對象,通過參數入口傳入的對象等。)
  http://en.wikipedia.org/wiki/Law_of_Demeter


  避免過早優化
只有當你的程序沒有其它問題,只是比你預期的要慢時,你才能去考慮優化工作。只有當其它工作都做完后,你才能考慮優化問題,而且你只應該依據經驗做法來優化。對于小幅度的性能改進都不該考慮,要優化就應該是97%的性能提升:過早優化是一切罪惡的根源Donald Knuth。
  http://en.wikipedia.org/wiki/Program_optimization


  代碼復用
這不是非常核心的原則,但它跟其它原則一樣非常有價值。代碼復用能提高程序的可靠性,節省你的開發時間。
  http://en.wikipedia.org/wiki/Code_reuse


  職責分離
不同領域的功能應該由完全不同的代碼模塊來管理,盡量減少這樣的模塊之間的重疊。

  http://en.wikipedia.org/wiki/Separation_of_concerns


  擁抱變化
這是Kent Beck的一本書的副標題,它也是極限編程和敏捷開發方法的基本信條之一。很多的其它原則都基于此觀念:面對變化,歡迎變化。事實上,一些經典的軟件工程原則,例如最小化耦合,就是為了讓程序更容易面對變化。不論你是否采用了極限編程方法,這個原則對你的程序開發都有重要意義。

posted on 2011-08-19 11:28 coreBugZJ 閱讀(164) 評論(0)  編輯 收藏 引用 所屬分類: Software

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲电影中文字幕| 久久精品水蜜桃av综合天堂| 欧美专区在线观看一区| 亚洲国产精品va在线观看黑人| 一本色道88久久加勒比精品| 欧美大尺度在线| 在线观看欧美成人| 欧美高清在线视频观看不卡| 久久精品综合网| 亚洲国产网站| 亚洲精品网站在线播放gif| 国产精品v欧美精品∨日韩| 亚洲午夜精品网| 性欧美xxxx大乳国产app| 国产亚洲欧美日韩一区二区| 麻豆成人精品| 欧美片网站免费| 欧美一区二区三区视频免费| 欧美一区在线看| 99在线精品免费视频九九视| 亚洲女人天堂av| 亚洲国产欧美在线| 亚洲已满18点击进入久久| 激情小说亚洲一区| 亚洲一区二区欧美日韩| 美日韩丰满少妇在线观看| 欧美经典一区二区三区| 亚洲一区二区三区在线观看视频| 亚洲综合成人在线| 99精品欧美一区| 久久久久久久成人| 欧美一级理论片| 欧美性猛交视频| 亚洲精品美女免费| 99国产欧美久久久精品| 久久亚洲一区二区| 国产精品区免费视频| 亚洲伦伦在线| 亚洲精品免费在线观看| 久久精品国产成人| 久久蜜桃精品| 曰韩精品一区二区| 久久婷婷成人综合色| 久久久亚洲一区| 久久gogo国模裸体人体| 亚洲欧美中文日韩在线| 国产女主播一区二区| 久久久精品日韩| 亚洲激情国产精品| 一本一道久久综合狠狠老精东影业| 欧美大片一区二区| 亚洲网站啪啪| 美女视频黄a大片欧美| 亚洲精品一区在线| 国产精品美女| 久久久国产一区二区三区| 亚洲人成艺术| 久久精品中文字幕免费mv| 亚洲品质自拍| 欧美日韩在线精品| 久久黄色影院| 亚洲麻豆av| 久久网站热最新地址| 激情欧美丁香| 国产精品老牛| 欧美华人在线视频| 先锋影音网一区二区| 亚洲欧洲精品一区二区| 欧美一区1区三区3区公司| 亚洲国产日韩欧美在线动漫| 国产精品免费一区二区三区在线观看| 久久国产99| 亚洲欧美中文日韩在线| 亚洲精品在线免费| 欧美黄色网络| 欧美性猛交xxxx免费看久久久 | 国产午夜精品久久久久久久| 欧美精品粉嫩高潮一区二区| 先锋影院在线亚洲| 在线观看日产精品| 国产一区二区三区免费不卡 | 国产精品久久久久7777婷婷| 欧美激情视频一区二区三区不卡| 久久精品72免费观看| 亚洲欧美日韩国产另类专区| 亚洲视频在线一区| 午夜视频在线观看一区二区三区 | 欧美日韩国产欧美日美国产精品| 玖玖玖国产精品| 欧美国产一区二区| 国产精品国产三级国产| 国产精品老牛| 一区二区三区在线看| 亚洲国产老妈| 亚洲男人的天堂在线aⅴ视频| 欧美伊人精品成人久久综合97| 久久精品一区二区国产| 欧美激情a∨在线视频播放| 亚洲激情国产| 欧美在线观看视频一区二区三区| 久久亚裔精品欧美| 欧美三级网址| 亚洲欧洲精品一区二区三区不卡 | 亚洲国产精品黑人久久久| 欧美日韩免费看| 合欧美一区二区三区| 999在线观看精品免费不卡网站| 欧美一区二区国产| 亚洲日韩成人| 欧美一区二区三区四区在线| 午夜精品久久久久久久白皮肤| 麻豆亚洲精品| 一区二区日韩| 久久成人在线| 欧美日韩另类综合| 亚洲视频精选在线| 另类成人小视频在线| 亚洲欧美成人综合| 欧美高清在线视频观看不卡| 久久久久久久久久码影片| 欧美裸体一区二区三区| 久久综合婷婷| 国产欧美日韩亚洲一区二区三区| 欧美激情精品久久久六区热门 | 国产精品视频你懂的| 亚洲福利国产精品| 激情久久综艺| 久久精品国产清自在天天线| 亚洲欧美精品一区| 国产精品二区三区四区| 亚洲精品欧美在线| 亚洲乱码久久| 欧美精品成人91久久久久久久| 老牛影视一区二区三区| 国产一区美女| 久久午夜精品一区二区| 欧美jizzhd精品欧美巨大免费| 红桃视频国产精品| 猛干欧美女孩| 亚洲伦理在线| 欧美一级视频| 红桃视频一区| 欧美女同在线视频| 亚洲一区二区三区国产| 久久久777| 亚洲精品一区二区三| 欧美三级视频在线播放| 欧美亚洲免费| 亚洲电影av| 欧美在线一级va免费观看| 激情欧美一区二区| 欧美视频免费在线| 久久亚洲精品视频| 亚洲乱码精品一二三四区日韩在线| 欧美日韩国产小视频在线观看| 国产精品99久久久久久www| 欧美日韩在线观看一区二区三区| 欧美成人中文| 久久精视频免费在线久久完整在线看| 在线日韩欧美视频| 国产欧美日韩| 欧美午夜精品理论片a级大开眼界| 欧美在线观看网站| 亚洲天堂成人在线视频| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产精品一二三| 久久久噜噜噜久噜久久| 在线午夜精品| 99精品欧美一区二区三区综合在线| 欧美一级二区| 亚洲专区在线视频| 亚洲三级免费电影| 极品日韩av| 一区二区三区在线视频免费观看| 欧美人与禽猛交乱配| 欧美 日韩 国产一区二区在线视频 | 久久蜜桃av一区精品变态类天堂| 99精品久久免费看蜜臀剧情介绍| 欧美成人精品激情在线观看| 久久久久久网址| 久久久女女女女999久久| 欧美中文字幕视频在线观看| 午夜在线不卡| 久久久久久久网| 牛牛国产精品| 亚洲欧洲美洲综合色网| 日韩视频在线一区二区三区| 亚洲人久久久| 亚洲伦理网站| 亚洲欧美精品suv| 亚洲综合好骚| 久久噜噜亚洲综合| 你懂的亚洲视频| 1769国内精品视频在线播放| 国产精品久久久久久久久久久久久久| 欧美日韩综合视频| 国产精品入口尤物| 亚洲国产精品久久久久婷婷884| 日韩亚洲欧美一区二区三区| 亚洲午夜日本在线观看|