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

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国产精品久久久| 一区二区三区 在线观看视频| 国产免费成人| 欧美大片va欧美在线播放| 欧美国产亚洲另类动漫| 亚洲综合丁香| 久久福利资源站| 亚洲免费电影在线观看| 亚洲网在线观看| 亚洲福利视频二区| 在线综合视频| 亚洲国产天堂网精品网站| 一区二区av在线| 一区二区在线看| 一区二区日本视频| 亚洲成色777777在线观看影院| 99国产精品一区| 国内激情久久| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲综合久久久久| 欧美在线1区| 99精品福利视频| 久久gogo国模裸体人体| 99re这里只有精品6| 欧美在线国产| 香蕉亚洲视频| 欧美精品久久久久久久久久| 久久亚洲精品网站| 国产精品久久久久国产精品日日 | 日韩一级免费| 久久久久久婷| 久久久成人网| 国产精品久久久久久久久久直播 | 欧美二区在线观看| 久久精品夜色噜噜亚洲a∨| 欧美连裤袜在线视频| 麻豆精品视频在线| 国产手机视频一区二区| 亚洲视频欧美视频| 一区二区三区视频在线观看| 老司机aⅴ在线精品导航| 久久av在线看| 国产精品欧美久久久久无广告| 亚洲欧洲日产国产网站| 在线观看日韩一区| 久久成人国产| 久久久人人人| 激情综合色综合久久综合| 亚洲女人天堂成人av在线| 午夜精品福利一区二区三区av| 欧美日韩国产综合视频在线观看中文| 亚洲日本免费| 亚洲国产高清自拍| 亚洲国产另类精品专区 | 一本久久青青| 亚洲欧美日韩精品久久久久| 欧美日韩直播| 一区二区三区国产| 亚洲图片激情小说| 欧美视频在线观看一区| 一区二区三区免费网站| 亚洲欧美激情在线视频| 国产精品五区| 久久av免费一区| 欧美大片免费| 在线亚洲高清视频| 国产精品第十页| 欧美一区二区三区视频在线观看| 久久久久久999| 一区二区亚洲精品国产| 欧美xx视频| 一本一本久久a久久精品综合妖精| 亚洲综合欧美| 国模一区二区三区| 欧美91视频| 国产精品99久久久久久白浆小说| 欧美一区二区三区免费视频| 国产专区综合网| 欧美成人性生活| 中文在线资源观看网站视频免费不卡 | 欧美专区第一页| 免费在线欧美黄色| av成人动漫| 国一区二区在线观看| 欧美激情视频免费观看| 两个人的视频www国产精品| 欧美www在线| 亚洲一区二区三区中文字幕| 国产婷婷97碰碰久久人人蜜臀| 久久深夜福利| 一区二区三区四区五区精品视频 | 99热免费精品| 久久久国产精品亚洲一区| 亚洲日韩欧美视频一区| 国产精品热久久久久夜色精品三区| 久久国产黑丝| 日韩视频中文字幕| 久久综合给合久久狠狠色| 国产精品99久久久久久久久久久久| 国产偷国产偷亚洲高清97cao| 免费永久网站黄欧美| 亚洲特级片在线| 亚洲人体偷拍| 久久免费观看视频| 亚洲一区高清| 日韩午夜免费视频| 国内激情久久| 国产麻豆综合| 国产精品vvv| 欧美理论电影网| 麻豆精品视频在线| 欧美制服丝袜| 亚洲一级黄色片| 一本色道久久综合亚洲精品小说| 中文欧美日韩| 欧美二区在线播放| 久久久噜噜噜久噜久久| 亚洲婷婷综合色高清在线| 亚洲精品一区二区三区婷婷月 | 欧美 日韩 国产一区二区在线视频 | 欧美日韩高清一区| 另类综合日韩欧美亚洲| 久久国产精品99国产| 校园激情久久| 亚洲一区二区三区久久| 一区二区三区四区精品| 一本到高清视频免费精品| 韩国精品一区二区三区| 国产伦精品一区二区三区在线观看| 欧美婷婷六月丁香综合色| 欧美日韩三级电影在线| 欧美日韩在线观看一区二区三区| 免费视频一区二区三区在线观看| 久久米奇亚洲| 久久尤物视频| 老司机免费视频一区二区| 美女精品在线观看| 蜜桃视频一区| 欧美片在线播放| 欧美午夜一区二区三区免费大片| 欧美日韩一区二区三区在线视频 | 亚洲国产精品视频一区| 91久久国产精品91久久性色| 亚洲精选久久| 亚洲午夜精品久久久久久app| 亚洲影院免费| 久久精品动漫| 亚洲电影网站| 日韩午夜黄色| 先锋资源久久| 久久久久久久久久看片| 欧美国产国产综合| 欧美午夜a级限制福利片| 国产日韩欧美综合在线| 激情久久一区| 夜夜嗨av色综合久久久综合网 | 亚洲黄色免费电影| 一区二区欧美精品| 欧美亚洲免费| 欧美成人伊人久久综合网| 亚洲精品综合精品自拍| 午夜视频一区二区| 欧美高清视频一区二区| 国产精品资源| 亚洲伦理精品| 久久电影一区| 亚洲日韩成人| 久久av一区| 欧美日韩精品免费在线观看视频| 国产日韩在线一区| 亚洲激情视频网站| 午夜欧美大尺度福利影院在线看| 猛干欧美女孩| 亚洲午夜精品福利| 老司机一区二区| 国产精品永久| 99视频精品| 噜噜噜91成人网| 亚洲一区精品电影| 欧美大胆成人| 极品av少妇一区二区| 欧美v国产在线一区二区三区| 欧美视频免费看| 亚洲欧洲免费视频| 久久久精品视频成人| 久久久久久999| 亚洲国产小视频| 久久婷婷亚洲| 亚洲天堂av在线免费| 欧美成年视频| 亚洲高清在线观看| 久久视频国产精品免费视频在线| 99精品视频一区| 欧美激情综合色综合啪啪| 1024亚洲| 蜜桃久久精品一区二区|