锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久无码AV一区二区三区,欧美久久综合性欧美,久久福利片http://m.shnenglu.com/qixinkui/zh-cnWed, 02 Jul 2025 10:04:25 GMTWed, 02 Jul 2025 10:04:25 GMT60銆愯瘧銆戜竴綃?Dave Herman 璁茶蔣浠跺紑鍙戝懆鏈熼樁孌電殑甯栧瓙錛屾秹鍙?鑹烘湳錛屽伐紼嬶紝縐戝錛屾娊璞?妗嗘灦 宸ュ叿 榪欎簺鍐呭http://m.shnenglu.com/qixinkui/archive/2011/10/28/159272.htmlcingolicingoliFri, 28 Oct 2011 07:53:00 GMThttp://m.shnenglu.com/qixinkui/archive/2011/10/28/159272.htmlhttp://m.shnenglu.com/qixinkui/comments/159272.htmlhttp://m.shnenglu.com/qixinkui/archive/2011/10/28/159272.html#Feedback7http://m.shnenglu.com/qixinkui/comments/commentRss/159272.htmlhttp://m.shnenglu.com/qixinkui/services/trackbacks/159272.html
鍘熸枃琚錛岃寰楄鏂囧叾鎰忎笉閿欙紝浣嗗叾鎵鎸囧叾瀹炰笉鏄緢鏄庣‘錛岀敤璇敓娑╁晩...
=================================================================
http://calculist.blogspot.com/2007/09/science-and-engineering.html
Science and engineering
浠?The Little Calculist 浣滆咃細Dave Herman

Joel Spolsky 鏈変竴涓叧浜?杞歡寮鍙戝懆鏈熺殑闃舵 鐨勫笘瀛愶紝璇ヨ創鍑轟箮鎰忔枡鍦扮粨鏉熶簡鎴戣嚜宸辯殑瑙傚療銆傚湪Joel鐪嬫潵錛岀涓涓樁孌墊槸鑹烘湳錛堣璁¢樁孌碉級錛岀浜屼釜闃舵鏄伐紼嬶紙鏋勫緩闃舵錛夌涓変釜闃舵鏄瀛︼紙璋冭瘯鍜屾祴璇曢樁孌碉級.

Joel鐨勫叴瓚f槸杞歡綆$悊鍜岀鐞嗗伐鍏鳳紝浣嗘垜瀵逛簬寮鍙戝伐鍏鋒湁鏇村鐨勫叴瓚c備竴鏃︿綘璁ゅ嚭浜嗚蔣浠跺紑鍙戠殑宸ョ▼鏂歸潰鍜岀瀛︽柟闈㈢殑鍒嗘按宀紝浣犲氨鍙互鏇村ソ鍦扮悊瑙e紑鍙戞柟娉曠殑寰堝绱у紶瀵圭珛錛屽叾涓殑涓縐嶅绔嬪鑷翠簡寰堝杈╄銆備箣鎵浠ヤ駭鐢熻繖縐嶄笉瀹夛紝鏄洜涓哄熀鏈殑涓嶅彉鐨勪笉鍙旱娓庣殑錛堟洿鍒紲炲湥鐨勫湥媧佺殑铏旇瘹鐨勶級宸ョ▼娉曞垯鏈夋椂鍊欏拰縐戝瀹炶返鏄笉涓鑷寸殑銆?br />
涔熷氨鏄錛氭娊璞″拰妯″潡鎬ф槸杞歡宸ョ▼鐨勫績鍜岃偤錛屾硶鍒?,2,3鏄?#8220;灞閮ㄥ寲鍏蟲敞鐐癸紝涔熷氨鏄疍RY錛屽垎紱誨叧娉ㄧ偣錛屼嬌鍏蟲敞鐐規浜?#8221;銆傛洿綆鍗曠殑璇達細浣跨敤鎶借薄騫朵笖涓嶈榪濆弽銆傞氳繃浣垮緱涓涓叧娉ㄧ偣瀹屽叏涓嶆敞鎰忥紙涔熷氨鏄錛氬弬鏁板寲錛夊彟涓涓叧娉ㄧ偣錛屼綘鍙互鏈澶ц嚜鐢卞湴鏀瑰彉涓涓叧娉ㄧ偣鑰屼笉褰卞搷鍙︿竴涓叧娉ㄧ偣銆傝繖鏄洜涓?allows for)灞閮ㄥ寲鐨勫師鍥狅紝渚濇寮曞彂浜嗙嫭绔嬬殑寮鍙戝拰緇存姢銆傝緇冩湁绱犵殑寮鍙戣呭垱寤哄垎灞傛娊璞★紝騫朵笖涓涓濅笉鑻熷湴閬靛驚浠栦滑鐨勮竟鐣屻?br />
浣嗘槸褰撳紑濮嬭皟璇曟椂鍙戠敓浜嗕粈涔堝憿錛熸暀鏉″湴錛圖ogmatically錛夐伒寰娊璞¤竟鐣屽氨鍍忔埓浜嗕竴涓溂緗╋紱褰撲竴涓猙ug絎竴嬈″嚭鐜扮殑鏃跺欙紝浣犳牴鏈笉鐭ラ亾瀹冩槸闅愯棌鍦ㄥ摢涓娊璞¢噷錛岃繕鏄湪灞備笌灞傜殑浜や簰涔嬮棿銆傚彟涓涓濊冩娊璞$洅瀛愬唴閮ㄧ殑閫氬父鐨勬帹璁烘槸 鍐插姩鍦板亣璁捐繖涓猙ug鏄埆浜虹殑閿欒銆傦紙“涓瀹氭槸緙栬瘧鍣ㄧ殑閿?”錛?鎴戞兂璧?Knuth 鍏充簬璁$畻鏈虹瀛︾殑寮曠敤錛?/div>
     榪欐牱鐨勪漢闈炲父鎿呴暱澶勭悊涓嶅悓鐨勬硶鍒欏簲鐢ㄥ埌涓嶅悓鎯呭喌涓嬬殑鎯呭艦錛屼粬浠槸閭d簺鍙互蹇熷湴鏀瑰彉鎶借薄灞傛錛屽彲浠ュ悓鏃惰瀵熷緢澶氬ぇ鐨勪簨鐗╁拰灝忕殑緇嗚妭鐨勪漢銆?#8212;—寮曡嚜 Hartmanis 鐨勫浘鐏靛鑾峰鎰熻█
鎴戣涓鴻繖閲岀殑鎻忚堪鏇村鐨勬槸鍦ㄨ蔣浠跺紑鍙戠殑縐戝闈㈡垨鑰呬篃鍙互璇存槸璁捐鏂歸潰鐨?#8212;—浣嗕笉鏄伐紼嬫柟闈㈢殑銆?br />
鍥犱負璋冭瘯鍜屾祴璇曟槸鍜岃瀵熷拰鐞嗚В涓涓幇鏈夌殑緋葷粺鐩稿叧鐨勶紝鑰屼笉鏄瀯寤烘垨淇敼涓涓郴緇燂紝鎴戜滑鑷繁鏋勫緩鐨勮棭綃憋紙璇戞敞錛氭寚灞傛鎶借薄錛変嬌寰楁垜浠殑宸ョ▼鍘熷垯鍙樻垚浜嗛殰紕嶃傝皟璇曞伐鍏鳳紝闆嗘垚寮鍙戠幆澧冿紝嫻嬭瘯妗嗘灦錛岀瓑絳夐兘琚竴縐嶉渶瑕佽繚鍙嶆娊璞¤竟鐣岀殑闇姹傝岃祴浜堜簡鐗硅壊銆?/div>
緇撴灉錛屽共鍑鍜岃偖鑴忥紙灝卞儚 Mitch 鍙粬浠殑錛夊紑濮嬫挄鍜販鎴橈紝浠栦滑浜夋枟鐨勯棶棰樻槸錛氭垜浠殑杞歡寮鍙戞鏋?瀵逛粬浠 FIaI(NtMSHaG)LoE (ML) 錛堣瘧娉細瀹炲湪涓嶇煡閬撴庝箞緲昏瘧錛夌殑鍧氭寔 鏄簲璇ョ粷瀵逛弗鏍煎憿錛屾垨鏄粷瀵瑰鏉?Smalltalk)錛?鎴戜笉鐭ラ亾閫氳繃 鏋勫緩娑電洊榪欎簺涓嶅悓寮鍙戞ā鍨嬬殑杞歡妗嗘灦錛屾垜浠槸鍚﹁兘澶熷仛鐨勬洿濂姐?/div>
=================================================================
鍘熸枃錛?br />
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.


cingoli 2011-10-28 15:53 鍙戣〃璇勮
]]> 久久人搡人人玩人妻精品首页| 一日本道伊人久久综合影| 少妇高潮惨叫久久久久久| av色综合久久天堂av色综合在 | 一本久久综合亚洲鲁鲁五月天| 国产精品久久久久一区二区三区 | 热久久最新网站获取| 婷婷综合久久中文字幕蜜桃三电影 | 91精品国产91热久久久久福利| 久久精品人人做人人爽电影 | 99久久婷婷国产综合精品草原| 热久久最新网站获取| 996久久国产精品线观看| 久久国产精品无| 久久亚洲欧美日本精品| 久久精品国产男包| 久久青青国产| 99久久精品九九亚洲精品| 亚洲国产精品无码久久| 亚洲欧美日韩久久精品| 成人午夜精品久久久久久久小说 | 久久婷婷五月综合色奶水99啪| 久久噜噜电影你懂的| 午夜精品久久久久久中宇| 久久夜色撩人精品国产| 狠狠人妻久久久久久综合蜜桃| 97久久超碰成人精品网站| 亚洲欧洲久久久精品| 久久亚洲天堂| 久久99精品国产麻豆不卡| 久久综合九色综合97_久久久| 国内精品久久久久久久97牛牛| 久久精品一区二区三区AV| 2021久久精品免费观看| 香蕉久久夜色精品国产2020| 色婷婷狠狠久久综合五月| 色播久久人人爽人人爽人人片aV | 久久久久成人精品无码中文字幕| 漂亮人妻被中出中文字幕久久| 午夜精品久久久久| 久久影视综合亚洲|