锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久无码国产,91久久国产视频,午夜精品久久久久久中宇http://www.shnenglu.com/qixinkui/zh-cnMon, 30 Jun 2025 22:28:05 GMTMon, 30 Jun 2025 22:28:05 GMT60銆愯瘧銆戜竴綃?Dave Herman 璁茶蔣浠跺紑鍙戝懆鏈熼樁孌電殑甯栧瓙錛屾秹鍙?鑹烘湳錛屽伐紼嬶紝縐戝錛屾娊璞?妗嗘灦 宸ュ叿 榪欎簺鍐呭http://www.shnenglu.com/qixinkui/archive/2011/10/28/159272.htmlcingolicingoliFri, 28 Oct 2011 07:53:00 GMThttp://www.shnenglu.com/qixinkui/archive/2011/10/28/159272.htmlhttp://www.shnenglu.com/qixinkui/comments/159272.htmlhttp://www.shnenglu.com/qixinkui/archive/2011/10/28/159272.html#Feedback7http://www.shnenglu.com/qixinkui/comments/commentRss/159272.htmlhttp://www.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 鍙戣〃璇勮
]]> 久久婷婷人人澡人人爽人人爱| 色综合久久无码中文字幕| 2020最新久久久视精品爱| 国产精品va久久久久久久| 久久久高清免费视频| 久久这里只有精品18| 国产精品免费久久久久影院| 亚洲欧洲中文日韩久久AV乱码| 久久人爽人人爽人人片AV| 九九久久精品无码专区| 亚洲av成人无码久久精品| 国产精品成人无码久久久久久| 久久亚洲精品人成综合网| 久久久精品人妻无码专区不卡| 久久综合狠狠综合久久| 久久青青草原精品国产软件 | 久久精品国产WWW456C0M| 国产色综合久久无码有码| 国产午夜精品久久久久九九| av无码久久久久不卡免费网站| 国内精品久久久久影院老司| 久久www免费人成精品香蕉| 精品国产一区二区三区久久久狼| 热久久国产欧美一区二区精品| 久久99精品综合国产首页| 人妻丰满AV无码久久不卡| 亚洲婷婷国产精品电影人久久| 国产视频久久| 久久精品视屏| 欧美精品丝袜久久久中文字幕| 国内精品久久久久久久coent| 久久777国产线看观看精品| 久久久亚洲欧洲日产国码aⅴ| 亚洲午夜久久久久久噜噜噜| 久久成人国产精品免费软件| 久久久久亚洲AV无码专区首JN| 色播久久人人爽人人爽人人片aV| 久久综合五月丁香久久激情| 色婷婷噜噜久久国产精品12p| 亚洲精品无码久久久| 久久亚洲精品成人无码网站|