锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久无码AV一区二区三区,欧美久久综合性欧美,久久福利片http://www.shnenglu.com/qixinkui/zh-cnWed, 02 Jul 2025 10:04:25 GMTWed, 02 Jul 2025 10:04:25 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 鍙戣〃璇勮
]]> 久久99精品久久久久久久不卡| 成人久久精品一区二区三区| 久久精品亚洲一区二区三区浴池| 人妻丰满AV无码久久不卡| 亚洲成色www久久网站夜月| 久久国产一区二区| 内射无码专区久久亚洲| 狠狠色狠狠色综合久久| 久久亚洲国产中v天仙www| 欧美精品乱码99久久蜜桃| 精品久久8x国产免费观看| 亚洲精品国产自在久久| 2021久久精品国产99国产精品| 久久综合色之久久综合| 久久久无码一区二区三区| 中文成人久久久久影院免费观看| 国产精品久久久久无码av | 久久精品无码专区免费青青| 国产高潮国产高潮久久久91| 亚洲精品无码久久千人斩| 亚洲人成无码久久电影网站| 久久久无码精品亚洲日韩软件| 欧美激情精品久久久久| 久久精品国产亚洲av水果派| 性做久久久久久免费观看| 天天做夜夜做久久做狠狠| 亚洲精品高清久久| 久久香蕉国产线看观看99| 久久婷婷成人综合色综合| 国产亚洲欧美精品久久久| 欧美亚洲国产精品久久| 少妇久久久久久被弄到高潮| 久久精品人妻一区二区三区| 国产AV影片久久久久久| 国产成人综合久久久久久| 国产精品青草久久久久福利99| 欧美激情精品久久久久久| 久久93精品国产91久久综合| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 国产精品99精品久久免费| 久久人人爽人人爽人人片AV不|