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

原文被墻,覺得該文其意不錯,但其所指其實不是很明確,用語生澀啊...
=================================================================
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>
            亚洲一区免费网站| 亚洲国产精品传媒在线观看| 欧美激情第4页| 国产亚洲精品成人av久久ww| 性视频1819p久久| 国产女同一区二区| 欧美在线一区二区三区| 亚洲一区二区三区免费观看| 国产午夜精品视频免费不卡69堂| 亚洲女同性videos| 欧美一区二区精美| 亚洲精品精选| 欧美专区日韩专区| 亚洲一二区在线| 美日韩精品免费观看视频| 这里只有精品丝袜| 美女被久久久| 性色av一区二区怡红| 欧美插天视频在线播放| 久久久亚洲影院你懂的| 91久久中文| 亚洲精品少妇| 欧美亚洲专区| 免费欧美在线| 一级成人国产| 先锋影音一区二区三区| 一区在线观看视频| 亚洲理论在线观看| 很黄很黄激情成人| 亚洲精品久久久久中文字幕欢迎你 | 激情国产一区| 91久久综合亚洲鲁鲁五月天| 国产精品你懂的在线| 欧美91精品| 国产精品爱久久久久久久| 免费日韩成人| 国产精品久久777777毛茸茸| 久久综合伊人77777| 欧美日韩在线一区| 老司机免费视频一区二区| 欧美日韩在线电影| 免费在线观看一区二区| 欧美成人国产| 国产精品综合色区在线观看| 免费看av成人| 国产日本欧美一区二区| 亚洲美女在线看| 亚洲二区精品| 欧美在线二区| 午夜精品久久久久久久99樱桃| 免费亚洲视频| 久久这里有精品15一区二区三区| 快播亚洲色图| 欧美欧美天天天天操| 国产精品高潮久久| 久久人人爽人人爽| 亚洲主播在线播放| 欧美在线视频全部完| 午夜一级久久| 欧美大片免费看| 欧美欧美天天天天操| 国产精品久久久久影院亚瑟| 国产精品视频网站| 国产日韩成人精品| 一区精品在线播放| 在线观看日韩av电影| 亚洲人体大胆视频| 亚洲午夜极品| 欧美影院精品一区| 午夜性色一区二区三区免费视频 | 性色av香蕉一区二区| 日韩视频在线你懂得| 亚洲高清成人| 欧美激情第3页| 久久精品91久久香蕉加勒比| 亚洲欧美日韩一区二区在线| 亚洲美女一区| 亚洲国产小视频| 一二美女精品欧洲| 亚洲一区bb| 亚洲高清av| 亚洲国产精品第一区二区| 国产精品视频99| 日韩视频在线一区| 在线日韩av| 日韩视频免费观看高清完整版| 欧美在线精品一区| 欧美中文字幕视频在线观看| 亚洲一区二区综合| 亚洲一区制服诱惑| 亚洲一区在线播放| 免费日韩av片| 亚洲小说欧美另类婷婷| 久久久久久成人| 欧美激情一区二区三级高清视频 | 欧美岛国激情| 欧美国产三区| 亚洲另类一区二区| 一本色道久久综合狠狠躁篇的优点| 久久9热精品视频| 欧美一级一区| 欧美激情视频在线免费观看 欧美视频免费一| 麻豆freexxxx性91精品| 亚洲一区在线直播| 久久久免费观看视频| 国产精品理论片| 免费欧美在线| 欧美黄色一区二区| 亚洲国产免费| 欧美伊人影院| 午夜精品久久久久久99热| 国产欧美日韩专区发布| 欧美深夜福利| 亚洲精品1区| 亚洲美女视频网| 欧美成人福利视频| 国产视频精品网| 午夜国产精品影院在线观看| 性色av一区二区三区在线观看| 欧美片第1页综合| 亚洲国产免费| 欧美高清日韩| 最新国产成人在线观看| 精品1区2区3区4区| 制服诱惑一区二区| 亚洲激情网站| 久久中文精品| 久久精品视频在线看| 亚洲大片在线观看| 亚洲欧美在线aaa| 久久久精品一区二区三区| 欧美色欧美亚洲另类二区| 宅男噜噜噜66国产日韩在线观看| 亚洲欧美在线观看| 在线播放日韩专区| 欧美激情成人在线| 羞羞色国产精品| 日韩视频一区二区三区在线播放免费观看 | 久久久一本精品99久久精品66| 免费人成精品欧美精品| 久久不射2019中文字幕| 国产精品久久午夜夜伦鲁鲁| 亚洲精品偷拍| 一区二区国产在线观看| 国产精品久久久久久av福利软件 | 在线国产精品一区| 中文亚洲欧美| 欧美一级一区| 国内成+人亚洲| 老牛国产精品一区的观看方式| 蜜桃久久精品乱码一区二区| 一区二区三区成人精品| 亚洲片国产一区一级在线观看| 久久精品国产在热久久| 欧美在线视频免费| 久久久午夜电影| 你懂的国产精品永久在线| 欧美jjzz| 欧美日韩视频在线观看一区二区三区 | 欧美日韩在线直播| 久久精品水蜜桃av综合天堂| 亚洲精品国产精品久久清纯直播| 蜜臀久久久99精品久久久久久| 亚洲国产欧美日韩精品| 欧美一区二区在线视频| 这里只有精品视频| 亚洲日本一区二区| 国产精自产拍久久久久久| 欧美另类极品videosbest最新版本| 久久久精品性| 欧美伊人久久久久久久久影院| 亚洲人成在线观看| 一区二区三区福利| 亚洲你懂的在线视频| 欧美一级淫片aaaaaaa视频| 亚洲宅男天堂在线观看无病毒| 亚洲视频精品| 亚洲欧美日韩综合国产aⅴ| 一区二区电影免费观看| 久热精品视频在线观看| 欧美在线观看日本一区| 正在播放欧美一区| 性感少妇一区| 亚洲免费观看高清完整版在线观看| 亚洲国产视频a| 夜夜夜精品看看| 亚洲一区二区日本| 国产精品高清网站| 亚洲在线中文字幕| 午夜精品国产更新| 激情文学一区| 久久精品99国产精品| 在线视频精品一区| 国产精品国产三级国产a| 亚洲精品国产精品久久清纯直播| 欧美在线免费观看亚洲| 欧美在线视频免费| 亚洲国产精品女人久久久| 欧美激情一区二区三区在线视频 | 欧美电影免费观看大全|