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

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>
            欧美性色视频在线| 国产精品第2页| 久久精视频免费在线久久完整在线看| 欧美日韩国产精品一区| 亚洲破处大片| 久久精品91| 欧美一区二区三区男人的天堂| 欧美成人黄色小视频| 国内成人精品视频| 欧美一区二区视频免费观看| 亚洲主播在线| 国产精品毛片一区二区三区 | 日韩写真在线| 欧美成人精品一区二区| 在线成人亚洲| 亚洲激情综合| 销魂美女一区二区三区视频在线| 国产精品日韩电影| 欧美激情免费观看| 猛男gaygay欧美视频| 老司机精品久久| 亚洲观看高清完整版在线观看| 亚洲欧洲精品一区二区三区| 一本大道久久精品懂色aⅴ| 午夜精品999| 99国产精品久久久久久久成人热| 欧美中文日韩| 亚洲国内欧美| 在线午夜精品自拍| 亚洲手机视频| 亚洲国产精品999| 性欧美精品高清| 欧美日韩美女一区二区| 激情伊人五月天久久综合| 亚洲视频在线看| 欧美激情网友自拍| 久久黄金**| 久久精品日产第一区二区三区| 伊人春色精品| 99精品国产在热久久| 国产一区亚洲| 亚洲三级免费| 国产午夜精品麻豆| 欧美色欧美亚洲另类二区| 亚洲国产91色在线| 国产精品v欧美精品∨日韩| 亚洲国产一区二区三区在线播| 欧美一区二区三区视频免费| 亚洲乱码国产乱码精品精98午夜 | 亚洲国产精品成人精品| 99re66热这里只有精品4| 国产一区二区丝袜高跟鞋图片| 亚洲第一福利视频| 国产精品一区二区男女羞羞无遮挡| 久久亚洲精品伦理| 国产精品久久久对白| 免费亚洲一区二区| 国产精品亚洲综合久久| 影音先锋在线一区| 亚洲国产精品va在线看黑人| 亚洲色图在线视频| 欧美性理论片在线观看片免费| 一区二区三区你懂的| 亚洲肉体裸体xxxx137| 欧美激情国产日韩| 一区二区免费在线播放| 日韩视频精品| 国产精品久久久久aaaa樱花| 亚洲在线观看视频| 亚洲欧美在线看| 伊大人香蕉综合8在线视| 欧美二区在线| 欧美极品一区| 欧美一区二区精品| 久久精品视频在线| 亚洲美女尤物影院| 一区二区三区高清| 国内一区二区在线视频观看| 免费高清在线视频一区·| 欧美大成色www永久网站婷| 中国成人在线视频| 欧美一级日韩一级| 欧美日韩精品是欧美日韩精品| 亚洲国产精品久久久久秋霞不卡| 悠悠资源网久久精品| 久久精品123| 久久综合给合久久狠狠狠97色69| 国产视频在线观看一区| 午夜久久99| 久久成人羞羞网站| 国产无一区二区| 欧美一区二区视频免费观看| 欧美在线播放高清精品| 国产欧美一区二区色老头| 亚洲欧美在线免费观看| 久久精品中文| 雨宫琴音一区二区在线| 久久综合一区| 亚洲国产精品成人久久综合一区| 亚洲人成绝费网站色www| 欧美国产日韩一区二区在线观看 | 欧美高清视频在线| 亚洲国产欧美一区| 夜夜嗨av色综合久久久综合网| 欧美精品日韩www.p站| 亚洲久久一区| 午夜精品免费视频| 狠狠爱综合网| 欧美激情中文字幕在线| 亚洲少妇一区| 久久免费视频观看| 亚洲伦理久久| 国产精品美女久久| 久久精品国产第一区二区三区最新章节| 久久亚洲午夜电影| 亚洲美女精品成人在线视频| 欧美视频一区| 久久久99精品免费观看不卡| 亚洲激情成人| 午夜精品视频| 在线日韩中文| 欧美午夜无遮挡| 欧美一区精品| 国产精品午夜av在线| 最新国产精品拍自在线播放| 亚洲一区二区精品视频| 国产伦精品一区二区三区免费 | 欧美高清免费| 亚洲亚洲精品在线观看| 久久这里只精品最新地址| 亚洲精品一区二区三区婷婷月| 国产精品成人一区二区| 久久麻豆一区二区| 99精品国产在热久久下载| 久热国产精品| 亚洲欧美日韩视频二区| 亚洲国产精品久久久久| 国产精品免费视频观看| 欧美成人tv| 欧美在线中文字幕| 一区二区日韩伦理片| 免费在线日韩av| 欧美在线不卡| 亚洲永久免费视频| 亚洲日本电影| 一区在线影院| 国产欧美日韩在线| 欧美日韩在线一区| 欧美成人国产| 久久亚洲精选| 久久精品日产第一区二区| 中文亚洲欧美| 亚洲人成在线播放网站岛国| 久久一日本道色综合久久| 午夜激情综合网| 亚洲一区国产精品| 一区二区免费在线播放| 最新国产乱人伦偷精品免费网站 | 韩国精品在线观看| 国产毛片一区二区| 欧美性猛交视频| 欧美日韩18| 欧美成人综合网站| 性欧美大战久久久久久久久| 亚洲精品在线二区| 男人的天堂成人在线| 欧美专区第一页| 亚洲欧美激情视频| 亚洲一区二区在| 亚洲夜晚福利在线观看| 一区二区三区四区在线| 99re成人精品视频| 日韩西西人体444www| 日韩亚洲精品视频| 亚洲精品一区二区三区av| 亚洲国产精品毛片| 亚洲欧洲日韩综合二区| 亚洲区一区二区三区| 亚洲精品视频在线观看网站| 亚洲国产欧美日韩| 亚洲精选久久| 亚洲视频免费观看| 亚洲欧洲av一区二区三区久久| 亚洲午夜精品一区二区| 亚洲专区欧美专区| 欧美在线视频一区| 亚洲欧美国产一区二区三区| 一区二区成人精品| 欧美国产在线观看| 国产精品第2页| 国产精品99免视看9| 欧美日韩一区在线观看| 欧美日韩国产精品自在自线| 欧美国产免费| 欧美视频导航| 国产伦精品一区二区三区免费| 国产欧美日韩一区二区三区| 国产日韩精品一区二区三区在线| 国产在线拍揄自揄视频不卡99| 在线电影国产精品|