锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鑽h錛?/span>涓涓湁鐐瑰効鍏崷鐨勯棶棰樸?span lang="EN-US">C++鏍囧噯濮斿憳浼氫腑鏈変腑鍥戒漢鍚楋紵鏈変腑鍥戒漢鍚?span lang="EN-US">C++鏍囧噯濮斿憳浼氶掍氦榪囨彁妗堝悧錛?/span> Bjarne錛?/span>鎴戞兂涓嶈搗鏉ユ渶榪戠殑鎻愭鍜屼腑鍥戒漢鏈夊叧銆傚鍛樹細涓湁涓涓?span lang="EN-US">IBM鐨勬柊浠h〃錛屽鐜嬨傛垜鐚滀粬鏄腑鍥戒漢錛屼絾鎴戣繕涓嶈璇嗕粬銆?/span> 鑰冭檻鍒頒腑鍥芥湁閭d箞澶氫漢鍦ㄤ粠浜嬭綆楁満宸ヤ綔錛?span style="font-weight: bold; text-decoration: underline;">鎴?span style="background-color: rgb(255, 165, 0);">涓鐩?/span>閮?span style="background-color: rgb(255, 165, 0);">寰堝鎬?/span>涓轟粈涔堢湅涓嶅埌浣犱滑瀵笴++0x鏍囧噯鍖栧伐浣滅殑鍙備笌銆?/span> 鎴戜笉鐭ラ亾榪欑┒绔熸槸鎬庝箞鍥炰簨銆?/font> 鑷粠鎴戝墠孌墊椂闂磋闃呬簡Google鏂伴椈緇勪腑鐨刢omp.lang.c銆乧++璁哄潧錛屾垜鐪嬪埌鐨勬墍鏈夊笘瀛愬嚑涔庨兘鏄湪璁ㄨC++0x鏍囧噯鐨勩傜粰鎴戠殑鎰熻灝卞儚榪欓噷闈㈤兘鏄爣鍑嗗鍛樹細鐨勬垚鍛樻垨閭d竴綾葷殑楂樻墜錛屾垜涔熸病鏈夊弬涓庤繃浠諱綍璁ㄨ錛岀敋鑷充篃娌$粏蹇冨幓鐪嬬湅鐩稿叧鐨勯棶棰樸傛垜涔熷緢鍏蟲敞C++0x鏍囧噯鐨勫埗瀹氾紝浣嗗嵈浠庢潵娌℃湁鍙備笌榪涘幓鎴栨兂榪囪鍙備笌榪涘幓錛岃繖鍙堟槸涓轟粈涔堝憿錛?/font> 鎴戞兂澶у鏁扮殑鏈嬪弸涔熷彲鑳芥槸榪欐牱鐨勬儏鍐靛惂銆傚茍涓嶆槸涓嶆兂鍙備笌錛岃屾槸浠庢潵娌℃湁鎯沖埌榪囥傛垜鎯寵繖涓瀹氬拰鎴戜滑鐨勬暀鑲叉湁鍏熾傛垜浠鍩瑰吇涓哄彧鎺ュ彈鑰屼笉鐢ㄥ幓鍙備笌錛屾垜浠彧鍘昏鍔ㄧ殑瀛︿範鏂扮殑鐭ヨ瘑錛岃屼粠娌℃湁鎯寵繃鍘諱富鍔ㄧ殑鍙備笌鍒版柊鐭ヨ瘑鐨勪駭鐢熺殑榪囩▼涓?/font> 涓嶈繃錛岀幇鍦ㄦ儏鍐靛簲璇ユ敼鍙樹竴涓嬩簡錛岃嚦灝戞垜浠凡緇忕湅鍒癇jarne鍏堢敓鐨勬彁閱掍簡錛氭垜浠鍙備笌榪涘幓錛佷笉浠呬粎鏄弬涓嶤++0x鐨勬爣鍑嗗埗瀹氱殑闂錛岃屾槸鎬濇兂涔犳儻鐨勯棶棰樸?/font> 鏈嬪弸浠紝鎴戜滑瑕佹敼鍙樼幇鍦ㄧ殑榪欑鎬濈淮鏂瑰紡浜嗭紝瑕佸弬涓庡埌鏇村鐨勬椿鍔ㄤ腑鍘匯?/font>
]]>
]]>
URL璇鋒眰錛岄兘鐢辨澶勭悊鍣ㄦ帴鏀跺茍澶勭悊銆?br />http://some.thing.com/handler/other/string/etc
涔熷嵆涓婇潰鐨勭浉褰撲簬
http://some.thing.com/handler.xxx?other/string/etc
]]>
]]>
聽聽聽 聽聽聽 鍦–/C++涓?鍙橀噺鍙婂嚱鏁扮殑瀹氫箟涓鑸兘鏄湪.h/.hpp鏂囦歡涓鏄庡師鍨?鑰屽湪瀵瑰簲鐨?c/.cpp鏂囦歡涓潵榪涜瀹炵幇.
聽聽聽 聽聽聽 榪欑鎯呭喌涓?澶存枃浠舵渶緇堟槸緇欑敤鎴蜂嬌鐢ㄧ殑,浠ヤ究璁╃敤鎴蜂簡瑙f湁鍝簺鎺ュ彛鍙互浣跨敤;鑰?c/.cpp鏂囦歡鏄紑鍙戣呬嬌鐢ㄧ殑,浠ヤ究璁╁叾瀹冨紑鍙戜漢鍛樹簡瑙e畠鐨勫疄鐜伴昏緫.鍥犳榪欎袱涓枃浠朵腑鑲畾閮芥槸闇瑕佽緇嗙殑娉ㄩ噴鐨?鍦?h/.hpp鏂囦歡涓?涓昏璇存槑鍑芥暟鐨勪嬌鐢ㄦ柟娉?濡傚弬鏁扮殑鎰忎箟,榪斿洖鍊肩殑瀹氫箟絳?鑰?c/.cpp鏂囦歡涓?涓昏璇存槑鍑芥暟鐨勫疄鐜伴昏緫絳?
聽聽聽 聽聽聽 涓嶇煡閬撲笂闈㈢殑鍋氭硶鏄惁鍚堥?璇峰ぇ瀹舵寚姝?
聽聽聽 聽聽聽 鍙﹀,澶у鍦ㄥ疄闄呯紪紼嬭繃紼嬩腑鏄浣曞仛鐨?
聽聽聽 聽聽聽 浜嬪疄涓?鎴戣嚜宸卞湪瀹炶返榪囩▼涓嵈鎬繪槸鍋忓悜浜庢妸娉ㄩ噴鍐欏埌涓涓湴鏂?鎴栬呮敞閲婂師鍨?鎴栬呮敞閲婂疄鐜?鍓嶈呮瘮杈冨),鐢氳嚦騫茶剢涓よ竟閮藉啓涓鏍風殑(浣嗚繖鏍風殑璇濆唴瀹圭粡甯鎬細涓嶄竴鏍?.榪欐牱鐨勬柟娉曡鎴戝湪緙栫▼榪囩▼涓悆灝戒簡鑻﹀ご鍝?
]]>
]]>C++緙栫爜瑙勮寖
涓銆佺粍緇囦笌絳栫暐闂
If builders built buildings the way programmers wrote programs, then the
鍦–鍜孋++鐨勪富瑕佷紶緇熶腑,鎴戜滑璁や負鏄竴縐嶉浂鍩虹鐨勪範鎯?絎?鏉℃槸涓涓牴鏈殑鎸囩ず,瀹冩兜鐩栦簡緙栫爜瑙勮寖涓垜浠涓烘槸鏈鍩烘湰鐨勫緩璁?
first woodpecker that came along would destroy civilization.
鍦ㄨ繖浠嬬粛鎬х殑涓鑺傜殑鍏朵綑閮ㄥ垎涓?鎴戜滑綺懼績閫夊彇浜嗗叾涓殑灝戦噺闂鍔犱互闃愯堪,榪欎簺澶у涓庣紪鐮佹湰韜棤鐩存帴鍏崇郴,浣嗗嵈鏄啓鍑哄彲闈犱唬鐮佺殑鍩烘湰宸ュ叿鍜屾妧鏈?
鍦ㄨ繖涓鑺備腑鎴戜滑璁や負鏈鏈変環鍊肩殑鏄0鏉′笉瑕佸洜灝忓け澶?(鎴?鐭ラ亾浠涔堜笉闇瑕佽鑼冨寲.)
0. 涓嶈鍥犲皬澶卞ぇ. (鎴?鐭ラ亾浠涔堜笉闇瑕佽鑼冨寲.)
鎽樿
浠呰蹇呰鐨勮瘽:涓嶈鍧氭寔涓漢鍝佸懗鎴栭檲鏃х殑涔犳儻.
璁ㄨ
鐪熷彧鏄釜浜哄搧鍛充笖涓嶅獎鍝嶆紜ф垨鍙鎬х殑緇撹涓嶅睘浜庣紪鐮佹爣鍑?浠諱綍涓撲笟紼嬪簭鍛樺彲浠ュ緢瀹規槗鍦拌鍐欑◢寰笉鍚屼簬浠栨墍涔犳儻鐨勬牸寮忕殑浠g爜.
鍦ㄦ瘡涓簮鏂囦歡鐢氳嚦姣忎釜宸ョ▼涓兘瑕佺敤涓鑷寸殑鏍煎紡,鍥犱負鍦ㄥ嚑縐嶄笉鍚岀紪鐮侀鏍肩殑浠g爜鐗囨涓煩杞槸寰堜笉鍗忚皟鐨?浣嗘槸涓嶈浼佸浘鍦ㄤ笉鍚岄」鐩垨鍏徃涓潥鎸佷竴鑷村湴鏍煎紡.
涓嬮潰鏄嚑鏉¢氱敤鐨勭粨璁?榪欓噷閲嶈鐨勪笉鏄幓鍒跺畾瑙勫垯,鑰屽彧鏄淇濇寔涓庝綘緇存姢鐨勬枃浠剁殑椋庢牸鐨勪竴鑷?
涓嶅繀鏄庣‘鎸囧畾瑕佺緝榪涘灝?浣嗚緙╄繘浠ョ獊鍑虹粨鏋?鐢ㄤ綘鍠滄鐨勪換鎰忔暟閲忕殑絀烘牸緙╄繘,浣嗚嚦灝戣鍦ㄥ悓涓鏂囦歡涓繚鎸佷竴鑷?
涓嶅繀寮鴻淇濇寔鐗瑰畾鐨勮闀垮害,浣嗚淇濇寔琛屽叿鏈夊彲璇繪?鐢ㄤ綘鍠滄鐨勪換鎰忛暱搴︾殑琛岄暱,浣嗕笉瑕佸お闀夸簡.鐮旂┒琛ㄦ槑鍗佷釜鍗曡瘝浠ュ唴鐨勫搴﹀鐪肩潧璺熻釜鏄渶鐞嗘兂鐨?
涓嶈榪囧害鍒跺畾鍛藉悕瑙勫垯,浣嗚鐢ㄤ竴鑷寸殑鍛藉悕綰﹀畾:浠呮湁涓ょ偣蹇呴』瑕佸仛鐨?a)鍐充笉鐢?闅愮鐨?鍚嶇О,涔熷嵆浠ヤ竴涓笅鍒掔嚎寮澶存垨鍖呮嫭鍙屼笅鍒掔嚎鐨勫悕縐?浠ュ強b)鎬繪槸鐢ㄥ瓧姣嶅叏閮ㄥぇ鍐欑殑鍗曡瘝鍛藉悕瀹忓茍涓斿喅涓嶈鑰冭檻瀹氫箟涓涓父鐢ㄦ垨緙╁啓鍗曡瘝鐨勫畯(鍖呮嫭甯哥敤妯℃澘鍙傛暟,姣斿T鍜孶;浠?define T anything瀹氫箟浠諱綍涓滆タ鏄瀬鍏朵笉濂界殑鍋氭硶).姝ゅ,瑕佺敤涓鑷寸殑鏈夋剰涔夌殑鍚嶇О,騫舵寜鐓ф枃浠舵垨妯″潡鐨勭害瀹?(鑻ヤ綘涓嶈兘鍐沖畾浣犺嚜宸辯殑鍛藉悕綰﹀畾,璇曡瘯榪欑鏂瑰紡錛氫互鍚勫崟璇嶉瀛楁瘝澶у啓鏂瑰紡鍛藉悕綾匯佸嚱鏁板拰鏋氫婦(LikeThis);鍛藉悕鍙橀噺鏃跺湪鍓嶈呭熀紜涓婂皬鍐欑涓涓崟璇嶇殑棣栧瓧姣?likeThis);鍛藉悕縐佹湁鎴愬憳鍙橀噺鏃跺湪鍓嶈呮柟寮忎箣鍚庡啀鍔犱竴涓笅鍒掔嚎(linkThis_);浠ュ叏澶у啓騫剁敤涓涓笅鍒掔嚎榪炴帴鍚勫崟璇嶇殑鏂瑰紡鍛藉悕瀹?LINK_THIS).)
涓嶈瑙勫畾娉ㄩ噴鐨勯鏍?闄ら潪鏈夊伐鍏瘋В鏋愮壒瀹氭牸寮忕殑娉ㄩ噴鐢熸垚鏂囨。),浣嗚鍐欐湁鐢ㄧ殑娉ㄩ噴:濡傛灉鍙互鐨勮瘽浠ヤ唬鐮佹潵浠f浛娉ㄩ噴(瑙?a href="#item16">絎?6鏉?/a>).涓嶈鍦ㄦ敞閲婁腑閲嶅浠g爜;瀹冧滑涓嶈兘琚悓姝ョ淮鎶?瑕佸啓瑙i噴鏂規硶鍜屽熀鏈師鐞嗙殑鍚彂鎬х殑娉ㄩ噴.
鏈鍚?涓嶈璇曞浘鍧氭寔闄堟棫鐨勮鍒?瑙?a href="#0_3">渚?鍜?a href="#0_4">渚?),鍗充嬌瀹冧滑鏇懼湪鏃х紪鐮佽鑼冨嚭鐜拌繃.
渚嬪瓙
void using_k_and_r_style() {
浠諱綍涓撲笟紼嬪簭鍛橀兘鍙互涓嶈垂鍔涘湴璇誨啓涓婇潰鎵鍒楃殑浠諱綍涓縐嶉鏍肩殑浠g爜.浣嗚淇濇寔涓鑷存?涓嶈闅忔剰鐨勬垨浠ユ櫐娑╃殑宓屽鏂瑰紡鏀劇疆鎷彿,璇曠潃鍘婚伒寰悇鏂囦歡涓凡鏈夌殑椋庢牸.鍦ㄦ湰涔︿腑,鎴戜滑鐨勬嫭鍙鋒湁鎰忚瘑鐨勫湪鎺掔増鐨勭害鏉熶腑浠ユ渶濂界殑鍙鎬х殑鏉ユ斁緗?
// K&R椋庢牸
}
void putting_each_brace_on_its_own_line()
{
// 鎷彿鐙崰涓琛?br>}
void or_putting_each_brace_on_its_own_line_indented()
{
// 鎷彿鐙崰涓琛屽茍緙╄繘
}鍙傝?/h3>
[BoostLRG] 路 [Brooks95] $12 路 [Constantine95] $29 路 [Keffer95] p. 1 路
[Kernighan99] $1.1, $1.3, $1.6-7 路 [Lakos96] $1.4.1, $2.7 路 [McConnell93]
$9, $19 路 [Stroustrup94] $4.2-3 路 [Stroustrup00] $4.9.3, $6.4, $7.8, $C.1
路 [Sutter00] $6, $20 路 [SuttHysl01]1. 浠ラ珮璀﹀憡綰у埆騫插噣鍦扮紪璇?/h2>
鎽樿
灝嗚鍛婇摥璁頒簬蹇?浣跨敤浣犵殑緙栬瘧鍣ㄧ殑鏈楂樿鍛婄駭鍒?瑕佹眰騫插噣(鏃犺鍛?鐨勬瀯寤?鐞嗚В鍏ㄩ儴鐨勮鍛?騫墮氳繃淇敼浠g爜娑堥櫎璀﹀憡,鑰屼笉鏄氳繃闄嶄綆璀﹀憡綰у埆.
璁ㄨ
緙栬瘧鍣ㄦ槸浣犵殑濂芥湅鍙?鑻ュ畠鐢變簬涓涓壒瀹氱殑緇撴瀯鑰屽彂鍑轟竴涓鍛?閫氬父浣犵殑浠g爜鍚湁娼滃湪鐨勯棶棰?
鎴愬姛鏋勫緩搴旇鏄共鍑鐨?鏃犺鍛婄殑).濡傝嫢涓嶆槸榪欐牱,浣犲皢浼氬緢蹇吇鎴愬揩閫熸祻瑙堣緭鍑虹粨鏋滅殑涔犳儻,榪涜屼綘灝嗛敊榪囩湡姝g殑闂.(瑙?a href="#item2">絎?鏉?/a>)
娑堥櫎璀﹀憡: a)鐞嗚В瀹?鐒跺悗b)鏇存敼浣犵殑浠g爜鍘繪秷闄よ鍛婂茍璁╀綘鎯寵瀹冩墍鍋氱殑浜嬫儏瀵逛漢鍜岀紪璇戝櫒閮芥洿娓呮.
涓瀹氳鍋氳繖涓姝?鍗充嬌涓寮濮嬬▼搴忕湅璧鋒潵姝g‘榪愯浜?鎴栬呭嵆浣夸綘鑲畾璀﹀憡鏄壇鎬х殑.鍗充嬌鏄壇鎬ц鍛婁篃鍙互浣垮悗闈㈢殑鎸囧嚭鐪熸鍗遍櫓鐨勮鍛婂彉寰楅殣鏅?
渚嬪瓙
// 鏂囦歡: myproj/my_lambda.h -- 鍖呰Boost鐨刲ambda.hpp
// 鎬繪槸浣跨敤榪欎釜鏂囦歡,鑰屼笉鐩存帴浣跨敤lambda.hpp.
// 娉ㄦ剰: 鎴戜滑鐨勬瀯寤虹幇鍦ㄨ嚜鍔ㄦ鏌? "grep lambda.hpp
// Boost.Lambda浜х敓鎴戜滑鎵鐭ラ亾鐨勬棤瀹崇殑緙栬瘧璀﹀憡.
// 褰撲綔鑰呬慨姝e畠鏃舵垜浠皢縐婚櫎涓嬮潰鐨?pragma璇彞,浣嗘槸榪欎釜澶存枃浠朵粛灝嗗瓨鍦?
//
#pragma warning(push) // 浠呭睆钄借繖涓ご鏂囦歡
#pragma warning(disable:4512)
#pragma warning(disable:4180)
#include
// 鈥?涓嶄嬌鐢ㄦ彁紺虹殑鐢ㄦ埛鑷畾涔夊垎閰嶅櫒鍐呴儴 鈥?br>
// 璀﹀憡: "unused parameter 'localityHint'"
pointer allocate( size_type numObjects, const void *localityHint = 0 ) {
return static_cast
}
// 鏂扮増鏈? 娑堥櫎璀﹀憡
pointer allocate( size_type numObjects, const void * /* localityHint */ = 0 ) {
return static_cast
}// 璀﹀憡: "鍙橀噺'lock'瀹氫箟浜嗕絾鍗翠粠鏈嬌鐢?"
void Fun() {
Lock lock;
// 鈥?br>
}
// 鏂扮増鏈? 娑堥櫎浜嗚鍛?br>void Fun() {
Lock lock;
lock;
// 鈥?br>
}
// 璀﹀憡: 涓㈠け"return"
int Fun( Color c ) {
switch( c ) {
case Red: return 2;
case Green: return 0;
case Blue:
case Black: return 1;
}
}
// 鏂扮増鏈? 娑堥櫎璀﹀憡
int Fun( Color c ) {
switch( c ) {
case Red: return 2;
case Green: return 0;
case Blue:
case Black: return 1;
default: assert( !"should never get here!" ); // !"string"鐨勫間負false
return -1;
}
}渚嬪
鏈夋椂緙栬瘧鍣ㄥ彲鑳藉彂鍑轟竴涓帉鐑︾殑鐢氳嚦嬈洪獥鎬х殑璀﹀憡(姣斿綰補鐨勬壈涔變俊鎭?,浣嗘病鏈夊彲鎻愪緵鐨勬柟娉曞幓娑堥櫎瀹?鑰屼笖鍘諱慨鏀逛唬鐮佸幓娑堥櫎瀹冨彲鑳芥槸涓嶅彲瀹炵幇鐨勬垨鏄緬鍔崇殑宸ヤ綔.鍦ㄨ繖浜涚綍瑙佺殑鎯呭喌涓?浣滀負涓涓洟闃熷喅絳?闄ゅ幓榪欎釜鍙槸鏃犺亰鐨勮鍛婄殑鐑︿漢鐨勫伐浣滄槸:浠呬嬌鐗瑰畾璀﹀憡鏃犳晥,騫跺敖鍙兘鏄眬閮ㄦх殑,騫跺啓涓涓竻鏅扮殑娉ㄩ噴鏂囨。璇存槑涓轟粈涔堣繖鏍峰仛鏄繀瑕佺殑.
鍙傝?/h3>
[Meyers97] $48 路 [Stroustrup94] $2.6.2
2. 浣跨敤鑷姩鏋勫緩緋葷粺
鎽樿
鎸?鍗曚釜)鎸夐挳:浣跨敤涓涓棤闇鐢ㄦ埛鍙備笌鐨勫叏鑷姩("涓閿Е鍙?)鏋勫緩緋葷粺.
璁ㄨ
涓涓竴閿Е鍙戝紡鏋勫緩鏂規硶鏄熀鏈殑.瀹冨繀欏昏繘琛屽彲闈犵殑鍜屽彲閲嶅鐨勮漿鎹?灝嗕綘鐨勬簮鏂囦歡杞崲涓哄彲浜や粯鐨勭▼搴忓寘.鏈夊緢澶氳嚜鍔ㄦ瀯寤哄伐鍏峰彲浠ヤ嬌鐢?娌℃湁鐞嗙敱涓嶅幓鐢ㄥ畠.鎸戦変竴涓?浣跨敤瀹?
鎴戜滑宸茶榪囦竴浜涘拷瑙嗕簡"涓閿Е鍙?寮忚姹傜殑緇勭粐.涓浜涗漢璁や負闅忓鐐瑰嚑涓嬮紶鏍?灝卞彲浠ヨ繍琛屼竴浜涘伐鍏鋒潵娉ㄥ唽COM/CORBA鏈嶅姟,鎴栭氳繃鎵嬪伐瀹氬埗鐨勪竴涓悎鐞嗘瀯寤鴻繃紼嬫嫹璐濅竴浜涙枃浠?浣嗘槸浣犳病鏈夋椂闂村拰綺懼姏鍙互嫻垂鍦ㄤ竴浜涙満鍣ㄨ兘鍋氬緱鏇村ソ鏇村揩鐨勪簨鎯呬笂.浣犻渶瑕佷竴閿Е鍙戝紡鐨勮嚜鍔ㄥ寲鐨勫拰鍙潬鐨勬瀯寤?
鎴愬姛鐨勬瀯寤哄簲璇ユ槸娌℃湁浠諱綍璀﹀憡鐨?瑙佺1鏉?.鐞嗘兂鍖栫殑鏋勫緩涓嶄駭鐢熸壈涔變俊鎭?鑰屼粎鏄竴涓棩蹇楁秷鎭?"鏋勫緩鎴愬姛瀹屾垚."
鏈変袱涓瀯寤烘ā寮?澧為噺鏋勫緩鍜屽畬鍏ㄦ瀯寤?澧為噺鏋勫緩浠呴噸寤鴻嚜涓婅嚜澧為噺鏋勫緩鎴栧畬鍏ㄦ瀯寤轟互鏉ヨ淇敼榪囩殑鏂囦歡.鎺ㄨ:涓や釜榪炵畫鐨勫閲忔瀯寤轟腑鐨勫悗鑰呭簲璇ユ病鏈変換浣曡緭鍑烘枃浠?濡傛灉鏈夌殑璇?浣犲彲鑳芥湁涓涓緷璧栫幆(瑙佺22鏉?,鎴栬呬綘鐨勬瀯寤虹郴緇熸墽琛屼簡涓嶅繀瑕佺殑鎿嶄綔(渚嬪鐢熸垚涓嶅悎鐞嗙殑涓存椂鏂囦歡鑰屽彧鏄涪寮冨畠浠?.
涓涓伐紼嬪彲浠ユ湁涓嶅悓褰㈠紡鐨勫畬鍏ㄦ瀯寤?鑰冭檻鐢ㄤ竴緋誨垪鏈川鐨勭壒寰佺‘瀹氫綘鐨勬瀯寤虹殑鍙傛暟;寰堝彲鑳藉欓夎呭氨鏄洰鏍囧紡浣撶郴緇撴瀯銆佽皟璇曞拰鍙戝竷銆佹垨鏇村箍(鍩烘湰鏂囦歡鍜屽叏閮ㄦ枃浠跺拰瀹屽叏瀹夎).涓涓瀯寤鴻緗彲浠ュ垱寤轟竴涓駭鍝佺殑鍩烘湰鐨勫彲鎵ц鏂囦歡鍜屽簱,鍙︿竴涓彲鑳戒篃鍒涘緩涓浜涜緟鍔╂枃浠?涓涓畬鍏ㄥ厖瀹炵殑鏋勫緩涔熷彲鑳藉垱寤轟竴涓寘鍚綘鎵鏈夋枃浠躲佸彲閲嶅彂甯冪殑絎笁鏂瑰簱鍜屽畨瑁呬唬鐮佺殑瀹夎紼嬪簭.
闅忕潃宸ョ▼鐨勮繘琛?娌℃湁鑷姩鏋勫緩鐨勮姳璐逛篃鍦ㄥ闀?濡傛灉浣犱竴寮濮嬫病鏈夌敤,浣犲皢嫻垂寰堝鏃墮棿鍜岃祫婧?鏇寸碂緋曠殑鏄?闅忕潃鑷姩鏋勫緩鎴愪負鏃犳硶鎶墊姉鐨勯渶姹?浣犲皢浼氭湁姣旈」鐩竴寮濮嬫洿澶氱殑鍘嬪姏.
澶ч」鐩彲鑳芥湁涓涓?鏋勫緩甯?涓葷",浠栫殑宸ヤ綔灝辨槸鐓ф枡鏋勫緩緋葷粺.
鍙傝?/h3>
[Brooks95] $13, $19 路 [Dewhurst03] $1 路 [GnuMake] 路 [Stroustrup00] $9.1
3. 浣跨敤涓涓増鏈帶鍒剁郴緇?/h2>
鎽樿
濂借鎬ф瘮涓嶄笂鐑傜瑪澶?浣跨敤涓涓増鏈帶鍒剁郴緇?VCS).鍐充笉瑕佽媯鍑虹殑鏂囦歡淇濈暀寰堥暱鏃墮棿.涓鏃︿綘鐨勬洿鏂扮殑鍗曞厓閫氳繃嫻嬭瘯灝卞敖蹇鍏?紜繚媯鍏ョ殑浠g爜涓嶄細鐮村潖鏁翠釜鏋勫緩.
璁ㄨ
鍑犱箮鎵鏈変笉騫沖嚒鐨勫伐紼嬮兘闇瑕佷竴涓互涓婄殑寮鍙戣呭拰/鎴栬秴榪囦竴鍛ㄧ殑宸ヤ綔閲?鍦ㄨ繖鏍風殑宸ョ▼涓?浣犲皢闇瑕佹瘮杈冨悓涓鏂囦歡鐨勫巻鍙茬増鏈互紜畾鍙樺寲鏄粈涔堟椂鍊?鍜?鎴栬璋?寮曞叆鐨?浣犱篃灝嗛渶瑕佹帶鍒跺拰綆$悊婧愪唬鐮佺殑鍙樺寲.
褰撴湁澶氫釜寮鍙戣呮椂,鍑犱釜寮鍙戣呭緢鍙兘浼氬湪鍚屼竴鏃墮棿瀵瑰悓涓鏂囦歡鐨勪笉鍚岄儴鍒嗚繘琛屽茍琛屽湴鏇存敼.浣犻渶瑕佸伐鍏蜂互鑷姩榪涜鏂囦歡鐨勬鍑哄拰鎭㈠,浠ュ強鍦ㄦ煇浜涙椂鍊欏騫跺彂緙栬緫鐨勫悎騫?VCS鑷姩鎿嶄綔鍜屾帶鍒舵鍑?鎭㈠浠ュ強鍚堝茍.VCS姣旀墜宸ュ仛鐨勬洿蹇洿鍑嗙‘.鑰屼笖浣犱笉鐢ㄨ姳鏃墮棿姣忓ぉ鐨勫幓鎽嗗紕閭d簺閲嶅鎬х殑宸ヤ綔,浣犳湁杞歡瑕佸啓.
涓嶈鐮村潖鏋勫緩.鍦╒CS涓殑浠g爜蹇呴』鎬繪槸鍙互鎴愬姛鏋勫緩鐨?
瀛樺湪寰堝鐨勭増鏈帶鍒剁郴緇熷彲渚涢夋嫨,娌℃湁鐞嗙敱涓嶅幓鐢ㄥ畠.鏈渚垮疁鍜屾祦琛岀殑鏄痗vs(瑙佸弬鑰?.瀹冩槸涓涓伒媧葷殑宸ュ叿,鍏瘋儭TCP/IP璁塊棶鐗規?鍙夋嫨鎬х殑鎻愰珮瀹夊叏鎬?閫氳繃鐢ㄥ畨鍏ㄥ澹砈SH浣滀負鍚庣),鍗撹秺鐨勮剼鏈鐞?鐢氳嚦鏈夊浘褰㈡帴鍙?璁稿鍏跺畠VCS涔熷皢cvs浣滀負鏍囧噯鍘繪晥浠?鎴栧熀浜庡畠鏋勫緩鏂扮殑鍔熻兘.
渚嬪
浠庡鑷崇粓鍙姳涓鍛ㄥ乏鍙蟲椂闂寸殑涓涓▼搴忓憳鐨勯」鐩垨璁稿彲浠ヤ笉闇瑕乂CS鑰岀敓瀛樺惂.
鍙傝?/h3>
[BetterSCM] 路 [Brooks95] $11, $13 路 [CVS]
4. 鍦ㄤ唬鐮佸闃呬笂浣滄姇鍏?/h2>
鎽樿
浠g爜瀹¢槄:鏇村鍙岀溂鐫涘皢浼氬甫鏉ユ洿濂界殑璐ㄩ噺.灞曠ず浣犵殑浠g爜,騫墮槄璇諱粬浜虹殑.浣犱滑閮藉皢鐩鎬簰瀛︿範鎴栧彈鐩?
璁ㄨ
涓涓壇濂界殑浠g爜瀹¢槄榪囩▼鍦ㄨ澶氭柟闈㈤兘瀵逛綘鐨勫洟闃熸湁濂藉.瀹冨彲浠?
鍗充嬌浣犵殑闆囦富榪樹笉鏀寔浠g爜瀹¢槄鏂規硶,浣犱篃瑕佸鍔犵鐞嗙煡璇?鎻愮ず:瑕佸紑濮?緇欎粬浠湅榪欐湰涔?浠ュ強鏃犺濡備綍瑕佸敖浣犳渶澶у姫鍔涘幓瀹夋帓鏃墮棿騫跺紩瀵煎闃呯殑榪涜.榪欐椂闂存槸鍊煎緱鑺辯殑.
灝嗕唬鐮佸闃呬綔涓轟綘鐨勮蔣浠跺紑鍙戝懆鏈熺殑涓欏瑰父瑙勭▼搴?濡傛灉浣犲拰浣犵殑闃熷弸璧炲悓鍩轟簬嬋鍔?涔熷彲鑳芥槸鎸姌)鐨勫鎯╁埗搴?灝變細濂藉緱澶?
涓嶈鍋氬緱澶艦寮忓寲浜?鍐欎竴灝佺畝鍗曠殑閭歡灝辮凍澶熷皢浠g爜瀹¢槄鍋氬緱寰堝ソ浜?榪欎細浣夸綘鏇村鏄撹窡韙嚜宸辯殑榪涚▼浠ュ強閬垮厤閲嶅.
褰撳闃呬粬浜虹殑浠g爜鏃?浣犲彲鑳芥兂鍦ㄦ梺杈逛繚鐣欎竴涓緵鍙傝冪殑娓呭崟.紿冧互涓轟竴涓ソ鐨勬竻鍗曞彲鑳芥鏄綘姝e湪璇葷殑榪欐湰涔︾殑鐩綍琛?婊℃剰鍚?
鎽樿:鎴戜滑鐭ラ亾鎴戜滑鍦ㄧ粰"鍞辮瘲鐝?甯冮亾,浣嗘槸涓嶅緱涓嶈.浣犱滑鐨勮嚜璐熸垨鑷垜涓諱箟涔熻璁ㄥ帉浠g爜瀹¢槄,浣嗕綘浠腑鐨勫皯閲忓ぉ鎵嶇▼搴忓憳鍠滄瀹?鍥犱負瀹冧細鏈夋垚鏁堝茍浣夸唬鐮佹洿濂?浣跨▼搴忔洿寮哄仴.
鍙傝?/h3>
[Constantine95] $10, $22, $33 路 [McConnell93] $24 路 [MozillaCRFAQ]
]]>
鎴戜篃涓嶇煡閬撹繖鏄庝箞鍥炰簨錛屼篃涓嶆槸寰堝繖鍟娿傚湪鑷繁鏈哄瓙涓婂紕浜嗗嚑涓綉欏碉紝灝卞湪涓婇潰鍜屽悓瀛︿滑浜掔浉浜ゆ祦錛屽啓涓浜涙枃绔狅紱浣嗙幇鍦ㄤ篃娌℃湁鍐嶅紕浜嗐?/span>
鎴戠殑嬋鎯呭ソ鍍忔繪槸寰堝揩鐨勬秷閫濄備互鍚庢湁榪囧嚑涓」鐩殑蹇靛ご錛岄兘鍙槸鍒氬仛浜嗕釜寮濮嬶紝鑺卞嚑澶╂垨涓鍛ㄦ椂闂村悗灝辨病嬋鎯呬簡銆傜幇鍦ㄤ篃鏄垰鎵句簡鍑犱釜鍚屽緇勭粐浜嗕竴涓皬鐨勫洟闃熸潵鍐欑偣紼嬪簭錛屼絾緇忓父榪欎竴涓湀宸﹀彸鍚庯紝鍙戠幇鎴戝ソ鍍忓張鎯蟲崲鍏跺畠鐨勫涔犵洰鏍囦簡銆?/span>
鎴戜負浠涔堟繪槸榪欐牱瀛愬憿錛?/span>
鐜板湪蹇冩儏鍙堟槸鍛ㄦ湡鎬у湴钀藉湪浜嗕綆璋鳳紝榪欎竴鍛ㄥ嚑涔庝粈涔堥兘娌″仛銆備笂璇句篃閮芥病鍏磋叮銆傚紑浜嗕袱闂ㄩ変慨璇綳ML鍜孉SP.NET錛沊ML浜嗚В榪囷紝浣嗕笉娣卞叆錛岃佸笀璁插緱澶暦嫻咃紝鎯寵嚜宸卞錛屽張涓嶅ソ璺熻佸笀璇達紝鎷呭績璇存垜鐪嬩笉璧瘋佸笀錛屼絾瀛﹀垎寰楄鍟婏紝涓嶉夊張涓嶈錛汚SP.NET涔熸槸鐢ㄨ繃鐨勶紝浣嗗瀹冩病澶ぇ鍏磋叮錛岀湅浜嗗埆浜虹殑鏁欐潗錛岄偅浜涘唴瀹瑰熀鏈笂閮界煡閬撶殑錛岄氳繃鑰冭瘯鏄病闂鐨勶紝浣嗚繕鏄斁涓嶄笅榪欏ソ鍑犱釜鐮村鍒嗐傛垜鍙戠幇鎴戠湡鏄粰鐜板湪鐨勬暀鑲插浣忎簡銆?/span>
寰椾笅涓喅蹇冧簡錛佲︹﹀ソ鍍忔垜涓嬬殑鍐沖績涔熶笉灝戝晩錛屼絾涔熷熀鏈笂閮芥病鑳藉潥鎸佸嚑澶╋紝鍞夆︹︼紒
榪欐牱鐨勭敓媧諱綍鏃舵槸涓ご鍟娾︹?/span>
]]>