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

2011年10月28日

原文被墻,覺得該文其意不錯,但其所指其實不是很明確,用語生澀啊...
=================================================================
http://calculist.blogspot.com/2007/09/science-and-engineering.html
Science and engineering
從 The Little Calculist 作者:Dave Herman

Joel Spolsky 有一個關于 軟件開發周期的階段 的帖子,該貼出乎意料地結束了我自己的觀察。在Joel看來,第一個階段是藝術(設計階段),第二個階段是工程(構建階段)第三個階段是科學(調試和測試階段).

Joel的興趣是軟件管理和管理工具,但我對于開發工具有更多的興趣。一旦你認出了軟件開發的工程方面和科學方面的分水嶺,你就可以更好地理解開發方法的很多緊張對立,其中的一種對立導致了很多辯論。之所以產生這種不安,是因為基本的不變的不可褻瀆的(更別說神圣的圣潔的虔誠的)工程法則有時候和科學實踐是不一致的。
也就是說:抽象和模塊性是軟件工程的心和肺,法則1,2,3是“局部化關注點,也就是DRY,分離關注點,使關注點正交”。更簡單的說:使用抽象并且不要違反。通過使得一個關注點完全不注意(也就是說:參數化)另一個關注點,你可以最大自由地改變一個關注點而不影響另一個關注點。這是因為(allows for)局部化的原因,依次引發了獨立的開發和維護。訓練有素的開發者創建分層抽象,并且一絲不茍地遵循他們的邊界。

但是當開始調試時發生了什么呢?教條地(Dogmatically)遵循抽象邊界就像戴了一個眼罩;當一個bug第一次出現的時候,你根本不知道它是隱藏在哪個抽象里,還是在層與層的交互之間。另一個思考抽象盒子內部的通常的推論是 沖動地假設這個bug是別人的錯誤。(“一定是編譯器的錯!”) 我想起 Knuth 關于計算機科學的引用:
     這樣的人非常擅長處理不同的法則應用到不同情況下的情形,他們是那些可以快速地改變抽象層次,可以同時觀察很多大的事物和小的細節的人。——引自 Hartmanis 的圖靈獎獲獎感言
我認為這里的描述更多的是在軟件開發的科學面或者也可以說是設計方面的——但不是工程方面的。
因為調試和測試是和觀察和理解一個現有的系統相關的,而不是構建或修改一個系統,我們自己構建的藩籬(譯注:指層次抽象)使得我們的工程原則變成了障礙。調試工具,集成開發環境,測試框架,等等都被一種需要違反抽象邊界的需求而賦予了特色。

結果,干凈和骯臟(就像 Mitch 叫他們的)開始撕咬混戰,他們爭斗的問題是:我們的軟件開發框架 對他們對 FIaI(NtMSHaG)LoE (ML) (譯注:實在不知道怎么翻譯)的堅持 是應該絕對嚴格呢,或是絕對寬松(Smalltalk)? 我不知道通過 構建涵蓋這些不同開發模型的軟件框架,我們是否能夠做的更好。

=================================================================
原文:

Joel Spolsky has a post about the phases of the software development cycle that's remarkably close to my own observations. In Joel's view, the first phase is art (i.e., design phase); the second is engineering (construction); and the third is science (debugging and testing).

Joel's interest is in project management and management tools, but mine is more in development tools. Once you recognize the divide between the engineering and science aspects of software development, you can better understand one of the tensions in the approach to development, a tension which leads to plenty of heated debate. This tension comes about because the Fundamental Immutable and Inviolable (Not to Mention Sacred, Holy, and Good) Laws of Engineering are sometimes at odds with the practice of science.

To wit: abstraction and modularity are the heart and lungs of software engineering. Rules #1 , 2 and 3 are "Localize concerns, i.e. , separate concerns and enforce their orthogonality." More simply: use abstractions and don't violate them. By making one concern completely oblivious to (i.e., parametric in) another, you maximize your freedom to change one without affecting the other. This allows for local reasoning which in turn leads to separable development and maintenance. Disciplined developers create layered abstractions and fastidiously respect their boundaries.

But what happens when you start debugging? Dogmatically adhering to abstraction boundaries is like wearing blinders; when a bug first arises, you never know which abstraction layer it's hiding in, or if it's in the interaction between layers. Another common consequence of thinking inside the abstraction box is impulsively assuming the bug is someone else's fault. ("The compiler must be broken!") I'm reminded of Knuth's quote about computer scientists:
Such people are especially good at dealing with situations where different rules apply in different cases; they are individuals who can rapidly change levels of abstraction, simultaneously seeing things "in the large" and "in the small."
          -- quoted in Hartmanis's
Turing Award lecture
I think this is describing more the science and perhaps also the design aspects--but not the engineering aspect--of software development.

Because debugging and testing are about observing and understanding an existing system, rather than constructing or modifying a system, the barriers we construct to enforce our engineering principles become obstacles. Debugging tools, IDE's, testing frameworks, etc. are all characterized by a need to violate abstraction boundaries.

As a result, the Cleans and Dirties (as Mitch calls them) fight tooth and nail about whether our software development frameworks should be absolutely strict in their adherence to the FIaI(NtMSHaG)LoE (ML) or absolutely lax (Smalltalk). I wonder if we couldn't do better by building software frameworks that were aware of these different modes of development.
posted @ 2011-10-28 15:53 cingoli 閱讀(1880) | 評論 (7)編輯 收藏
僅列出標題  
 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            免费日韩一区二区| 99国产精品自拍| 久久免费少妇高潮久久精品99| 亚洲欧美日韩国产综合精品二区| 国产精品久久久久久亚洲毛片| 欧美精品一区在线| 国产精品亚洲综合天堂夜夜| 亚洲伊人观看| 亚洲人成在线播放| 欧美日本一区| 亚洲四色影视在线观看| 久久久天天操| 亚洲自拍偷拍网址| 一本色道久久综合亚洲精品高清| 亚洲视频香蕉人妖| 亚洲日本电影| 欧美一区二区三区在线看| 亚洲午夜视频| 亚洲国产小视频在线观看| 午夜精品久久久久久久久久久久久 | 欧美大学生性色视频| 欧美在线欧美在线| 亚洲网站在线观看| 亚洲欧美日韩另类| 久久亚洲精品一区| 麻豆精品传媒视频| 欧美精品激情blacked18| 欧美日本一区二区高清播放视频| 欧美第十八页| 美日韩在线观看| 久久性天堂网| 午夜精品理论片| 巨乳诱惑日韩免费av| 国内精品久久久久久| 1024亚洲| 亚洲欧美卡通另类91av| 久久一区国产| 亚洲午夜一区| 欧美激情无毛| 亚洲高清视频的网址| 欧美一区二区视频网站| 亚洲欧美色婷婷| 欧美91视频| 在线播放亚洲| 一区二区三区产品免费精品久久75 | 亚洲国产三级在线| 亚洲欧美日韩在线观看a三区| 欧美本精品男人aⅴ天堂| 亚洲欧美日韩国产综合在线| 欧美一区三区三区高中清蜜桃| 欧美精品在线一区二区| 激情五月婷婷综合| 国内精品久久久久久影视8| 亚洲中字在线| 欧美福利小视频| 亚洲午夜久久久久久久久电影网| 欧美大片免费久久精品三p | 久久综合狠狠综合久久综合88| 欧美日韩在线播放三区| 久久久久九九视频| 国产精品一区在线观看你懂的| 亚洲区一区二| 另类av一区二区| 鲁大师成人一区二区三区| 亚洲一区二区三区视频播放| 欧美视频一区| 久久精品99久久香蕉国产色戒| 午夜国产精品视频免费体验区| 国产欧美日韩不卡免费| 亚洲欧洲精品一区二区三区不卡 | 亚洲一区二区三区在线看| 亚洲第一在线| 久久最新视频| 欧美日韩和欧美的一区二区| 亚洲高清自拍| 午夜精品久久久久久久99黑人| 国产亚洲一级| 在线视频精品一区| 亚洲国产日韩欧美在线图片| 久久免费高清| 亚洲美女电影在线| 牛人盗摄一区二区三区视频| 欧美一级久久| 国产精品一二三| 在线亚洲电影| 欧美一区二区私人影院日本| 国产精品一区二区久久| 亚洲国产精品va在看黑人| 国产亚洲激情| 欧美一区二区视频97| 国产精品户外野外| 亚洲理伦在线| 午夜免费电影一区在线观看| 国产精品老牛| 久久精品国产69国产精品亚洲| 亚洲夫妻自拍| 亚洲巨乳在线| 国产日韩亚洲| 欧美国产日本| 亚洲伊人观看| 亚洲人午夜精品| 老色鬼久久亚洲一区二区| 在线欧美视频| 国产精品视频一二| 久久综合中文色婷婷| 日韩视频专区| 亚洲狼人综合| 日韩午夜在线| 欧美jizzhd精品欧美巨大免费| 日韩午夜精品视频| 国产日产欧产精品推荐色| 欧美成人午夜影院| 久久精品国产亚洲a| 亚洲一区二区三区成人在线视频精品 | 国产精品99免费看 | 国产欧美大片| 欧美日本在线| 欧美裸体一区二区三区| 久久综合久色欧美综合狠狠 | 午夜国产精品视频免费体验区| 一区二区三区欧美| 久久久精品视频成人| 亚洲黄色视屏| 亚洲欧美日本伦理| 亚洲精品视频中文字幕| 日韩视频一区二区在线观看| 亚洲人成在线观看网站高清| 亚洲国产精品www| 亚洲一区二区三区精品在线| 欧美一级夜夜爽| 亚洲经典自拍| 欧美一区二区精品在线| 久久久精品tv| 亚洲高清影视| 亚洲欧美日韩一区二区在线| 久久久久一区| 欧美日韩一区在线观看视频| 国产午夜精品久久久| 一区二区三区在线高清| 在线视频欧美一区| 久久久精品2019中文字幕神马| 亚洲一区图片| 麻豆精品传媒视频| 亚洲国产精品成人| 亚洲伦理在线| 欧美成人第一页| 久久久久久久久久久成人| 欧美日韩国产亚洲一区| 一区二区三区在线视频观看| 久久精品一区二区三区不卡牛牛| 欧美激情 亚洲a∨综合| 亚洲一区成人| 欧美视频在线观看 亚洲欧| 久久综合色综合88| 亚洲国产婷婷香蕉久久久久久| 欧美一区二区高清在线观看| 亚洲日本欧美在线| 亚洲女女女同性video| 91久久精品日日躁夜夜躁国产| 香蕉久久国产| 亚洲欧洲日本在线| 最新国产乱人伦偷精品免费网站| 免费视频一区| 在线中文字幕不卡| 亚洲人成在线播放| 国产精品亚洲激情| 午夜欧美大片免费观看| 国产亚洲精品久久久久久| 久久综合色播五月| 欧美日韩国产一级片| 亚洲欧美日韩专区| 久久午夜羞羞影院免费观看| 亚洲日韩欧美视频| 这里只有精品丝袜| 欧美中文日韩| 亚洲美女毛片| 性欧美大战久久久久久久免费观看 | 国产精品99久久99久久久二8 | 久久久久久免费| 欧美在线观看日本一区| 中国亚洲黄色| 久久视频国产精品免费视频在线| 欧美激情按摩在线| 久久久综合精品| 国产日韩欧美亚洲| 日韩网站在线看片你懂的| 亚洲高清激情| 久久久免费av| 久久久亚洲人| 国产老肥熟一区二区三区| 六月天综合网| 亚洲国产天堂久久综合| 中文久久乱码一区二区| 99热这里只有精品8| 国产精品国产自产拍高清av王其| 久久久久国产免费免费| 亚洲日产国产精品| 欧美体内she精视频| 国产精品99一区二区| 午夜精品福利电影|