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

原文被墻,覺得該文其意不錯,但其所指其實不是很明確,用語生澀啊...
=================================================================
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>
            亚洲第一黄色网| 亚洲欧美日产图| 在线观看91精品国产麻豆| 国产一区二区在线免费观看| 国产人久久人人人人爽| 国产欧美一区二区精品婷婷| 国产一区二区三区高清| 亚洲国产精品成人一区二区| 亚洲精品在线视频观看| 亚洲一区二区三区精品视频| 久久国产精品72免费观看| 久久成人18免费网站| 免费不卡在线视频| 欧美国产三级| 亚洲巨乳在线| 欧美一区二粉嫩精品国产一线天| 久久夜色精品亚洲噜噜国产mv| 欧美国产精品劲爆| 国产精品久久久久77777| 狠狠入ady亚洲精品经典电影| 亚洲精品国产精品乱码不99| 亚洲综合另类| 亚洲第一级黄色片| 欧美一区二区三区免费视| 欧美成人免费视频| 国产亚洲精品福利| 在线综合亚洲欧美在线视频| 久久综合伊人77777蜜臀| 夜夜嗨av一区二区三区网站四季av| 久久久久久成人| 国产欧美视频一区二区三区| 亚洲视频免费| 亚洲精品国产精品久久清纯直播 | 免费亚洲一区二区| 国产精品视频免费观看| 亚洲国产精品成人综合| 久久9热精品视频| 亚洲免费观看| 欧美国产一区二区| 在线日韩视频| 开心色5月久久精品| 午夜欧美精品久久久久久久| 国产精品hd| 一区二区三区回区在观看免费视频| 麻豆乱码国产一区二区三区| 午夜精品电影| 国产农村妇女精品| 亚洲伊人一本大道中文字幕| 日韩午夜电影av| 欧美日韩国产成人在线观看| 亚洲国产日韩欧美在线99 | 鲁大师成人一区二区三区| 国产亚洲成av人片在线观看桃 | 久久久青草婷婷精品综合日韩| 国产精品久久久久久一区二区三区| 亚洲国产精品高清久久久| 卡通动漫国产精品| 久久久久国产精品午夜一区| 韩国精品在线观看| 久久亚洲国产精品一区二区| 亚洲综合电影| 国产午夜精品视频免费不卡69堂| 欧美在线一区二区| 欧美制服丝袜第一页| 国产视频一区免费看| 亚洲欧美日韩另类| 亚洲一区二区高清| 国产精品性做久久久久久| 欧美与黑人午夜性猛交久久久| 亚洲综合导航| 黄网站色欧美视频| 免费日韩成人| 欧美劲爆第一页| 亚洲女人小视频在线观看| 亚洲欧美中文在线视频| 国产欧美一区二区色老头| 狂野欧美激情性xxxx欧美| 久久综合狠狠综合久久综青草| 亚洲高清在线视频| 亚洲激情图片小说视频| 欧美日韩视频不卡| 久久av一区二区| 另类春色校园亚洲| 亚洲精品免费电影| 亚洲一卡二卡三卡四卡五卡| 国产综合色产| 亚洲三级电影在线观看 | 欧美在线不卡视频| 亚洲国产福利在线| 亚洲精品九九| 国产欧美一区二区精品婷婷 | 欧美日韩在线三级| 久久久久久91香蕉国产| 久久先锋影音| 欧美一二三区精品| 另类春色校园亚洲| 香蕉久久夜色精品| 欧美不卡一区| 欧美一区二区三区视频| 免费91麻豆精品国产自产在线观看| 亚洲网站在线播放| 免费在线看一区| 欧美在线观看网址综合| 欧美成人免费一级人片100| 香蕉免费一区二区三区在线观看 | 黄色资源网久久资源365| 亚洲日本精品国产第一区| 国内成+人亚洲| 亚洲视频精选在线| 91久久精品国产91性色tv| 亚洲一级黄色片| 亚洲人成网站影音先锋播放| 一区二区欧美激情| 亚洲黄一区二区三区| 久久国产一二区| 午夜免费在线观看精品视频| 欧美激情按摩在线| 另类综合日韩欧美亚洲| 国产欧美精品日韩区二区麻豆天美| 亚洲国产日韩美| 国产区在线观看成人精品| 亚洲美女在线视频| 亚洲精品视频免费| 久久综合伊人77777蜜臀| 乱人伦精品视频在线观看| 国产欧美一区二区三区久久 | 国产精品一区二区你懂得| 91久久久久久国产精品| 亚洲国产精品专区久久| 欧美在线观看视频在线| 亚洲午夜精品网| 美女黄毛**国产精品啪啪| 久久这里只有| 在线观看成人小视频| 久久精品国产久精国产一老狼| 欧美伊久线香蕉线新在线| 国产精品久久影院| 亚洲一区免费视频| 午夜视频在线观看一区二区三区| 欧美激情视频网站| 亚洲精品一区二区三区蜜桃久| 亚洲日本在线观看| 免费看亚洲片| 亚洲伦理在线观看| 亚洲欧美另类在线观看| 国产精品永久免费| 久久精视频免费在线久久完整在线看| 久久精品国产999大香线蕉| 国产情侣久久| 久久久久9999亚洲精品| 欧美a级在线| 亚洲欧洲日产国产网站| 欧美视频在线视频| 午夜视频精品| 亚洲第一黄网| 欧美一级一区| 亚洲国产精品va在看黑人| 欧美激情1区| 亚洲一区二区三区中文字幕在线| 欧美一级淫片aaaaaaa视频| 韩国在线一区| 欧美国产一区二区在线观看| 亚洲一区二区三区中文字幕在线| 久久婷婷色综合| 亚洲精品中文字幕在线观看| 国产精品美女| 久久综合色天天久久综合图片| 91久久精品一区| 国产精品自拍小视频| 久久午夜精品一区二区| 日韩视频免费大全中文字幕| 欧美在线免费观看视频| 亚洲国产精品久久| 国产精品久久久久久超碰| 久久久人成影片一区二区三区| 亚洲国产福利在线| 欧美在线观看一区二区三区| 精品成人在线观看| 国产精品国产三级欧美二区| 久久综合久久综合久久综合| 亚洲伊人一本大道中文字幕| 欧美黄色大片网站| 久久爱www久久做| 亚洲一区二区高清| 亚洲欧洲精品一区二区三区波多野1战4 | 久久久久九九视频| 中文一区二区在线观看| 久久免费视频网| 亚洲在线视频观看| 悠悠资源网久久精品| 国产精品毛片在线| 欧美激情综合在线| 久久国产精品99国产精| 亚洲伊人伊色伊影伊综合网| 亚洲黄色成人网| 蜜臀va亚洲va欧美va天堂| 久久精品国产一区二区三区免费看| 亚洲一区二区免费| 洋洋av久久久久久久一区| 亚洲国产日韩在线一区模特|