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

原文被墻,覺得該文其意不錯,但其所指其實不是很明確,用語生澀啊...
=================================================================
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 on 2011-10-28 15:53 cingoli 閱讀(1880) 評論(7)  編輯 收藏 引用
Comments
 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲私人影院在线观看| 亚洲专区免费| 欧美日韩成人在线观看| 久久综合狠狠综合久久综合88| 午夜精品亚洲| 欧美在线影院在线视频| 久久久久久香蕉网| 蜜桃av一区二区三区| 欧美成人a视频| 欧美激情在线免费观看| 欧美日韩一卡二卡| 国产日韩av一区二区| 亚洲成色www8888| 亚洲一区二区三区四区视频| 性刺激综合网| 欧美a级大片| 日韩视频二区| 欧美一区二区三区啪啪| 欧美 日韩 国产精品免费观看| 欧美成人在线免费视频| 国产精品专区第二| 亚洲欧洲日夜超级视频| 午夜久久久久久| 亚洲第一区色| 一本久久综合亚洲鲁鲁五月天| 久久av一区二区三区漫画| 久久国产精品99精品国产| 伊人影院久久| 亚洲四色影视在线观看| 久久久噜噜噜久噜久久| 亚洲精选在线| 久久一日本道色综合久久| 欧美视频在线观看免费网址| 好吊一区二区三区| 亚洲午夜羞羞片| 欧美电影打屁股sp| 欧美一级理论性理论a| 欧美福利视频一区| 好吊日精品视频| 欧美一区二区三区精品| 亚洲人线精品午夜| 久久青草久久| 永久域名在线精品| 久久精品夜色噜噜亚洲a∨ | 欧美一区二区三区在| 欧美成人免费播放| 在线观看日韩| 久久国产婷婷国产香蕉| 亚洲午夜激情免费视频| 欧美精品成人一区二区在线观看 | 亚洲理论电影网| 久久影院午夜论| 亚洲一区中文| 国产精品看片你懂得| 日韩视频在线一区| 欧美福利电影网| 久久综合色播五月| 激情成人av| 欧美1区2区| 蜜桃av噜噜一区| 亚洲精品国产精品国自产观看浪潮 | 久久深夜福利免费观看| 黄网站免费久久| 麻豆成人在线播放| 久久人体大胆视频| 亚洲激精日韩激精欧美精品| 欧美国产精品中文字幕| 女女同性女同一区二区三区91| 亚洲国产午夜| 亚洲国产精品久久久久婷婷老年| 老色鬼精品视频在线观看播放| 亚洲第一综合天堂另类专| 欧美电影免费观看| 女女同性女同一区二区三区91| 亚洲精品字幕| 亚洲色图综合久久| 国产日韩欧美| 国产欧美日韩中文字幕在线| 国产精品婷婷| 久久精品30| 麻豆精品视频| 在线视频欧美一区| 亚洲无线视频| 国产在线日韩| 亚洲国产精品久久久久| 欧美日韩精品高清| 欧美一区二区三区在线播放| 久久精品一区二区三区不卡牛牛 | 最近中文字幕日韩精品| 欧美日韩网站| 久久精品国产99国产精品澳门| 欧美在线看片| av成人毛片| 欧美伊久线香蕉线新在线| 91久久精品国产91性色tv| 一区二区三区www| 激情亚洲一区二区三区四区| 亚洲精品久久久一区二区三区| 国产精品高清在线| 久久中文字幕一区| 欧美人妖另类| 暖暖成人免费视频| 国产精品久久久久秋霞鲁丝 | 亚洲一区不卡| 亚洲国产精品嫩草影院| 亚洲一区二区三区国产| 亚洲精品美女91| 欧美在线观看你懂的| 一区二区三区高清在线观看| 久久国产精品久久久久久久久久| 日韩一区二区精品葵司在线| 久久都是精品| 亚洲天堂成人| 欧美激情精品久久久久久免费印度| 欧美在线视频一区二区| 欧美日韩高清在线观看| 欧美大秀在线观看| 狠狠色伊人亚洲综合成人| 亚洲无线一线二线三线区别av| 亚洲欧洲日本在线| 久久午夜精品| 久久先锋影音| 国产亚洲福利| 亚洲永久免费观看| 亚洲制服丝袜在线| 国产精品国产a级| 亚洲久色影视| 亚洲免费观看高清完整版在线观看| 久久精品99国产精品日本| 亚洲欧美在线免费观看| 欧美日本免费一区二区三区| 欧美成人激情在线| 狠狠做深爱婷婷久久综合一区| 亚洲欧美日韩一区二区| 午夜日韩视频| 国产九色精品成人porny| 在线综合欧美| 亚洲一区三区电影在线观看| 国产在线播精品第三| 久久综合伊人77777尤物| 久久久久国产精品午夜一区| 韩国成人精品a∨在线观看| 亚洲一区欧美| 久久超碰97中文字幕| 国产午夜精品美女毛片视频| 亚洲免费影院| 久久久久久久综合日本| 狠狠噜噜久久| 免费日韩av| 亚洲精品视频在线观看免费| 亚洲一区二区三区精品视频 | 国产精品久久福利| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 亚洲国产精品久久精品怡红院| 亚洲精品自在在线观看| 欧美大成色www永久网站婷| 亚洲国产日韩在线| 亚洲视频1区2区| 国产乱码精品一区二区三区忘忧草| 午夜电影亚洲| 欧美激情在线播放| 亚洲欧美国产精品桃花| 激情成人亚洲| 欧美精品少妇一区二区三区| 亚洲一区二区三区色| 久久久精品动漫| 亚洲美女网站| 国产日本欧美视频| 模特精品在线| 亚洲综合第一| 91久久综合亚洲鲁鲁五月天| 欧美一区二区免费| 亚洲精品视频免费在线观看| 国产精品综合| 欧美理论电影在线播放| 欧美一区高清| 在线亚洲精品福利网址导航| 久久资源在线| 性欧美精品高清| 亚洲精品字幕| 黄色日韩在线| 国产精品日韩欧美一区| 美女成人午夜| 亚洲男女毛片无遮挡| 亚洲欧洲另类| 久久亚洲精品一区二区| 亚洲一级黄色片| 亚洲国产精品尤物yw在线观看| 国产精品久久久久毛片大屁完整版| 暖暖成人免费视频| 午夜日韩av| 日韩一级片网址| 亚洲国产高清高潮精品美女| 久久久久久有精品国产| 欧美一级二区| 在线视频亚洲欧美| 亚洲全部视频| 亚洲国产成人不卡| 国内在线观看一区二区三区| 国产精品永久免费|