锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品一级,国产精品美女久久久久久免费,欧美xx69http://www.shnenglu.com/wanghaiguang/category/19460.html閫嗘按琛岃垷錛屼笉榪涘垯閫zh-cnTue, 20 May 2014 16:44:51 GMTTue, 20 May 2014 16:44:51 GMT60紼嬪簭鍛橀渶瑕佸叿澶囩殑鍩烘湰鎶鑳斤紙杞澆錛?/title><link>http://www.shnenglu.com/wanghaiguang/archive/2013/11/28/204491.html</link><dc:creator>鐜嬫搗鍏?/dc:creator><author>鐜嬫搗鍏?/author><pubDate>Thu, 28 Nov 2013 03:55:00 GMT</pubDate><guid>http://www.shnenglu.com/wanghaiguang/archive/2013/11/28/204491.html</guid><wfw:comment>http://www.shnenglu.com/wanghaiguang/comments/204491.html</wfw:comment><comments>http://www.shnenglu.com/wanghaiguang/archive/2013/11/28/204491.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/wanghaiguang/comments/commentRss/204491.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/wanghaiguang/services/trackbacks/204491.html</trackback:ping><description><![CDATA[<p style="margin: 0px 0px 10px; padding: 0px; color: #555555; font-family: Arial, Verdana, 'BitStream vera Sans', Tahoma, Helvetica, sans-serif; line-height: 22px;">杞歡寮鍙戞槸涓涓法搴﹀緢澶х殑鎶鏈伐浣滐紝鍦ㄨ璦鏂歸潰錛屾湁C錛孋++錛孞ava錛孯uby絳夌瓑絳夌瓑錛屽湪鐜鏂歸潰錛屽張鍒嗗祵鍏ュ紡錛屾闈㈢郴緇燂紝浼佷笟綰э紝WEB錛屽熀紜緋葷粺錛屾垨鏄瀛︾爺絀躲備絾鏄紝涓嶇鏄粈涔堢殑鎯呭喌錛屾繪槸鏈変竴浜涢氱敤鐨勫熀鏈亴涓氭妧鑳姐?/p><p style="margin: 0px 0px 10px; padding: 0px; color: #555555; font-family: Arial, Verdana, 'BitStream vera Sans', Tahoma, Helvetica, sans-serif; line-height: 22px;">榪欎簺鏈鍩烘湰鐨勮亴涓氭妧鑳介氬父鍐沖畾浜嗕竴涓▼搴忓憳鐨勭駭鍒紝鑳藉惁鐢ㄥソ榪欎簺鎶鑳斤紝鐩存帴鍏崇郴鍒頒簡紼嬪簭鍛樼殑鑱屼笟鐢熸動銆傚緢澶氱▼搴忔柊鎵嬩篃鏄洜涓虹己灝戙佽揪涓嶅埌鎴栨槸涓嶇啛鎮夊湪榪欎簺鍩烘湰鎶鑳斤紝鎵浠ワ紝浠栦滑闇瑕佹湁鑰佹墜甯︼紝闇瑕佸姫鍔涜ˉ榻愯繖浜涙妧鑳姐傝岄珮綰х▼搴忓憳搴旇闈炲父鐔熸倝榪欎簺鍩烘湰鎶鑳斤紝鑰屼笖鏈夎兘鍔涜儨浠誨茍甯﹂鍏朵粬緇忛獙涓嶈凍鐨勭▼搴忓憳銆?/p><p style="margin: 0px 0px 10px; padding: 0px; color: #555555; font-family: Arial, Verdana, 'BitStream vera Sans', Tahoma, Helvetica, sans-serif; line-height: 22px;">涓嬮潰榪欎簺鍩烘湰鑱屼笟鎶鏈彲浠ョ敤鏉ュ仛涓哄涓涓▼搴忓憳鐨勮瘎浼幫紝寰堟槑鏄撅紝涓嬮潰鐨勮繖浜涙妧鑳介兘鍙互鐢ㄦ潵鍋氶潰璇曘傝櫧鐒訛紝榪樻湁寰堝闈炴妧鏈殑鍥犵礌錛屼絾瀵逛簬璇勪及涓涓▼搴忓憳鐨勬妧鏈兘鍔涙潵璇達紝鍏跺簲璇ユ槸瓚沖鐨勪簡銆?/p><p style="margin: 0px 0px 10px; padding: 0px; color: #555555; font-family: Arial, Verdana, 'BitStream vera Sans', Tahoma, Helvetica, sans-serif; line-height: 22px;">涓嬮潰鏄▼搴忓憳鎵搴旇鍏峰鐨勫熀鏈亴涓氭妧鑳斤細</p><p style="margin: 0px 0px 10px; padding: 0px; color: #555555; font-family: Arial, Verdana, 'BitStream vera Sans', Tahoma, Helvetica, sans-serif; line-height: 22px;"></p><table border="0" cellspacing="0" style="background-color: #ffffff; border: 2px solid #cccccc; border-collapse: collapse; margin: 5px 0px 10px; color: #555555; font-family: Arial, Verdana, 'BitStream vera Sans', Tahoma, Helvetica, sans-serif; font-size: 14px; line-height: 22px;"><tbody><tr><th width="20%" style="border: 1px solid #cccccc; padding: 3px 10px; vertical-align: top; background-color: #edeff0;">鍩烘湰鎶鑳?/th><th width="80%" style="border: 1px solid #cccccc; padding: 3px 10px; vertical-align: top; background-color: #edeff0;">鎶鑳芥弿榪?/th></tr><tr><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">闃呰浠g爜</td><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">榪欎釜鎶鑳介渶瑕佺▼搴忓憳鑳藉鍏峰璇繪噦宸茬粡瀛樺湪鐨勪唬鐮佺殑鑳藉姏錛岃繖鏍風殑鑳藉姏鍙互璁╃▼搴忓憳鍒嗘瀽紼嬪簭鐨勮涓猴紝浜嗚В紼嬪簭錛岃繖鏍鋒墠鑳藉拰寮鍙戝洟闃熶竴璧峰伐浣滐紝緇ф壙緇存姢鎴栨槸鏀硅繘鐜版湁鐨勭▼搴忋?/td></tr><tr><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">緙栧啓紼嬪簭</td><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">緙栧啓紼嬪簭騫朵笉鍖呮嫭紼嬪簭璁捐銆備笉瑕佷互涓虹紪紼嬫槸涓浠跺緢綆鍗曠殑浜嬫儏錛屽緢澶氱▼搴忓憳閮借涓虹紪紼嬪彧闇瑕佹噦寰楃▼搴忚璦鐨勮娉曪紝騫舵妸璁捐瀹炵幇灝卞彲浠ヤ簡銆備絾鏄繖紱葷紪鍐欑▼搴忚繕榪滆繙涓嶅錛屼嬌鐢ㄤ粈涔堟牱鐨勭紪鐮侀鏍兼垚涓虹紪鍐欑▼搴忓憳鏈闇瑕佸叿澶囩殑鍩烘湰鎶鑳姐傝兘鍚︿嬌鐢ㄩ潪甯歌壇濂界殑緙栫▼椋庢牸鐩存帴鍐沖啓浜嗙▼搴忓憳鐨勭駭鍒?/td></tr><tr><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">杞歡璁捐</td><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">榪欎竴鑳藉姏鐩存帴鍐沖畾浜嗛渶瑕佸悘鐢ㄤ粈涔堟牱鐨勪唬鐮佹妧鏈揪鍒版庝箞鏍風殑鍔熻兘錛岃岀郴緇熸灦鏋勮璁$洿鎺ュ喅瀹氫簡杞歡鐨勮川閲忋佹ц兘鍜屽彲緇存姢鎬с傚茍涓嶆槸鎵鏈夌殑紼嬪簭鍦ㄨ繖涓鏂歸潰閮介潪甯鎬紭縐錛屼絾姣忎釜紼嬪簭鍛橀兘闇瑕佹垨澶氭垨灝戠殑鏄庣櫧鍜屾帉鎻¤繖涓鍩烘湰鎶鑳姐?/td></tr><tr><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">鐔熸倝杞歡宸ョ▼</td><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">姣忎釜紼嬪簭鍛橀兘搴旇鏄庣櫧杞歡宸ョ▼鏄粈涔堜笢瑗匡紝閮藉簲璇ョ煡閬擄紝闇姹傚垎鏋愶紝璁捐錛岀紪鐮侊紝嫻嬭瘯錛孯elease鍜岀淮鎶よ繖鍑犱釜闃舵銆傚綋鐒訛紝鍑犱箮鎵鏈夌殑浜洪兘鐭ラ亾榪欎簺涓滆タ錛屼絾騫朵笉鏄瘡涓漢閮藉緢娓呮榪欎簺涓滆タ銆傜幇鍦ㄥ緢澶氶珮綰х▼搴忓憳閮戒細娣鋒穯“闇姹傝鏍艱鏄庝功FS”鍜?#8220;姒傝璁捐HLD”銆傚彟澶栵紝紼嬪簭鍛樿繕闇瑕佺煡閬撲竴浜涜蔣浠跺紑鍙戠殑鏂規硶璁猴紝姣斿錛氭晱鎹峰紑鍙戞垨鐎戝竷妯″瀷銆?/td></tr><tr><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">浣跨敤紼嬪簭搴撴垨妗嗘灦</td><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">涓涓▼搴忓憳闇瑕佸浼氫嬌鐢ㄥ凡鏈夌殑浠g爜錛屾棤璁烘槸鏍囪鐨勭▼搴忓簱錛屾垨鏄涓夋柟鐨勶紝榪樻槸鑷繁鍏徃鍐呴儴鐨勶紝閮介渶瑕佸浼氬仛銆傛瘮濡傦細C++涓紝闇瑕佸浼氫嬌鐢⊿TL錛孧FC錛孉TL錛孊OOST錛孉CE錛孋PPUNIT絳夌瓑銆備嬌鐢ㄨ繖浜涗笢瑗匡紝鍙互璁╀綘鐨勫伐浣滀簨鍗婂姛鍊嶃?/td></tr><tr><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">紼嬪簭璋冭瘯</td><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">紼嬪簭璋冭瘯鏄垎鏋怋UG鍜岃В鍐抽棶棰樻渶鐩存帴鐨勮兘鍔涖傛病鏈変漢鑳藉淇濊瘉紼嬪簭鍐欏嚭鏉ヤ笉鐢ㄨ皟璇曞氨鍙互榪愯姝e父錛屼篃娌℃湁浜哄彲浠ヤ繚璇佺▼搴忔案榪滀笉浼氬嚭BUG銆傛墍浠ワ紝鐔熺粌浣跨敤璋冭瘯鍣ㄦ槸涓涓▼搴忓憳闇瑕佸叿澶囩殑鍩烘湰鎶鑳姐?/td></tr><tr><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">浣跨敤IDE</td><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">瀛︿細浣跨敤IDE宸ュ叿涔熶細璁╀綘鐨勫伐浣滀簨鍗婂姛鍊嶃傛瘮濡傦紝VC++錛孍macs錛孍clipse絳夌瓑錛屽茍瑕佺煡閬撹繖浜汭DE鐨勯暱澶勫拰鐭銆?/td></tr><tr><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">浣跨敤鐗堟湰鎺у埗</td><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">涓瀹氳瀛︿細浣跨敤鐗堟湰鎺у埗宸ュ叿錛屼粈涔堝彨mainline/trunk錛屼粈涔堝彨tag錛屼粈涔堝彨branch錛屾庝箞鍋歱atch錛屾庝箞merge浠g爜錛屾庝箞reverse錛屾庝箞鍒╃敤鐗堟湰鎺у埗宸ュ叿緇存姢涓嶅悓鐗堟湰鐨勮蔣浠躲傝繖鏄▼搴忓憳闇瑕佹槑鐨勭殑杞歡閰嶇疆綆$悊涓渶閲嶈鐨勪竴鍧椼?/td></tr><tr><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">鍗曞厓嫻嬭瘯</td><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">鍗曞厓嫻嬭瘯鏄瘡涓▼搴忛兘闇瑕佸仛鐨勩傚緢澶氬崟鍏冩祴璇曚篃鏄渶瑕佺紪鐮佺殑銆備竴瀹氳瀛︿細鍦▁Unit妗嗘灦涓嬭繘琛屽崟鍏冩祴璇曘傛瘮濡侸Unit, NUnit, CppUnit絳夌瓑銆?/td></tr><tr><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">閲嶆瀯浠g爜</td><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">姣忎釜紼嬪簭鍛橀兘闇瑕佹湁鏈鍩烘湰鐨勮兘鍔涘幓閲嶆瀯鐩墠宸叉湁鐨勪唬鐮侊紝浣夸唬鐮佽揪鍒版渶浼樹絾鍗翠笉鑳藉獎鍝嶄換浣曠殑宸叉湁鐨勫姛鑳姐傛湁涓鏈功鍙婅蔣浠剁殑閲嶆瀯銆嬶紝姣忎釜紼嬪簭鍛橀兘搴旇璇諱竴涓嬨?/td></tr><tr><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">鑷姩鍖栫紪璇?/td><td style="border-style: solid; border-color: #cccccc; padding: 3px 10px; vertical-align: top;">紼嬪簭鍛橀渶瑕佷嬌鐢ㄤ竴涓剼鏈紝鍏惰兘鑷姩鍖栫紪紼嬫墍鏈夌殑宸ョ▼鍜屼唬鐮侊紝榪欐牱錛屾暣涓紑鍙戝洟闃熷彲浠ヤ笉鍋滃湴闆嗘垚浠g爜錛岃嚜鍔ㄥ寲嫻嬭瘯錛岃嚜鍔ㄥ寲閮ㄧ講錛屼互鍙婁嬌鐢ㄤ竴浜涘伐鍏瘋繘琛岄潤鎬佷唬鐮佸垎鏋愭垨鏄嚜鍔ㄥ寲嫻嬭瘯銆?/td></tr></tbody></table><p style="margin: 0px 0px 10px; padding: 0px; color: #555555; font-family: Arial, Verdana, 'BitStream vera Sans', Tahoma, Helvetica, sans-serif; line-height: 22px;">褰撶劧錛岃繕鏈夊緢澶氱殑鍩烘湰鎶鏈篃鏄潪甯擱噸瑕佺殑錛屾瘮濡傦紝涓庝漢鐨勬矡閫氳兘鍔涳紝璇█鐨勮〃杈捐兘鍔涳紝鍐欎綔鑳藉姏錛屽洟闃熷崗浣滆兘鍔涳紝閫傚簲鍙樺寲鐨勮兘鍔涳紝鏃墮棿綆$悊鑳藉姏錛屽浠誨姟澶勭悊鑳藉姏錛岃嚜鎴戝涔犺兘鍔涳紝鏁呴殰澶勭悊鑳藉姏錛岀瓑絳夛紝絳夌瓑錛岃繖閲屽彧鏄垪涓句簡鍜屾妧鏈浉鍏崇殑鑳藉姏錛岃繖浜涙槸紼嬪簭鏈鏈鏈鍩烘湰鐨勮兘鍔涳紝鍙鏄▼搴忓憳灝卞繀闇瑕佹湁鐨勮兘鍔涖?br /><br />鏈枃杞嚜錛?a style="font-family: verdana, 'courier new'; line-height: 21px;">http://coolshell.cn/articles/428.html</a></p><img src ="http://www.shnenglu.com/wanghaiguang/aggbug/204491.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/wanghaiguang/" target="_blank">鐜嬫搗鍏?/a> 2013-11-28 11:55 <a href="http://www.shnenglu.com/wanghaiguang/archive/2013/11/28/204491.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>VS2010璋冭瘯絎旇http://www.shnenglu.com/wanghaiguang/archive/2013/05/22/200536.html鐜嬫搗鍏?/dc:creator>鐜嬫搗鍏?/author>Wed, 22 May 2013 09:57:00 GMThttp://www.shnenglu.com/wanghaiguang/archive/2013/05/22/200536.htmlhttp://www.shnenglu.com/wanghaiguang/comments/200536.htmlhttp://www.shnenglu.com/wanghaiguang/archive/2013/05/22/200536.html#Feedback0http://www.shnenglu.com/wanghaiguang/comments/commentRss/200536.htmlhttp://www.shnenglu.com/wanghaiguang/services/trackbacks/200536.html1銆?/strong>浠婂ぉ璋冭瘯涓涓猟emo錛屽彂鐜板涓嬮敊璇?/span>

1>  緋葷粺鎵句笉鍒版寚瀹氱殑鏂囦歡銆?/span>
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: The command "copy D:\WL_SDK_LAN_C++_20130521\demo\c++\Debug\Sample.exe D:\YuanTuo_1\wulianSDK\wulian_sdk_sample\SDK\Sample.exe
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :VCEnd" exited with code 1.

鍙互淇敼涓嬮潰灞炴э細


 

2銆?/span>VS2010緙栬瘧閿欒錛?/span>

fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x

fatal error C1189: #error :  This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.


涓嬮潰鏄交搴曡В鍐蟲柟娉曪細
鍦ㄥ伐紼嬬殑stdafx.h涓坊鍔狅紙濡傛湁綾諱技璇彞錛岄渶娉ㄩ噴鎺夛級
#ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later.
#define WINVER 0x0501 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif

#ifndef _WIN32_WINNT // Allow use of features specific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif

#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0501 // Change this to the appropriate value to target Windows Me or later.
#endif

#ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later.
#define _WIN32_IE 0x0601 // Change this to the appropriate value to target IE 5.0 or later.
#endif


]]>
浠庝竴閬撻潰璇曢鏉ラ槓閲婁竴涓櫘閬嶇殑璁ょ煡璇尯錛堣漿杞斤級http://www.shnenglu.com/wanghaiguang/archive/2013/04/18/199537.html鐜嬫搗鍏?/dc:creator>鐜嬫搗鍏?/author>Thu, 18 Apr 2013 03:03:00 GMThttp://www.shnenglu.com/wanghaiguang/archive/2013/04/18/199537.htmlhttp://www.shnenglu.com/wanghaiguang/comments/199537.htmlhttp://www.shnenglu.com/wanghaiguang/archive/2013/04/18/199537.html#Feedback0http://www.shnenglu.com/wanghaiguang/comments/commentRss/199537.htmlhttp://www.shnenglu.com/wanghaiguang/services/trackbacks/199537.html   瑙i噴浠ヤ笅璇彞鐨勫惈涔夛細
         1
銆?/span>new A;
         2
銆?/span>new A();    
   涔熻寰堝浜哄寘鎷垜鑷繁錛岄兘鍙互椹笂緇欏嚭絎竴縐嶆儏鍐電殑絳旀錛氬湪鍫嗕笂涓?/span>A綾誨垎閰嶅唴瀛橈紝鐒跺悗璋冪敤A鐨勬瀯閫犲嚱鏁般傝繖縐嶈娉曡澶у鎵鐔熺煡錛屽洜涓哄寘鎷?/span>STL婧愮爜鍓栨瀽銆嬬瓑澶т綔鍦ㄥ唴涔熼兘鏄繖涔堝啓鐨勶紙浣嗘槸浣犺涓鴻繖縐嶈娉曞畬鍏ㄦ紜悧錛?/span>鍏跺疄涓嶅敖鐒訛紝絳旀鍚庨潰鎻檽)
    絎簩縐嶆儏鍐碉紝瀵硅薄鏋勯犵殑鏃跺欏垵濮嬪寲鍒楄〃涓虹┖浼氬拰絎竴縐嶆湁浠涔堜笉鍚屽憿錛熷浜庤繖縐嶅湪瀹為檯宸ョ▼涓緢灝戜嬌鐢ㄧ殑鎯呭喌錛屾垜涓鏃惰繕鐪熺粰涓嶅嚭紜垏鐨勭瓟妗堛?/span>
   緗戜笂鎼滀簡涓涓嬶紝鐪嬪埌CSDN閲岄潰榪樻湁涓撻棬閽堝榪欎釜闂鐨勪竴涓笘瀛愶紙鍘熷笘閾炬帴 http://bbs.csdn.net/topics/320161716錛夈?/span>
   濂藉儚鏈緇堜篃娌℃湁鍙互淇℃湇鐨勭瓟妗堬紝璁ゅ悓搴︽瘮杈冮珮鐨勬槸榪欐牱鐨勮娉曪細
鍔犳嫭鍙瘋皟鐢ㄦ病鏈夊弬鏁扮殑鏋勯犲嚱鏁幫紝涓嶅姞鎷彿璋冪敤榛樿鏋勯犲嚱鏁版垨鍞竴鐨勬瀯閫犲嚱鏁幫紝鐪嬮渶姹?/span>錛?/span>peakflys娉細榪欑璇存硶鏄敊璇殑錛岀瓟妗堝悗闈㈡彮鏅擄級
   鏃㈢劧娌℃湁鐗瑰埆闈犺氨鐨勭瓟妗堬紝涓嶅鑷繁鍔ㄦ墜鎵懼嚭絳旀銆?/span>
   鏋勯犱互涓嬬ず渚嬶細

/**
 *\brief example1 difference between new and new()
 *\author peakflys
 *\data 12:10:24 Monday, April 08, 2013
 
*/

class A
{
public:
    int a;
};

int main()
{
    A *pa = new A;
    A *paa = new A();
    return 0;
}

鏌ョ湅main鍑芥暟鐨勬眹緙栦唬鐮?/span>(緙栬瘧鍣細gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4) )

int main()
{
  4005c4:   55                      push   %rbp
  4005c5:   48 89 e5                mov    %rsp,%rbp
  4005c8:   48 83 ec 10             sub    $0x10,%rsp
    A *pa = new A;
  4005cc:   bf 04 00 00 00          mov    $0x4,%edi
  4005d1:   e8 f2 fe ff ff          callq  4004c8 <_Znwm@plt>         //璋冪敤new
  4005d6:   48 89 45 f0             mov    %rax,-0x10(%rbp)           //rax瀵勫瓨鍣ㄥ唴瀹硅祴緇欐寚閽坧a(rax瀵勫瓨鍣ㄩ噷鏄痭ew璋冪敤浜х敓鐨凙瀵硅薄鍫嗗唴瀛樺湴鍧)
    A *paa = new A();
  4005da:   bf 04 00 00 00          mov    $0x4,%edi
  4005df:   e8 e4 fe ff ff          callq  4004c8 <_Znwm@plt>         //璋冪敤new
  4005e4:   48 89 c2                mov    %rax,%rdx                      //rax鐨勫唴瀹規斁鍏dx錛屾墽琛屼箣鍚庯紝rdx閲屽瓨鏀劇殑鍗蟲槸閫氳繃new A()浜х敓鐨勫唴瀛樺湴鍧
  4005e7:   c7 02 00 00 00 00       movl   $0x0,(%rdx)                 //鎶妑dx鍐呭瓨鎸囧悜鐨勫唴瀹硅祴涓?鍊鹼紝鍗蟲妸A::a璧嬪間負0
  4005ed:   48 89 45 f8             mov    %rax,-0x8(%rbp)             //rax瀵勫瓨鍣ㄥ唴瀹硅祴緇欐寚閽坧aa(rax瀵勫瓨鍣ㄩ噷鏄痭ew()璋冪敤浜х敓鐨凙瀵硅薄鍫嗗唴瀛樺湴鍧)
     return 0;
  4005f1:   b8 00 00 00 00          mov    $0x0,%eax
}
  4005f6:   c9                      leaveq 
  4005f7:   c3                      retq
    閫氳繃涓婇潰浜х敓鐨勬眹緙栦唬鐮?/span>(瀵?/span>AT&T姹囩紪涓嶇啛鎮夌殑鍙互鐪嬫敞閲?/span>)鍙互寰堝鏄撶湅鍑猴紝new A()鐨勬墽琛岋紝鍦ㄨ皟鐢ㄥ畬operator new鍒嗛厤鍐呭瓨鍚庯紝椹笂瀵規柊鍒嗛厤鍐呭瓨涓殑瀵硅薄浣跨敤0鍊煎垵濮嬪寲錛岃?/span>new A 浠呬粎鏄皟鐢ㄤ簡operator new鍒嗛厤鍐呭瓨錛?/span>
   鏄笉鏄繖鏍峰氨鍙互涓嬬粨璁?/span> new A()姣?/span>new A澶氫簡涓姝ワ紝鍗沖垵濮嬪寲瀵硅薄鐨勬楠ゅ憿錛?/span>
   鎴戜滑鍐嶇湅鐪嬩笅闈㈣繖縐嶆儏鍐碉細

/**
 *\brief example2 difference between new and new()
 *\author peakflys
 *\data 12:23:20 Monday, April 08, 2013
 
*/

class A
{
public:
    A(){a = 10;}
    int a;
};

int main()
{
    A *pa = new A;
    A *paa = new A();
    return 0;
}

   榪欑鎯呭喌鏄被鏄劇ず鎻愪緵鍚粯璁ゅ肩殑鏋勯犲嚱鏁般?/span>
   鏌ョ湅姹囩紪瀹炵幇濡備笅錛?/span>

int main()
{
  4005c4:   55                      push   %rbp
  4005c5:   48 89 e5                mov    %rsp,%rbp
  4005c8:   53                      push   %rbx
  4005c9:   48 83 ec 18             sub    $0x18,%rsp
    A *pa = new A;
  4005cd:   bf 04 00 00 00          mov    $0x4,%edi
  4005d2:   e8 f1 fe ff ff          callq  4004c8 <_Znwm@plt>
  4005d7:   48 89 c3                mov    %rax,%rbx
  4005da:   48 89 d8                mov    %rbx,%rax
  4005dd:   48 89 c7                mov    %rax,%rdi
  4005e0:   e8 2d 00 00 00          callq  400612 <_ZN1AC1Ev>
  4005e5:   48 89 5d e0             mov    %rbx,-0x20(%rbp)
    A *paa = new A();
  4005e9:   bf 04 00 00 00          mov    $0x4,%edi
  4005ee:   e8 d5 fe ff ff          callq  4004c8 <_Znwm@plt>
  4005f3:   48 89 c3                mov    %rax,%rbx
  4005f6:   48 89 d8                mov    %rbx,%rax
  4005f9:   48 89 c7                mov    %rax,%rdi
  4005fc:   e8 11 00 00 00          callq  400612 <_ZN1AC1Ev>
  400601:   48 89 5d e8             mov    %rbx,-0x18(%rbp)
    return 0;
  400605:   b8 00 00 00 00          mov    $0x0,%eax
}
  40060a:   48 83 c4 18             add    $0x18,%rsp
  40060e:   5b                      pop    %rbx
  40060f:   c9                      leaveq 
  400610:   c3                      retq 

   涓婇潰鐨勬眹緙栦唬鐮佸氨涓嶅湪娣誨姞娉ㄩ噴浜嗭紝鍥犱負涓ょ鎿嶄綔浜х敓鐨勬眹緙栦唬鐮佹槸涓鏍風殑錛岄兘鏄厛璋冪敤operator new鍒嗛厤鍐呭瓨錛岀劧鍚庤皟鐢ㄦ瀯閫犲嚱鏁般?/span>
   涓婇潰鐨勬儏鍐靛湪VS2010涓嬮獙璇佹槸涓鏍風殑鎯呭喌錛屾湁鍏磋叮鐨勬湅鍙嬪彲浠ヨ嚜宸卞幓鐪嬶紝榪欓噷灝變笉鍐嶈創鍑?/span>VS2010涓嬬殑姹囩紪浠g爜浜嗐?/span>
   閫氳繃涓婇潰鐨勫垎鏋愶紝瀵逛簬
new A鍜?/span> new A() 鐨勫尯鍒?/span>錛屾垜浠彲浠ュ緱鍑轟笅闈㈢殑緇撹錛?/span>
      
1銆佺被浣撳惈鏈夋樉紺洪傚悎鍦伴粯璁ゆ瀯閫犲嚱鏁版椂錛?/span>new A鍜?/span>new A()鐨勪綔鐢ㄤ竴鑷達紝閮芥槸棣栧厛璋冪敤operator new鍒嗛厤鍐呭瓨錛岀劧鍚庤皟鐢ㄩ粯璁ゆ瀯閫犲嚱鏁板垵濮嬪寲瀵硅薄銆?/span>
     2銆佺被浣撴棤鏄劇ず鏋勯犲嚱鏁版椂錛?/span>new A()棣栧厛璋冪敤operator new鏉ヤ負瀵硅薄鍒嗛厤鍐呭瓨錛岀劧鍚庝嬌鐢ㄧ┖鍊煎垵濮嬪寲瀵硅薄鎴愬憳鍙橀噺錛岃?/span>new A浠呬粎鏄皟鐢?/span>operator new鍒嗛厤鍐呭瓨錛屽璞$殑鎴愬憳鍙橀噺鏄棤鎰忎箟鐨勯殢鏈哄鹼紒  錛?/span>peakflys娉細瀵逛簬鍩烘湰鏁版嵁綾誨瀷錛屽int絳?/span> 閫傜敤姝ゆ潯錛?/span>
   娉ㄦ剰鍒幫紝鐜板湪寰堝涔︾睄瀵?/span>new鎿嶄綔絎︾殑璇存槑閮藉瓨鍦ㄧ喊婕忥紝渚嬪銆?/span>STL婧愮爜鍓栨瀽銆嬩腑2.2.2鑺備腑鏈変互涓嬬殑鎻忚堪錛?/span>


浜嬪疄璇佹槑錛?/span>new Foo鐨勬搷浣滄槸鍚︽湁鏋勯犲嚱鏁扮殑璋冪敤鏄笉紜畾鐨勶紝鍏蜂綋瑕佺湅Foo綾諱綋閲屾槸鍚︽湁鏄劇ず鏋勯犲嚱鏁扮殑鍑虹幇銆?/span>

/*****************************************鍗庝附鍒嗗壊綰?/span>**************************************
琛ュ厖錛氬垰鎵嶅彂鐜幫紝鍦?/span>C++Primer絎洓鐗?/span>5.11鑺備腑錛屽凡緇忔湁浜嗗浜?/span>new A()鐨勮鏄庯細

   We indicate that we want to value-initialize the newly allocated object by following the type nameby a pair of empty parentheses. The empty parentheses signal that we want initialization but arenot supplying a specific initial value. In the case of class types (such as string) that define their own constructors, requesting value-initialization is of no consequence: The object is initialized by running the default constructor whether we leave it apparently uninitialized orask for value-initialization. In the case of built-in types or types that do not define any constructors, the difference is significant錛?/span>

     int *pi = new int;         // pi points to an uninitialized int 

     int *pi = new int();       // pi points to an int value-initialized to 0 

In the first case, the int is uninitialized; in the second case, the int is initialized to zero.
   榪欓噷緇欏嚭鐨勮В閲婂拰涓婇潰鑷繁鍒嗘瀽鐨?/span>new A()鐨勮涓烘槸涓鑷寸殑銆?br />
/***************************************鍐嶆鍗庝附鍒嗗壊綰?/span>************************************
閴翠簬涓婇潰鐨勭粨璁烘槸閫氳繃GCC鍜?/span>VS2010寰楀嚭鐨勶紝鑰屼笖鏈夋湅鍙嬩篃鎻愬嚭鍚屾牱鐨勮川鐤戯紝涓轟簡紜畾榪欑緇撴灉鏄惁鏄紪璇戝櫒鐩稿叧鐨勶紝鍒氭墠鐗規剰鏌ョ湅浜嗕竴涓?/span>C++鐨勬爣鍑嗗寲鏂囨。銆?/span>
鎽樿嚜錛?/span>ISO/IEC 14882:2003(E) 5.3.4 - 15
— If the new-initializer is omitted:
      — If T is a (possibly cv-qualified) non-POD class type (or array thereof), the object is default-initialized(8.5). If T is a const-qualified type, the underlying class type shall have a user-declared default constructor.
      — Otherwise, the object created has indeterminate value. If T is a const-qualified type, or a (possibly cv-qualified) POD class type (or array thereof) containing (directly or indirectly) a member of const-qualified type, the program is ill-formed;
— If the new-initializer is of the form (), the item is value-initialized (8.5);

鎵浠ュ彲浠ョ‘瀹氾紝榪欑鎯呭喌瀹屽叏鏄紪璇戝櫒鏃犲叧鐨?/span>(褰撶劧閭d簺涓嶅畬鍏ㄦ寜鐓ф爣鍑嗗疄鐜扮殑緙栬瘧鍣ㄩ櫎澶?/span>)銆?/span>
浣嗘槸閫氳繃涓婇潰鏍囧噯鍖栨枃妗g殑鎻忚堪錛屾垜浠彲浠ョ湅鍑烘枃涓new A鍦ㄦ棤鏄劇ず鏋勯犲嚱鏁版椂鐨勬葷粨騫朵笉鏄壒鍒噯紜紝閴翠簬寰堝鍏徃閮芥湁榪欓亾闈㈣瘯棰?/span>(鎾囧幓榪欎簺棰樼洰鐨勫疄闄呰冨療鎰忎箟涓嶈)錛屾垜浠湁蹇呰鍐嶈ˉ鍏呬竴涓嬶細 瀵逛簬new A: 榪欐牱鐨勮鍙ワ紝鍐嶈皟鐢ㄥ畬operator new鍒嗛厤鍐呭瓨涔嬪悗錛屽鏋?/span>A綾諱綋鍐呭惈鏈?/span>POD綾誨瀷錛屽垯POD綾誨瀷鐨勬垚鍛樺彉閲忓浜庢湭瀹氫箟鐘舵侊紝濡傛灉鍚湁闈?/span>POD綾誨瀷鍒欒皟鐢ㄨ綾誨瀷鐨勯粯璁ゆ瀯閫犲嚱鏁般傝?/span> new A()鍦ㄨ繖浜涙儏鍐典笅閮戒細鍒濆鍖栥?/span>
   PS錛氫及璁″緢澶氬叕鍙哥殑姝g‘絳旀“ 涔熶笉涓瀹氭紜惂銆?/span>

 

鏈枃杞嚜錛?/span>http://www.shnenglu.com/peakflys/archive/2013/04/08/199208.html

 



]]>
鏁忔嵎杞歡寮鍙?/title><link>http://www.shnenglu.com/wanghaiguang/archive/2013/04/17/199514.html</link><dc:creator>鐜嬫搗鍏?/dc:creator><author>鐜嬫搗鍏?/author><pubDate>Wed, 17 Apr 2013 09:13:00 GMT</pubDate><guid>http://www.shnenglu.com/wanghaiguang/archive/2013/04/17/199514.html</guid><wfw:comment>http://www.shnenglu.com/wanghaiguang/comments/199514.html</wfw:comment><comments>http://www.shnenglu.com/wanghaiguang/archive/2013/04/17/199514.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/wanghaiguang/comments/commentRss/199514.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/wanghaiguang/services/trackbacks/199514.html</trackback:ping><description><![CDATA[<span style="font-family: Verdana; font-size: 12pt;">鏉ユ簮浜庛婃晱鎹瘋蔣浠跺紑鍙?#8212;—鍘熷垯銆佹ā寮忎笌瀹炶返銆?/span><br /><br /><span style="font-size: 12pt; line-height: 26px; text-indent: 28px; background-color: #ffffff; font-family: Verdana;">甯歌鐨勮璁$殑鑷懗——鑵愬寲杞歡鐨勬皵鍛?/span><span style="font-size: 12pt; line-height: 26px; text-indent: 28px; background-color: #ffffff; font-family: Verdana;">銆?/span><br /><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; margin: 0cm 0cm 0pt 21pt; text-indent: -21pt;"><span style="font-family: Verdana; font-size: 12pt;">l<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">         </span></span><span style="font-family: Verdana; font-size: 12pt;">鍍靛寲鎬э紙</span><span style="font-family: Verdana; font-size: 12pt;">Rigidity</span><span style="font-family: Verdana; font-size: 12pt;">錛夛細寰堥毦瀵圭郴緇熻繘琛屾敼鍔紝鍥犱負姣忎釜鏀瑰姩閮戒細榪嬌璁稿瀵圭郴緇熷叾浠栭儴鍒嗙殑鍏朵粬鏀瑰姩銆?/span></p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; margin: 0cm 0cm 0pt 21pt; text-indent: -21pt;"><span style="font-family: Verdana; font-size: 12pt;">l<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">         </span></span><span style="font-family: Verdana; font-size: 12pt;">鑴嗗急鎬э紙</span><span style="font-family: Verdana; font-size: 12pt;">Fragility</span><span style="font-family: Verdana; font-size: 12pt;">錛夛細瀵圭郴緇熺殑鏀瑰姩浼氬鑷寸郴緇熶腑鍜屾敼鍔ㄧ殑鍦版柟鍦ㄦ蹇典笂鏃犲叧鐨勮澶氬湴鏂瑰嚭鐜伴棶棰樸?/span></p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; margin: 0cm 0cm 0pt 21pt; text-indent: -21pt;"><span style="font-family: Verdana; font-size: 12pt;">l<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">         </span></span><span style="font-family: Verdana; font-size: 12pt;">鐗㈠浐鎬э紙</span><span style="font-family: Verdana; font-size: 12pt;">Immobility</span><span style="font-family: Verdana; font-size: 12pt;">錛夛細寰堥毦瑙e紑緋葷粺鐨勭籂緇擄紝浣夸箣鎴愪負涓浜涘彲鍦ㄥ叾浠栫郴緇熶腑閲嶇敤鐨勭粍浠躲?/span></p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; margin: 0cm 0cm 0pt 21pt; text-indent: -21pt;"><span style="font-family: Verdana; font-size: 12pt;">l<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">         </span></span><span style="font-family: Verdana; font-size: 12pt;">綺樻粸鎬э紙</span><span style="font-family: Verdana; font-size: 12pt;">Viscosity</span><span style="font-family: Verdana; font-size: 12pt;">錛夛細鍋氭紜殑浜嬫儏姣斿仛閿欒鐨勪簨鎯呰鍥伴毦銆?/span></p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; margin: 0cm 0cm 0pt 21pt; text-indent: -21pt;"><span style="font-family: Verdana; font-size: 12pt;">l<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">         </span></span><span style="font-family: Verdana; font-size: 12pt;">涓嶅繀瑕佺殑澶嶆潅鎬э紙</span><span style="font-family: Verdana; font-size: 12pt;">Needless Complexity</span><span style="font-family: Verdana; font-size: 12pt;">錛夛細璁捐涓寘鍚湁涓嶅叿浠諱綍鐩存帴濂藉鐨勫熀紜緇撴瀯銆?/span></p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; margin: 0cm 0cm 0pt 21pt; text-indent: -21pt;"><span style="font-family: Verdana; font-size: 12pt;">l<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">         </span></span><span style="font-family: Verdana; font-size: 12pt;">涓嶅繀瑕佺殑閲嶅錛?/span><span style="font-family: Verdana; font-size: 12pt;">Needless Repetition</span><span style="font-family: Verdana; font-size: 12pt;">錛夛細璁捐涓寘鍚湁閲嶅鐨勭粨鏋勶紝鑰岃閲嶅鐨勭粨鏋勬湰鍙互浣跨敤鍗曚竴鐨勬娊璞¤繘琛岀粺涓銆?/span></p><p style="background-color: #ffffff; margin: 0cm 0cm 0pt 21pt; text-indent: -21pt;"><span style="color: #333333; font-family: Verdana; line-height: 26px; font-size: 12pt;">l<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">         </span></span><span style="color: #333333; font-family: Verdana; line-height: 26px; font-size: 12pt;">鏅︽訂鎬э紙</span><font color="#333333" face="Arial"><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">Opacity</span></font><font color="#333333" face="瀹嬩綋"><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">錛夛細寰堥毦闃呰銆佺悊瑙c傛病鏈夊緢濂界殑琛ㄧ幇鍑烘剰鍥俱?br /><br /></span></font><span style="font-size: medium; line-height: 26px; text-indent: 28px; font-family: Verdana;">鏁忔嵎璁捐鏄竴涓繃紼嬶紝涓嶆槸涓涓簨浠躲傚畠鏄竴涓寔緇殑搴旂敤鍘熷垯銆佹ā寮忎互鍙婂疄璺墊潵鏀硅繘杞歡鐨勭粨鏋勫拰鍙鎬х殑榪囩▼銆傚畠鑷村姏浜庝繚鎸佺郴緇熻璁″湪浠諱綍鏃墮棿閮藉敖鍙兘寰楃畝鍗曘佸共鍑浠ュ強瀵屾湁琛ㄧ幇鍔?/span><span style="font-size: medium; line-height: 26px; text-indent: 28px; font-family: Verdana;">銆?/span><br /><br /></p><div><span style="line-height: 26px; font-size: 12pt; font-family: Verdana;"><strong>鏁忔嵎杞歡寮鍙戝璦錛?/strong></span><span style="line-height: 26px;"><strong><br /><br /></strong></span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">鎴戜滑姝e湪閫氳繃浜茶韓瀹炶返浠ュ強甯姪浠栦漢瀹炶返錛屾彮紺烘洿濂界殑杞歡寮鍙戞柟娉曘傞氳繃榪欓」宸ヤ綔錛屾垜浠涓猴細</span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;"><strong>涓綋鍜屼氦浜?鑳滆繃 榪囩▼鍜屽伐鍏?/strong></span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;"><strong>鍙互宸ヤ綔鐨勮蔣浠?鑳滆繃 闈㈤潰淇卞埌鐨勬枃妗?/strong></span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;"><strong>瀹㈡埛鍚堜綔 鑳滆繃 鍚堝悓璋堝垽</strong></span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;"><strong>鍝嶅簲鍙樺寲 鑳滆繃 閬靛驚璁″垝</strong></span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">铏界劧鍙抽」涔熷叿鏈変環鍊鹼紝浣嗘垜浠涓哄乏欏瑰叿鏈夋洿澶х殑浠峰箋?/span></div><div><span style="font-family: 瀹嬩綋; font-size: medium; line-height: 26px; text-indent: 28px; background-color: #ffffff;">鏁忔嵎寮鍙戝己璋冧互浜轟負涓績錛岃屼笉鏄互榪囩▼涓轟腑蹇冿紝寮鴻皟灝藉彲鑳界殑娌熼氾紙涓庡鎴鳳紝涓庡洟闃熸垚鍛橈級錛屽敖鍙兘鍦頒互鏈綆鍗曠殑璁捐瑙e喅闂錛堜粠鑰岃兘澶熸嫢鎶卞彉鍖栵級銆?/span><span style="line-height: 26px;"><br /></span></div><br /><div><span style="line-height: 26px; font-size: 12pt; font-family: Verdana;"><strong>鏁忔嵎瀹h█閬靛驚鐨勫師鍒?/strong></span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">鎴戜滑閬靛驚浠ヤ笅鍘熷垯錛?/span></div><p> </p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><strong style="font-family: Verdana; font-size: 12pt;">1銆傛垜浠渶浼樺厛瑕佸仛鐨勬槸閫氳繃灝芥棭鐨勩佹寔緇殑浜や粯鏈変環鍊肩殑杞歡鏉ヤ嬌瀹㈡埛婊℃剰銆?/strong></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">銆銆 瑙勫垝榪唬鏁呬簨鏃跺繀欏繪寜鐓т紭鍏堢駭瀹夋帓錛屼負瀹㈡埛鍏堟彁渚涙渶鏈変環鍊肩殑鍔熻兘銆傞氳繃棰戠箒榪唬鑳戒笌瀹㈡埛褰㈡垚鏃╂湡鐨勮壇濂藉悎浣滐紝鍙婃椂鍙嶉鎻愰珮浜у搧璐ㄩ噺銆傛晱鎹峰皬緇勫叧娉ㄥ畬鎴愬拰浜?浠樺叿鏈夌敤鎴蜂環鍊肩殑鍔熻兘錛岃屼笉鏄绔嬬殑浠誨姟銆備互鍓嶆垜浠兘鐢ㄩ渶姹傝鏍艱鏄庝功鎴栬呯敤渚嬫潵緙栧啓璇︾粏鐨勯渶姹傦紝鏁忔嵎浣跨敤鐢ㄦ埛鏁呬簨鏉ョ綏鍒楅渶姹傘傜敤鎴鋒晠浜嬫槸涓縐嶈〃紺洪渶姹傜殑 杞婚噺綰ф妧鏈紝瀹冩病鏈?/span></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">鍥哄畾鐨勫艦寮忓拰寮哄埗鎬х殑璇硶銆備絾鏄湁涓浜涘浐瀹氱殑褰㈠紡鍙互鐢ㄦ潵鍙傝冭繕鏄瘮杈冩湁鐩婄殑銆傛晱鎹蜂及綆椾腑浣跨敤浜嗚繖涓ā鏉匡細“浣滀負銆愮敤鎴風殑綾誨瀷銆戯紝鎴戝笇 鏈涘彲浠ャ愯兘鍔涖戜互渚褲愪笟鍔′環鍊箋?#8220;銆備嬌鐢ㄥ熀浜庣敤鎴鋒晠浜嬬殑闇姹傚垎鏋愭柟娉曟椂錛屼粛鍙兘闇瑕佸師鍨嬪拰緙栧啓鏂囨。錛屽彧鏄伐浣滈噸鐐規洿澶氱殑杞Щ鍒頒簡鍙eご浜ゆ祦銆?/span></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"> </p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><strong style="font-family: Verdana; font-size: 12pt;">2銆傚嵆浣垮埌浜嗗紑鍙戠殑鍚庢湡錛屼篃嬈㈣繋鏀瑰彉闇姹傘傛晱鎹瘋繃紼嬪埄鐢ㄥ彉鍖栨潵涓哄鎴峰垱閫犵珵浜変紭鍔褲?/strong></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">銆銆鏁忔嵎榪囩▼鍙備笌鑰呬笉鎬曞彉鍖栵紝浠栦滑璁や負鏀瑰彉闇姹傛槸濂戒簨鎯咃紝鍥犱負榪欎簺鏀瑰彉鎰忓懗鐫鎴戜滑鏇翠簡瑙e競鍦洪渶姹傘?/span><br />  <br /><strong style="font-family: Verdana; font-size: 12pt;">3銆傜粡甯告х殑浜や粯鍙互宸ヤ綔鐨勮蔣浠訛紝浜や粯鐨勯棿闅斿彲浠ヤ粠鍑犲懆鍒板嚑涓湀錛屼氦浠樼殑鏃墮棿闂撮殧瓚婄煭瓚婂ソ銆?/strong></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">銆 銆榪唬鏄彈瀹炶返妗嗛檺鍒剁殑錛屾剰鍛崇潃鍗充嬌鏀懼純涓浜涘姛鑳戒篃蹇呴』鎸夋椂緇撴潫榪唬銆傚彧瑕佹垜浠彲浠ヤ繚璇佷氦浠樼殑杞歡鍙互寰堝ソ鐨勫伐浣滐紝閭d箞浜や粯鏃墮棿瓚婄煭錛屾垜浠拰瀹㈡埛鍗忎綔灝辮秺 绱у瘑錛屽浜у搧璐ㄩ噺灝辨洿鏈夌泭銆傝櫧鐒舵垜浠嬈¤凱浠o紝浣嗗茍涓嶆槸姣忔榪唬鐨勭粨鏋滈兘闇瑕佷氦浠樼粰鐢ㄦ埛錛屾晱鎹峰紑鍙戠殑鐩爣鏄浠栦滑鍙互浜や粯銆傝繖鎰忓懗鐫寮鍙戝皬緇勫湪姣忔榪唬涓?閮戒細澧炲姞涓浜涘姛鑳斤紝澧炲姞鐨勬瘡涓姛鑳介兘鏄粡榪囩紪鐮併佹祴璇曪紝杈懼埌浜嗗彲鍙戝竷鐨勮川閲忔爣鍑嗙殑銆?/span><br /><span style="font-family: Verdana; font-size: 12pt;">銆銆鍙﹀鏁忔嵎寮鍙戦」鐩腑瀵瑰紑鍙戦樁孌墊病鏈変粈涔堥噸瑕佺殑鍒嗗壊錛屾病鏈夊厛鏈熺殑闇姹傞樁孌碉紝鐒跺悗鏄垎鏋愰樁孌碉紝鏋舵瀯璁捐闃舵錛岀紪鐮佹祴璇曢樁孌電瓑錛屽湪欏圭洰鐪熸寮濮嬪悗錛屾瘡嬈¤凱浠d腑閮戒細鍚屾椂榪?/span></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">琛屾墍鏈夌殑涓婅堪闃舵宸ヤ綔銆?/span><br /> <br /><strong style="font-family: Verdana; font-size: 12pt;">4銆傚湪鏁翠釜欏圭洰寮鍙戞湡闂達紝涓氬姟浜哄憳鍜屽紑鍙戜漢鍛樺繀欏誨ぉ澶╅兘鍦ㄤ竴璧峰伐浣溿?/strong></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">銆銆杞歡欏圭洰涓嶄細渚濈収涔嬪墠璁懼畾鐨勮鍒掑師璺墽琛岋紝涓棿瀵逛笟鍔$殑鐞嗚В銆佽蔣浠剁殑瑙e喅鏂規鑲畾浼氬瓨鍦ㄥ亸宸紝鎵浠ュ鎴楓侀渶姹備漢鍛樸佸紑鍙戜漢鍛樹互鍙婃秹浼椾箣闂村繀欏昏繘琛屾湁鎰忎箟鐨勩侀綣?nbsp;</span></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">鐨勪氦浜掞紝榪欐牱灝卞彲浠ュ湪鏃╂湡鍙婃椂鐨勫彂鐜板茍瑙e喅闂銆?/span><br /> <br /><strong style="font-family: Verdana; font-size: 12pt;">5銆傚洿緇曡嬋鍔辮搗鏉ョ殑浜轟釜鏉ユ瀯寤洪」鐩傜粰浠栦滑鎻愪緵鎵闇瑕佺殑鐜鍜屾敮鎸侊紝騫朵笖淇′換浠栦滑鑳藉瀹屾垚宸ヤ綔銆?/strong></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">銆銆涓氬姟鍜屾妧鏈槸寮曡搗涓嶇‘瀹氱殑浜屼釜涓昏鏂歸潰錛屼漢鏄涓変釜鏂歸潰銆傝屼笟鍔″拰鎶鏈張蹇呴』鐢變漢鏉ユ墽琛岋紝鎵浠ヨ兘澶熸縺鍔變漢鏉ヨВ鍐寵繖浜涢棶棰樻槸瑙e喅涓嶇‘瀹氭х殑鍏抽敭銆傚彧瑕佷釜浜虹殑鐩爣鍜屽洟</span></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">闃熺殑鐩爣涓鑷達紝鎴戜滑灝遍渶瑕侀紦鑸炶搗姣忎釜浜虹殑縐瀬鎬э紝浠ヤ釜浜轟負涓績鏋勫緩欏圭洰錛屾彁渚涙墍闇鐨勭幆澧冦佹敮鎸佷笌淇′換銆?/span></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"> </p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><strong style="font-family: Verdana; font-size: 12pt;">6銆傚湪鍥㈤槦鍐呴儴錛屾渶鍏鋒湁鏁堟灉騫朵笖瀵屾湁鏁堢巼鐨勪紶閫掍俊鎭殑鏂規硶錛屽氨鏄潰瀵歸潰鐨勪氦璋堛?/strong></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">銆銆鍦ㄥ崄鍑犳垨鑰呬簩鍗佸嚑涓漢緇勬垚鐨勫ぇ鍥㈤槦涓紝鏂囨。鏄竴縐嶆瘮杈冨悎閫傜殑浼犻掔煡璇嗗拰浜ゆ祦鐨勯斿緞銆傝屾晱鎹峰洟闃熶竴鑸笉浼氬緢澶氫漢錛堝ぇ鍥㈤槦瀹炴柦鏁忔嵎鏃朵篃浼氬垎鎴愬涓皬鐨勬晱鎹峰洟闃燂級錛屾墍浠?/span></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">澶ч噺鐨勬枃妗d氦嫻佸叾瀹炲茍涓嶆槸寰堢粡嫻庣殑鍋氭硶銆傛鏃墮潰瀵歸潰鐨勪氦璋堝弽鑰屾洿蹇熸湁鏁堛?/span><br /> <br /><strong style="font-family: Verdana; font-size: 12pt;">7銆佸彲宸ヤ綔鐨勮蔣浠舵槸棣栬榪涘害搴﹂噺鏍囧噯銆?/strong></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">銆 銆涓鑸殑宸ヤ綔閮芥瘮杈冨鏄撹 閲忎換鍔¤繘灞曪紝姣斿璁╀綘鍘繪惉榪?鍚ㄧ殑鐭沖ご錛屾垜鍙鍘葷О涓涓嬩綘宸茬粡鎼繍鐨勭煶澶撮噸閲忓氨鐭ラ亾浣犲畬鎴愬灝戜簡銆傝屽浜庤蔣浠舵潵璇達紝鍦ㄨ蔣浠舵病鏈夌紪 鐮併佹祴璇曞畬</span></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">鎴愪箣鍓嶏紝鎴戜滑閮戒笉鑳藉洜涓轟唬鐮佺紪鍐欎簡澶氬皯琛岋紝嫻嬭瘯鐢ㄤ緥璺戜簡澶氬皯涓氨鍘誨害閲忚繖涓姛鑳芥槸鍚﹀畬鎴愪簡銆傝 閲忚繖涓姛鑳芥槸鍚﹀畬鎴愮殑棣栬鏍囧噯灝辨槸榪欎釜鍔熻兘鍙互宸?浣滀簡錛屽鐢ㄦ埛鏉ヨ宸茬粡鍙?/span></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">浠ュ簲鐢ㄤ簡銆?/span></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"> </p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><strong style="font-family: Verdana; font-size: 12pt;">8銆傛晱鎹瘋繃紼嬫彁鍙寔緇殑寮鍙戦熷害銆傝矗浠諱漢銆佸紑鍙戣呭拰鐢ㄦ埛搴旇鑳藉淇濇寔涓涓暱鏈熺殑銆佹亽瀹氱殑寮鍙戦熷害銆?/strong></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">銆 銆寰堝浜洪兘璁や負杞歡寮鍙戜腑鍔犵彮鏄緢姝e父鐨勶紝涓嶅姞鐝弽鑰屼笉姝e父錛屾垜瀵規鏈夌偣涓嶇悊瑙o紝榪欎釜鍙兘鏄浗鎯呮墍鑷村惂銆傛晱鎹瘋繃紼嬪笇鏈涜兘澶熷彲鎸佺畫鐨勮繘琛屽紑鍙戯紝寮鍙戦熷害涓嶄細 闅忕潃榪唬鐨勪換鍔′笉鍚岃屼笉鍚岋紝涓嶆璧忔墍璋撶殑鎷間竴鎷間篃鑳藉畬鎴愮殑鎬佸害錛屽紑鍙戝伐浣滀笉搴旇鏄獊鍑昏涓恒傛垜浠笉鑳芥寚鏈涜紿佸嚮榪欎釜欏圭洰鍚庡氨鍙互杞繪澗浜嗭紝鍥犱負瀹屾垚涓涓」鐩?鍚庝細鎺ヨ傅鑰屾潵涓嬩竴涓」鐩紝鑰屽彧瑕佽繕鏄嫾鎷肩殑鎬佸害錛屼笅涓涓」鐩緷鏃т細璁╀綘鐨勭粍鍛樺啀嬈$獊鍑匯傝繖鏃朵笉鐭ラ亾鏈変漢浼氫笉浼氳錛岄偅鎴戜滑灝變竴鐩村姞鐝紝涔熸槸“鎸佺畫鐨勫紑鍙戦?搴?#8221;鍟婏紝榪欐椂鍙娉ㄦ剰浜嗭紝鎸佺畫鍔犵彮鏅?/span></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">鎱у鑷翠漢鐤插姵銆佸帉鍊︼紝淇濇寔闀挎湡鎭掑畾鐨勯熷害涔熷彧鏄竴縐嶇悊鎯寵屽凡銆?/span><br /> <br /><strong style="font-family: Verdana; font-size: 12pt;">9銆備笉鏂湴鍏蟲敞浼樼鐨勬妧鑳藉拰濂界殑璁捐浼氬寮烘晱鎹瘋兘鍔涖?/strong></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">銆銆鏁忔嵎榪囩▼鏈夊緢澶氬ソ鐨勬妧鏈疄璺靛彲浠ュ姞寮轟駭鍝佹晱鎹瘋兘鍔涳紝寰堝鍘熷垯銆佹ā寮忓拰瀹炶返涔熷彲浠ュ寮烘晱鎹峰紑鍙戣兘鍔涖?銆婃晱鎹瘋蔣浠跺紑鍙戯紞鍘熷垯銆佹ā寮忎笌瀹炶返銆嬩竴涔︿腑浠嬬粛浜嗗緢澶氳璁★紝鎰熷叴瓚g殑鍙互鍘諱粩緇嗙湅鐪嬨?/span><br /> <br /><strong style="font-family: Verdana; font-size: 12pt;">10銆傜畝鍗?---浣挎湭瀹屾垚鐨勫伐浣滄渶澶у寲鐨勮壓鏈?---鏄牴鏈殑銆?/strong></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">銆 銆鎴戜滑涓嶅彲鑳介鏈熷悗闈㈤渶姹備細濡備綍鍙樺寲錛屾墍浠ヤ笉鍙兘涓寮濮嬪氨鏋勫緩涓涓畬緹庣殑鏋舵瀯鏉ラ傚簲浠ュ悗鐨勬墍鏈夊彉鍖栥傛晱鎹峰洟闃熶笉浼氬幓鏋勫緩鏄庡ぉ鐨勮蔣浠訛紝鑰屾妸娉ㄦ剰鍔涙斁鍦ㄥ浣曢?榪囨渶綆鍗曠殑鏂規硶瀹屾垚鐜板湪闇瑕佽В鍐崇殑闂銆傝繖鏃舵湁浜轟細璇達紝鎴戝凡緇忛璁″埌浜嗚偗瀹氬瓨鍦ㄥ摢浜涢渶姹傛墿灞曠偣錛屾垜浠湪涓寮濮嬫槸鍚﹂渶瑕佽冭檻鍛紵榪欐椂鍥㈤槦闇瑕佹牴鎹嚜宸辯殑鐞嗚В 鍘誨喅瀹氭槸鍚﹁冭檻錛屽鏋滄繁淇″湪鏄庡ぉ鍙戠敓浜嗚繖涓棶棰樹篃鍙互杞繪槗澶勭悊鐨勮瘽錛岄偅涔堝氨鏈濂藉厛涓嶈冭檻銆?/span><br /> <br /><strong style="font-family: Verdana; font-size: 12pt;">11銆傛渶濂界殑鏋勬灦銆侀渶姹傚拰璁捐鍑鴻嚜涓庤嚜緇勭粐鐨勫洟闃熴?/strong></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">        鏁忔嵎涓湁寰堝縐嶅疄璺碉紝澶у閮界煡閬擄紝榪唬寮忓紑鍙戞槸涓昏鐨勫疄璺墊柟娉曪紝鑰岃嚜緇勭粐鍥㈤槦涔熸槸涓昏鐨勫疄璺典箣涓銆傚湪鑷粍緇囧洟闃熶腑錛岀鐞嗚呬笉鍐嶅彂鍙鋒柦浠わ紝鑰屾槸璁╁洟闃熻嚜韜鎵炬渶浣崇殑宸ヤ綔鏂瑰紡鏉ュ畬鎴愬伐浣溿傝褰㈡垚涓涓嚜緇勭粐鍥㈤槦鍏跺疄姣旇緝闅俱侰SDN閲囪Mishkin Berteig涓鍒?鑷粍緇囧洟闃熺殑絎竴涓绱犲氨鏄繀欏繪湁涓涓洟闃燂紝鑰屼笉浠呬粎鏄竴緹や漢銆備竴緹や漢鏄竴甯湪涓璧峰伐浣滅殑浜猴紝浠栦滑褰兼涔嬮棿騫舵病鏈夊お澶氱殑娌熼氾紝浠栦滑涔熷茍涓嶈褰兼涓轟竴浣撱傞」鐩竴寮濮嬶紝鎴戜滑灝變細緇勫緩“鍥㈤槦”錛屼絾寰堝鏃跺欑敱鏋勬灦甯堛侀渶姹備漢鍛樸佸紑鍙戜漢鍛樺拰嫻嬭瘯浜哄憳緇勬垚鐨勬槸涓緹や漢鑰屽凡銆備粬榪樿涓猴紝鍥㈤槦鐨勫艦鎴愬繀欏葷粡鍘嗗嚑涓椂鏈熴傚湪 緇忓巻浜嗗垵鏈熺殑紓ㄥ悎鍚庯紝鎴愬憳鎵嶄細寮濮嬪鍥㈤槦鍏卞悓鐨勫伐浣滅悊蹇典笌鏂囧寲褰㈡垚涓涓熀鏈殑璁よ瘑鍜岀悊瑙c傚洟闃熷唴浼氶愭笎褰㈡垚瑙勭煩錛岃屼笖榪欎簺瑙勭煩鏄笉璦鑰屽柣鐨勩傛瘮濡傦紝姣忎釜浜?閮界煡閬撲笂鍗堜節鐐規潵涓婄彮錛岄兘浼氫富鍔ㄨ闂埆浜烘槸鍚﹂渶瑕佸府鍔╋紝涔熼兘浼氬幓涓誨姩鍜屽埆浜烘帰璁ㄩ棶棰樸傚鏋滃洟闃熸垚鍛樹箣闂磋兘澶熻揪鎴愯繖鏍風殑榛樺錛岄偅涔堣繖涓洟闃熷皢鎴愪負涓涓湡姝i珮 鏁堢殑宸ヤ綔鍥㈤槦銆傚湪榪欐牱鍥㈤槦涓紝鎴愬憳涔嬮棿鐩鎬簰鐞嗚В錛屽伐浣滄晥鐜囬潪甯擱珮銆傚湪鑷粍緇囧洟闃熶腑錛屽洟闃熸垚鍛樹笉闇瑕侀伒浠庡埆浜虹殑璇︾粏鎸囦護銆備粬浠渶瑕佹洿楂樺眰嬈$殑鎸囧錛岃繖縐嶆寚 瀵兼洿鍍忔槸涓涓洰鏍囷紝涓涓嚧鍔涗簬寮鍙戝嚭鏇村ソ鐨勮蔣浠剁殑鐩爣銆傛諱箣錛岃嚜緇勭粐鍥㈤槦鏄竴涓嚜鍔ㄨ嚜鍙戙佹湁鐫鍏卞悓鐩爣鍜屽伐浣滄枃鍖栫殑鍥㈤槦錛岃繖鏍風殑鍥㈤槦鎬繪槸鍦ㄥ悜瀹冪殑緇勭粐鍋氬嚭 鎵胯銆備絾鏄紝瀹炵幇榪欎簺鎵胯瀵逛簬鑷粍緇囧洟闃熸潵璇撮潪甯擱噸瑕併傚惁鍒欙紝涓鏃﹀嚭鐜伴棶棰橈紝鍥㈤槦鎴愬憳涔嬮棿灝變細鍑虹幇淇′換鍗辨満銆?/span></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><br /><span style="font-family: Verdana; font-size: 12pt;">銆銆铏界劧鏁忔嵎寮鍙戝皬緇勬槸浠ュ皬緇勪負鏁翠綋 鏉ュ伐浣滅殑錛屼絾鏄繕鏄湁蹇呰鎸囨槑涓浜涙壙鎷呬竴瀹氫換鍔$殑瑙掕壊銆傜涓涓鑹叉槸浜у搧鎵鏈夎咃紙Product Owner錛夈備駭鍝佹墍鏈夎呯殑涓昏鑱岃矗鍖呮嫭錛氱‘璁ゅ皬緇勬墍鏈夋垚鍛橀兘鍦ㄨ拷姹備竴涓叡鍚岀殑欏圭洰鍓嶆櫙錛岀‘瀹氬姛鑳界殑浼樺厛綰т互渚挎繪槸鍦ㄥ鐞嗘渶鍏鋒湁浠峰肩殑鍔熻兘錛屼互鍙婁綔鍑哄喅瀹?浣垮緱瀵歸」鐩殑鎶曞叆鍙互浜х敓鑹ソ鐨勫洖鎶ャ傚彲浠ュ搴斾負浠ュ墠寮鍙戜腑鐨?#8220;浜у搧緇忕悊”銆傚彟涓瑙掕壊鏄紑鍙戝洟闃燂紙developer錛夛紝榪欓噷鐨勫紑鍙戜漢鍛樺寘鎷簡鏋舵瀯甯堛佽璁″笀銆佺▼搴忓憳銆侀渶姹備漢鍛樸佹祴璇曚漢鍛樸佹枃妗g紪鍐欒呯瓑錛屾湁鏃朵駭鍝佹墍鏈夎呬篃鍙互琚湅浣滄槸</span></p><p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><span style="font-family: Verdana; font-size: 12pt;">寮鍙戜漢鍛樸傝繕鏈変竴涓噸瑕佽鑹插氨鏄」鐩粡鐞嗭紙project manager錛夈傛晱鎹峰紑鍙戠殑欏圭洰緇忕悊浼氭洿澶氱殑鍏蟲敞棰嗗鑰屼笉鏄鐞嗐傚湪鏌愪簺欏圭洰涓紝欏圭洰緇忕悊鍙兘鍚屾椂涔熸槸寮鍙戜漢鍛橈紝灝戞暟鏃跺欎篃浼氭媴浠諱駭鍝佹墍鏈夎呫?/span><br />銆銆 <br /><strong style="font-family: Verdana; font-size: 12pt;">12銆傛瘡闅斾竴瀹氭椂闂達紝鍥㈤槦浼氬湪濡備綍鎵嶈兘鏇存湁鏁堝湴宸ヤ綔鏂歸潰榪涜鍙嶇渷錛岀劧鍚庣浉搴斿湴瀵硅嚜宸辯殑琛屼負榪涜璋冩暣銆?/strong></p><p style="background-color: #ffffff;"><font color="#362e2b" face="Arial"><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">銆銆鐢變簬寰堝涓嶇‘瀹氭у洜绱犱細瀵艱嚧璁″垝澶辨晥錛屾瘮濡傞」鐩垚鍛樺鍑忋佹妧鏈簲鐢ㄦ晥鏋溿佺敤鎴烽渶姹傜殑鏀瑰彉銆佺珵浜夎呭鎴戜滑鐨勫獎鍝嶇瓑閮戒細璁╂垜浠綔鍑轟笉鍚岀殑鍙嶅簲銆傘鏁忔嵎涓嶆槸鍩轟簬棰勫畾涔夌殑宸ヤ綔鏂瑰紡錛岃屾槸鍩轟簬緇忛獙鎬х殑鏂瑰紡錛屽浠ヤ笂榪欎簺鍙樺寲錛屽皬緇勯氳繃涓嶆柇鐨勫弽鐪佽皟鏁存潵淇濇寔鍥㈤槦鐨勬晱鎹鋒с?/span></font><br /><br /></p><div><span style="line-height: 26px; font-size: 12pt; font-family: Verdana;"><strong>闈㈠悜瀵硅薄璁捐鐨勫師鍒欙細</strong></span><span style="line-height: 26px;"><strong><br /><br /></strong></span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">SRP 鍗曚竴鑱岃矗鍘熷垯</span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;"> </span><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">灝變竴涓被鑰岃█錛屽簲璇ヤ粎鏈変竴涓紩璧峰畠鍙樺寲鐨勫師鍥犮?/span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;"></span></div><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; margin: 0cm 0cm 0pt 21pt; text-indent: -21pt;"><span style="font-family: Verdana; font-size: 12pt;">l<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">         </span></span><strong><span style="font-family: Verdana; font-size: 12pt;">鍗曚竴鑱岃矗鍘熷垯</span></strong><span style="font-family: Verdana; font-size: 12pt;">錛?/span><span style="font-family: Verdana; font-size: 12pt;">The Single Responsibility Principle</span><span style="font-family: Verdana; font-size: 12pt;">錛岀畝縐?/span><span style="font-family: Verdana; font-size: 12pt;">SRP</span><span style="font-family: Verdana; font-size: 12pt;">錛夛細灝變竴涓被鑰岃█錛屽簲璇ヤ粎鏈変竴涓紩璧峰畠鍙樺寲鐨勫師鍥?/span><span style="font-family: 瀹嬩綋; font-size: 12pt;">銆傚湪</span><span style="font-size: 12pt;">SRP</span><span style="font-family: 瀹嬩綋; font-size: 12pt;">涓紝鎴戜滑鎶婅亴璐e畾涔変負“鍙樺寲鐨勫師鍥狅紙錛?#8221;銆傚鏋滀綘鑳藉鎯沖埌澶氫簬涓涓殑鍔ㄦ満鍘繪敼鍙樹竴涓被錛岄偅涔堣繖涓被灝卞叿鏈夊浜庝竴涓殑鑱岃矗銆傝蔣浠惰璁$湡姝h鍋氱殑璁稿鍐呭錛屽氨鏄彂鐜拌亴</span><span style="font-family: 瀹嬩綋; font-size: 12pt;">璐e茍鎶婇偅浜涜亴璐g浉浜掑垎紱匯?/span><span style="font-family: 瀹嬩綋; font-size: 12pt;">浜嬪疄涓婏紝</span><span style="font-family: 瀹嬩綋; font-size: 12pt;">鎴戜滑灝嗚璁鴻堪鐨勫叾浣欏師鍒欓兘浼氫互榪欐牱鎴栭偅鏍風殑鏂瑰紡鍥炲埌榪欎釜闂涓娿?/span></p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; margin: 0cm 0cm 0pt 21pt; text-indent: -21pt;"><span style="font-family: Verdana; font-size: 12pt;">l<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">         </span></span><strong><span style="font-family: Verdana; font-size: 12pt;">寮鏀懼皝闂師鍒?/span></strong><span style="font-family: Verdana; font-size: 12pt;">錛?/span><span style="font-family: Verdana; font-size: 12pt;">The Open-Close Principle</span><span style="font-family: Verdana; font-size: 12pt;">錛岀畝縐?/span><span style="font-family: Verdana; font-size: 12pt;">OCP</span><span style="font-family: Verdana; font-size: 12pt;">錛夛細杞歡瀹炰綋錛堢被銆佹ā鍧椼佸嚱鏁扮瓑絳夛級搴旇鏄彲浠ユ墿灞曠殑錛屼絾鏄笉鍙互淇敼鐨?/span><span style="font-family: Verdana; font-size: 12pt;">銆傞伒寰紑鏀懼皝闂師鍒欒璁″嚭鐨勬ā鍧楀叿鏈変袱涓富瑕佺殑鐗瑰緛銆傚畠浠槸錛氾紙</span><span style="font-family: Verdana; font-size: 12pt;">1</span><span style="font-family: Verdana; font-size: 12pt;">錛夈佸浜庢墿灞曟槸寮鏀劇殑銆傝繖鎰忓懗鐫妯″潡鐨勮涓烘槸鍙互鎵╁睍鐨勩傚綋搴旂敤鐨勯渶姹傛敼鍙樻椂錛屾垜浠彲浠ュ妯″潡榪涜鎵╁睍錛屼嬌鍏跺叿鏈夋弧瓚抽偅浜涙敼鍙樼殑鏂拌涓恒傛崲鍙ヨ瘽璇達紝鎴戜滑鍙互鏀瑰彉妯″潡鐨勫姛鑳姐傦紙</span><span style="font-family: Verdana; font-size: 12pt;">2</span><span style="font-family: Verdana; font-size: 12pt;">錛夈佸妯″潡琛屼負榪涜鎵╁睍鏃訛紝涓嶅繀鏀瑰姩妯″潡鐨勬簮浠g爜鎴栬呬簩榪涘埗浠g爜銆傛ā鍧楃殑浜岃繘鍒跺彲鎵ц鐗堟湰錛屾棤璁烘槸鍙摼鎺ョ殑搴撱?/span><span style="font-family: Verdana; font-size: 12pt;">DLL</span><span style="font-family: Verdana; font-size: 12pt;">鎴栬?/span><span style="font-family: Verdana; font-size: 12pt;">Java</span><span style="font-family: Verdana; font-size: 12pt;">鐨?/span><span style="font-family: Verdana; font-size: 12pt;">.jar</span><span style="font-family: Verdana; font-size: 12pt;">鏂囦歡錛岄兘鏃犻渶鏀瑰姩銆?/span></p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; margin: 0cm 0cm 0pt 21pt; text-indent: -21pt;"><span style="font-family: Verdana; font-size: 12pt;">l<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">         </span></span><strong style="font-family: Verdana; font-size: 12pt;">Liskov</strong><strong style="font-size: 12pt;"><span style="font-family: 瀹嬩綋;">鏇挎崲鍘熷垯</span></strong><span style="font-family: 瀹嬩綋; font-size: 12pt;">錛?/span><span style="font-size: 12pt;">The Liskov Substitution Principle</span><span style="font-family: 瀹嬩綋; font-size: 12pt;">錛岀畝縐?/span><span style="font-size: 12pt;">LSP</span><span style="font-family: 瀹嬩綋; font-size: 12pt;">錛夛細瀛愮被鍨嬪繀欏昏兘澶熸浛鎹㈡帀瀹冧滑鐨勫熀綾誨瀷銆?/span><span style="font-size: 12pt;">OCP</span><span style="font-family: 瀹嬩綋; font-size: 12pt;">鍘熷垯鏄?/span><span style="font-size: 12pt;">OOD</span><span style="font-family: 瀹嬩綋; font-size: 12pt;">涓緢澶氳娉曠殑鏍稿績</span><span style="font-family: 瀹嬩綋; font-size: 12pt;">銆?/span><span style="font-size: 12pt;">LSP</span><span style="font-family: 瀹嬩綋; font-size: 12pt;">鏄嬌</span><span style="font-size: 12pt;">O</span><span style="font-size: 12pt;">CP</span><span style="font-family: 瀹嬩綋; font-size: 12pt;">鎴愪負鍙兘鐨勪富瑕佸師鍒欎箣涓銆傛寮忓瓙綾誨瀷鐨勫彲鏇挎崲鎬ф墠浣垮緱浣跨敤鍩虹被綾誨瀷鐨勬ā鍧楀湪鏃犻渶淇敼鐨勬儏鍐典笅灝卞彲浠ユ墿灞曘傝繖縐嶅彲鏇挎崲鎬у繀欏繪槸寮鍙戜漢鍛樺彲浠ラ殣寮忎緷璧栫殑涓滆タ銆?/span></p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; margin: 0cm 0cm 0pt 21pt; text-indent: -21pt;"><span style="font-family: Verdana; font-size: 12pt;">l<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">         </span></span><strong><span style="font-family: Verdana; font-size: 12pt;">渚濊禆鍊掔疆鍘熷垯</span></strong><span style="font-family: Verdana; font-size: 12pt;">錛?/span><span style="font-family: Verdana; font-size: 12pt;">The Dependency Inversion Principle</span><span style="font-family: Verdana; font-size: 12pt;">錛岀畝縐?/span><span style="font-family: Verdana; font-size: 12pt;">DIP</span><span style="font-family: Verdana; font-size: 12pt;">錛夛細錛?/span><span style="font-family: Verdana; font-size: 12pt;">1</span><span style="font-family: Verdana; font-size: 12pt;">錛夈侀珮灞傛ā鍧椾笉搴旇渚濊禆浜庡簳灞傛ā鍧椼備簩鑰呴兘搴旇渚濊禆浜庢娊璞?/span><span style="font-family: Verdana; font-size: 12pt;">銆傦紙</span><span style="font-family: Verdana; font-size: 12pt;">2</span><span style="font-family: Verdana; font-size: 12pt;">錛夈佹娊璞′笉搴旇渚濊禆浜庣粏鑺傘傜粏鑺傚簲璇ヤ緷璧栦簬鎶借薄銆備嬌鐢ㄤ紶緇熺殑榪囩▼鍖栬璁℃墍鍒涘緩鍑烘潵鐨勪緷璧栧叧緋葷粨鏋勶紝絳栫暐鏄緷璧栦簬緇嗚妭鐨勩傞潰鍚戝璞$殑紼嬪簭璁捐鍊掔疆浜嗕緷璧栧叧緋葷粨鏋勶紝浣垮緱緇嗚妭鍜岀瓥鐣ラ兘渚濊禆浜庢娊璞★紝騫朵笖甯稿父鏄鎴鋒嫢鏈夋湇鍔℃帴鍙c備簨瀹炰笂錛岃繖縐嶄緷璧栧叧緋繪寮忓ソ鐨勯潰鍚戝璞¤璁$殑鏍囧織鎵鍦ㄣ?/span></p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; margin: 0cm 0cm 0pt 21pt; text-indent: -21pt;"><span style="font-family: Verdana; font-size: 12pt;">l<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">         </span></span><strong><span style="font-family: Verdana; font-size: 12pt;">鎺ュ彛闅旂鍘熷垯</span></strong><span style="font-family: Verdana; font-size: 12pt;">錛?/span><span style="font-family: Verdana; font-size: 12pt;">The Interface Segregation Interface</span><span style="font-family: Verdana; font-size: 12pt;">錛岀畝縐?/span><span style="font-family: Verdana; font-size: 12pt;">ISP</span><span style="font-family: Verdana; font-size: 12pt;">錛夛細涓嶅簲璇ュ己榪鎴蜂緷璧栧畠浠笉鐢ㄧ殑鏂規硶</span><span style="font-family: Verdana; font-size: 12pt;">銆傚鏋滃己榪鎴風▼搴忎緷璧栦簬閭d簺瀹冧滑涓嶉傜敤</span><span style="font-family: Verdana; font-size: 12pt;">鐨勬柟娉曪紝閭d箞榪欎簺瀹㈡埛紼嬪簭灝遍潰涓寸潃鐢變簬榪欎簺鏈嬌鐢ㄦ柟娉曠殑鏀瑰彉鎵甯︽潵鐨勫彉鏇淬傝繖灝辨棤鎰忎腑瀵艱嚧浜嗘墍鏈夊鎴風▼搴忎箣闂寸殑鑰﹀悎銆傛垜浠笇鏈涘敖鍙兘鍦伴伩鍏嶈繖縐嶈﹀悎錛屽洜姝ゆ垜浠笇鏈涘垎紱繪帴鍙c?/span></p><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;"></span></div><div>      <span style="line-height: 26px; font-family: Verdana; font-size: 12pt;"><strong>REP 閲嶇敤鍙戝竷絳変環鍘熷垯</strong></span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;"> </span>      <span style="font-family: Verdana; font-size: 12pt; line-height: 26px;">閲嶇敤鐨勭矑搴﹀氨鏄彂甯冪殑綺掑害</span></div><div>    <strong>  <span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">CCP 鍏辯敤灝侀棴鍘熷垯</span></strong></div><div>      <span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">鍖呬腑鐨勬墍鏈夌被瀵逛簬鍚屼竴綾繪ц川鐨勫彉鍖栧簲璇ユ槸鍏卞悓灝侀棴鐨勩備竴涓彉鍖栬嫢瀵逛竴涓寘浜х敓褰卞搷錛屽垯灝嗗璇ュ寘涓殑鎵鏈夌被浜х敓褰卞搷錛岃屽浜庡叾浠栫殑鍖呬笉閫犳垚浠諱綍褰卞搷銆?/span></div><div>     <strong> <span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">CRP 鍏卞悓閲嶇敤鍘熷垯</span></strong></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;"> </span>     <span style="font-family: Verdana; font-size: 12pt; line-height: 26px;">涓涓寘涓殑鎵鏈夌被搴旇鏄叡鍚岄噸鐢ㄧ殑銆傚鏋滈噸鐢ㄤ簡鍖呬腑鐨勪竴涓被錛岄偅涔堝氨瑕侀噸鐢ㄥ寘涓墍鏈夌被銆?/span></div><div>      <span style="line-height: 26px; font-family: Verdana; font-size: 12pt;"><strong>ADP 鏃犵幆渚濊禆鍘熷垯</strong></span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;"> </span>     <span style="font-family: Verdana; font-size: 12pt; line-height: 26px;">鍦ㄥ寘鐨勪緷璧栧叧緋誨浘涓笉鍏佽瀛樺湪鐜?/span></div><div>      <span style="line-height: 26px; font-family: Verdana; font-size: 12pt;"><strong>SDP 紼沖畾渚濊禆鍘熷垯</strong></span></div><div>      <span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">鏈濈潃紼沖畾鐨勬柟鍚戣繘琛屼緷璧栥?/span></div><div>     <strong> <span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">SAP 紼沖畾鎶借薄鍘熷垯</span></strong></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;"> </span>     <span style="font-family: Verdana; font-size: 12pt; line-height: 26px;">鍖呯殑鎶借薄紼嬪害搴旇鍜屽叾紼沖畾紼嬪害涓鑷淬?/span></div><div><span style="line-height: 26px;"><br /></span></div><div><span style="line-height: 26px; font-size: 12pt; font-family: Verdana;"><strong>鏋侀檺緙栫▼瀹炶返</strong></span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">瀹屾暣鍥㈤槦</span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">XP欏圭洰鐨勬墍鏈夊弬涓庤咃紙寮鍙戜漢鍛樸佷笟鍔″垎鏋愬笀銆佹祴璇曚漢鍛樼瓑絳夛級涓璧峰伐浣滃湪涓涓紑鏀劇殑鍦烘墍涓紝浠栦滑鏄悓涓涓洟闃熺殑鎴愬憳銆?/span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">璁″垝娓告垙</span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">璁″垝鏄寔緇殑錛屽驚搴忔笎榪涚殑銆傛瘡2鍛紝寮鍙戜漢鍛樺氨涓轟笅2鍛ㄤ及綆楀欓夌壒鎬х殑鎴愭湰錛岃屽鎴峰垯鏍規嵁鎴愭湰鍜屽晢鍔′環鍊兼潵閫夋嫨瑕佸疄鐜扮殑鐗規с?/span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">瀹㈡埛嫻嬭瘯</span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">浣滀負閫夋嫨姣忎釜鎵鏈熸湜鐨勭壒鎬х殑涓閮ㄥ垎錛屽鎴峰畾涔夊嚭鑷姩楠屾敹嫻嬭瘯鏉ヨ〃鏄庤鐗規у彲浠ュ伐浣溿?/span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">綆鍗曡璁?/span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">鍥㈤槦淇濇寔璁捐鎭板ソ鍜屽綋鍓嶇殑緋葷粺鍔熻兘鐩稿尮閰嶏紝瀹冮氳繃浜嗘墍鏈夌殑嫻嬭瘯錛屼笉鍖呭惈浠諱綍閲嶅錛岃〃杈懼嚭浜嗙紪鍐欒呮兂琛ㄨ揪鐨勬墍鏈変笢瑗匡紝騫朵笖鍖呭惈灝藉彲鑳藉皯鐨勪唬鐮併?/span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">緇撳緙栫▼</span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">鎵鏈夌殑浜у搧杞歡閮芥槸鐢變袱涓▼搴忓憳錛屽茍鎺掑潗鍦ㄤ竴璧峰湪鍚屼竴鍙扮數鑴戜笂鏋勫緩鐨勩?/span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">嫻嬭瘯椹卞姩寮鍙?/span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">紼嬪簭鍛樹互闈炲父鐭殑寰幆鍛ㄦ湡宸ヤ綔錛屼粬浠厛澧炲姞涓涓け璐ョ殑嫻嬭瘯錛岀劧鍚庝嬌涔嬮氳繃銆?/span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">鏀硅繘璁捐</span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">闅忔椂鏀硅繘緋熺硶鐨勪唬鐮併備繚鎸佷唬鐮佸敖鍙兘鐨勫共鍑錛屽叿鏈夎〃杈懼姏銆?/span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">鎸佺畫闆嗘垚</span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">鍥㈤槦鎬繪槸浣跨郴緇熷畬鏁村湴琚泦鎴愩?/span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">闆嗕綋浠g爜鎵鏈夋潈</span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">浠諱綍緇撳鐨勭▼搴忓憳閮藉彲浠ュ湪浠諱綍鏃跺欐敼榪涗換浣曚唬鐮併?/span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">緙栫爜鏍囧噯</span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">緋葷粺涓墍鏈夌殑浠g爜鐪嬭搗鏉ュ氨濂藉儚鏄鍗曠嫭涓涓?-闈炲父鍊煎緱鑳滀換鐨?-浜虹紪鍐欑殑銆?/span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">闅愬柣</span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">鍥㈤槦鎻愬嚭涓涓▼搴忓伐浣滃師鐞嗙殑鍏叡鏅儚銆?/span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">鍙寔緇殑閫熷害</span></div><div><span style="line-height: 26px; font-family: Verdana; font-size: 12pt;">鍥㈤槦鍙湁鎸佷箙鎵嶆湁鑾瘋儨鐨勫笇鏈涳紝浠栦滑浠ヨ兘澶熼暱鏈熺淮鎸佺殑閫熷害鍔姏宸ヤ綔錛屼粬浠繚瀛樼簿鍔涳紝浠栦滑鎶婇」鐩湅浣滄槸椹媺鏉鵑暱琚嶏紝鑰屼笉鏄叏閫熺煭璺戙?/span></div><br /><p> </p><h1><span style="font-size: 12pt; font-family: Verdana;">嫻嬭瘯椹卞姩寮鍙?/span></h1><p style="color: #333333; text-indent: 21pt;"><span style="font-family: Verdana; font-size: 12pt;">鏋侀檺緙栫▼錛?/span><span style="font-family: Verdana; font-size: 12pt;">eXtreme Programming</span><span style="font-family: Verdana; font-size: 12pt;">錛岀畝縐?/span><span style="font-family: Verdana; font-size: 12pt;">XP</span><span style="font-family: Verdana; font-size: 12pt;">錛夋槸鏁忔嵎鏂規硶涓渶钁楀悕鐨勪竴涓傚畠鐢變竴緋誨垪綆鍗曞嵈鐩鎬簰渚濊禆鐨勬椂闂寸粍鎴愩傝繖浜涘疄璺電粨鍚堝湪涓璧峰艦鎴愪簡涓涓儨浜庨儴鍒嗙粨鍚堢殑鏁翠綋銆傚叾涓竴涓潪甯擱噸瑕佺殑錛屽綋鍓嶄篃鍙楀埌鏍煎閲嶈鐨勫疄璺靛氨鏄?/span><span style="font-family: Verdana; font-size: 12pt;">TDD</span><span style="font-family: Verdana; font-size: 12pt;">錛堟祴璇曢┍鍔ㄧ殑寮鍙戞柟娉曪級銆?/span></p><p style="color: #333333; text-indent: 21pt;"><span style="font-family: Verdana; font-size: 12pt;">鍦ㄦ祴璇曢┍鍔ㄧ殑寮鍙戞柟娉曚腑錛岀紪鍐欐墍鏈夌殑浠g爜鐨勭洰鐨勯兘鏄負浜嗕嬌澶辮觸鐨勫崟鍏冩祴璇曡兘澶熼氳繃銆傞鍏堢紪鍐欎竴涓崟鍏冩祴璇曪紝鐢變簬瀹冭嫻嬭瘯鐨勫姛鑳借繕涓嶅湪錛屾墍浠ュ畠浼氳繍琛屽け璐ャ傜劧鍚庣紪鍐欎唬鐮佷嬌嫻嬭瘯閫氳繃銆?/span></p><p style="color: #333333; text-indent: 21pt;"><span style="font-family: Verdana; font-size: 12pt;">緙栧啓嫻嬭瘯鐢ㄤ緥鍜屼唬鐮佷箣闂寸殑鏇磋凱閫熷害鏄緢蹇殑錛屽熀鏈笂鍑犲垎閽熷乏鍙熾傛祴璇曠敤渚嬪拰浠g爜鍏卞悓婕斿寲錛屽叾涓祴璇曠敤渚嬪驚搴忔笎榪涘湴瀵逛唬鐮佺殑緙栧啓榪涜鎸囧銆備綔涓虹粨鏋滐紝涓涓潪甯稿畬鏁寸殑嫻嬭瘯鐢ㄤ緥闆嗗拰浠g爜涓璧峰彂灞曡搗鏉ャ?/span></p><p style="color: #333333; text-indent: 21pt;"><span style="font-family: Verdana; font-size: 12pt;">嫻嬭瘯綺楃暐鐨勫彲浠ュ垎涓哄崟鍏冩祴璇曞拰楠屾敹嫻嬭瘯銆傚崟鍏冩祴璇曟槸鐢ㄦ潵楠岃瘉緋葷粺涓釜鍒満鍒剁殑鐧界洅嫻嬭瘯銆?/span></p><p style="color: #333333; text-indent: 21pt;"><span style="font-family: Verdana; font-size: 12pt;">鍗曞厓嫻嬭瘯鐢ㄦ潵楠岃瘉緋葷粺鐨勫皬鐨勭粍鎴愬崟鍏冨簲璇ユ寜鐓ф墍鏈熸湜鐨勬柟寮忓伐浣滐紝浣嗘槸瀹冧滑娌℃湁楠岃瘉緋葷粺浣滀負涓涓暣浣撴椂宸ヤ綔鐨勬紜с傛墍浠ワ紝鍗曞厓嫻嬭瘯鏄繀瑕佺殑錛屼絾鏄笉澶熷厖鍒嗐?/span></p><p style="color: #333333; text-indent: 21pt;"><span style="font-family: Verdana; font-size: 12pt;">楠屾敹嫻嬭瘯鏄敤鏉ラ獙璇佺郴緇熸弧瓚沖鎴烽渶姹傜殑榛戠洅嫻嬭瘯銆傞獙鏀舵祴璇曠敱涓嶄簡瑙g郴緇熷唴閮ㄦ満鍒剁殑浜虹紪鍐欍傞獙鏀舵祴璇曟槸紼嬪簭錛屽洜姝ゆ槸鍙繍琛岀殑銆傞氬父閫氳繃浣跨敤涓撻棬涓哄簲鐢ㄧ▼搴忕殑瀹㈡埛鍒涘緩鐨勮剼鏈璦鏉ョ紪鍐欓獙鏀舵祴璇曘傛濡傚崟鍏冩祴璇曚綔涓哄彲緙栬瘧銆佽繍琛岀殑鏈夊叧緋葷粺鍐呴儴緇撴瀯鐨勬枃妗i偅鏍鳳紝楠屾敹嫻嬭瘯鏄湁鍏崇郴緇熺壒鎬х殑鍙紪璇戙佹墽琛岀殑鏂囨。銆?/span></p><p style="color: #333333; text-indent: 21pt;"><span style="font-family: Verdana; font-size: 12pt;">緙栧啓浠g爜鍓嶅氨緙栧啓鍗曞厓嫻嬭瘯浼氬甫鏉ュ洓涓緢鏄庢樉鐨勫ソ澶勶細</span></p><p style="color: #333333; text-indent: 21pt;"><span style="font-family: Verdana; font-size: 12pt;">1</span><span style="font-family: Verdana; font-size: 12pt;">銆侀鍏堢紪鍐欐祴璇曚嬌寰楃▼搴忎腑鐨勬瘡涓欏瑰姛鑳介兘鏈夋祴璇曟潵楠岃瘉瀹冪殑鎿嶄綔鐨勬紜с傝繖灝卞彲浠ョ粰浠ュ悗鐨勫紑鍙戞彁渚涙敮鎻達紝浣挎垜浠彲浠ユ洿鑷敱鍦板紼嬪簭榪涜鏇存敼錛屽洜涓烘祴璇曞彲浠ュ憡璇夋垜浠▼搴忎粛鐒跺叿鏈夋紜殑琛屼負銆?/span></p><p style="color: #333333; text-indent: 21pt;"><span style="font-family: Verdana; font-size: 12pt;">2</span><span style="font-family: Verdana; font-size: 12pt;">銆侀鍏堢紪鍐欐祴璇曡揩浣挎垜浠繀欏諱粠紼嬪簭璋冪敤鑰呯殑鏈夊埄瑙嗚鍘昏瀵熸垜浠皢瑕佺紪鍐欑殑紼嬪簭銆傝繖鏍鳳紝鎴戜滑灝變細鍦ㄥ叧娉ㄧ▼搴忕殑鍔熻兘鐨勫悓鏃訛紝鐩存帴鍏蟲敞瀹冪殑鎺ュ彛錛屾垜浠篃灝卞彲浠ヨ璁″嚭渚夸簬璋冪敤鐨勮蔣浠躲?/span></p><p style="color: #333333; text-indent: 21pt;"><span style="font-family: Verdana; font-size: 12pt;">3</span><span style="font-family: Verdana; font-size: 12pt;">銆侀鍏堢紪鍐欐祴璇曡揩浣挎垜浠妸紼嬪簭璁捐涓哄彲嫻嬭瘯鐨勩備負浜嗘妸紼嬪簭璁捐涓烘槗浜庤皟鐢ㄥ拰鍙祴璇曠殑錛岀▼搴忓繀欏誨拰瀹冨懆杈圭幆澧冭В鑰︺傝繖鏍烽鍏堢紪鍐欐祴璇曡揩浣挎垜浠В闄よ蔣浠朵腑鐨勮﹀悎銆傞潰鍚戝璞¤璁$殑鍘熷垯鍦ㄨ繘琛岃繖縐嶈В闄よ﹀悎鏂歸潰鍏鋒湁宸ㄥぇ鐨勫府鍔╀綔鐢ㄣ?/span></p><p style="color: #333333; text-indent: 21pt;"><span style="font-family: Verdana; font-size: 12pt;">4</span><span style="font-family: Verdana; font-size: 12pt;">銆侀鍏堢紪鍐欐祴璇曠殑鍙︿竴涓噸瑕佹晥鏋滄槸錛屾祴璇曞彲浠ヤ綔涓轟竴縐嶆棤浠風殑鏂囨。褰㈠紡銆傛祴璇曞氨鍍忎竴濂楄寖渚嬶紝瀹冨府鍔╁叾浠栫▼搴忓憳浜嗚В濡備綍浣跨敤浠g爜銆傝繖浠芥枃妗f槸鍙紪璇戙佸彲榪愯鐨勩傚畠淇濇寔鏈鏂般傚畠涓嶄細鎾掕皫銆?/span></p><p style="color: #333333; text-indent: 21pt;"><span style="font-family: Verdana; font-size: 12pt;">棣栧厛緙栧啓楠屾敹嫻嬭瘯鐨勮涓哄浜庣郴緇熺殑鏋舵瀯鏂歸潰鍏鋒湁娣辮繙鐨勫獎鍝嶃備負浜嗕嬌緋葷粺鍏鋒湁鍙祴璇曟э紝灝卞繀欏昏鍦ㄥ緢楂樼殑緋葷粺鏋舵瀯灞傞潰瀵圭郴緇熻繘琛岃В鑰﹀悎</span><span style="font-family: Verdana; font-size: 12pt;">銆傛濡傚崟鍏冩祴璇曞彲浠ヤ績浣夸綘鍦ㄥ皬鐨勬柟闈㈠彲浠ュ仛鍑轟紭鑹殑璁捐鍐崇瓥涓鏍鳳紝楠屾敹嫻嬭瘯鍙互淇冧嬌浣犲湪澶х殑鏂歸潰鍋氬嚭浼樿壇鐨勭郴緇熸灦鏋勫喅絳栥?br /><br /></span><span lang="EN-US" style="color: #000000; font-family: Arial; font-size: medium; line-height: 26px; text-indent: 0px; background-color: #ffffff;"> </span><span style="color: #000000; font-size: medium; line-height: 26px; text-indent: 0px; background-color: #ffffff; font-family: 瀹嬩綋;">杞歡澶у笀銆?/span><span lang="EN-US" style="color: #000000; font-family: Arial; font-size: medium; line-height: 26px; text-indent: 0px; background-color: #ffffff;">C++</span><span style="color: #000000; font-size: medium; line-height: 26px; text-indent: 0px; background-color: #ffffff; font-family: 瀹嬩綋;">涔嬬埗</span><span lang="EN-US" style="color: #000000; font-family: Arial; font-size: medium; line-height: 26px; text-indent: 0px; background-color: #ffffff;">Bjarne Stroustrup</span><span style="color: #000000; font-size: medium; line-height: 26px; text-indent: 0px; background-color: #ffffff; font-family: 瀹嬩綋;">鏇劇粡璇磋繃錛氳璁″拰緙栫▼閮芥槸浜虹殑媧誨姩銆傚繕璁頒簡榪欎竴鐐癸紝灝嗕細澶卞幓涓鍒?/span><span style="color: #000000; font-size: medium; line-height: 26px; text-indent: 0px; background-color: #ffffff; font-family: 瀹嬩綋;">銆傛晱鎹瘋蔣浠跺紑鍙戞柟娉曟鏄璇嗗埌杞歡寮鍙戠殑榪欎竴鏈川鐗瑰緛鑰屾彁鍑虹殑闈╂柊鎬у紑鍙戞柟娉曘備嬌鐢ㄦ晱鎹峰紑鍙戞柟娉曚細緇欐垜浠甫鏉ュ法澶х殑濂藉銆傚綋鐒惰瀹屽叏鍋氬埌涔熸槸寰堝洶闅劇殑銆傝繖涓嶄粎闇瑕佸鏁忔嵎鐨勬繁鍒葷悊瑙o紝鏇撮渶瑕佹晱鎹峰洟闃熸垚鍛樼殑鍏卞悓鍔姏銆?/span><br /><span style="font-family: Verdana; font-size: 12pt;"><br /></span></p><span style="font-family: Verdana; font-size: 12pt;">鏈枃鍙傝冿細</span><a style="font-family: verdana, 'ms song', Arial, Helvetica, sans-serif; line-height: 21px;"><span style="font-family: Verdana; font-size: 12pt;">http://blog.csdn.net/open2job/article/details/6335000</span></a><p> </p><p> </p><img src ="http://www.shnenglu.com/wanghaiguang/aggbug/199514.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/wanghaiguang/" target="_blank">鐜嬫搗鍏?/a> 2013-04-17 17:13 <a href="http://www.shnenglu.com/wanghaiguang/archive/2013/04/17/199514.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>錛堣漿杞斤級鏋舵瀯甯堜笉鍙笉鐭ョ殑鍗佸ぇ鍙墿灞曟灦鏋?/title><link>http://www.shnenglu.com/wanghaiguang/archive/2013/01/07/197080.html</link><dc:creator>鐜嬫搗鍏?/dc:creator><author>鐜嬫搗鍏?/author><pubDate>Mon, 07 Jan 2013 08:49:00 GMT</pubDate><guid>http://www.shnenglu.com/wanghaiguang/archive/2013/01/07/197080.html</guid><wfw:comment>http://www.shnenglu.com/wanghaiguang/comments/197080.html</wfw:comment><comments>http://www.shnenglu.com/wanghaiguang/archive/2013/01/07/197080.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/wanghaiguang/comments/commentRss/197080.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/wanghaiguang/services/trackbacks/197080.html</trackback:ping><description><![CDATA[<p style="box-sizing: border-box; font-size: 13px; margin-right: 0px; margin-left: 0px; padding: 5px 0px; color: #585858; font-family: verdana, helvetica, arial, sans-serif; line-height: 23.383333206176758px; text-align: justify; background-color: #ffffff;">杞嚜錛?a style="box-sizing: border-box; color: #3468a4;">http://www.itivy.com/ivy/archive/2011/11/24/something-that-architecture-must-be-aware-of.html<br style="box-sizing: border-box;" /></a><br style="box-sizing: border-box;" />瀵逛簬澶у鏁版灦鏋勫笀鑰岃█錛?#8220;鍙墿灞曟?#8221;鍦ㄨ蔣浠舵灦鏋勬柟闈㈡槸鏈铏氭棤緙ョ紙鐨勮娉曘傝繖姣笉濂囨紝鍥犱負鍙墿灞曟ф鏄浠婅蔣浠惰璁¢鍩熸渶鍊煎緱浼樺厛鑰冭檻鐨勮绱犮傜劧 鑰岋紝璁$畻鏈虹瀛﹀浠繕鏃犳硶浜嗚В涓濂楀崟鐙殑鏋舵瀯濡備綍鎵嶈兘鎵╁睍鑷沖悇綾誨簲鐢ㄧ幆澧冨綋涓傜浉鍙嶏紝鎴戜滑鍦ㄦ暟閲忕箒澶氱殑鏂規涓墍璁捐鍑虹殑鍙墿灞曟ф灦鏋勶紝寰寰浠ヤ笟鐣岃緝涓洪氱敤 鐨勫凡鐭ュ彲鎵╁睍妯″紡鍙婁釜浜哄亸濂戒負鏍囧噯銆傜畝鍗曟潵璁詫紝鎵撻犱竴濂楀叿澶囧彲鎵╁睍鎬х殑緋葷粺宸茬粡鍙樺緱鏇村儚鏄竴闂ㄨ壓鏈屼笉鍗曞崟鏄妧鏈?/p><p style="box-sizing: border-box; font-size: 13px; margin-right: 0px; margin-left: 0px; padding: 5px 0px; color: #585858; font-family: verdana, helvetica, arial, sans-serif; line-height: 23.383333206176758px; text-align: justify; background-color: #ffffff;">鎴戜滑甯稿父浼氶氳繃瑙傛懇鏉頒綔浣撲細騫跺涔犺壓鏈殑綺鵑珦錛岃屽彲鎵╁睍鎬т篃搴旇閬靛驚鍚屾牱鐨勮礬綰匡紒</p><p style="box-sizing: border-box; font-size: 13px; margin-right: 0px; margin-left: 0px; padding: 5px 0px; color: #585858; font-family: verdana, helvetica, arial, sans-serif; line-height: 23.383333206176758px; text-align: justify; background-color: #ffffff;">鍦ㄨ繖綃囨枃绔犱腑錛屾垜灝嗗垪鍑烘暟嬈句負澶у鎵鑰崇啛鑳借鐨勫彲鎵╁睍鎬ф灦鏋勩傞氬父鎯呭喌涓嬶紝鏋舵瀯甯堜滑瀹屽叏鍙互鍊熼壌宸茬煡鐨勫彲鎵╁睍鏋舵瀯妯″紡錛岃繘鑰屽垱閫犲嚭鏂扮殑鍙墿灞曟灦鏋勩?/p><ol style="box-sizing: border-box; font-size: 13px; padding: 0px; margin: 0px; color: #585858; font-family: verdana, helvetica, arial, sans-serif; line-height: 23.383333206176758px; text-align: justify; background-color: #ffffff;"><li value="1" style="font-size: 12px; box-sizing: border-box; list-style: url(http://www.itivy.com/Skins/gazetteer/li.gif); margin-left: 18px;">LB (璐熻澆騫寵 鍣? + 鏃犲叡浜崟浣?nbsp;- 璇ユā鍨嬩腑鍖呭惈涓緋誨垪鍗曞厓錛屽悇鍗曞厓褰兼闂翠笉鍏變韓浠諱綍鍐呭錛屼笖涓鑷存寚鍚戜竴涓皢杈撳叆鏂囪鎸変竴瀹氭潯浠跺彂寰鍗曞厓澶勭殑璐熻澆騫寵 鍣紙榪欐瀯鎴愪竴涓驚 鐜紝浠ヨ礋杞界瓑鎯呭喌涓哄熀紜錛夈傛瘡涓崟鍏冨彲浠ユ槸涓涓崟鐙殑鑺傜偣鎴栨槸绱у瘑鑰﹀悎鐨勮妭鐐規墍鏋勬垚鐨勯泦緹ゃ傜敤鎴峰彲浠ヤ嬌鐢―NS寰幆銆佺‖浠惰礋杞藉鉤琛″櫒鎴栬呰蔣浠惰礋杞藉鉤琛″櫒杈?鎴愯礋杞藉鉤琛℃晥鏋溿傚垱寤轟竴濂楄礋杞藉潎琛$殑灞傛緇撴瀯錛屽茍鍦ㄥ叾涓粨鍚堝墠闈㈡彁鍒扮殑鍚勭璐熻澆騫寵 鍣ㄤ篃鏄彲琛岀殑銆傚湪鐢盡ichael Stonebraker鎾板啓鐨勩?nbsp;<a target="_blank" style="box-sizing: border-box; color: #dc8e38; background-color: transparent; text-decoration: initial;">鏃犲叡浜綋緋繪灦鏋勫疄渚?nbsp;</a>銆嬩竴鏂囦腑錛屼笓闂ㄨ璁轟簡姝ょ被鏋舵瀯銆?br style="box-sizing: border-box;" /> </li><li value="2" style="font-size: 12px; box-sizing: border-box; list-style: url(http://www.itivy.com/Skins/gazetteer/li.gif); margin-left: 18px;">LB + 鏃犵姸鎬佽妭鐐?nbsp;+ 鍙墿灞曞瓨鍌?nbsp;- 浼犵粺鐨?nbsp;<a target="_blank" style="box-sizing: border-box; color: #dc8e38; background-color: transparent; text-decoration: initial;">涓夊眰寮廤eb鏋舵瀯 </a>浣跨敤鐨勫氨鏄繖縐嶆ā鍨嬨傝妯″瀷鍖呮嫭鏁頒釜涓庡彲鎵╁睍瀛樺偍浜や簰鐨勬棤鐘舵佽妭鐐逛互鍙婁竴涓垎甯冧簬鑺傜偣闂磋礋杞戒腑鐨勮礋杞藉鉤琛″櫒銆傚湪榪欎竴妯″瀷涓紝瀛樺偍閫氬父浣滀負闄愬埗鍥犵礌瀛樺湪錛屼絾NoSQL瀛樺偍鍒欏彲浠ュ埄鐢ㄨ繖濂楁ā鍨嬪垱寤哄嚭鍏峰鐩稿綋鍙墿灞曟х殑緋葷粺銆?br style="box-sizing: border-box;" /> </li><li value="3" style="font-size: 12px; box-sizing: border-box; list-style: url(http://www.itivy.com/Skins/gazetteer/li.gif); margin-left: 18px;">鐐瑰鐐規灦鏋?nbsp;(鍒嗗竷寮廐ash鍒楄〃 (綆縐癉HT)浠ュ強鍐呭瀵誨潃緗戠粶(綆縐癈AN)) -榪欏妯″瀷鎻愪緵浜嗕竴浜涗紶緇熺殑 鍙墿灞曠畻娉曪紝榪欎簺綆楁硶鐨勫悇涓柟闈㈠嚑涔庡叏閮ㄦ寜瀵規暟榪涜浜嗙瓑姣斾緥澧炲姞銆備婦渚嬫潵璇達紝鍍廋hord銆丳astry錛堢壒鎸囧厤璐圭増錛変互鍙奀AN閮藉睘浜庢綾匯傝屼互 Cassandra涓轟唬琛ㄧ殑銆佸熀浜嶱2P鏋舵瀯鐨勫嚑嬈綨oSQL緋葷粺涔熸槸鍏朵腑鐨勬垚鍛樸傘?nbsp;<a target="_blank" style="box-sizing: border-box; color: #dc8e38; background-color: transparent; text-decoration: initial;">灞曟湜P2P緋葷粺涓殑鏁版嵁 </a>銆嬩竴鏂囧氨娣卞叆鎺㈣浜嗚繖綾繪ā鍨嬬殑鍚勭緇嗚妭銆?br style="box-sizing: border-box;" /> </li><li value="4" style="font-size: 12px; box-sizing: border-box; list-style: url(http://www.itivy.com/Skins/gazetteer/li.gif); margin-left: 18px;">鍒嗗竷寮忛槦鍒?nbsp;– 榪欑妯″瀷浠ュ皢闃熷垪瀹炴柦錛堝嵆鍏堣繘鍏堝嚭浜や粯鏈哄埗錛変綔涓虹綉緇滄湇鍔″鐞嗕負鍩虹銆傝妯″瀷閫氳繃JMS闃熷垪鑰屽箍娉涘緱鍒伴噰鐢ㄣ備竴鑸細閬靛驚榪欑鍋氭硶鐨勬湁浠誨姟闃熷垪浠ュ強閫氳繃淇濇寔闃熷垪鍒嗙駭浣撶郴瀹炵幇鎵╁睍鎬х殑浠誨姟闃熷垪鐗堟湰錛屽悗鑰呭湪璐熻澆鏃犳硶鍙婃椂澶勭悊鏃訛紝浠誨姟浼氱敱浣庣駭灞傞潰鍚戦珮綰у眰闈紶閫掋?br style="box-sizing: border-box;" /> </li><li value="5" style="font-size: 12px; box-sizing: border-box; list-style: url(http://www.itivy.com/Skins/gazetteer/li.gif); margin-left: 18px;">鍙戝竷/璁㈤槄妯″紡 - 涓鑸敤浜庨氳繃緗戠粶鍚戝郊姝ゅ彂甯冭闃呰鎭傘?nbsp;<a target="_blank" style="box-sizing: border-box; color: #dc8e38; background-color: transparent; text-decoration: initial;">鍙戝竷涓庤闃呯殑澶氶潰鎬?nbsp;</a>銆嬭繖涓緇忓吀璁烘枃涓緇嗙殑浠嬬粛榪欎竴妯″瀷錛岃妯″瀷鏂歸潰鏈鍏稿瀷鐨勪緥瀛愬嵆 <a target="_blank" style="box-sizing: border-box; color: #dc8e38; background-color: transparent; text-decoration: initial;">NaradaBroker</a>涓?nbsp;<a target="_blank" style="box-sizing: border-box; color: #dc8e38; background-color: transparent; text-decoration: initial;">EventJava </a>銆?br style="box-sizing: border-box;" /> </li><li value="6" style="font-size: 12px; box-sizing: border-box; list-style: url(http://www.itivy.com/Skins/gazetteer/li.gif); margin-left: 18px;">灝忛亾娑堟伅涓庤嚜鐒剁伒鎰熷紡妯″瀷 - 榪欑妯″瀷婧愯嚜鏃ュ父鐢熸椿涓皬閬撴秷鎭殑浼犳挱閫斿緞錛屼篃灝辨槸姣忎釜鑺傜偣灝嗛殢鏈洪夋嫨鍚庣畫鑺傜偣浠ヤ氦 鎹俊鎭傛濡傜幇瀹炵敓媧諱腑鐨勫疄闄呭弽棣堬紝榪欑鍏崷鍨嬬畻娉曞湪淇℃伅浼犳挱鏂歸潰鍑哄鍦拌繀閫熴傝妯″瀷鐨勫彟涓澶у垎鏀垯鏄彈鍒扮敓鐗╁褰卞搷鐨勫惎鍙戝紡綆楁硶銆傝嚜鐒朵笘鐣屼腑瀛樺湪鐫澶ч噺 鍗忚皟鍙婃墿灞曟柟闈㈡瀬涓哄崜瓚婄殑鍥烘湁綆楁硶銆備婦渚嬫潵璇達紝铓傝殎銆佷漢綾諱互鍙婅湝铚傜瓑絳夛紝閮借兘澶熶互鏈綆媧佺殑浜ゆ祦鏂瑰紡鍗忚皟濂芥墿灞曟ф柟闈㈢殑闇瑕併傛ā鍨嬩腑鐨勭畻娉曟鏄熼壌浜嗚繖浜涘疄 闄呭瓨鍦ㄧ殑鐜拌薄銆傚湪璁烘枃銆?nbsp;<a target="_blank" style="box-sizing: border-box; color: #dc8e38; background-color: transparent; text-decoration: initial;">浠庢祦琛岀梾鐨勮敁寤跺埌鍒嗗竷寮忚綆?nbsp;</a>銆嬩腑瀵硅繖縐嶆ā鍨嬫湁鐫璇﹀敖鐨勫彊榪般?br style="box-sizing: border-box;" /> </li><li value="7" style="font-size: 12px; box-sizing: border-box; list-style: url(http://www.itivy.com/Skins/gazetteer/li.gif); margin-left: 18px;">鍦板浘緙╁皬/鏁版嵁嫻?nbsp;- 榪欎竴姒傚康棣栧厛鐢辮胺姝屽叕鍙告彁鍑猴紝鍦板浘緙╁皬涓哄伐浣滅殑鎻忚堪鍙婃墽琛屾彁渚涗簡涓濂楀彲鎵╁睍鐨勬ā寮忋傝櫧鐒跺唴瀹?綆鍗曪紝浣嗗畠浠嶇劧鎴愪負鑱旀満鍒嗘瀽澶勭悊鏂歸潰鐨勯瑕佸鐞嗘ā寮忋傛暟鎹祦鍒欐槸涓縐嶆洿鍏堣繘鐨勬柟寮忥紝鐢ㄦ潵琛ㄨ揪鎵ц淇℃伅錛涜屽儚Dryad鍙奝ig榪欐牱鐨勯」鐩負鏁版嵁嫻佺殑鎵ц鎻?渚涗簡鍙墿灞曠殑妗嗘灦銆傝鏂囥?nbsp;<a target="_blank" style="box-sizing: border-box; color: #dc8e38; background-color: transparent; text-decoration: initial;">鍦板浘緙╁皬錛氬ぇ鍨嬮泦緹や笂鐨勭畝鍖栨暟鎹鐞?nbsp;</a>銆嬩腑璁劇疆浜嗕笓闂ㄧ殑涓婚錛岃緇嗚璁鴻繖涓鍐呭銆侫pache鐨凥adoop灝辨槸榪欑妯″瀷鐨勪唬琛ㄦт駭鍝併?br style="box-sizing: border-box;" /> </li><li value="8" style="font-size: 12px; box-sizing: border-box; list-style: url(http://www.itivy.com/Skins/gazetteer/li.gif); margin-left: 18px;">璐d換鏍戝艦鍥?nbsp;- 榪欑妯″瀷鎵撶牬浜嗛掑綊闂鐨勬潫緙氾紝灝嗘暣涓祦紼嬩互鏍戠姸褰㈠紡鍔犱互澶勭悊錛涙瘡涓埗鑺傜偣灝嗗伐浣滀笅鏀捐嚦瀛愯妭鐐廣傝繖縐嶆ā鍨嬫墿灞曟у己錛屽茍宸茬粡琚簲鐢ㄤ簬鏁版鍙墿灞曟ф灦鏋勫綋涓?br style="box-sizing: border-box;" /> </li><li value="9" style="font-size: 12px; box-sizing: border-box; list-style: url(http://www.itivy.com/Skins/gazetteer/li.gif); margin-left: 18px;">嫻佸鐞?nbsp;- 榪欑妯″瀷琚敤浜庡鐞嗘簮婧愪笉鏂殑鏁版嵁嫻佸強鏁版嵁銆傝繖縐嶅鐞嗘柟寮忛氳繃緗戠粶涓殑澶勭悊鑺傜偣鑾峰緱鏀寔錛堜緥濡侫urora銆乀witter Strom浠ュ強Apache S4絳夛級銆?br style="box-sizing: border-box;" /> </li><li value="10" style="font-size: 12px; box-sizing: border-box; list-style: url(http://www.itivy.com/Skins/gazetteer/li.gif); margin-left: 18px;">鍙墿灞曞瓨鍌?nbsp;– 璇ユā鍨嬬殑搴旂敤鑼冨洿浠庢暟鎹簱銆丯oSQL瀛樺偍銆佹湇鍔℃敞鍐屽埌鏂囦歡緋葷粺閮芥湁浣撶幇銆?nbsp;<a target="_blank" style="box-sizing: border-box; color: #dc8e38; background-color: transparent; text-decoration: initial;">閾炬帴涓殑榪欑瘒鏂囩珷 </a>浠ュ彲鎵╁睍鎬т負鍒囧叆鐐瑰鍏惰繘琛屼簡娣卞叆璁ㄨ銆?/li></ol><p style="box-sizing: border-box; font-size: 13px; margin-right: 0px; margin-left: 0px; padding: 5px 0px; color: #585858; font-family: verdana, helvetica, arial, sans-serif; line-height: 23.383333206176758px; text-align: justify; background-color: #ffffff;">緇間笂鎵榪幫紝鍙墿灞曟х殑瀹炵幇鍙湁涓夌鏂瑰紡錛屽嵆錛氬垎甯冦佺紦瀛樺強寮傛澶勭悊銆傚墠鏂囨墍鎻愬埌鐨勫悇縐嶆灦鏋勪簨瀹炰笂閮芥槸鎶婅繖涓夌鏂瑰紡榪涜涓嶅悓緇勫悎騫跺姞浠ュ疄鏂姐傝屽彟涓鏂?闈紝涓嶅埄浜庡彲鎵╁睍鎬х殑鍥犵礌錛岄櫎浜嗙碂緋曠殑緙栫爜鏈韓錛屽叏灞鎬у崗璋冧篃璧峰埌浜嗛噸瑕佺殑褰卞搷銆傜畝鍗曟潵璇達紝浠諱綍涓縐嶅叏灞鎬у崗璋冮兘浼氶檺鍒剁郴緇熺殑鍙墿灞曟с傛湰鏂囦腑鎵鎻愬埌鐨勫悇 縐嶆灦鏋勪篃鍙槸鍦ㄥ仛濂戒簡鏈湴鎬у崗璋冿紝鑰岄潪鍏ㄥ眬鎬у崗璋冦?/p><p style="box-sizing: border-box; font-size: 13px; margin-right: 0px; margin-left: 0px; padding: 5px 0px; color: #585858; font-family: verdana, helvetica, arial, sans-serif; line-height: 23.383333206176758px; text-align: justify; background-color: #ffffff;">鐒惰岋紝灝嗗畠浠湁鏈哄湴緇撳悎璧鋒潵浠ュ垱寤轟竴濂楁瀬鍏峰彲鎵╁睍鎬х殑鏋舵瀯鍙笉鍍忚璧鋒潵閭d箞瀹規槗錛岄櫎闈炴垜浠兘鎵懼埌涓縐嶅叏鏂扮殑鎵╁睍妯″紡銆備笉榪囩粡楠屽憡璇夋垜浠紝姣旇搗鎼炰竴濂楀叏鏂扮殑鏋舵瀯錛岄噰鐢ㄤ負鎴戜滑鎵鐔熺煡涓旀洿鏄撻┚椹殑鍙墿灞曟цВ鍐蟲柟妗堟案榪滄槸鏇村ソ鐨勯夋嫨銆?/p><img src ="http://www.shnenglu.com/wanghaiguang/aggbug/197080.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/wanghaiguang/" target="_blank">鐜嬫搗鍏?/a> 2013-01-07 16:49 <a href="http://www.shnenglu.com/wanghaiguang/archive/2013/01/07/197080.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>錛堣漿杞斤級鎬庢牱閲忓寲璇勪環鎼滅儲寮曟搸鐨勭粨鏋滆川閲?/title><link>http://www.shnenglu.com/wanghaiguang/archive/2013/01/07/197078.html</link><dc:creator>鐜嬫搗鍏?/dc:creator><author>鐜嬫搗鍏?/author><pubDate>Mon, 07 Jan 2013 08:46:00 GMT</pubDate><guid>http://www.shnenglu.com/wanghaiguang/archive/2013/01/07/197078.html</guid><wfw:comment>http://www.shnenglu.com/wanghaiguang/comments/197078.html</wfw:comment><comments>http://www.shnenglu.com/wanghaiguang/archive/2013/01/07/197078.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/wanghaiguang/comments/commentRss/197078.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/wanghaiguang/services/trackbacks/197078.html</trackback:ping><description><![CDATA[<h2>杞嚜錛?a style="box-sizing: border-box; color: #3468a4;">http://www.infoq.com/cn/articles/cyw-evaluate-seachengine-result-quality</a><br style="box-sizing: border-box;" /><br style="box-sizing: border-box;" />鍓嶈█</h2><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鎼滅儲璐ㄩ噺璇勪及鏄悳绱㈡妧鏈爺絀剁殑鍩虹鎬у伐浣滐紝涔熸槸鏍稿績宸ヤ綔涔嬩竴銆傝瘎浠鳳紙Metrics錛夊湪鎼滅儲鎶鏈爺鍙戜腑鎵紨鐫閲嶈瑙掕壊錛屼互鑷充簬浠諱綍涓縐嶆柊鏂規硶涓庝粬浠殑璇勪環鏂瑰紡鏄瀺涓轟竴浣撶殑銆?/p><div style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><br style="box-sizing: border-box;" />鎼滅儲寮曟搸緇撴灉鐨勫ソ鍧忎笌鍚︼紝浣撶幇鍦ㄤ笟鐣屾墍縐扮殑鍦ㄧ浉鍏蟲э紙Relevance錛変笂銆傜浉鍏蟲х殑瀹氫箟鍖呮嫭鐙箟鍜屽箍涔変袱鏂歸潰錛岀嫮涔夌殑瑙i噴鏄細媯绱㈢粨鏋滃拰鐢ㄦ埛鏌ヨ鐨勭浉鍏崇▼搴︺傝屼粠騫夸箟鐨勫眰闈紝鐩稿叧鎬у彲浠ョ悊瑙d負涓虹敤鎴鋒煡璇㈢殑緇煎悎婊℃剰搴︺傜洿瑙傜殑鏉ョ湅錛屼粠鐢ㄦ埛榪涘叆鎼滅儲妗嗙殑閭d竴鍒昏搗錛屽埌闇姹傝幏寰楁弧瓚充負姝紝榪欎箣闂寸粡鍘嗙殑榪囩▼瓚婇『鐣咃紝瓚婁究鎹鳳紝鎼滅儲鐩稿叧鎬у氨瓚婂ソ銆傛湰鏂囨葷粨涓氱晫甯哥敤鐨勭浉鍏蟲ц瘎浠鋒寚鏍囧拰閲忓寲璇勪環鏂規硶銆備緵瀵規鎰熷叴瓚g殑鏈嬪弸鍙傝冦?/div><h2>Cranfield璇勪環浣撶郴</h2><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">A Cranfield-like approach榪欎釜鍚嶇О鏉ユ簮浜庤嫳鍥紺ranfield University錛屽洜涓哄湪浜屽崄涓栫邯浜斿崄騫翠唬璇ュぇ瀛﹂鍏堟彁鍑轟簡榪欐牱涓濂楄瘎浠風郴緇燂細鐢辨煡璇㈡牱渚嬮泦銆佹紜瓟妗堥泦銆佽瘎嫻嬫寚鏍囨瀯鎴愮殑瀹屾暣璇勬祴鏂規錛屽茍浠庢紜珛浜?#8220;璇勪環”鍦ㄤ俊鎭绱㈢爺絀朵腑鐨勬牳蹇冨湴浣嶃?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">Cranfield璇勪環浣撶郴鐢變笁涓幆鑺傜粍鎴愶細</p><ol style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><li style="font-size: 12px; box-sizing: border-box;">鎶藉彇浠h〃鎬х殑鏌ヨ璇嶏紝緇勬垚涓涓妯¢傚綋鐨勯泦鍚?/li><li style="font-size: 12px; box-sizing: border-box;">閽堝鏌ヨ鏍蜂緥闆嗗悎錛屼粠媯绱㈢郴緇熺殑璇枡搴撲腑瀵繪壘瀵瑰簲鐨勭粨鏋滐紝榪涜鏍囨敞錛堥氬父浜哄伐榪涜錛?/li><li style="font-size: 12px; box-sizing: border-box;">灝嗘煡璇㈣瘝鍜屽甫鏈夋爣娉ㄤ俊鎭殑璇枡搴撹緭鍏ユ绱㈢郴緇燂紝瀵圭郴緇熷弽棣堢殑媯绱㈢粨鏋滐紝浣跨敤棰勫畾涔夊ソ鐨勮瘎浠瘋綆楀叕寮忥紝鐢ㄦ暟鍊煎寲鐨勬柟娉曟潵璇勪環媯绱㈢郴緇熺粨鏋滃拰鏍囨敞鐨勭悊鎯崇粨鏋滅殑鎺ヨ繎紼嬪害</li></ol><h2>鏌ヨ璇嶉泦鍚堢殑閫夊彇</h2><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">Cranfield璇勪環緋葷粺鍦ㄥ悇澶ф悳绱㈠紩鎿庡叕鍙稿唴鏈夊箍娉涚殑搴旂敤銆傚叿浣撳簲鐢ㄦ椂錛岄鍏堥渶瑕佽В鍐崇殑闂鏄瀯閫犱竴涓祴璇曠敤鏌ヨ璇嶉泦鍚堛?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鎸夌収Andrei Broder錛堟浘鍦ˋltaVista/IBM/Yahoo浠昏亴錛夌殑鐮旂┒錛屾煡璇㈣瘝鍙垎涓?綾伙細瀵誨潃綾繪煡璇紙Navigational錛夈佷俊鎭被鏌ヨ(Informational)銆佷簨鍔$被鏌ヨ(Transactional)銆傚搴旂殑姣斾緥鍒嗗埆涓?/p><pre style="box-sizing: border-box; overflow: auto; width: 964.25px; padding: 0px 0px 5px; font-size: 12px; line-height: 15px; font-family: 'Courier New', Courier; color: #222222; margin-top: 0px; margin-bottom: 0px; background-color: #fafafa; border: 2px solid #efefef;">Navigational 錛?12.3% Informational 錛?62.0% Transactional 錛?25.7% </pre><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">涓轟簡浣垮緱璇勪及絎﹀悎綰夸笂瀹為檯鎯呭喌錛岄氬父鏌ヨ璇嶉泦鍚堜篃浼氭寜姣斾緥榪涜閫夊彇銆傞氬父浠庣嚎涓婄敤鎴風殑Query Log鏂囦歡涓嚜鍔ㄦ娊鍙栥?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鍙﹀鏌ヨ闆嗗悎鐨勬瀯閫犳椂錛岄櫎浜嗕笂榪版煡璇㈢被鍨嬪錛岃繕鍙互鑰冭檻Query鐨勯嬈★紝瀵圭儹闂╭uery錛堥珮棰戞煡璇級銆侀暱灝緌uery錛堜腑浣庨錛夊垎鍒崰鐗瑰畾鐨勬瘮渚嬨?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鍙﹀錛屽湪鎶藉彇Query鏃訛紝寰寰Query鐨勯暱鐭篃鏄竴涓緟鑰冭檻鐨勫洜绱犮傚洜涓虹煭query錛堝崟term鐨勬煡璇級鍜岄暱Query錛堝Term鐨勬煡璇級鎺掑簭綆楁硶寰寰浼氭湁涓浜涗笉鍚屻?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鏋勬垚鏌ヨ闆嗗悎鍚庯紝浣跨敤榪欎簺鏌ヨ璇嶏紝鍦ㄤ笉鍚岀郴緇燂紙渚嬪瀵規瘮鐧懼害鍜孏oogle錛夋垨涓嶅悓鎶鏈棿錛堟柊鏃т袱濂桼anking綆楁硶鐨勭幆澧冿級榪涜鎼滅儲錛屽茍瀵圭粨鏋滆繘琛岃瘎鍒嗭紝浠ュ喅瀹氫紭鍔c?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">闄勫浘錛氬鍚屼竴Query錛?#8220;紺句細淇濋櫓娉?#8221;錛屽悇澶ф悳绱㈠紩鎿庣殑緇撴灉紺烘剰鍥俱備笅闈㈠叿浣撹皥璋堣瘎鍒嗙殑鏂規硶銆?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image1.jpg" alt="" style="box-sizing: border-box; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image2.jpg" alt="" style="box-sizing: border-box; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image3.jpg" alt="" style="box-sizing: border-box; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image4.jpg" alt="" style="box-sizing: border-box; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image5.jpg" alt="" style="box-sizing: border-box; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image6.jpg" alt="" style="box-sizing: border-box; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></p><h2>Precision-recall錛堝噯紜巼-鍙洖鐜囨柟娉曪級</h2><h3>璁$畻鏂規硶</h3><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">淇℃伅媯绱㈤鍩熸渶騫夸負浜虹煡鐨勮瘎浠鋒寚鏍囦負Precision-Recall錛堝噯紜巼-鍙洖鐜囷級鏂規硶銆傝鏂規硶浠庢彁鍑鴻嚦浠婂凡緇忓巻鍗婁釜涓栫邯錛岃嚦浠婂湪寰堝鎼滅儲寮曟搸鍏徃鐨勬晥鏋滆瘎浼頒腑浣跨敤銆?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">欏懼悕鎬濅箟錛岃繖涓柟娉曠敱鍑嗙‘鐜囧拰鍙洖鐜囪繖涓や釜鐩鎬簰鍏寵仈鐨勭粺璁¢噺鏋勬垚錛氬彫鍥炵巼錛圧ecall錛夎 閲忎竴涓煡璇㈡悳绱㈠埌鎵鏈夌浉鍏蟲枃妗g殑鑳藉姏錛岃屽噯紜巼錛圥recision錛夎 閲忔悳绱㈢郴緇熸帓闄や笉鐩稿叧鏂囨。鐨勮兘鍔涖傦紙閫氫織鐨勮В閲婁竴涓嬶細鍑嗙‘鐜囧氨鏄畻涓綆椾綘鏌ヨ寰楀埌鐨勭粨鏋滀腑鏈夊灝戞槸闈犺氨鐨勶紱鑰屽彫鍥炵巼琛ㄧず鎵鏈夐潬璋辯殑緇撴灉涓紝鏈夊灝戣浣犵粰鎵懼洖鏉ヤ簡錛夈傝繖涓ら」鏄瘎浠鋒悳绱㈡晥鏋滅殑鏈鍩虹鎸囨爣錛屽叾鍏蜂綋鐨勮綆楁柟娉曞涓嬨?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">Precision-recall鏂規硶鍋囧畾瀵逛竴涓粰瀹氱殑鏌ヨ錛屽搴斾竴涓媯绱㈢殑鏂囨。闆嗗悎鍜屼竴涓笉鐩稿叧鐨勬枃妗i泦鍚堛傝繖閲岀浉鍏蟲ц鍋囪涓轟簩鍏冪殑錛岀敤鏁板褰㈠紡鍖栨柟娉曟潵鎻忚堪錛屽垯鏄細</p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">A琛ㄧず鐩稿叧鏂囨。闆嗗悎</p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><span style="box-sizing: border-box; text-decoration: overline;">A</span>琛ㄧず涓嶇浉鍏抽泦鍚?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">B琛ㄧず琚绱㈠埌鐨勬枃妗i泦鍚?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><span style="box-sizing: border-box; text-decoration: overline;">B</span>琛ㄧず鏈媯绱㈠埌鐨勬枃妗i泦鍚?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鍒欏崟嬈℃煡璇㈢殑鍑嗙‘鐜囧拰鍙洖鐜囧彲浠ョ敤涓嬭堪鍏紡鏉ヨ〃杈撅細</p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img alt="" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image7.jpg" _href="img://image7.jpg" _p="true" style="box-sizing: border-box; border: 0px;" /></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">錛堣繍綆楃∩ 琛ㄧず涓や釜闆嗗悎鐨勪氦闆嗐倈x|絎﹀彿琛ㄧず闆嗗悎x涓殑鍏冪礌鏁伴噺錛?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">浠庝笂闈㈢殑瀹氫箟涓嶉毦鐪嬪嚭錛屽彫鍥炵巼鍜屽噯紜巼鐨勫彇鍊艱寖鍥村潎鍦╗0,1]涔嬮棿銆傞偅涔堜笉闅炬兂璞★紝濡傛灉榪欎釜緋葷粺鎵懼洖鐨勭浉鍏寵秺澶氾紝閭d箞鍙洖鐜囪秺楂橈紝濡傛灉鐩稿叧緇撴灉鍏ㄩ儴閮界粰鍙洖浜嗭紝閭d箞recall姝ゆ椂灝辯瓑浜?.0銆?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"></p><table cellspacing="0" cellpadding="0" border="1" style="box-sizing: border-box; color: #000000; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; font-size: 13px; line-height: 19px; text-align: start; background-color: #ffffff;"><tbody style="box-sizing: border-box;"><tr style="box-sizing: border-box;"><td width="156" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"> </td><td width="156" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">鐩稿叧鐨?/p></td><td width="156" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">涓嶇浉鍏?/p></td></tr><tr style="box-sizing: border-box;"><td width="156" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">琚绱㈠埌</p></td><td width="156" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">A∩ B</p></td><td width="156" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;"><span style="box-sizing: border-box; text-decoration: overline;">A</span>∩ B</p></td></tr><tr style="box-sizing: border-box;"><td width="156" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">鏈媯绱㈠埌</p></td><td width="156" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">A∩<span style="box-sizing: border-box; text-decoration: overline;">B</span></p></td><td width="156" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;"><span style="box-sizing: border-box; text-decoration: overline;">A</span>∩<span style="box-sizing: border-box; text-decoration: overline;">B</span></p></td></tr></tbody></table><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"></p><h3>Precision-Recall鏇茬嚎</h3><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鍙洖鐜囧拰鍑嗙‘鐜囧垎鍒弽鏄犱簡媯绱㈢郴緇熺殑涓や釜鏈閲嶈鐨勪晶闈紝鑰岃繖涓や釜渚ч潰鍙堢浉浜掑埗綰︺傚洜涓哄ぇ瑙勬ā鏁版嵁闆嗗悎涓紝濡傛灉鏈熸湜媯绱㈠埌鏇村鐩稿叧鐨勬枃妗o紝蹇呯劧闇瑕?#8220;鏀懼”媯绱㈡爣鍑嗭紝鍥犳浼氬鑷翠竴浜涗笉鐩稿叧緇撴灉娣瘋繘鏉ワ紝浠庤屼嬌鍑嗙‘鐜囧彈鍒板獎鍝嶃傜被浼肩殑錛屾湡鏈涙彁楂樺噯紜巼錛屽皢涓嶇浉鍏蟲枃妗e敖閲忓幓闄ゆ椂錛屽姟蹇呰鎵ц鏇?#8220;涓ユ牸”鐨勬绱㈢瓥鐣ワ紝榪欐牱涔熶細浣夸竴浜涚浉鍏崇殑鏂囨。琚帓闄ゅ湪澶栵紝浣垮彫鍥炵巼涓嬮檷銆?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鎵浠ヤ負浜嗘洿娓呮櫚鐨勬弿榪頒袱鑰呴棿鐨勫叧緋伙紝閫氬父鎴戜滑灝哖recison-Recall鐢ㄦ洸綰跨殑鏂瑰紡緇樺埗鍑烘潵錛屽彲浠ョ畝縐頒負P-R diagram銆傚父瑙佺殑褰㈠紡濡備笅鍥炬墍紺恒傦紙閫氬父鏇茬嚎鏄竴涓愭鍚戜笅鐨勮蛋鍔匡紝鍗抽殢鐫Recall鐨勬彁楂橈紝Precision閫愭闄嶄綆錛?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image8.jpg" alt="" style="box-sizing: border-box; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></p><h3>P-R鐨勫叾瀹冨艦鎬?/h3><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">涓浜涚壒瀹氭悳绱㈠簲鐢紝浼氭洿鍏蟲敞鎼滅儲緇撴灉涓敊璇殑緇撴灉銆備緥濡傦紝鎼滅儲寮曟搸鐨勫弽浣滃紛緋葷粺錛圓nti-Spam System錛変細鏇村叧娉ㄦ绱㈢粨鏋滀腑娣峰叆浜嗗灝戞潯浣滃紛緇撴灉銆傚鏈晫鎶婅繖浜涢敊璇粨鏋滅О浣滃亣闃蟲э紙False Positive錛夌粨鏋滐紝瀵硅繖浜涘簲鐢紝閫氬父閫夋嫨鐢ㄨ櫄鎶ョ巼錛團allout錛夋潵緇熻錛?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img alt="" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image9.jpg" _href="img://image9.jpg" _p="true" style="box-sizing: border-box; border: 0px;" /></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">Fallout鍜孭resion鏈川鏄畬鍏ㄧ浉鍚岀殑銆傚彧鏄垎鍒粠姝e弽涓ゆ柟闈㈡潵璁$畻銆傚疄闄呬笂鏄疨-R鐨勪竴涓彉縐嶃?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鍐嶅洖鍒頒笂鍥撅紝Presion-Recall鏄竴涓洸綰匡紝鐢ㄦ潵姣旇緝涓や釜鏂規硶鐨勬晥鏋滃線寰涓嶅鐩磋錛岃兘涓嶈兘瀵逛袱鑰呰繘琛岀患鍚堬紝鐩存帴鍙嶆槧鍒頒竴涓暟鍊間笂鍛紵涓烘IR瀛︽湳鐣屾彁鍑轟簡F鍊煎害閲忥紙F -Measure錛夌殑鏂規硶銆侳-Measure閫氳繃Presion鍜孯ecall鐨勮皟鍜屽鉤鍧囨暟鏉ヨ綆楋紝鍏紡涓猴細</p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image10.jpg" alt="" style="box-sizing: border-box; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鍏朵腑鍙傛暟λε(0,1)璋冭妭緋葷粺瀵筆recision鍜孯ecall鐨勫鉤琛$▼搴︺傦紙閫氬父鍙?#955;=0.5錛屾鏃?nbsp;<img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image11-1.jpg" alt="" style="box-sizing: border-box; border: 0px;" />錛?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">榪欓噷浣跨敤璋冨拰騫沖潎鏁拌屼笉鏄氬父鐨勫嚑浣曞鉤鍧囨垨綆楁湳騫沖潎錛屽師鍥犳槸璋冨拰騫沖潎鏁板己璋冭緝灝忔暟鍊肩殑閲嶈鎬э紝鑳芥晱鎰熺殑鍙嶆槧灝忔暟瀛楃殑鍙樺寲錛屽洜姝ゆ洿閫傚悎鐢ㄦ潵鍙嶆槧媯绱㈡晥鏋溿?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">浣跨敤F Measure鐨勫ソ澶勬槸鍙渶瑕佷竴涓崟涓鐨勬暟瀛楀氨鍙互鎬葷粨緋葷粺鐨勬绱㈡晥鏋滐紝渚夸簬姣旇緝涓嶅悓鎼滅儲緋葷粺鐨勬暣浣撴晥鏋溿?/p><h2>P@N鏂規硶</h2><h3>鐐瑰嚮鍥犵礌</h3><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">浼犵粺鐨凱recision-Recall騫朵笉瀹屽叏閫傜敤瀵規悳绱㈠紩鎿庣殑璇勪及錛屽師鍥犳槸鎼滅儲寮曟搸鐢ㄦ埛鐨勭偣鍑繪柟寮忔湁鍏剁壒孌婃э紝鍖呮嫭錛?/p><pre style="box-sizing: border-box; overflow: auto; width: 964.25px; padding: 0px 0px 5px; font-size: 12px; line-height: 15px; font-family: 'Courier New', Courier; color: #222222; margin-top: 0px; margin-bottom: 0px; background-color: #fafafa; border: 2px solid #efefef;">A 60-65%鐨勬煡璇㈢偣鍑諱簡鍚嶅垪鎼滅儲緇撴灉鍓?0鏉$殑緗戦〉錛? B 20-25%鐨勪漢浼氳冭檻鐐瑰嚮鍚嶅垪11鍒?0鐨勭綉欏碉紱 C 浠呮湁3-4%鐨勪細鐐瑰嚮鍚嶅垪鎼滅儲緇撴灉涓垪絎?1鍒扮30鍚嶇殑緗戦〉 </pre><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">涔熷氨鏄錛岀粷澶ч儴鍒嗙敤鎴鋒槸涓嶆効鎰忕炕欏靛幓鐪嬫悳绱㈠紩鎿庣粰鍑虹殑鍚庨潰鐨勭粨鏋溿?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鑰屽嵆浣垮湪鎼滅儲緇撴灉鐨勯欏碉紙閫氬父鍒楀嚭鐨勬槸鍓?0鏉$粨鏋滐級錛岀敤鎴風殑鐐瑰嚮琛屼負涔熷緢鏈夋剰鎬濓紝鎴戜滑閫氳繃涓嬮潰鐨凣oogle鐐瑰嚮鐑浘錛圚eat Map錛夋潵瑙傚療錛堣繖涓儹鍥懼湪浜岀淮鎼滅儲緇撴灉欏典笂閫氳繃鍏夎氨鏉ュ艦璞$殑琛ㄨ揪涓嶅悓浣嶇疆鐢ㄦ埛鐨勭偣鍑葷儹搴︺傞鑹茬害闈犺繎綰㈣壊琛ㄧず鐐瑰嚮寮哄害瓚婇珮錛夛細</p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image12.jpg" alt="" style="box-sizing: border-box; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">浠庡浘涓彲浠ョ湅鍑猴紝鎼滅儲緇撴灉鐨勫墠3鏉″惛寮曚簡澶ч噺鐨勭偣鍑伙紝灞炰簬鐑害鏈楂樼殑閮ㄥ垎銆備篃灝辨槸璇達紝瀵規悳鑻忓紩鎿庢潵璇達紝鏈鍓嶇殑鍑犳潯緇撴灉鏄渶鍏抽敭鐨勶紝鍐沖畾浜嗙敤鎴風殑婊℃剰紼嬪害銆?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image13.jpg" alt="" style="box-sizing: border-box; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">搴蜂箖灝斿ぇ瀛︾殑鐮旂┒浜哄憳閫氳繃eye tracking瀹為獙鑾峰緱浜嗘洿涓虹簿紜殑Google鎼滅儲緇撴灉鐨勭敤鎴瘋涓哄垎鏋愬浘銆備粠榪欏紶鍥句腑鍙互鐪嬪嚭錛岀涓鏉$粨鏋滆幏寰椾簡56.38%鐨勬悳绱㈡祦閲忥紝絎簩鏉″拰絎笁鏉$粨鏋滅殑鎺掑悕渚濇闄嶄綆錛屼絾榪滀綆浜庢帓鍚嶇涓鐨勭粨鏋溿傚墠涓夋潯緇撴灉鐨勭偣鍑繪瘮渚嬪ぇ綰︿負11:3:2 銆傝屽墠涓夋潯緇撴灉鐨勬葷偣鍑誨嚑涔庡垎嫻佷簡鎼滅儲嫻侀噺鐨?0%銆?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鍙﹀鐨勪竴浜涙湁瓚g殑緇撹鏄紝鐐瑰嚮閲忓茍涓嶆槸鎸夌収欏哄簭渚濇閫掑噺鐨勩傛帓鍚嶇涓冧綅鑾峰緱鐨勭偣鍑繪槸鏈灝戠殑錛屽師鍥犲彲鑳藉湪浜庣敤鎴峰湪嫻忚榪囩▼涓笅鎷夐〉闈㈠埌搴曢儴錛岃繖鏃跺欏氨鍙樉紺烘渶鍚庝笁浣嶆帓鍚嶇綉绔欙紝絎竷鍚嶄究瀹規槗琚拷鐣ャ傝岄灞忔渶鍚庝竴涓粨鏋滆幏寰楃殑娉ㄦ剰鍔涳紙2.55錛夋槸澶т簬鍊掓暟絎簩浣嶇殑(1.45)錛屽師鍥犳槸鐢ㄦ埛鍦ㄧ炕欏靛墠錛屽鏈鍚庝竴鏉$粨鏋滃嵃璞$浉瀵硅緝娣便傛悳绱㈢粨鏋滈〉闈㈢浜岄〉鎺掑悕絎竴鐨勭綉欏碉紙鍗蟲繪帓鍚?1浣嶇殑緇撴灉錛夋墍鑾峰緱鐨勭偣鍑誨彧鏈夐欏墊帓鍚嶇鍗佺綉绔欑殑40%錛屼笌棣栭〉鐨勭涓鏉$粨鏋滅浉姣旓紝鏇存槸鍙湁鍏?/60鑷?/100鐨勭偣鍑婚噺銆?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鍥犳鍦ㄩ噺鍖栬瘎浼版悳绱㈠紩鎿庣殑鏁堟灉鏃訛紝寰寰闇瑕佹牴鎹互涓婃悳绱㈢敤鎴風殑琛屼負鐗圭偣錛岃繘琛岄拡瀵規х殑璁捐銆?/p><h3>P@N鐨勮綆楁柟娉?/h3><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">P@N鏈韓鏄疨recision@N鐨勭畝縐幫紝鎸囩殑鏄鐗瑰畾鐨勬煡璇紝鑰冭檻浣嶇疆鍥犵礌錛屾嫻嬪墠N鏉$粨鏋滅殑鍑嗙‘鐜囥備緥濡傚鍗曟鎼滅儲鐨勭粨鏋滀腑鍓?綃囷紝濡傛灉鏈?綃囦負鐩稿叧鏂囨。錛屽垯P@5 = 4/5 = 0.8 銆?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">嫻嬭瘯閫氬父浼氫嬌鐢ㄤ竴涓煡璇㈤泦鍚堬紙鎸夌収鍓嶆枃鎵榪版柟娉曟瀯閫狅級錛屽寘鍚嫢騫叉潯涓嶅悓鐨勬煡璇㈣瘝錛屽湪瀹為檯浣跨敤P@N榪涜璇勪及鏃訛紝閫氬父浣跨敤鎵鏈夋煡璇㈢殑P@N鏁版嵁錛岃綆楃畻鏈鉤鍧囧鹼紝鐢ㄦ潵璇勫垽璇ョ郴緇熺殑鏁翠綋鎼滅儲緇撴灉璐ㄩ噺銆?/p><h3>N鐨勯夊彇</h3><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">瀵圭敤鎴鋒潵璇達紝閫氬父鍙叧娉ㄦ悳绱㈢粨鏋滄渶鍓嶈嫢騫叉潯緇撴灉錛屽洜姝ら氬父鎼滅儲寮曟搸鐨勬晥鏋滆瘎浼板彧鍏蟲敞鍓?銆佹垨鑰呭墠3緇撴灉錛屾墍浠ユ垜浠父鐢ㄧ殑N鍙栧間負P@3鎴朠@5絳夈?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">瀵逛竴浜涚壒瀹氱被鍨嬬殑鏌ヨ搴旂敤錛屽瀵誨潃綾葷殑鏌ヨ錛圢avigational Search錛夛紝鐢變簬鐩爣緇撴灉鏋佷負鏄庣‘錛屽洜姝ゅ湪璇勪及鏃訛紝浼氶夋嫨N=1錛堝嵆浣跨敤P@1錛夈備婦涓緥瀛愭潵璇達紝鎼滅儲“鏂版氮緗?#8221;銆佹垨“鏂版氮棣栭〉”錛屽鏋滈鏉$粨鏋滀笉鏄?鏂版氮緗戯紙url錛?a style="box-sizing: border-box; color: #0b59b2;">www.sina.com.cn</a>錛夛紝鍒欑洿鎺ュ垽璇ユ鏌ヨ綺懼害涓嶆弧瓚抽渶姹傦紝鍗砅@1=0</p><h2>MRR</h2><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">涓婅堪鐨凱@N鏂規硶錛屾槗浜庤綆楀拰鐞嗚В銆備絾緇嗗績鐨勮鑰呬竴瀹氫細鍙戠幇闂錛屽氨鏄湪鍓峃緇撴灉涓紝鎺掑簭絎?浣嶅拰絎琋浣嶇殑緇撴灉錛屽鍑嗙‘鐜囩殑褰卞搷鏄竴鏍風殑銆備絾瀹為檯鎯呭喌鏄紝鎼滅儲寮曟搸鐨勮瘎浠鋒槸鍜屾帓搴忎綅緗瀬涓虹浉鍏崇殑銆傚嵆鎺掔涓鐨勭粨鏋滈敊璇紝鍜岀10浣嶇殑緇撴灉閿欒錛屽叾涓ラ噸紼嬪害鏈夊ぉ澹や箣鍒傚洜姝ゅ湪璇勪環緋葷粺涓紝闇瑕佸紩鍏ヤ綅緗繖涓洜绱犮?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">MRR鏄鉤鍧囨帓搴忓掓暟錛圡ean Reciprocal Rank錛夌殑綆縐幫紝MRR鏂規硶涓昏鐢ㄤ簬瀵誨潃綾繪绱紙Navigational Search錛夋垨闂瓟綾繪绱紙Question Answering錛夛紝榪欎簺媯绱㈡柟娉曞彧闇瑕佷竴涓浉鍏蟲枃妗o紝瀵瑰彫鍥炵巼涓嶆晱鎰燂紝鑰屾槸鏇村叧娉ㄦ悳绱㈠紩鎿庢绱㈠埌鐨勭浉鍏蟲枃妗f槸鍚︽帓鍦ㄧ粨鏋滃垪琛ㄧ殑鍓嶉潰銆侻RR鏂規硶棣栧厛璁$畻姣忎竴涓煡璇㈢殑絎竴涓浉鍏蟲枃妗d綅緗殑鍊掓暟錛岀劧鍚庡皢鎵鏈夊掓暟鍊兼眰騫沖潎銆備緥濡備竴涓寘鍚笁涓煡璇㈣瘝鐨勬祴璇曢泦錛屽墠5緇撴灉鍒嗗埆涓猴細</p><pre style="box-sizing: border-box; overflow: auto; width: 964.25px; padding: 0px 0px 5px; font-size: 12px; line-height: 15px; font-family: 'Courier New', Courier; color: #222222; margin-top: 0px; margin-bottom: 0px; background-color: #fafafa; border: 2px solid #efefef;">鏌ヨ涓緇撴灉錛?.AN 2.AR 3.AN 4.AN 5.AR 鏌ヨ浜岀粨鏋滐細1.AN 2.AR 3.AR 4.AR 5.AN 鏌ヨ涓夌粨鏋滐細1.AR 2.AN 3.AN 4.AN 5.AR </pre><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鍏朵腑AN琛ㄧず涓嶇浉鍏崇粨鏋滐紝AR琛ㄧず鐩稿叧緇撴灉銆傞偅涔堢涓涓煡璇㈢殑鎺掑簭鍊掓暟錛圧eciprocal Rank錛塕R<sub style="box-sizing: border-box;">1</sub> = 1/2=0.5 錛涚浜屼釜緇撴灉RR<sub style="box-sizing: border-box;">2</sub> = 1/2 = 0.5 錛?娉ㄦ剰鍊掓暟鐨勫間笉鍙橈紝鍗充嬌鏌ヨ浜岃幏寰楃殑鐩稿叧緇撴灉鏇村銆傚悓鐞嗭紝RR<sub style="box-sizing: border-box;">3</sub>= 1/1 = 1銆?瀵逛簬榪欎釜嫻嬭瘯闆嗗悎錛屾渶緇圡RR=錛圧R<sub style="box-sizing: border-box;">1</sub>+RR<sub style="box-sizing: border-box;">2</sub>+RR<sub style="box-sizing: border-box;">3</sub>錛? 3 = 0.67</p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鐒惰屽澶ч儴鍒嗘绱㈠簲鐢ㄦ潵璇達紝鍙湁涓鏉$粨鏋滄棤娉曟弧瓚抽渶姹傦紝瀵硅繖縐嶆儏鍐碉紝闇瑕佹洿鍚堥傜殑鏂規硶鏉ヨ綆楁晥鏋滐紝鍏朵腑鏈甯哥敤鐨勬槸涓嬭堪MAP鏂規硶銆?/p><h2>MAP</h2><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">MAP鏂規硶鏄疢ean Average Precison錛屽嵆騫沖潎鍑嗙‘鐜囨硶鐨勭畝縐般傚叾瀹氫箟鏄眰姣忎釜鐩稿叧鏂囨。媯绱㈠嚭鍚庣殑鍑嗙‘鐜囩殑騫沖潎鍊鹼紙鍗矨verage Precision錛夌殑綆楁湳騫沖潎鍊鹼紙Mean錛夈傝繖閲屽鍑嗙‘鐜囨眰浜嗕袱嬈″鉤鍧囷紝鍥犳縐頒負Mean Average Precision銆傦紙娉細娌″彨Average Average Precision涓鏄洜涓洪毦鍚紝浜屾槸鍥犱負鏃犳硶鍖哄垎涓ゆ騫沖潎鐨勬剰涔夛級</p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">MAP 鏄弽鏄犵郴緇熷湪鍏ㄩ儴鐩稿叧鏂囨。涓婃ц兘鐨勫崟鍊兼寚鏍囥傜郴緇熸绱㈠嚭鏉ョ殑鐩稿叧鏂囨。瓚婇潬鍓?rank 瓚婇珮)錛孧AP灝卞簲璇ヨ秺楂樸傚鏋滅郴緇熸病鏈夎繑鍥炵浉鍏蟲枃妗o紝鍒欏噯紜巼榛樿涓?銆?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">渚嬪錛氬亣璁炬湁涓や釜涓婚錛?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">涓婚1鏈?涓浉鍏崇綉欏碉紝涓婚2鏈?涓浉鍏崇綉欏點?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鏌愮郴緇熷浜庝富棰?媯绱㈠嚭4涓浉鍏崇綉欏碉紝鍏秗ank鍒嗗埆涓?, 2, 4, 7錛?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">瀵逛簬涓婚2媯绱㈠嚭3涓浉鍏崇綉欏碉紝鍏秗ank鍒嗗埆涓?,3,5銆?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">瀵逛簬涓婚1錛屽鉤鍧囧噯紜巼MAP璁$畻鍏紡涓猴細</p><pre style="box-sizing: border-box; overflow: auto; width: 964.25px; padding: 0px 0px 5px; font-size: 12px; line-height: 15px; font-family: 'Courier New', Courier; color: #222222; margin-top: 0px; margin-bottom: 0px; background-color: #fafafa; border: 2px solid #efefef;">(1/1+2/2+3/4+4/7)/4=0.83銆?</pre><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">瀵逛簬涓婚2錛屽鉤鍧囧噯紜巼MAP璁$畻鍏紡涓猴細</p><pre style="box-sizing: border-box; overflow: auto; width: 964.25px; padding: 0px 0px 5px; font-size: 12px; line-height: 15px; font-family: 'Courier New', Courier; color: #222222; margin-top: 0px; margin-bottom: 0px; background-color: #fafafa; border: 2px solid #efefef;">(1/1+2/3+3/5+0+0)/5=0.45銆?</pre><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鍒橫AP= (0.83+0.45)/2=0.64銆?#8221;</p><h2>DCG鏂規硶</h2><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">DCG鏄嫳鏂嘍iscounted cumulative gain鐨勭畝縐幫紝涓枃鍙炕璇戜負“鎶樻墸澧炵泭鍊?#8221;銆侱CG鏂規硶鐨勫熀鏈濇兂鏄細</p><ol style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><li style="font-size: 12px; box-sizing: border-box;">姣忔潯緇撴灉鐨勭浉鍏蟲у垎絳夌駭鏉ヨ 閲?/li><li style="font-size: 12px; box-sizing: border-box;">鑰冭檻緇撴灉鎵鍦ㄧ殑浣嶇疆錛屼綅緗秺闈犲墠鐨勫垯閲嶈紼嬪害瓚婇珮</li><li style="font-size: 12px; box-sizing: border-box;">絳夌駭楂橈紙鍗沖ソ緇撴灉錛夌殑緇撴灉浣嶇疆瓚婇潬鍓嶅垯鍊煎簲璇ヨ秺楂橈紝鍚﹀垯緇欎簣鎯╃綒</li></ol><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鎴戜滑棣栧厛鏉ョ湅絎竴鏉★細鐩稿叧鎬у垎綰с傝繖閲屾瘮璁$畻Precision鏃剁畝鍗曠粺璁?#8220;鍑嗙‘”鎴?#8220;涓嶅噯紜?#8221;瑕佹洿涓虹簿緇嗐傛垜浠彲浠ュ皢緇撴灉緇嗗垎涓哄涓瓑綰с傛瘮濡傚父鐢ㄧ殑3綰э細Good錛堝ソ錛夈丗air錛堜竴鑸級銆丅ad錛堝樊錛夈傚搴旂殑鍒嗗紃el涓猴細Good:3 / Fair:2 / Bad:1 銆備竴浜涙洿涓虹粏鑷寸殑璇勪及浣跨敤5綰у垎綾繪硶錛歏ery Good錛堟槑鏄懼ソ錛夈丟ood錛堝ソ錛夈丗air錛堜竴鑸級銆丅ad錛堝樊錛夈乂ery Bad錛堟槑鏄懼樊錛夛紝鍙互灝嗗搴斿垎鍊紃el璁劇疆涓猴細Very Good:2 / Good:1 / Fair:0 / Bad:-1 / Very Bad: -2</p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">璇勫垽緇撴灉鐨勬爣鍑嗗彲浠ユ牴鎹叿浣撶殑搴旂敤鏉ョ‘瀹氾紝Very Good閫氬父鏄寚緇撴灉鐨勪富棰樺畬鍏ㄧ浉鍏籌紝騫朵笖緗戦〉鍐呭涓板瘜銆佽川閲忓緢楂樸傝屽叿浣撳埌姣忔潯</p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image14.jpg" alt="" style="box-sizing: border-box; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">DCG鐨勮綆楀叕寮忓茍涓嶅敮涓錛岀悊璁轟笂鍙姹傚鏁版姌鎵e洜瀛愮殑騫蟲粦鎬с傛垜涓漢璁や負涓嬮潰鐨凞CG鍏紡鏇村悎鐞嗭紝寮鴻皟浜嗙浉鍏蟲э紝絎?銆?鏉$粨鏋滅殑鎶樻墸緋繪暟涔熸洿鍚堢悊錛?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image15.jpg" alt="" style="box-sizing: border-box; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">姝ゆ椂DCG鍓?涓綅緗笂緇撴灉鐨勬姌鎵e洜瀛愶紙Discount factor錛夋暟鍊間負錛?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"></p><table cellspacing="0" cellpadding="0" border="1" style="box-sizing: border-box; color: #000000; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; font-size: 13px; line-height: 19px; text-align: start; background-color: #ffffff;"><tbody style="box-sizing: border-box;"><tr style="box-sizing: border-box;"><td width="189" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">i</p></td><td width="189" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">log<sub style="box-sizing: border-box;">2</sub> (i+1)</p></td><td width="189" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">1/log<sub style="box-sizing: border-box;">2</sub> (i+1)</p></td></tr><tr style="box-sizing: border-box;"><td width="189" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">1</p></td><td width="189" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">1</p></td><td width="189" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">1</p></td></tr><tr style="box-sizing: border-box;"><td width="189" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">2</p></td><td width="189" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">1.59</p></td><td width="189" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">0.63</p></td></tr><tr style="box-sizing: border-box;"><td width="189" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">3</p></td><td width="189" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">2</p></td><td width="189" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">0.5</p></td></tr><tr style="box-sizing: border-box;"><td width="189" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">4</p></td><td width="189" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">2.32</p></td><td width="189" valign="top" style="font-family: Verdana, Helvetica, Arial; word-break: break-all; font-size: small; box-sizing: border-box;"><p align="center" style="box-sizing: border-box;">0.43</p></td></tr></tbody></table><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鍙栦互2涓哄簳鐨刲og鍊間篃鏉ヨ嚜浜庣粡楠屽叕寮忥紝騫朵笉瀛樺湪鐞嗚涓婄殑渚濇嵁銆傚疄闄呬笂錛孡og鐨勫熀鏁板彲浠ユ牴鎹鉤婊戠殑闇姹傝繘琛屼慨鏀癸紝褰撳姞澶ф暟鍊兼椂錛堜緥濡備嬌鐢╨og<sub style="box-sizing: border-box;">5</sub> 浠f浛log<sub style="box-sizing: border-box;">2</sub>錛夛紝鎶樻墸鍥犲瓙闄嶄綆鏇翠負榪呴燂紝姝ゆ椂寮鴻皟浜嗗墠闈㈢粨鏋滅殑鏉冮噸銆?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">涓轟簡渚夸簬涓嶅悓綾誨瀷鐨剄uery緇撴灉涔嬮棿妯悜姣旇緝錛屼互DCG涓哄熀紜錛屼竴浜涜瘎浠風郴緇熻繕瀵笵CG榪涜浜嗗綊涓錛岃繖浜涙柟娉曠粺縐頒負nDCG錛堝嵆 normalize DCG錛夈傛渶甯哥敤鐨勮綆楁柟娉曟槸閫氳繃闄や互姣忎竴涓煡璇㈢殑鐞嗘兂鍊糹DCG錛坕deal DCG錛夋潵榪涜褰掍竴錛屽叕寮忎負錛?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image16.jpg" alt="" style="box-sizing: border-box; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">姹俷DCG闇瑕佹爣瀹氬嚭鐞嗘兂鎯呭喌鐨刬DCG錛屽疄闄呮搷浣滅殑鏃跺欐槸寮傚父鍥伴毦鐨勶紝鍥犱負姣忎釜浜哄“鏈濂界殑緇撴灉”鐞嗚В寰寰鍚勪笉鐩稿悓錛屼粠嫻烽噺鏁版嵁閲岄夊嚭鏈浼樼粨鏋滄槸寰堝洶闅劇殑浠誨姟錛屼絾鏄瘮杈冧袱緇勭粨鏋滃摢涓洿濂介氬父鏇村鏄擄紝鎵浠ュ疄璺靛簲鐢ㄤ腑錛岄氬父閫夋嫨緇撴灉瀵規瘮鐨勬柟娉曡繘琛岃瘎浼般?/p><h2>鎬庢牱瀹炵幇鑷姩鍖栫殑璇勪及錛?/h2><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">浠ヤ笂鎵浠嬬粛鐨勬悳绱㈠紩鎿庨噺鍖栬瘎浼版寚鏍囷紝鍦–ranfield璇勪及妗嗘灦錛圕ranfield Evaluation Framework錛変腑琚箍娉涗嬌鐢ㄣ備笟鐣岀煡鍚嶇殑TREC錛堟枃鏈俊鎭绱細璁級灝變竴鐩村熀浜庢綾繪柟娉曠粍緇囦俊鎭绱㈣瘎嫻嬪拰鎶鏈氦嫻併傞櫎浜員REC澶栵紝涓浜涢拡瀵逛笉鍚屽簲鐢ㄨ璁$殑Cranfield璇勬祴璁哄潧涔熷湪榪涜榪涜錛堝 NTCIR銆両REX絳夛級銆?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">浣咰ranfield璇勪及妗嗘灦瀛樺湪鐨勯棶棰樻槸鏌ヨ鏍蜂緥闆嗗悎鐨勬爣娉ㄤ笂銆傚埄鐢ㄦ墜宸ユ爣娉ㄧ瓟妗堢殑鏂瑰紡榪涜緗戠粶淇℃伅媯绱㈢殑璇勪環鏄竴涓棦鑰楄垂浜哄姏銆佸張鑰楄垂鏃墮棿鐨勮繃紼嬶紝鍙湁灝戞暟澶у叕鍙歌兘澶熶嬌鐢ㄣ傚茍涓旂敱浜庢悳绱㈠紩鎿庣畻娉曟敼榪涖佽繍钀ョ淮鎶ょ殑闇瑕侊紝媯绱㈡晥鏋滆瘎浠峰弽棣堢殑鏃墮棿闇瑕佸敖閲忕緝鐭紝鍥犳鑷姩鍖栫殑璇勬祴鏂規硶瀵規彁楂樿瘎浼版晥鐜囧崄鍒嗛噸瑕併傛渶甯哥敤鐨勮嚜鍔ㄨ瘎浼版柟娉曟槸A/B testing緋葷粺銆?/p><h3>A/B Testing</h3><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image17.jpg" alt="" style="box-sizing: border-box; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></p><p align="center" style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><strong style="box-sizing: border-box;">A/B Testing緋葷粺</strong></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">A/B testing緋葷粺鍦ㄧ敤鎴鋒悳绱㈡椂錛岀敱緋葷粺鏉ヨ嚜鍔ㄥ喅瀹氱敤鎴風殑鍒嗙粍鍙鳳紙Bucket id錛夛紝閫氳繃鑷姩鎶藉彇嫻侀噺瀵煎叆涓嶅悓鍒嗘敮錛屼嬌寰楃浉搴斿垎緇勭殑鐢ㄦ埛鐪嬪埌鐨勬槸涓嶅悓浜у搧鐗堟湰錛堟垨涓嶅悓鎼滅儲寮曟搸錛夋彁渚涚殑緇撴灉銆傜敤鎴峰湪涓嶅悓鐗堟湰浜у搧涓嬬殑琛屼負灝嗚璁板綍涓嬫潵錛岃繖浜涜涓烘暟鎹氳繃鏁版嵁鍒嗘瀽褰㈡垚涓緋誨垪鎸囨爣錛岃岄氳繃榪欎簺鎸囨爣鐨勬瘮杈冿紝鏈鍚庡氨褰㈡垚浜嗗悇鐗堟湰涔嬮棿瀛頒紭瀛板姡鐨勭粨璁恒?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鍦ㄦ寚鏍囪綆楁椂錛屽張鍙粏鍒嗕負涓ょ鏂規硶錛屼竴縐嶆槸鍩轟簬涓撳璇勫垎鐨勬柟娉曪紱涓縐嶆槸鍩轟簬鐐瑰嚮緇熻鐨勬柟娉曘?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">涓撳璇勫垎鐨勬柟娉曢氬父鐢辨悳绱㈡牳蹇冩妧鏈爺鍙戝拰浜у搧浜哄憳鏉ヨ繘琛岋紝鏍規嵁棰勫厛璁懼畾鐨勬爣鍑嗗A銆丅涓ゅ鐜鐨勭粨鏋滅粰浜堣瘎鍒嗭紝鑾峰彇姣忎釜Query鐨勭粨鏋滃姣旓紝騫舵牴鎹畁DCG絳夋柟娉曡綆楁暣浣撹川閲忋?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鐐瑰嚮璇勫垎鏈夋洿楂樼殑鑷姩鍖栫▼搴︼紝榪欓噷浣跨敤浜嗕竴涓亣璁撅細鍚屾牱鐨勬帓搴忎綅緗紝鐐瑰嚮鏁伴噺澶氱殑緇撴灉璐ㄩ噺浼樹簬鐐瑰嚮鏁伴噺灝戠殑緇撴灉銆傦紙鍗矨2琛ㄧずA嫻嬭瘯鐜絎?鏉$粨鏋滐紝濡傛灉A2 > B2錛屽垯琛ㄧずA2璐ㄩ噺鏇村ソ錛夈傞氫織鐨勮錛岀浉淇$兢浼楋紙鍥犱負緹や紬鐨勭溂鐫涙槸闆寒鐨勶級銆傚湪榪欎釜鍋囪鍓嶆彁涓嬶紝鎴戜滑鍙互灝咥/B鐜鍓峃鏉$粨鏋滅殑鐐瑰嚮鐜囪嚜鍔ㄦ槧灝勪負璇勫垎錛岄氳繃緇熻澶ч噺鐨凲uery鐐瑰嚮緇撴灉錛屽彲浠ヨ幏寰楀彲闈犵殑璇勫垎瀵規瘮銆?/p><h3>Interleaving Testing</h3><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鍙﹀2003騫寸敱Thorsten Joachims 絳変漢鎻愬嚭鐨処nterleaving testing鏂規硶涔熻騫挎硾浣跨敤銆傝鏂規硶璁捐浜嗕竴涓厓鎼滅儲寮曟搸錛岀敤鎴瘋緭鍏ユ煡璇㈣瘝鍚庯紝灝嗘煡璇㈣瘝鍦ㄥ嚑涓憲鍚嶆悳绱㈠紩鎿庝腑鐨勬煡璇㈢粨鏋滈殢鏈烘販鍚堝弽棣堢粰鐢ㄦ埛錛屽茍鏀墮泦闅忓悗鐢ㄦ埛鐨勭粨鏋滅偣鍑昏涓轟俊鎭紟鏍規嵁鐢ㄦ埛涓嶅悓鐨勭偣鍑誨懼悜鎬э紝灝卞彲浠ュ垽鏂悳绱㈠紩鎿庤繑鍥炵粨鏋滅殑浼樺姡錛?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">濡備笅鍥炬墍紺猴紝灝嗙畻娉旳鍜孊鐨勭粨鏋滀氦鍙夋斁緗紝騫跺垎嫻侀噺榪涜嫻嬭瘯錛岃褰曠敤鎴風偣鍑諱俊鎭傛牴鎹偣鍑誨垎甯冩潵鍒ゆ柇A鍜孊鐜鐨勪紭鍔c?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; overflow-x: auto; width: 964.25px; overflow-y: hidden; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><img border="0" _href="img://image1.jpg" _p="true" src="http://www.infoq.com/resource/articles/cyw-evaluate-seachengine-result-quality/zh/resources/image18.jpg" alt="" style="box-sizing: border-box; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></p><p align="center" style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;"><strong style="box-sizing: border-box;">Interleaving Testing璇勪及鏂規硶</strong></p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">Joachims鍚屾椂璇佹槑浜咺nterleaving Testing璇勪環鏂規硶涓庝紶緇烠ranfield璇勪環鏂規硶鐨勭粨鏋滃叿鏈夎緝楂樼殑鐩稿叧鎬с傜敱浜庤褰曠敤鎴烽夋嫨媯绱㈢粨鏋滅殑琛屼負鏄竴涓笉鑰楄垂浜哄姏鐨勮繃紼嬶紝鍥犳鍙互渚挎嵎鐨勫疄鐜拌嚜鍔ㄥ寲鐨勬悳绱㈡晥鏋滆瘎浼般?/p><h2>鎬葷粨</h2><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">娌℃湁璇勪及灝辨病鏈夎繘姝?#8212;—瀵規悳绱㈡晥鏋滅殑閲忓寲璇勬祴錛岀洰鐨勬槸鍑嗙‘鐨勬壘鍑虹幇鏈夋悳绱㈢郴緇熺殑涓嶈凍錛堟病鏈夊摢涓悳绱㈢郴緇熸槸瀹岀編鐨勶級錛岃繘鑰屼竴姝ヤ竴涓剼鍗板綆楁硶銆佺郴緇熻繘琛屾敼榪涖傛湰鏂囦負澶у鎬葷粨浜嗗父鐢ㄧ殑璇勪環妗嗘灦鍜岃瘎浠鋒寚鏍囥傝繖浜涙妧鏈儚涓鎶婃妸灝哄瓙錛屽害閲忕潃鎼滅儲鎶鏈瘡涓嬈″墠榪涚殑璺濈銆?/p><hr style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;" /><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">鎰熻阿<a style="box-sizing: border-box; color: #0b59b2;">寮犲嚡宄?/a>瀵?鏈枃鐨勫鏍°?/p><p style="box-sizing: border-box; color: #4b4b4b; font-size: 13px; font-family: Lucida, 'Lucida Grande', Tahoma, sans-serif; line-height: 19px; background-color: #ffffff;">緇橧nfoQ涓枃绔欐姇紼挎垨鑰呭弬涓庡唴瀹圭炕璇戝伐浣滐紝璇烽偖浠惰嚦<a href="mailto:editors@cn.infoq.com" style="box-sizing: border-box; color: #0b59b2;">editors@cn.infoq.com</a>銆備篃嬈㈣繋澶у鍔犲叆鍒?a target="_blank" style="box-sizing: border-box; color: #0b59b2;">InfoQ涓枃绔欑敤鎴瘋璁虹粍</a>涓笌鎴戜滑鐨勭紪杈戝拰鍏朵粬璇昏?鏈嬪弸浜ゆ祦銆?/p><div></div><img src ="http://www.shnenglu.com/wanghaiguang/aggbug/197078.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/wanghaiguang/" target="_blank">鐜嬫搗鍏?/a> 2013-01-07 16:46 <a href="http://www.shnenglu.com/wanghaiguang/archive/2013/01/07/197078.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>HOOK浠嬬粛http://www.shnenglu.com/wanghaiguang/archive/2012/11/05/194544.html鐜嬫搗鍏?/dc:creator>鐜嬫搗鍏?/author>Mon, 05 Nov 2012 03:27:00 GMThttp://www.shnenglu.com/wanghaiguang/archive/2012/11/05/194544.htmlhttp://www.shnenglu.com/wanghaiguang/comments/194544.htmlhttp://www.shnenglu.com/wanghaiguang/archive/2012/11/05/194544.html#Feedback0http://www.shnenglu.com/wanghaiguang/comments/commentRss/194544.htmlhttp://www.shnenglu.com/wanghaiguang/services/trackbacks/194544.html涓銆佸熀鏈蹇碉細

閽╁瓙(Hook)錛屾槸Windows娑堟伅澶勭悊鏈哄埗鐨勪竴涓鉤鍙?搴旂敤紼嬪簭鍙互鍦ㄤ笂闈㈣緗瓙紼嬩互鐩戣鎸囧畾紿楀彛鐨勬煇縐嶆秷鎭紝鑰屼笖鎵鐩戣鐨勭獥鍙e彲浠ユ槸鍏朵粬榪涚▼鎵鍒涘緩鐨勩傚綋娑堟伅鍒拌揪鍚庯紝鍦ㄧ洰鏍囩獥鍙e鐞嗗嚱鏁頒箣鍓嶅鐞嗗畠銆傞挬瀛愭満鍒跺厑璁稿簲鐢ㄧ▼搴忔埅鑾峰鐞唚indow娑堟伅鎴栫壒瀹氫簨浠躲?/span>

閽╁瓙瀹為檯涓婃槸涓涓鐞嗘秷鎭殑紼嬪簭孌碉紝閫氳繃緋葷粺璋冪敤錛屾妸瀹冩寕鍏ョ郴緇熴傛瘡褰撶壒瀹氱殑娑堟伅鍙戝嚭錛屽湪娌℃湁鍒拌揪鐩殑紿楀彛鍓嶏紝閽╁瓙紼嬪簭灝卞厛鎹曡幏璇ユ秷鎭紝浜﹀嵆閽╁瓙鍑芥暟鍏堝緱鍒版帶鍒舵潈銆傝繖鏃墮挬瀛愬嚱鏁板嵆鍙互鍔犲伐澶勭悊錛堟敼鍙橈級璇ユ秷鎭紝涔熷彲浠ヤ笉浣滃鐞嗚岀戶緇紶閫掕娑堟伅錛岃繕鍙互寮哄埗緇撴潫娑堟伅鐨勪紶閫掋?/span>

浜屻佽繍琛屾満鍒訛細

1銆侀挬瀛愰摼琛ㄥ拰閽╁瓙瀛愮▼錛?/span>

姣忎竴涓狧ook閮芥湁涓涓笌涔嬬浉鍏寵仈鐨勬寚閽堝垪琛紝縐頒箣涓洪挬瀛愰摼琛紝鐢辯郴緇熸潵緇存姢銆傝繖涓垪琛ㄧ殑鎸囬拡鎸囧悜鎸囧畾鐨勶紝搴旂敤紼嬪簭瀹氫箟鐨勶紝琚獺ook瀛愮▼璋冪敤鐨勫洖璋冨嚱鏁幫紝涔熷氨鏄閽╁瓙鐨勫悇涓鐞嗗瓙紼嬨傚綋涓庢寚瀹氱殑Hook綾誨瀷鍏寵仈鐨勬秷鎭彂鐢熸椂錛岀郴緇熷氨鎶婅繖涓秷鎭紶閫掑埌Hook瀛愮▼銆備竴浜汬ook瀛愮▼鍙互鍙洃瑙嗘秷鎭紝鎴栬呬慨鏀規秷鎭紝鎴栬呭仠姝㈡秷鎭殑鍓嶈繘錛岄伩鍏嶈繖浜涙秷鎭紶閫掑埌涓嬩竴涓狧ook瀛愮▼鎴栬呯洰鐨勭獥鍙c傛渶榪戝畨瑁呯殑閽╁瓙鏀懼湪閾劇殑寮濮嬶紝鑰屾渶鏃╁畨瑁呯殑閽╁瓙鏀懼湪鏈鍚庯紝涔熷氨鏄悗鍔犲叆鐨勫厛鑾峰緱鎺у埗鏉冦?/span>

Windows 騫朵笉瑕佹眰閽╁瓙瀛愮▼鐨勫嵏杞介『搴忎竴瀹氬緱鍜屽畨瑁呴『搴忕浉鍙嶃傛瘡褰撴湁涓涓挬瀛愯鍗歌澆錛學indows 渚塊噴鏀懼叾鍗犵敤鐨勫唴瀛橈紝騫舵洿鏂版暣涓狧ook閾捐〃銆傚鏋滅▼搴忓畨瑁呬簡閽╁瓙錛屼絾鏄湪灝氭湭鍗歌澆閽╁瓙涔嬪墠灝辯粨鏉熶簡錛岄偅涔堢郴緇熶細鑷姩涓哄畠鍋氬嵏杞介挬瀛愮殑鎿嶄綔銆?/span>

閽╁瓙瀛愮▼鏄竴涓簲鐢ㄧ▼搴忓畾涔夌殑鍥炶皟鍑芥暟(CALLBACK Function),涓嶈兘瀹氫箟鎴愭煇涓被鐨勬垚鍛樺嚱鏁幫紝鍙兘瀹氫箟涓烘櫘閫氱殑C鍑芥暟銆傜敤浠ョ洃瑙嗙郴緇熸垨鏌愪竴鐗瑰畾綾誨瀷鐨勪簨浠訛紝榪欎簺浜嬩歡鍙互鏄笌鏌愪竴鐗瑰畾綰跨▼鍏寵仈鐨勶紝涔熷彲浠ユ槸緋葷粺涓墍鏈夌嚎紼嬬殑浜嬩歡銆?/span>

閽╁瓙瀛愮▼蹇呴』鎸夌収浠ヤ笅鐨勮娉曪細
1 LRESULT CALLBACK HookProc
2 (
3      int nCode, 
4          WPARAM wParam, 
5          LPARAM lParam
6 );
HookProc鏄簲鐢ㄧ▼搴忓畾涔夌殑鍚嶅瓧銆?/span>
nCode鍙傛暟鏄疕ook浠g爜錛孒ook瀛愮▼浣跨敤榪欎釜鍙傛暟鏉ョ‘瀹氫換鍔°傝繖涓弬鏁扮殑鍊間緷璧栦簬Hook綾誨瀷錛屾瘡涓縐岺ook閮芥湁鑷繁鐨凥ook浠g爜鐗瑰緛瀛楃闆嗐?/span>
wParam鍜宭Param鍙傛暟鐨勫間緷璧栦簬Hook浠g爜錛屼絾鏄畠浠殑鍏稿瀷鍊兼槸鍖呭惈浜嗗叧浜庡彂閫佹垨鑰呮帴鏀舵秷鎭殑淇℃伅銆?/span>

2銆侀挬瀛愮殑瀹夎涓庨噴鏀撅細

浣跨敤API鍑芥暟SetWindowsHookEx()鎶婁竴涓簲鐢ㄧ▼搴忓畾涔夌殑閽╁瓙瀛愮▼瀹夎鍒伴挬瀛愰摼琛ㄤ腑銆係etWindowsHookEx鍑芥暟鎬繪槸鍦℉ook閾劇殑寮澶村畨瑁匟ook瀛愮▼銆傚綋鎸囧畾綾誨瀷鐨凥ook鐩戣鐨勪簨浠跺彂鐢熸椂錛岀郴緇熷氨璋冪敤涓庤繖涓狧ook鍏寵仈鐨凥ook閾劇殑寮澶寸殑Hook瀛愮▼銆傛瘡涓涓狧ook閾句腑鐨凥ook瀛愮▼閮藉喅瀹氭槸鍚︽妸榪欎釜浜嬩歡浼犻掑埌涓嬩竴涓狧ook瀛愮▼銆侶ook瀛愮▼浼犻掍簨浠跺埌涓嬩竴涓狧ook瀛愮▼闇瑕佽皟鐢–allNextHookEx鍑芥暟銆?/span> 
 1 HHOOK SetWindowsHookEx( 
 2 銆銆銆銆銆int idHook,      // 閽╁瓙鐨勭被鍨嬶紝鍗沖畠澶勭悊鐨勬秷鎭被鍨?/span>
 3 銆銆銆銆銆HOOKPROC lpfn,   // 閽╁瓙瀛愮▼鐨勫湴鍧鎸囬拡銆傚鏋渄wThreadId鍙傛暟涓?
 4                                              // 鎴栨槸涓涓敱鍒殑榪涚▼鍒涘緩鐨勭嚎紼嬬殑鏍囪瘑錛?br /> 5                                              // lpfn蹇呴』鎸囧悜DLL涓殑閽╁瓙瀛愮▼銆?br /> 6                                              // 闄ゆ浠ュ錛宭pfn鍙互鎸囧悜褰撳墠榪涚▼鐨勪竴孌甸挬瀛愬瓙紼嬩唬鐮併?br /> 7                                              // 閽╁瓙鍑芥暟鐨勫叆鍙e湴鍧錛屽綋閽╁瓙閽╁埌浠諱綍娑堟伅鍚庝究璋冪敤榪欎釜鍑芥暟銆?/span>
 8 銆銆銆銆銆HINSTANCE hMod,  // 搴旂敤紼嬪簭瀹炰緥鐨勫彞鏌勩傛爣璇嗗寘鍚玪pfn鎵鎸囩殑瀛愮▼鐨?/span>DLL銆?/span>
10                                              // 濡傛灉dwThreadId 鏍囪瘑褰撳墠榪涚▼鍒涘緩鐨勪竴涓嚎紼嬶紝
11                                              // 鑰屼笖瀛愮▼浠g爜浣嶄簬褰撳墠榪涚▼錛宧Mod蹇呴』涓篘ULL銆?br />12                                              // 鍙互寰堢畝鍗曠殑璁懼畾鍏朵負鏈簲鐢ㄧ▼搴忕殑瀹炰緥鍙ユ焺銆?/span>
13 銆銆銆銆銆DWORD dwThreadId // 涓庡畨瑁呯殑閽╁瓙瀛愮▼鐩稿叧鑱旂殑綰跨▼鐨勬爣璇嗙銆?br />14                                              // 濡傛灉涓?錛岄挬瀛愬瓙紼嬩笌鎵鏈夌殑綰跨▼鍏寵仈錛屽嵆涓哄叏灞閽╁瓙銆?/span>
15 銆銆銆銆銆            ); 
  
鍑芥暟鎴愬姛鍒欒繑鍥為挬瀛愬瓙紼嬬殑鍙ユ焺錛屽け璐ヨ繑鍥濶ULL銆?/span>

浠ヤ笂鎵璇寸殑閽╁瓙瀛愮▼涓庣嚎紼嬬浉鍏寵仈鏄寚鍦ㄤ竴閽╁瓙閾捐〃涓彂緇欒綰跨▼鐨勬秷鎭悓鏃跺彂閫佺粰閽╁瓙瀛愮▼錛屼笖琚挬瀛愬瓙紼嬪厛澶勭悊銆?/span>

鍦ㄩ挬瀛愬瓙紼嬩腑璋冪敤寰楀埌鎺у埗鏉冪殑閽╁瓙鍑芥暟鍦ㄥ畬鎴愬娑堟伅鐨勫鐞嗗悗錛屽鏋滄兂瑕佽娑堟伅緇х畫浼犻掞紝閭d箞瀹冨繀欏昏皟鐢ㄥ彟澶栦竴涓猄DK涓殑API鍑芥暟CallNextHookEx鏉ヤ紶閫掑畠錛屼互鎵ц閽╁瓙閾捐〃鎵鎸囩殑涓嬩竴涓挬瀛愬瓙紼嬨傝繖涓嚱鏁版垚鍔熸椂榪斿洖閽╁瓙閾句腑涓嬩竴涓挬瀛愯繃紼嬬殑榪斿洖鍊鹼紝榪斿洖鍊肩殑綾誨瀷渚濊禆浜庨挬瀛愮殑綾誨瀷銆傝繖涓嚱鏁扮殑鍘熷瀷濡備笅錛?br />
1 LRESULT CallNextHookEx
2             (
3                 HHOOK hhk;
4                 int nCode;
5                 WPARAM wParam;
6                 LPARAM lParam;
7              );
hhk涓哄綋鍓嶉挬瀛愮殑鍙ユ焺錛岀敱SetWindowsHookEx()鍑芥暟榪斿洖銆?/span>
NCode涓轟紶緇欓挬瀛愯繃紼嬬殑浜嬩歡浠g爜銆?/span>
wParam鍜宭Param 鍒嗗埆鏄紶緇欓挬瀛愬瓙紼嬬殑wParam鍊鹼紝鍏跺叿浣撳惈涔変笌閽╁瓙綾誨瀷鏈夊叧銆?/span>
  
閽╁瓙鍑芥暟涔熷彲浠ラ氳繃鐩存帴榪斿洖TRUE鏉ヤ涪寮冭娑堟伅錛屽茍闃繪璇ユ秷鎭殑浼犻掋傚惁鍒欑殑璇濓紝鍏朵粬瀹夎浜嗛挬瀛愮殑搴旂敤紼嬪簭灝嗕笉浼氭帴鏀跺埌閽╁瓙鐨勯氱煡鑰屼笖榪樻湁鍙兘浜х敓涓嶆紜殑緇撴灉銆?/span>

閽╁瓙鍦ㄤ嬌鐢ㄥ畬涔嬪悗闇瑕佺敤UnHookWindowsHookEx()鍗歌澆錛屽惁鍒欎細閫犳垚楹葷儲銆傞噴鏀鵑挬瀛愭瘮杈冪畝鍗曪紝UnHookWindowsHookEx()鍙湁涓涓弬鏁般傚嚱鏁板師鍨嬪涓嬶細
1 UnHookWindowsHookEx
2 (
3     HHOOK hhk;
4 );
鍑芥暟鎴愬姛榪斿洖TRUE錛屽惁鍒欒繑鍥濬ALSE銆?/span>

3銆佷竴浜涜繍琛屾満鍒訛細

鍦╓in16鐜涓紝DLL鐨勫叏灞鏁版嵁瀵規瘡涓澆鍏ュ畠鐨勮繘紼嬫潵璇撮兘鏄浉鍚岀殑錛涜屽湪Win32鐜涓紝鎯呭喌鍗村彂鐢熶簡鍙樺寲錛孌LL鍑芥暟涓殑浠g爜鎵鍒涘緩鐨勪換浣曞璞★紙鍖呮嫭鍙橀噺錛夐兘褰掕皟鐢ㄥ畠鐨勭嚎紼嬫垨榪涚▼鎵鏈夈傚綋榪涚▼鍦ㄨ澆鍏LL鏃訛紝鎿嶄綔緋葷粺鑷姩鎶奃LL鍦板潃鏄犲皠鍒拌榪涚▼鐨勭鏈夌┖闂達紝涔熷氨鏄繘紼嬬殑铏氭嫙鍦板潃絀洪棿錛岃屼笖涔熷鍒惰DLL鐨勫叏灞鏁版嵁鐨勪竴浠芥嫹璐濆埌璇ヨ繘紼嬬┖闂淬備篃灝辨槸璇存瘡涓繘紼嬫墍鎷ユ湁鐨勭浉鍚岀殑DLL鐨勫叏灞鏁版嵁錛屽畠浠殑鍚嶇О鐩稿悓錛屼絾鍏跺煎嵈騫朵笉涓瀹氭槸鐩稿悓鐨勶紝鑰屼笖鏄簰涓嶅共娑夌殑銆?/span>

鍥犳錛屽湪Win32鐜涓嬭鎯沖湪澶氫釜榪涚▼涓叡浜暟鎹紝灝卞繀欏昏繘琛屽繀瑕佺殑璁劇疆銆傚湪璁塊棶鍚屼竴涓狣ll鐨勫悇榪涚▼涔嬮棿鍏變韓瀛樺偍鍣ㄦ槸閫氳繃瀛樺偍鍣ㄦ槧灝勬枃浠舵妧鏈疄鐜扮殑銆備篃鍙互鎶婅繖浜涢渶瑕佸叡浜殑鏁版嵁鍒嗙鍑烘潵錛屾斁緗湪涓涓嫭绔嬬殑鏁版嵁孌甸噷錛屽茍鎶婅孌電殑灞炴ц緗負鍏變韓銆傚繀欏葷粰榪欎簺鍙橀噺璧嬪垵鍊鹼紝鍚﹀垯緙栬瘧鍣ㄤ細鎶婃病鏈夎祴鍒濆鍊肩殑鍙橀噺鏀懼湪涓涓彨鏈鍒濆鍖栫殑鏁版嵁孌典腑銆?/span>

#pragma data_seg棰勫鐞嗘寚浠ょ敤浜庤緗叡浜暟鎹銆備緥濡傦細
1 #pragma data_seg("SharedDataName")
2 HHOOK hHook=NULL;
3 #pragma data_seg()
鍦?pragma data_seg("SharedDataName")鍜?pragma data_seg()涔嬮棿鐨勬墍鏈夊彉閲?灝嗚璁塊棶璇ll鐨勬墍鏈夎繘紼嬬湅鍒板拰鍏變韓銆?/span>

褰撹繘紼嬮殣寮忔垨鏄懼紡璋冪敤涓涓姩鎬佸簱閲岀殑鍑芥暟鏃訛紝緋葷粺閮借鎶婅繖涓姩鎬佸簱鏄犲皠鍒拌繖涓繘紼嬬殑铏氭嫙鍦板潃絀洪棿閲?浠ヤ笅綆縐?鍦板潃絀洪棿")銆傝繖浣垮緱DLL鎴愪負榪涚▼鐨勪竴閮ㄥ垎錛屼互榪欎釜榪涚▼鐨勮韓浠芥墽琛岋紝浣跨敤榪欎釜榪涚▼鐨勫爢鏍堛?/span>

4銆佺郴緇熼挬瀛愪笌綰跨▼閽╁瓙錛?/span>

SetWindowsHookEx()鍑芥暟鐨勬渶鍚庝竴涓弬鏁板喅瀹氫簡姝ら挬瀛愭槸緋葷粺閽╁瓙榪樻槸綰跨▼閽╁瓙銆?/span>
    
綰跨▼鍕懼瓙鐢ㄤ簬鐩戣鎸囧畾綰跨▼鐨勪簨浠舵秷鎭傜嚎紼嬪嬀瀛愪竴鑸湪褰撳墠綰跨▼鎴栬呭綋鍓嶇嚎紼嬫淳鐢熺殑綰跨▼鍐呫?/span>
    
緋葷粺鍕懼瓙鐩戣緋葷粺涓殑鎵鏈夌嚎紼嬬殑浜嬩歡娑堟伅銆傚洜涓虹郴緇熷嬀瀛愪細褰卞搷緋葷粺涓墍鏈夌殑搴旂敤紼嬪簭錛屾墍浠ュ嬀瀛愬嚱鏁板繀欏繪斁鍦ㄧ嫭绔嬬殑鍔ㄦ侀摼鎺ュ簱(DLL) 涓傜郴緇熻嚜鍔ㄥ皢鍖呭惈"閽╁瓙鍥炶皟鍑芥暟"鐨凞LL鏄犲皠鍒板彈閽╁瓙鍑芥暟褰卞搷鐨勬墍鏈夎繘紼嬬殑鍦板潃絀洪棿涓紝鍗沖皢榪欎釜DLL娉ㄥ叆浜嗛偅浜涜繘紼嬨?/span>

鍑犵偣璇存槑錛?/span>
錛?錛夊鏋滃浜庡悓涓浜嬩歡錛堝榧犳爣娑堟伅錛夋棦瀹夎浜嗙嚎紼嬪嬀瀛愬張瀹夎浜嗙郴緇熷嬀瀛愶紝閭d箞緋葷粺浼氳嚜鍔ㄥ厛璋冪敤綰跨▼鍕懼瓙錛岀劧鍚庤皟鐢ㄧ郴緇熷嬀瀛愩?

錛?錛夊鍚屼竴浜嬩歡娑堟伅鍙畨瑁呭涓嬀瀛愬鐞嗚繃紼嬶紝榪欎簺鍕懼瓙澶勭悊榪囩▼褰㈡垚浜嗗嬀瀛愰摼銆傚綋鍓嶅嬀瀛愬鐞嗙粨鏉熷悗搴旀妸鍕懼瓙淇℃伅浼犻掔粰涓嬩竴涓嬀瀛愬嚱鏁般?

錛?錛夊嬀瀛愮壒鍒槸緋葷粺鍕懼瓙浼氭秷鑰楁秷鎭鐞嗘椂闂達紝闄嶄綆緋葷粺鎬ц兘銆傚彧鏈夊湪蹇呰鐨勬椂鍊欐墠瀹夎鍕懼瓙錛屽湪浣跨敤瀹屾瘯鍚庤鍙婃椂鍗歌澆銆?/span>

涓夈侀挬瀛愮被鍨?/span>

姣忎竴縐嶇被鍨嬬殑Hook鍙互浣垮簲鐢ㄧ▼搴忚兘澶熺洃瑙嗕笉鍚岀被鍨嬬殑緋葷粺娑堟伅澶勭悊鏈哄埗銆備笅闈㈡弿榪版墍鏈夊彲浠ュ埄鐢ㄧ殑Hook綾誨瀷銆?/span>

1銆乄H_CALLWNDPROC鍜學H_CALLWNDPROCRET Hooks

WH_CALLWNDPROC鍜學H_CALLWNDPROCRET Hooks浣夸綘鍙互鐩戣鍙戦佸埌紿楀彛榪囩▼鐨勬秷鎭傜郴緇熷湪娑堟伅鍙戦佸埌鎺ユ敹紿楀彛榪囩▼涔嬪墠WH_CALLWNDPROCHook瀛愮▼錛屽茍涓斿湪紿楀彛榪囩▼澶勭悊瀹屾秷鎭箣鍚庤皟鐢╓H_CALLWNDPROCRET Hook瀛愮▼銆?/span>

WH_CALLWNDPROCRET Hook浼犻掓寚閽堝埌CWPRETSTRUCT緇撴瀯錛屽啀浼犻掑埌Hook瀛愮▼銆侰WPRETSTRUCT緇撴瀯鍖呭惈浜嗘潵鑷鐞嗘秷鎭殑紿楀彛榪囩▼鐨勮繑鍥炲鹼紝鍚屾牱涔熷寘鎷簡涓庤繖涓秷鎭叧鑱旂殑娑堟伅鍙傛暟銆?/span>

2銆乄H_CBT Hook

鍦ㄤ互涓嬩簨浠朵箣鍓嶏紝緋葷粺閮戒細璋冪敤WH_CBT Hook瀛愮▼錛岃繖浜涗簨浠跺寘鎷細
1. 嬋媧伙紝寤虹珛錛岄攢姣侊紝鏈灝忓寲錛屾渶澶у寲錛岀Щ鍔紝鏀瑰彉灝哄絳夌獥鍙d簨浠訛紱
2. 瀹屾垚緋葷粺鎸囦護錛?/span>
3. 鏉ヨ嚜緋葷粺娑堟伅闃熷垪涓殑縐誨姩榧犳爣錛岄敭鐩樹簨浠訛紱
4. 璁劇疆杈撳叆鐒︾偣浜嬩歡錛?/span>
5. 鍚屾緋葷粺娑堟伅闃熷垪浜嬩歡銆?/span>
    
Hook瀛愮▼鐨勮繑鍥炲肩‘瀹氱郴緇熸槸鍚﹀厑璁告垨鑰呴槻姝㈣繖浜涙搷浣滀腑鐨勪竴涓?/span>

3銆乄H_DEBUG Hook

鍦ㄧ郴緇熻皟鐢ㄧ郴緇熶腑涓庡叾浠朒ook鍏寵仈鐨凥ook瀛愮▼涔嬪墠錛岀郴緇熶細璋冪敤WH_DEBUG Hook瀛愮▼銆備綘鍙互浣跨敤榪欎釜Hook鏉ュ喅瀹氭槸鍚﹀厑璁哥郴緇熻皟鐢ㄤ笌鍏朵粬Hook鍏寵仈鐨凥ook瀛愮▼銆?/span>

4銆乄H_FOREGROUNDIDLE Hook

褰撳簲鐢ㄧ▼搴忕殑鍓嶅彴綰跨▼澶勪簬絀洪棽鐘舵佹椂錛屽彲浠ヤ嬌鐢╓H_FOREGROUNDIDLE Hook鎵ц浣庝紭鍏堢駭鐨勪換鍔°傚綋搴旂敤紼嬪簭鐨勫墠鍙扮嚎紼嬪ぇ姒傝鍙樻垚絀洪棽鐘舵佹椂錛岀郴緇熷氨浼氳皟鐢╓H_FOREGROUNDIDLE Hook瀛愮▼銆?/span>

5銆乄H_GETMESSAGE Hook

搴旂敤紼嬪簭浣跨敤WH_GETMESSAGE Hook鏉ョ洃瑙嗕粠GetMessage or PeekMessage鍑芥暟榪斿洖鐨勬秷鎭備綘鍙互浣跨敤WH_GETMESSAGE Hook鍘葷洃瑙嗛紶鏍囧拰閿洏杈撳叆錛屼互鍙婂叾浠栧彂閫佸埌娑堟伅闃熷垪涓殑娑堟伅銆?/span>

6銆乄H_JOURNALPLAYBACK Hook

WH_JOURNALPLAYBACK Hook浣垮簲鐢ㄧ▼搴忓彲浠ユ彃鍏ユ秷鎭埌緋葷粺娑堟伅闃熷垪銆傚彲浠ヤ嬌鐢ㄨ繖涓狧ook鍥炴斁閫氳繃浣跨敤WH_JOURNALRECORD Hook璁板綍涓嬫潵鐨勮繛緇殑榧犳爣鍜岄敭鐩樹簨浠躲傚彧瑕乄H_JOURNALPLAYBACK Hook宸茬粡瀹夎錛屾甯哥殑榧犳爣鍜岄敭鐩樹簨浠跺氨鏄棤鏁堢殑銆俉H_JOURNALPLAYBACK Hook鏄叏灞Hook錛屽畠涓嶈兘璞$嚎紼嬬壒瀹欻ook涓鏍蜂嬌鐢ㄣ俉H_JOURNALPLAYBACK Hook榪斿洖瓚呮椂鍊鹼紝榪欎釜鍊煎憡璇夌郴緇熷湪澶勭悊鏉ヨ嚜鍥炴斁Hook褰撳墠娑堟伅涔嬪墠闇瑕佺瓑寰呭闀挎椂闂達紙姣錛夈傝繖灝變嬌Hook鍙互鎺у埗瀹炴椂浜嬩歡鐨勫洖鏀俱俉H_JOURNALPLAYBACK鏄痵ystem-wide local hooks錛屽畠鍊戜笉鏈冭娉ㄥ皠鍒頒換浣曡紼嬩綅鍧絀洪枔銆?/span>

7銆乄H_JOURNALRECORD Hook

WH_JOURNALRECORD Hook鐢ㄦ潵鐩戣鍜岃褰曡緭鍏ヤ簨浠躲傚吀鍨嬬殑錛屽彲浠ヤ嬌鐢ㄨ繖涓狧ook璁板綍榪炵畫鐨勯紶鏍囧拰閿洏浜嬩歡錛岀劧鍚庨氳繃浣跨敤WH_JOURNALPLAYBACK Hook鏉ュ洖鏀俱俉H_JOURNALRECORD Hook鏄叏灞Hook錛屽畠涓嶈兘璞$嚎紼嬬壒瀹欻ook涓鏍蜂嬌鐢ㄣ俉H_JOURNALRECORD鏄痵ystem-wide local hooks錛屽畠鍊戜笉鏈冭娉ㄥ皠鍒頒換浣曡紼嬩綅鍧絀洪枔銆?/span>

8銆乄H_KEYBOARD Hook

鍦ㄥ簲鐢ㄧ▼搴忎腑錛學H_KEYBOARD Hook鐢ㄦ潵鐩戣WM_KEYDOWN and WM_KEYUP娑堟伅錛岃繖浜涙秷鎭氳繃GetMessage or PeekMessage function榪斿洖銆傚彲浠ヤ嬌鐢ㄨ繖涓狧ook鏉ョ洃瑙嗚緭鍏ュ埌娑堟伅闃熷垪涓殑閿洏娑堟伅銆?/span>

9銆乄H_KEYBOARD_LL Hook

WH_KEYBOARD_LL Hook鐩戣杈撳叆鍒扮嚎紼嬫秷鎭槦鍒椾腑鐨勯敭鐩樻秷鎭?/span>

10銆乄H_MOUSE Hook

WH_MOUSE Hook鐩戣浠嶨etMessage 鎴栬?PeekMessage 鍑芥暟榪斿洖鐨勯紶鏍囨秷鎭備嬌鐢ㄨ繖涓狧ook鐩戣杈撳叆鍒版秷鎭槦鍒椾腑鐨勯紶鏍囨秷鎭?/span>

11銆乄H_MOUSE_LL Hook

WH_MOUSE_LL Hook鐩戣杈撳叆鍒扮嚎紼嬫秷鎭槦鍒椾腑鐨勯紶鏍囨秷鎭?/span>

12銆乄H_MSGFILTER 鍜?WH_SYSMSGFILTER Hooks

WH_MSGFILTER 鍜?WH_SYSMSGFILTER Hooks浣挎垜浠彲浠ョ洃瑙嗚彍鍗曪紝婊氬姩鏉★紝娑堟伅妗嗭紝瀵硅瘽妗嗘秷鎭茍涓斿彂鐜扮敤鎴蜂嬌鐢ˋLT+TAB or ALT+ESC 緇勫悎閿垏鎹㈢獥鍙c俉H_MSGFILTER Hook鍙兘鐩戣浼犻掑埌鑿滃崟錛屾粴鍔ㄦ潯錛屾秷鎭鐨勬秷鎭紝浠ュ強浼犻掑埌閫氳繃瀹夎浜咹ook瀛愮▼鐨勫簲鐢ㄧ▼搴忓緩绔嬬殑瀵硅瘽妗嗙殑娑堟伅銆俉H_SYSMSGFILTER Hook鐩戣鎵鏈夊簲鐢ㄧ▼搴忔秷鎭?/span>
    
WH_MSGFILTER 鍜?WH_SYSMSGFILTER Hooks浣挎垜浠彲浠ュ湪妯″紡寰幆鏈熼棿榪囨護娑堟伅錛岃繖絳変環浜庡湪涓繪秷鎭驚鐜腑榪囨護娑堟伅銆?/span>
    
閫氳繃璋冪敤CallMsgFilter function鍙互鐩存帴鐨勮皟鐢╓H_MSGFILTER Hook銆傞氳繃浣跨敤榪欎釜鍑芥暟錛屽簲鐢ㄧ▼搴忚兘澶熷湪妯″紡寰幆鏈熼棿浣跨敤鐩稿悓鐨勪唬鐮佸幓榪囨護娑堟伅錛屽鍚屽湪涓繪秷鎭驚鐜噷涓鏍楓?/span>

13銆乄H_SHELL Hook

澶栧3搴旂敤紼嬪簭鍙互浣跨敤WH_SHELL Hook鍘繪帴鏀墮噸瑕佺殑閫氱煡銆傚綋澶栧3搴旂敤紼嬪簭鏄縺媧葷殑騫朵笖褰撻《灞傜獥鍙e緩绔嬫垨鑰呴攢姣佹椂錛岀郴緇熻皟鐢╓H_SHELL Hook瀛愮▼銆?/span>
WH_SHELL 鍏辨湁錛曢挓鎯呮硜錛?/span>
1. 鍙鏈変釜top-level銆乽nowned 紿楀彛琚駭鐢熴佽搗浣滅敤銆佹垨鏄鎽ф瘉錛?/span>
2. 褰揟askbar闇瑕侀噸鐢繪煇涓寜閽紱
3. 褰撶郴緇熼渶瑕佹樉紺哄叧浜嶵askbar鐨勪竴涓▼搴忕殑鏈灝忓寲褰㈠紡錛?/span>
4. 褰撶洰鍓嶇殑閿洏甯冨眬鐘舵佹敼鍙橈紱
5. 褰撲嬌鐢ㄨ呮寜Ctrl+Esc鍘繪墽琛孴ask Manager錛堟垨鐩稿悓綰у埆鐨勭▼搴忥級銆?/span>

    鎸夌収鎯緥錛屽澹沖簲鐢ㄧ▼搴忛兘涓嶆帴鏀禬H_SHELL娑堟伅銆傛墍浠ワ紝鍦ㄥ簲鐢ㄧ▼搴忚兘澶熸帴鏀禬H_SHELL娑堟伅涔嬪墠錛屽簲鐢ㄧ▼搴忓繀欏昏皟鐢⊿ystemParametersInfo function娉ㄥ唽瀹冭嚜宸便?/span>

浠ヤ笂杞嚜錛?a >http://www.microsoft.com/china/community/program/originalarticles/techdoc/hook.mspx
浠ヤ笅杞嚜錛?/span>http://topic.csdn.net/t/20030513/03/1774836.html

CallNextHookEx 浣滅敤

Hook   涓查張錛圚ook   Chains錛?
鐣惰ū澶氱▼寮忛兘瀹夎浜嗘煇紼瀷鎱嬬殑hook   鏅傦紝灝辨渻褰㈡垚涓鍊媐ilter-function   chain銆備竴鏃︾壒瀹?鐨別vent   鐧肩敓錛學indows   鏈冨懠鍙┎鍨嬫厠涓渶鏂版帥涓婄殑hook   filter   function銆傝垑鍊嬩緥錛屽鏋?紼嬪紡A   鎺涗笂浜嗕竴鍊媠ystem-wide   WH_KEYBOARD   hook錛屾瘡鐣舵湁浠諱綍鍩瘋綬掑彇寰楅嵉鐩よ▕ 鎭紝Windows   灝辨渻鍛煎彨閫欏媐ilter   function銆傚鏋滅▼寮廈   涔熸帥涓婁簡涓鍊媠ystem-wide WH_KEYBOARD   hook錛岄偅楹肩暥event   鐧肩敓錛學indows   涓嶅啀鍛煎彨紼嬪紡A   鐨刦ilter   function錛?鏀瑰懠鍙▼寮廈鐨刦ilter   function銆傞欎篃鎰忓懗姣忎竴鍊媐ilter   function   鏈夎鉑浠葷⒑淇濆厛鍓嶆帥涓婄殑filter Windows   95   紼嬪紡璦▓鎸囧崡錛圵indows   95   :   A   Developer’s   Guide錛?394 function   琚懠鍙紙涔熷氨鏄董璀蜂覆閺堢殑瀹屾暣鎬э級銆?SetWindowsHookEx   鍑藉紡鏈冨皣鏂版帥涓婄殑hook   filter   function   鐨勪唬紕煎偝鍥炪備換浣曠▼寮忓彧瑕佹帥 涓婁竴鍊嬫柊鐨刦ilter   function   灝卞繀闋堝劜瀛橀欏嬩唬紕鹼紙閫氬父瀛樻斁鍦ㄥ叏鍩熻畩鏁鎬腑錛夛細
static   HHOOK   g_hhook   =   NULL;
.   .   .
g_hhook   =   SetWindowsHookEx(WH_KEYBOARD,   Example_kybdHook,   hinst,   NULL);
.   .   .
濡傛灉鏈夐尟瑾ょ櫦鐢燂紝SetWindowsHookEx   鍑藉紡鏈冨偝鍥濶ULL銆?
濡傛灉浣犲笇鏈沨ook   chain   涓殑鍏跺畠filter   functions   涔熻兘澶犲煼琛岋紝浣犲彲浠ュ湪浣犵殑filter   function 涓懠鍙獵allNextHookEx   鍑藉紡錛堟垨璦變綘宸茬稉鍦ㄥ厛鍓嶇殑Example_KybdHook   鍑藉紡鐗囨涓敞鎰?鍒頒簡錛?nbsp;

LRESULT   CallNextHookEx(HHOOK   hhook,   int   nCode,   WPARAM   wParam,   LPARAM   lParam);
閫欏嬪嚱寮忔渻鍛煎彨filter-function   chain   鐨勪笅涓鍊媐ilter   function錛屼甫鍌沖叆鐩稿悓鐨刵Code銆?wParam   鍜宭Param銆備笅涓鍊媐ilter   function   緄愭潫涔嬪墠錛屾噳瑭蹭篃閬靛驚閫欏嬭鍓囧幓鍛煎彨 CallNextHookEx   鍑藉紡錛屼甫鍐嶆灝噃ook   浠g⒓錛堥氬父閭f槸琚斁鍦ㄥ叏鍩熻畩鏁鎬腑錛夊偝鍏ャ?CallNextHookEx   鍑藉紡鍒╃敤閫欏媓ook   浠g⒓錛岃蛋璦暣鍊嬩覆閺堬紝姹哄畾鍝竴鍊媐ilter   function   鏄?
涓嬩竴鍊嬪懠鍙洰妯欍傚鏋淐allNextHookEx   鍑藉紡鐧肩従宸茬稉娌掓湁涓嬩竴鍊媐ilter   function   鍙互鍛煎彨 錛堣蛋鍒頒覆閺堢洝闋簡錛夛紝瀹冩渻鍌沖洖0錛涘惁鍓囧畠灝卞偝鍥炪屼笅涓鍊媐ilter   function   鍩瘋寰岀殑鍌沖洖鍊箋嶃?nbsp;

浣犲彲鑳芥渻鍦ㄨū澶氭枃浠訛紙鍖呮嫭SDK   鏂囦歡錛変腑鐧肩従涓鍊嬫湁闂淐allNextHookEx   鍑藉紡鐨勯亷姘h鍛婏細銆屽 鏋渘Code   灝忔柤0錛屽墖hook   鍑藉紡鎳夎┎涓嶅仛浠諱綍铏曠悊錛岀洿鎺ュ皣瀹冧氦緄allNextHookEx   鍑藉紡錛屼甫鍌沖洖 CallNextHookEx   鍑藉紡鐨勫洖榪斿箋嶃傞欎甫涓嶆槸鐪熺殑錛岃屼笖鑷猈indows   3.0   浠ヤ締錛堥偅鏅傞倓鍦ㄤ嬌鐢ㄨ垔鐗堢殑 SetWindowsHook   鍑藉紡錛夊氨宸茬稉涓嶆槸鐪熺殑浜嗭紒鎾板紼嬪紡鏅傦紝浣犲彲浠ュ畬鍏ㄤ笉鐞嗘渻閫欓爡璀﹀憡銆?
絎紪绔犺▕鎭敂鎴紙Hooks錛?395

鏈変簺鏅傚欎綘鍙兘涓嶅笇鏈涘懠鍙叾浠栫殑filter   functions錛岄欑ó鎯呮硜涓嬩綘鍙涓嶅湪浣犵殑filter function   涓懠鍙獵allNextHookEx   鍑藉紡鍗沖彲銆傚彧瑕佷笉灝嘋allNextHookEx   鍑藉紡鏀懼埌浣犵殑filter
function   涓紝浣犲氨涓嶆渻鍛煎彨鍏朵粬鐨刦ilter   functions錛岃屼綘涔熷洜姝ゅ彲浠ユ寚瀹氫綘鑷繁鐨勫偝鍥炲箋?涓嶅垢鐨勬槸錛岄欒!鍩嬩紡钁椾竴鍊嬮櫡闃憋細鍙︿竴鍊嬪煼琛岀窉鍙兘涔熺偤浣犲畨瑁濅簡涓鍊媓ook錛屾柊鐨刦ilter
function   鏂兼槸姣斾綘鐨刦ilter   function   鏇存棭琚枤璧鳳紝鑰屽畠鍙兘涓嶅懠鍙綘鐨刦ilter   function錛屽畬铔?浜嗭紒閫欏嬪晱欏屾矑鏈変竴鑸х殑瑙f焙鏂規錛屽鏋滀綘鍏堝皣鑷繁鐨刪ook   鍗擱櫎錛岀劧寰屽啀閲嶆柊鎺涗笂錛?閭i杭浣犵殑filter   function   灝辨垚鐐烘渶鏂扮殑涓鍊嬶紝鏈冩渶鍏堣鍛煎彨銆傛矑閷紝浣嗕綘涓嶈兘澶犱繚璀夊叾浠?浜轟笉鏈冧緷妯g暙钁槅銆傜啊璦涔嬶紝hooks   鏄竴鍊嬪悎浣滄鍒訛紝娌掓湁浠諱綍淇濋殰銆?



]]>寰蔣鐮旂┒闄etour寮鍙戝寘涔婣PI鎷︽埅鎶鏈?/title><link>http://www.shnenglu.com/wanghaiguang/archive/2012/11/02/194179.html</link><dc:creator>鐜嬫搗鍏?/dc:creator><author>鐜嬫搗鍏?/author><pubDate>Fri, 02 Nov 2012 06:32:00 GMT</pubDate><guid>http://www.shnenglu.com/wanghaiguang/archive/2012/11/02/194179.html</guid><wfw:comment>http://www.shnenglu.com/wanghaiguang/comments/194179.html</wfw:comment><comments>http://www.shnenglu.com/wanghaiguang/archive/2012/11/02/194179.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/wanghaiguang/comments/commentRss/194179.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/wanghaiguang/services/trackbacks/194179.html</trackback:ping><description><![CDATA[<div class="hvzpftn" id="cnblogs_post_body"> <p><span style="font-family: Verdana; font-size: 12pt">鎴戜滑鎴幏鍑芥暟鎵ц鏈鐩存帴鐨勭洰鐨勫氨鏄負鍑芥暟澧炴坊鍔熻兘錛屼慨鏀硅繑鍥炲鹼紝鎴栬呬負璋冭瘯浠ュ強鎬ц兘嫻嬭瘯鍔犲叆闄勫姞鐨勪唬鐮侊紝鎴栬呮埅鑾峰嚱鏁扮殑杈撳叆杈撳嚭浣滅爺絀訛紝鐮磋В浣跨敤銆傞氳繃璁?闂簮浠g爜錛屾垜浠彲浠ヨ交鑰屾槗涓劇殑浣跨敤閲嶅緩錛圧ebuilding錛夋搷浣滅郴緇熸垨鑰呭簲鐢ㄧ▼搴忕殑鏂規硶鍦ㄥ畠浠腑闂存彃鍏ユ柊鐨勫姛鑳芥垨鑰呭仛鍔熻兘鎵╁睍銆傜劧鑰岋紝鍦ㄤ粖澶╄繖涓晢涓?鍖栫殑寮鍙戜笘鐣岄噷錛屼互鍙婂湪鍙湁浜岃繘鍒朵唬鐮佸彂甯冪殑緋葷粺涓紝鐮旂┒浜哄憳鍑犱箮娌℃湁鏈轟細鍙互寰楀埌婧愪唬鐮併傛湰鏂囦富瑕佽璁篋etour鍦╓indows浜岃繘鍒禤E鏂囦歡鍩虹 涓婄殑API鎴幏鎶鏈傚浜嶭inux騫沖彴錛屼綔榪欎歡浜嬫儏灝嗕細闈炲父鐨勭畝鍗曪紝鐢變簬鏈鍒濈殑鎿嶄綔緋葷粺璁捐鑰呭紩鍏ヤ簡LD_PRELOAD銆傚鏋滀綘璁劇疆  LD_PRELOAD=mylib.so 錛岄偅涔堝簲鐢ㄧ▼搴忓湪杞藉叆 dll鏃訛紝浼氬厛鏌ョ湅mylib.so鐨勭鍙瘋〃錛屽湪relocation 鐨勬椂鍊欎細浼樺厛 浣跨敤mylib.so 閲岀殑 symbol 銆傚亣濡備綘鍦╩ylib.so閲屾湁涓猵rintf() 錛岄偅涔堣繖涓猵rintf灝變細鏇夸唬libc鐨?printf銆?鑰屽湪mylib.so閲岀殑榪欎釜printf鍙互鐩存帴璁塊棶 libc.so閲岀殑printf鍑芥暟鎸囬拡鏉ヨ幏寰楃湡姝g殑 printf鐨勫叆鍙e湴 鍧銆?榪欐牱錛屾墍鏈夌殑dll鐨凙PI HOOK鍦╨oader鍔犺澆dll鐨勬椂鍊欏氨宸茬粡瀹屾垚錛岄潪甯歌嚜鐒訛紝鍜屽鉤鍙扮浉鍏崇殑閮ㄥ垎鍏ㄩ儴浜ょ粰loader鍘誨鐞嗐?/span><br /><span style="font-family: Verdana; font-size: 12pt">涓銆?nbsp; Detour寮鍙戝簱錛?/span><br /><span style="font-family: Verdana; font-size: 12pt">飦?nbsp; 綆浠?/span><br /><span style="font-family: Verdana; font-size: 12pt">Detours鏄竴涓湪x86騫沖彴涓婃埅鑾蜂換鎰廤in32鍑芥暟璋冪敤鐨勫伐鍏峰簱銆備腑鏂唬鐮佸彲浠ュ湪榪愯鏃跺姩鎬佸姞杞姐侱etours浣跨敤涓涓棤鏉′歡杞Щ鎸囦護鏉ユ浛鎹㈢洰 鏍囧嚱鏁扮殑鏈鍒濆嚑鏉℃寚浠わ紝灝嗘帶鍒舵祦杞Щ鍒頒竴涓敤鎴鋒彁渚涚殑鎴幏鍑芥暟銆傝岀洰鏍囧嚱鏁頒腑鐨勪竴浜涙寚浠よ淇濆瓨鍦ㄤ竴涓縐頒負“trampoline” 錛堣瘧娉細鑻辨枃鎰忎負韞?搴婏紝鏉傛妧錛夌殑鍑芥暟涓紝鍦ㄨ繖閲屾垜瑙夊緱緲昏瘧鎴愮洰鏍囧嚱鏁扮殑閮ㄥ垎鍏嬮殕/鎷瘋礉姣旇緝璐村垏銆傝繖浜涙寚浠ゅ寘鎷洰鏍囧嚱鏁頒腑琚浛鎹㈢殑浠g爜浠ュ強涓涓噸鏂拌煩杞埌鐩爣鍑芥暟鐨勬棤鏉′歡鍒?鏀傝屾埅鑾峰嚱鏁板彲浠ユ浛鎹㈢洰鏍囧嚱鏁幫紝鎴栬呴氳繃鎵ц“trampoline”鍑芥暟鐨勬椂鍊欏皢鐩爣鍑芥暟浣滀負瀛愮▼搴忔潵璋冪敤鐨勫姙娉曟潵鎵╁睍鍔熻兘銆?/span><br /><span style="font-family: Verdana; font-size: 12pt">Detours鏄墽琛屾椂琚彃鍏ョ殑銆傚唴瀛樹腑鐨勭洰鏍囧嚱鏁扮殑浠g爜涓嶆槸鍦ㄧ‖鐩樹笂琚慨鏀圭殑錛屽洜鑰屽彲浠ュ湪涓涓緢濂界殑綺掑害涓婁嬌寰楁埅鑾蜂簩榪涘埗鍑芥暟鐨勬墽琛屽彉寰楁洿瀹規槗銆備緥濡傦紝 涓涓簲鐢ㄧ▼搴忔墽琛屾椂鍔犺澆鐨凞LL涓殑鍑芥暟榪囩▼鍙互琚彃鍏ヤ竴孌墊埅鑾蜂唬鐮侊紙detoured錛夛紝涓庢鍚屾椂錛岃繖涓狣LL榪樺彲浠ヨ鍏朵粬搴旂敤紼嬪簭鎸夋甯告儏鍐墊墽琛岋紙璇?娉細涔熷氨鏄寜鐓т笉琚埅鑾風殑鏂瑰紡鎵ц錛屽洜涓篋LL浜岃繘鍒舵枃浠舵病鏈夎淇敼錛屾墍浠ュ彂鐢熸埅鑾鋒椂涓嶄細褰卞搷鍏朵粬榪涚▼絀洪棿鍔犺澆榪欎釜DLL錛夈備笉鍚屼簬DLL鐨勯噸鏂伴摼鎺ユ垨鑰?闈欐侀噸瀹氬悜錛孌etours搴撲腑浣跨敤鐨勮繖縐嶄腑鏂妧鏈‘淇濅笉浼氬獎鍝嶅埌搴旂敤紼嬪簭涓殑鏂規硶鎴栬呯郴緇熶唬鐮佸鐩爣鍑芥暟鐨勫畾浣嶃?/span><br /><span style="font-family: Verdana; font-size: 12pt">濡傛灉鍏朵粬浜轟負浜嗚皟璇曟垨鑰呭湪鍐呴儴浣跨敤鍏朵粬緋葷粺媯嫻嬫墜孌佃岃瘯鍥句慨鏀逛簩榪涘埗浠g爜錛孌etours灝嗘槸涓涓彲浠ユ櫘閬嶄嬌鐢ㄧ殑寮鍙戝寘銆傛嵁鎴戞墍鐭ワ紝Detours鏄涓 涓彲浠ュ湪浠繪剰騫沖彴涓婂皢鏈慨鏀圭殑鐩爣浠g爜浣滀負涓涓彲浠ラ氳繃“trampoline”璋冪敤鐨勫瓙紼嬪簭鏉ヤ繚鐣欑殑寮鍙戝寘銆傝屼互鍓嶇殑緋葷粺鍦ㄩ昏緫涓婇鍏堝皢鎴幏浠g爜鏀懼埌鐩?鏍囦唬鐮佷腑錛岃屼笉鏄皢鍘熷鐨勭洰鏍囦唬鐮佸仛涓轟竴涓櫘閫氱殑瀛愮▼搴忔潵璋冪敤銆傛垜浠嫭鐗圭殑“trampoline”璁捐瀵逛簬鎵╁睍鐜版湁鐨勮蔣浠剁殑浜岃繘鍒朵唬鐮佹槸鑷沖叧閲嶈鐨勩?/span><br /><span style="font-family: Verdana; font-size: 12pt">鍑轟簬浣跨敤鍩烘湰鐨勫嚱鏁版埅鑾峰姛鑳界殑鐩殑錛孌etours鍚屾牱鎻愪緵浜嗙紪杈戜換浣旸LL瀵煎叆琛ㄧ殑鍔熻兘錛岃揪鍒板悜瀛樺湪鐨勪簩榪涘埗浠g爜涓坊鍔犱換鎰忔暟鎹妭琛ㄧ殑鐩殑錛屽悜涓涓柊榪?紼嬫垨鑰呬竴涓凡緇忚繍琛岀潃鐨勮繘紼嬩腑娉ㄥ叆涓涓狣LL銆備竴鏃﹀悜涓涓繘紼嬫敞鍏ヤ簡DLL錛岃繖涓姩鎬佸簱灝卞彲浠ユ埅鑾蜂換浣昗in32鍑芥暟錛屼笉璁哄畠鏄湪搴旂敤紼嬪簭涓垨鑰呭湪緋葷粺搴?涓?/span><br /><span style="font-family: Verdana; font-size: 12pt">飦?nbsp; 鍩烘湰鍘熺悊</span><br /><span style="font-family: Verdana; font-size: 12pt">1錛?nbsp; WIN32榪涚▼鐨勫唴瀛樼鐞?</span><br /><span style="font-family: Verdana; font-size: 12pt">浼楁墍鍛ㄧ煡錛學INDOWS NT瀹炵幇浜嗚櫄鎷熷瓨鍌ㄥ櫒錛屾瘡涓WIN32榪涚▼鎷ユ湁4GB鐨勮櫄瀛樼┖闂達紝 鍏充簬WIN32榪涚▼鐨勮櫄瀛樼粨鏋勫強鍏舵搷浣滅殑鍏蜂綋緇嗚妭璇峰弬闃匴IN32 API鎵嬪唽錛?浠ヤ笅浠呮寚鍑轟笌Detours鐩稿叧鐨勫嚑鐐癸細 </span><br /><span style="font-family: Verdana; font-size: 12pt">(1) 榪涚▼瑕佹墽琛岀殑鎸囦護涔熸斁鍦ㄨ櫄瀛樼┖闂翠腑 </span><br /><span style="font-family: Verdana; font-size: 12pt">(2) 鍙互浣跨敤QueryProtectEx鍑芥暟鎶婂瓨鏀炬寚浠ょ殑欏甸潰鐨勬潈闄愭洿鏀逛負鍙鍙啓鍙墽琛岋紝鍐嶆敼鍐欏叾鍐呭錛屼粠鑰屼慨鏀規鍦ㄨ繍琛岀殑紼嬪簭 </span><br /><span style="font-family: Verdana; font-size: 12pt">(3) 鍙互浣跨敤VirtualAllocEx浠庝竴涓繘紼嬩負鍙︿竴姝h繍琛岀殑榪涚▼鍒嗛厤铏氬瓨錛屽啀浣跨敤 QueryProtectEx鍑芥暟鎶婇〉闈㈢殑鏉冮檺鏇存敼涓哄彲璇誨彲鍐欏彲鎵ц錛屽茍鎶婅鎵ц鐨勬寚浠や互浜岃繘鍒舵満鍣ㄧ爜鐨勫艦寮忓啓鍏ワ紝浠庤屼負涓涓鍦ㄨ繍琛岀殑榪涚▼娉ㄥ叆浠繪剰鐨勪唬鐮?銆?/span><br /><span style="font-family: Verdana; font-size: 12pt">2錛?鎷︽埅WIN32 API鐨勫師鐞?</span><br /><span style="font-family: Verdana; font-size: 12pt">Detours瀹氫箟浜嗕笁涓蹇碉細</span><br /><span style="font-family: Verdana; font-size: 12pt">    (1) Target鍑芥暟錛氳鎷︽埅鐨勫嚱鏁幫紝閫氬父涓篧indows鐨凙PI銆?/span><br /><span style="font-family: Verdana; font-size: 12pt">(2) Trampoline鍑芥暟錛歍arget鍑芥暟鐨勯儴鍒嗗鍒跺搧銆傚洜涓篋etours灝嗕細鏀瑰啓Target鍑芥暟錛屾墍浠ュ厛鎶奣arget鍑芥暟鐨勫墠5涓瓧鑺傚鍒朵繚瀛樺ソ錛屼竴鏂歸潰浠嶇劧淇濆瓨Target鍑芥暟鐨勮繃紼嬭皟鐢ㄨ涔夛紝鍙︿竴鏂歸潰渚夸簬浠ュ悗鐨勬仮澶嶃?/span><br /><span style="font-family: Verdana; font-size: 12pt">(3) Detour 鍑芥暟錛氱敤鏉ユ浛浠arget鍑芥暟鐨勫嚱鏁般?</span><br /><span style="font-family: Verdana; font-size: 12pt">Detours鍦═arget鍑芥暟鐨勫紑澶村姞鍏MP Address_of_ Detour_ Function鎸囦護錛堝叡5涓瓧鑺傦級鎶婂Target鍑芥暟 鐨勮皟鐢ㄥ紩瀵煎埌鑷繁鐨凞etour鍑芥暟錛?鎶奣arget鍑芥暟鐨勫紑澶寸殑5涓瓧鑺傚姞涓奐MP Address_of_ Target _ Function+ 5鍏?0涓瓧鑺備綔涓篢rampoline鍑芥暟銆傝鍙傝冧笅闈㈢殑鍥?鍜屽浘2銆?/span><br /><span style="font-family: Verdana; font-size: 12pt">(鍥?錛欴etour鍑芥暟鐨勮繃紼?</span><br /><a ></a> <img border="0" alt="" src="http://www.shnenglu.com/images/cppblog_com/wanghaiguang/crack_01_thumb.jpg" width="620" longdesc="" height="460" /><br /><span style="font-family: Verdana; font-size: 12pt">錛堝浘2錛?Detour鍑芥暟鐨勮皟鐢ㄨ繃紼嬶級</span><br /><a ></a> <img border="0" alt="" src="http://www.shnenglu.com/images/cppblog_com/wanghaiguang/crack_02_thumb.jpg" longdesc="" /><br /><span style="font-family: Verdana; font-size: 12pt">璇存槑錛?/span><br /><span style="font-family: Verdana; font-size: 12pt">飦?nbsp; 鐩爣鍑芥暟錛?/span><br /><span style="font-family: Verdana; font-size: 12pt">鐩爣鍑芥暟鐨勫嚱鏁頒綋錛堜簩榪涘埗錛夎嚦灝戞湁5涓瓧鑺備互涓娿傛寜鐓у井杞殑璇存槑鏂囨。Trampoline鍑芥暟鐨勫嚱鏁頒綋鏄嫹璐濆墠5涓瓧鑺傚姞涓涓棤鏉′歡璺寵漿鎸囦護鐨勮瘽錛堝鏋滄病 鏈夌壒孌婂鐞嗕笉鍙垎鍓叉寚浠ょ殑璇濓級錛岄偅涔堝墠5涓瓧鑺傚繀欏繪槸瀹屾暣鎸囦護錛屼篃灝辨槸涓嶈兘絎?涓瓧鑺傚拰絎?涓瓧鑺傛槸涓鏉′笉鍙垎鍓茬殑鎸囦護錛屽惁鍒欎細閫犳垚Trampoline 鍑芥暟鎵ц閿欒錛屼竴鏉″畬鏁寸殑鎸囦護琚‖鎬у垎鍓插紑鏉ワ紝閫犳垚紼嬪簭宕╂簝銆傚浜庣5瀛楄妭鍜岀6涓瓧鑺傛槸涓嶅彲鍒嗗壊鎸囦護闇瑕佽皟鏁存嫹璐濆埌鏉傛妧鍑芥暟(Trampoline)鐨?瀛楄妭涓暟錛岃繖涓煎彲浠ユ煡鐪嬬洰鏍囧嚱鏁扮殑姹囩紪浠g爜寰楀埌銆傛鍑芥暟鏄洰鏍囧嚱鏁扮殑淇敼鐗堟湰錛屼笉鑳藉湪Detour鍑芥暟涓洿鎺ヨ皟鐢紝闇瑕侀氳繃瀵筎rampoline鍑芥暟 鐨勮皟鐢ㄦ潵杈懼埌闂存帴璋冪敤銆?/span><br /><span style="font-family: Verdana; font-size: 12pt">飦?nbsp; Trampoline鍑芥暟錛?/span><br /><span style="font-family: Verdana; font-size: 12pt">姝ゅ嚱鏁伴粯璁ゅ垎閰嶄簡32涓瓧鑺傦紝鍑芥暟鐨勫唴瀹瑰氨鏄嫹璐濈殑鐩爣鍑芥暟鐨勫墠5涓瓧鑺傦紝鍔犱笂涓涓狫MP Address_of_ Target _ Function+5鎸囦護,鍏?0涓瓧鑺傘?/span><br /><span style="font-family: Verdana; font-size: 12pt">姝ゅ嚱鏁頒粎渚涙偍鐨凞etour鍑芥暟璋冪敤錛屾墽琛屽畬鍓?涓瓧鑺傜殑鎸囦護鍚庡啀緇濆璺寵漿鍒扮洰鏍囧嚱鏁扮殑絎?涓瓧鑺傜戶緇墽琛屽師鍔熻兘鍑芥暟銆?/span><br /><span style="font-family: Verdana; font-size: 12pt">飦?nbsp; Detour鍑芥暟錛?/span><br /><span style="font-family: Verdana; font-size: 12pt">姝ゅ嚱鏁版槸鐢ㄦ埛闇瑕佺殑鎴幏API鐨勪竴涓ā鎷熺増鏈紝璋冪敤鏂瑰紡錛屽弬鏁頒釜鏁板繀欏誨拰鐩爣鍑芥暟鐩鎬竴鑷淬傚鐩爣鍑芥暟鏄痏_stdcall錛屽垯Detour鍑芥暟澹版槑涔熷繀欏?鏄痏_stdcall,鍙傛暟涓暟鍜岀被鍨嬩篃蹇呴』鐩稿悓錛屽惁鍒欎細閫犳垚紼嬪簭宕╂簝銆傛鍑芥暟鍦ㄧ▼搴忚皟鐢ㄧ洰鏍囧嚱鏁扮殑絎竴鏉℃寚浠ょ殑鏃跺欏氨浼氳璋冪敤錛堟棤鏉′歡璺寵漿榪囨潵鐨勶級錛屽 鏋滃湪姝ゅ嚱鏁頒腑鎯崇戶緇皟鐢ㄧ洰鏍囧嚱鏁幫紝蹇呴』璋冪敤Trampoline鍑芥暟錛圱rampoline鍑芥暟鍦ㄦ墽琛屽畬鐩爣鍑芥暟鐨勫墠5涓瓧鑺傜殑鎸囦護鍚庝細鏃犳潯浠惰煩杞埌鐩爣 鍑芥暟鐨?涓瓧鑺傚悗緇х畫鎵ц錛夛紝涓嶈兘鍐嶇洿鎺ヨ皟鐢ㄧ洰鏍囧嚱鏁幫紝鍚﹀垯灝嗚繘鍏ユ棤絀烽掑綊錛堢洰鏍囧嚱鏁拌煩杞埌Detour鍑芥暟錛孌etour鍑芥暟鍙堣煩杞埌鐩爣鍑芥暟鐨勯掑綊錛?鍥犱負鐩爣鍑芥暟鍦ㄥ唴瀛樹腑鐨勫墠5涓瓧鑺傚凡緇忚淇敼鎴愮粷瀵硅煩杞級銆傞氳繃瀵筎rampoline鍑芥暟鐨勮皟鐢ㄥ悗鍙互鑾峰彇鐩爣鍑芥暟鐨勬墽琛岀粨鏋滐紝姝ょ壒鎬у鍒嗘瀽鐩爣鍑芥暟闈?甯告湁鐢紝鑰屼笖鍙互灝嗙洰鏍囧嚱鏁扮殑杈撳嚭緇撴灉榪涜淇敼鍚庡啀浼犲洖緇欏簲鐢ㄧ▼搴忋?/span><br /><span style="font-family: Verdana; font-size: 12pt">Detour鎻愪緵浜嗗悜榪愯涓殑搴旂敤紼嬪簭娉ㄥ叆Detour鍑芥暟鍜屽湪浜岃繘鍒舵枃浠跺熀紜涓婃敞鍏etour鍑芥暟涓ょ鏂瑰紡銆傛湰绔犱富瑕佽璁虹浜岀宸ヤ綔鏂瑰紡銆傞氳繃 Detours鎻愪緵鐨勫紑鍙戝寘鍙互鍦ㄤ簩榪涘埗EXE鏂囦歡涓坊鍔犱竴涓悕縐頒負Detour鐨勮妭琛紝濡備笅鍥?鎵紺猴紝涓昏鐩殑鏄疄鐜癙E鍔犺澆鍣ㄥ姞杞藉簲鐢ㄧ▼搴忕殑鏃跺欎細鑷?鍔ㄥ姞杞芥偍緙栧啓鐨凞etours DLL錛屽湪Detours Dll涓殑DLLMain涓畬鎴愬鐩爣鍑芥暟鐨凞etour銆?/span><br /><span style="font-family: Verdana; font-size: 12pt">錛堝浘3錛?/span><br /><a ></a> <img border="0" alt="" src="http://www.shnenglu.com/images/cppblog_com/wanghaiguang/crack_03_thumb.jpg" width="506" longdesc="" height="299" /><br /><span style="font-family: Verdana; font-size: 12pt">浜屻?nbsp; Detours鎻愪緵鐨勬埅鑾稟PI鐨勭浉鍏蟲帴鍙?/span><br /><span style="font-family: Verdana; font-size: 12pt">Detours鐨勬彁渚涚殑API 鎺ュ彛鍙互浣滀負涓涓叡浜獶LL緇欏閮ㄧ▼搴忚皟鐢紝涔熷彲浠ヤ綔涓轟竴涓潤鎬丩ib閾炬帴鍒版偍鐨勭▼搴忓唴閮ㄣ?/span><br /><span style="font-family: Verdana; font-size: 12pt">Trampoline鍑芥暟鍙互鍔ㄦ佹垨鑰呴潤鎬佺殑鍒涘緩錛屽鏋滅洰鏍囧嚱鏁版湰韜槸涓涓摼鎺ョ鍙鳳紝浣跨敤闈欐佺殑trampoline鍑芥暟灝嗛潪甯哥畝鍗曘傚鏋滅洰鏍囧嚱鏁頒笉鑳藉湪閾炬帴鏃跺彲瑙侊紝閭d箞鍙互浣跨敤鍔ㄦ乼rampoline鍑芥暟銆?/span><br /><span style="font-family: Verdana; font-size: 12pt">飦?nbsp; 瑕佷嬌鐢ㄩ潤鎬佺殑trampoline鍑芥暟鏉ユ埅鑾風洰鏍囧嚱鏁幫紝搴旂敤紼嬪簭鐢熸垚trampoline鐨勬椂鍊欏繀欏諱嬌鐢?/span><br /><span style="font-family: Verdana; font-size: 12pt">DETOUR_TRAMPOLINE瀹忋侱ETOUR_TRAMPOLINE鏈変袱涓緭鍏ュ弬鏁幫細trampoline鐨勫師鍨嬪拰鐩爣鍑芥暟鐨勫悕瀛椼?/span><br /><span style="font-family: Verdana; font-size: 12pt">娉ㄦ剰錛屽浜庢紜殑鎴幏妯″瀷錛屽寘鎷洰鏍囧嚱鏁幫紝trampoline鍑芥暟錛屼互鍙婃埅鑾峰嚱鏁伴兘蹇呴』鏄畬鍏ㄤ竴鑷寸殑璋冪敤褰㈠紡錛屽寘鎷弬鏁版牸寮忓拰璋冪敤綰﹀畾銆傚綋閫氳繃 trampoline鍑芥暟璋冪敤鐩爣鍑芥暟鐨勬椂鍊欐嫹璐濇紜弬鏁版槸鎴幏鍑芥暟鐨勮矗浠匯傜敱浜庣洰鏍囧嚱鏁頒粎浠呮槸鎴幏鍑芥暟鐨勪竴涓彲璋冪敤鍒嗘敮錛堟埅鑾峰嚱鏁板彲浠ヨ皟鐢?trampoline鍑芥暟涔熷彲浠ヤ笉璋冪敤錛夛紝榪欑璐d換鍑犱箮灝辨槸涓縐嶄笅鎰忚瘑鐨勮涓恒?/span><br /><span style="font-family: Verdana; font-size: 12pt">浣跨敤鐩稿悓鐨勮皟鐢ㄧ害瀹氬彲浠ョ‘淇濆瘎瀛樺櫒涓殑鍊艱姝g‘鐨勪繚瀛橈紝騫朵笖淇濊瘉璋冪敤鍫嗘爤鍦ㄦ埅鑾峰嚱鏁拌皟鐢ㄧ洰鏍囧嚱鏁扮殑鏃跺欒兘姝g‘鐨勫緩绔嬪拰閿姣併?/span><br /><span style="font-family: Verdana; font-size: 12pt">鍙互浣跨敤DetourFunctionWithTrampoline鍑芥暟鏉ユ埅鑾風洰鏍囧嚱鏁般傝繖涓嚱鏁版湁涓や釜鍙傛暟錛歵rampoline鍑芥暟浠ュ強鎴幏鍑芥暟鐨勬寚閽堛傚洜涓虹洰鏍囧嚱鏁板凡緇忚鍔犲埌trampoline鍑芥暟涓紝鎵鏈変笉闇瑕佸湪鍙傛暟涓壒鍒寚瀹氥?/span><br /><span style="font-family: Verdana; font-size: 12pt">飦?nbsp; 鎴戜滑鍙互浣跨敤DetourFunction鍑芥暟鏉ュ垱寤轟竴涓姩鎬佺殑trampoline鍑芥暟錛屽畠鍖呮嫭涓や釜鍙傛暟錛氫竴涓寚鍚戠洰鏍囧嚱鏁扮殑鎸囬拡鍜屼竴涓埅鑾峰嚱鏁扮殑鎸囬拡銆侱etourFunction鍒嗛厤涓涓柊鐨則rampoline鍑芥暟騫跺皢閫傚綋鐨勬埅鑾蜂唬鐮佹彃鍏ュ埌鐩爣鍑芥暟涓幓銆?/span><br /><span style="font-family: Verdana; font-size: 12pt">褰撶洰鏍囧嚱鏁頒笉鏄緢瀹規槗浣跨敤鐨勬椂鍊欙紝DetourFindFunction鍑芥暟鍙互鎵懼埌閭d釜鍑芥暟錛屼笉綆″畠鏄疍LL涓鍑虹殑鍑芥暟錛屾垨鑰呮槸鍙互閫氳繃浜岃繘鍒剁洰鏍囧嚱鏁扮殑璋冭瘯絎﹀彿鎵懼埌銆?/span><br /><span style="font-family: Verdana; font-size: 12pt">DetourFindFunction鎺ュ彈涓や釜鍙傛暟錛氬簱鐨勫悕瀛楀拰鍑芥暟鐨勫悕瀛椼傚鏋淒etourFindFunction鍑芥暟鎵懼埌浜嗘寚瀹氱殑鍑芥暟錛岃繑鍥炶鍑芥暟 鐨勬寚閽堬紝鍚﹀垯灝嗚繑鍥炰竴涓狽ULL鎸囬拡銆侱etourFindFunction浼氶鍏堜嬌鐢╓in32鍑芥暟LoadLibrary 鍜?GetProcAddress鏉ュ畾浣嶅嚱鏁幫紝濡傛灉鍑芥暟娌℃湁鍦―LL鐨勫鍑鴻〃涓壘鍒幫紝DetourFindFunction灝嗕嬌鐢↖mageHlp搴撴潵鎼滅儲鏈?鏁堢殑璋冭瘯絎﹀彿錛堣瘧娉細榪欓噷鐨勮皟璇曠鍙鋒槸鎸嘩indows鏈韓鎻愪緵鐨勮皟璇曠鍙鳳紝闇瑕佸崟鐙畨瑁咃紝鍏蜂綋淇℃伅璇峰弬鑰僕indows鐨勭敤鎴瘋瘖鏂敮鎸佷俊鎭級銆?DetourFindFunction榪斿洖鐨勫嚱鏁版寚閽堝彲浠ョ敤鏉ヤ紶閫掔粰DetourFunction浠ョ敓鎴愪竴涓姩鎬佺殑trampoline鍑芥暟銆?/span><br /><span style="font-family: Verdana; font-size: 12pt">鎴戜滑鍙互璋冪敤DetourRemoveTrampoline鏉ュ幓鎺夊涓涓洰鏍囧嚱鏁扮殑鎴幏銆?/span><br /><span style="font-family: Verdana; font-size: 12pt">娉ㄦ剰錛屽洜涓篋etours涓殑鍑芥暟浼氫慨鏀瑰簲鐢ㄧ▼搴忕殑鍦板潃絀洪棿錛岃紜繚褰撳姞鍏ユ埅鑾峰嚱鏁版垨鑰呭幓鎺夋埅鑾峰嚱鏁扮殑鏃跺欐病鏈夊叾浠栫嚎紼嬪湪榪涚▼絀洪棿涓墽琛岋紝榪欐槸紼嬪簭鍛樼殑璐d換銆備竴涓畝鍗曠殑鏂規硶淇濊瘉榪欎釜鏃跺欐槸鍗曠嚎紼嬫墽琛屽氨鏄湪鍔犺澆Detours搴撶殑鏃跺欏湪DllMain涓懠鍙嚱鏁般?/span><br /><span style="font-family: Verdana; font-size: 12pt">涓夈?nbsp; 浣跨敤Detours瀹炵幇瀵笰PI鐨勬埅鑾風殑涓ょ鏂規硶</span><br /><span style="font-family: Verdana; font-size: 12pt">寤虹珛涓涓狹FC瀵硅瘽妗嗗伐紼嬶紝鍦ㄥ璇濇鐨凮K鎸夐挳鐨勫崟鍑諱簨浠朵腑鍔犲叆瀵筂essageBoxA鍑芥暟鐨勮皟鐢紝緙栬瘧鍚庣殑紼嬪簭鍚嶇ОMessageBoxApp,鏁堟灉濡傚浘銆?/span><br /><a ></a> <img border="0" alt="" src="http://www.shnenglu.com/images/cppblog_com/wanghaiguang/crack_04_thumb.jpg" longdesc="" /><br /><span style="font-family: Verdana; font-size: 12pt">(鍥?)</span><br /><span style="font-family: Verdana; font-size: 12pt">飦?nbsp; 闈欐佹柟娉?/span><br /><span style="font-family: Verdana; font-size: 12pt">寤虹珛涓涓狣ll宸ョ▼錛屽悕縐頒負ApiHook錛岃繖閲屼互Visual C++6.0寮鍙戠幆澧冿紝浠ユ埅鑾稟SCII鐗堟湰鐨凪essageBoxA鍑芥暟鏉ヨ鏄庛傚湪Dll鐨勫伐紼嬪姞鍏ワ細</span><br /><span style="font-family: Verdana; font-size: 12pt">DETOUR_TRAMPOLINE(int WINAPI Real_Messagebox(HWND hWnd ,</span><br /><span style="font-family: Verdana; font-size: 12pt">    LPCSTR lpText,</span><br /><span style="font-family: Verdana; font-size: 12pt">    LPCSTR lpCaption,</span><br /><span style="font-family: Verdana; font-size: 12pt">UINT uType), ::MessageBoxA);</span><br /><span style="font-family: Verdana; font-size: 12pt">鐢熸垚涓涓潤鎬佺殑MessageBoxA鐨凾rampoline鍑芥暟錛屽湪Dll宸ョ▼涓姞鍏ョ洰鏍囧嚱鏁扮殑Detour鍑芥暟錛?/span><br /><span style="font-family: Verdana; font-size: 12pt">int WINAPI MessageBox_Mine( HWND hWnd ,</span><br /><span style="font-family: Verdana; font-size: 12pt">    LPCSTR lpText,</span><br /><span style="font-family: Verdana; font-size: 12pt">    LPCSTR lpCaption,</span><br /><span style="font-family: Verdana; font-size: 12pt">    UINT uType)</span><br /><span style="font-family: Verdana; font-size: 12pt">{</span><br /><span style="font-family: Verdana; font-size: 12pt">  CString tmp= lpText;</span><br /><span style="font-family: Verdana; font-size: 12pt">  tmp+=” 琚獶etour鎴幏”;</span><br /><span style="font-family: Verdana; font-size: 12pt">  return Real_Messagebox(hWnd,tmp,lpCaption,uType);</span><br /><span style="font-family: Verdana; font-size: 12pt">//  return ::MessageBoxA(hWnd,tmp,lpCaption,uType);  //Error </span><br /><span style="font-family: Verdana; font-size: 12pt">}</span><br /><span style="font-family: Verdana; font-size: 12pt">鍦―ll鍏ュ彛鍑芥暟涓殑鍔犺澆Dll浜嬩歡涓姞鍏ワ細</span><br /><span style="font-family: Verdana; font-size: 12pt">DetourFunctionWithTrampoline((PBYTE)Real_Messagebox, (PBYTE)MessageBox_Mine);</span><br /><span style="font-family: Verdana; font-size: 12pt">鍦―ll鍏ュ彛鍑芥暟涓殑鍗歌澆Dll浜嬩歡涓姞鍏ワ細</span><br /><span style="font-family: Verdana; font-size: 12pt">DetourRemove((PBYTE)Real_Messagebox, (PBYTE)MessageBox_Mine);</span><br /><span style="font-family: Verdana; font-size: 12pt">飦?nbsp; 鍔ㄦ佹柟娉?/span><br /><span style="font-family: Verdana; font-size: 12pt">寤虹珛涓涓狣ll宸ョ▼錛屽悕縐頒負ApiHook錛岃繖閲屼互Visual C++6.0寮鍙戠幆澧冿紝浠ユ埅鑾稟SCII鐗堟湰鐨凪essageBoxA鍑芥暟鏉ヨ鏄庛傚湪Dll鐨勫伐紼嬪姞鍏ワ細</span><br /><span style="font-family: Verdana; font-size: 12pt">//澹版槑MessageBoxA涓鏍風殑鍑芥暟鍘熷瀷</span><br /><span style="font-family: Verdana; font-size: 12pt">typedef int  (WINAPI * MessageBoxSys)( HWND hWnd ,</span><br /><span style="font-family: Verdana; font-size: 12pt">    LPCSTR lpText,</span><br /><span style="font-family: Verdana; font-size: 12pt">    LPCSTR lpCaption,</span><br /><span style="font-family: Verdana; font-size: 12pt">    UINT uType);</span><br /><span style="font-family: Verdana; font-size: 12pt">//鐩爣鍑芥暟鎸囬拡</span><br /><span style="font-family: Verdana; font-size: 12pt">MessageBoxSys SystemMessageBox=NULL;</span><br /><span style="font-family: Verdana; font-size: 12pt">//Trampoline鍑芥暟鎸囬拡</span><br /><span style="font-family: Verdana; font-size: 12pt">MessageBoxSys Real_MessageBox=NULL;</span><br /><span style="font-family: Verdana; font-size: 12pt">鍦―ll宸ョ▼涓姞鍏ョ洰鏍囧嚱鏁扮殑Detour鍑芥暟錛?/span><br /><span style="font-family: Verdana; font-size: 12pt">int WINAPI MessageBox_Mine( HWND hWnd ,</span><br /><span style="font-family: Verdana; font-size: 12pt">    LPCSTR lpText,</span><br /><span style="font-family: Verdana; font-size: 12pt">    LPCSTR lpCaption,</span><br /><span style="font-family: Verdana; font-size: 12pt">    UINT uType)</span><br /><span style="font-family: Verdana; font-size: 12pt">{</span><br /><span style="font-family: Verdana; font-size: 12pt">  CString tmp= lpText;</span><br /><span style="font-family: Verdana; font-size: 12pt">  tmp+=” 琚獶etour鎴幏”;</span><br /><span style="font-family: Verdana; font-size: 12pt">  return Real_Messagebox(hWnd,tmp,lpCaption,uType);</span><br /><span style="font-family: Verdana; font-size: 12pt">//  return ::MessageBoxA(hWnd,tmp,lpCaption,uType);  //Error </span><br /><span style="font-family: Verdana; font-size: 12pt">}</span><br /><span style="font-family: Verdana; font-size: 12pt">鍦―ll鍏ュ彛鍑芥暟涓殑鍔犺澆Dll浜嬩歡涓姞鍏ワ細</span><br /><span style="font-family: Verdana; font-size: 12pt">  SystemMessageBox=(MessageBoxSys)DetourFindFunction("user32.dll","MessageBoxA");</span><br /><span style="font-family: Verdana; font-size: 12pt">  if(SystemMessageBox==NULL)</span><br /><span style="font-family: Verdana; font-size: 12pt">  {</span><br /><span style="font-family: Verdana; font-size: 12pt">    return FASLE;</span><br /><span style="font-family: Verdana; font-size: 12pt">  }</span><br /><span style="font-family: Verdana; font-size: 12pt">  Real_MessageBox=(MessageBoxSys)DetourFunction((PBYTE)SystemMessageBox, (PBYTE)MessageBox_Mine);</span><br /><span style="font-family: Verdana; font-size: 12pt">鍦―ll鍏ュ彛鍑芥暟涓殑鍗歌澆Dll浜嬩歡涓姞鍏ワ細</span><br /><span style="font-family: Verdana; font-size: 12pt">DetourRemove((PBYTE)Real_Messagebox, (PBYTE)MessageBox_Mine);</span><br /><span style="font-family: Verdana; font-size: 12pt">飦?nbsp; 閲嶅啓浜岃繘鍒跺彲鎵ц鏂囦歡</span><br /><span style="font-family: Verdana; font-size: 12pt">浣跨敤Detours鑷甫鐨凷etDll.exe閲嶅啓浜岃繘鍒跺彲鎵ц鏂囦歡錛屽彲浠ュ湪闇瑕佹埅鑾風殑紼嬪簭涓姞鍏ヤ竴涓柊鐨凞etours鐨凱E鑺傝〃銆傚浜庢湰鏂囧氨鏄柊寤轟竴涓壒澶勭悊鏂囦歡璋冪敤SetDll.exe銆?/span><br /><span style="font-family: Verdana; font-size: 12pt">@echo off</span><br /><span style="font-family: Verdana; font-size: 12pt">if not exist MessageBoxApp.exe (</span><br /><span style="font-family: Verdana; font-size: 12pt">echo 璇峰皢鏂囦歡瑙e帇鍒癕essageBoxApp.exe鐨勫畨瑁呯洰褰? 鐒跺悗鎵ц琛ヤ竵紼嬪簭</span><br /><span style="font-family: Verdana; font-size: 12pt">) else (</span><br /><span style="font-family: Verdana; font-size: 12pt">setdll /d:ApiHook.dll MessageBoxApp.exe</span><br /><span style="font-family: Verdana; font-size: 12pt">)</span><br /><span style="font-family: Verdana; font-size: 12pt">Pause</span><br /><span style="font-family: Verdana; font-size: 12pt">璋冪敤鍚庝嬌鐢╠epends.exe錛堝井杞疺C6.0寮鍙戝寘鐨勫伐鍏蜂箣涓錛夎瀵烳essageBoxApp.exe鍓嶅悗鍙樺寲錛?鍙互鐪嬪埌Setdll宸茬粡閲嶅啓MessageBoxApp.exe</span><br /><span style="font-family: Verdana; font-size: 12pt">鎴愬姛錛屽姞鍏ヤ簡瀵笰piHook.dll鐨勪緷璧栧叧緋匯?/span><br /><a ></a> <img border="0" alt="" src="http://www.shnenglu.com/images/cppblog_com/wanghaiguang/crack_05_thumb.jpg" width="872" longdesc="" height="220" /><br /><span style="font-family: Verdana; font-size: 12pt">      錛堟墽琛孲etDll.exe鍓嶏級                                                       (鎵цSetDll.exe鍚?</span><br /><span style="font-family: Verdana; font-size: 12pt">鎵цSetDll.exe閲嶅啓鍚庣殑MessageBoxApp.exe錛岀偣鍑葷‘瀹氬悗鍙互鐪嬪埌緇撴灉濡備笅錛?/span><br /><span style="font-family: Verdana; font-size: 12pt">鑷蟲錛孧essageBoxApp.exe瀵筂essageBoxA鍑芥暟鐨勮皟鐢ㄥ凡緇忚鎴幏錛屽脊鍑虹殑瀵硅瘽妗嗗唴瀹瑰凡緇忔槑鏄捐鏄庤繖涓鐐廣?/span><br /><img border="0" alt="" src="http://www.shnenglu.com/images/cppblog_com/wanghaiguang/crack_06_thumb.jpg" width="407" longdesc="" height="263" /><br /><br /><span style="font-family: Verdana; font-size: 12pt">鏈枃杞嚜錛?/span><a ><span style="font-family: Verdana; font-size: 12pt">http://www.cnblogs.com/flying_bat/archive/2008/04/18/1159996.html</span></a></p></div><img src ="http://www.shnenglu.com/wanghaiguang/aggbug/194179.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/wanghaiguang/" target="_blank">鐜嬫搗鍏?/a> 2012-11-02 14:32 <a href="http://www.shnenglu.com/wanghaiguang/archive/2012/11/02/194179.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>杞? 鏁板涔嬬編絎旇http://www.shnenglu.com/wanghaiguang/archive/2012/09/21/191509.html鐜嬫搗鍏?/dc:creator>鐜嬫搗鍏?/author>Fri, 21 Sep 2012 09:50:00 GMThttp://www.shnenglu.com/wanghaiguang/archive/2012/09/21/191509.htmlhttp://www.shnenglu.com/wanghaiguang/comments/191509.htmlhttp://www.shnenglu.com/wanghaiguang/archive/2012/09/21/191509.html#Feedback0http://www.shnenglu.com/wanghaiguang/comments/commentRss/191509.htmlhttp://www.shnenglu.com/wanghaiguang/services/trackbacks/191509.html 鍗婁釜鏈堝墠鍦ㄨ眴鐡d笂鐪嬪埌浜嗕竴鏈柊涔︺婃暟瀛︿箣緹庛嬶紝璇勪環寰堥珮銆傝屽洜涓哄湪鍗婂勾鍓嶇湅浜嗐婁粈涔堟槸鏁板銆嬪氨瀵規暟瀛︿駭鐢熸祿鍘氬叴瓚o紝浣嗚嫤浜庢按騫充笉瓚崇殑鎴戜究绔嬮┈涔頒簡涓鏈紝甯屾湜鑳藉鏁板澶氫竴浜涗簡瑙o紝騫惰鐪熼槄璇昏搗鏉ャ?
        浠ゆ垜鎰忓騫舵鍠滅殑鏄紝榪欐湰涔﹂噷杈圭殑鏁板鍐呭騫朵笉鏅︽訂闅炬噦錛岃屼笖浣滆呬負浜嗚榪版暟瀛︿箣緹庤屾惌閰嶇殑涓浜涘伐紼嬪疄渚嬮兘鏄拰鎴戝涔犲茍鎰熷叴瓚g殑妯″紡璇嗗埆錛岀洰鏍囧垎綾葷浉鍏崇畻娉曠浉鍏寵仈鐨勩傝繖璁╂垜瑙夊緱鎹″埌浜嗘剰澶栫殑瀹濊棌銆?
        涔︿腑姣忎竴涓珷鑺傞兘鎴栧鎴栧皯鏄綔鑰呬翰韜粡鍘嗚繃鐨勶紝姣斿涓栫晫綰ф暀鎺堢殑灝忔晠浜嬶紝鎴栬匞oogle鐨勬悳绱㈠紩鎿庡師鐞嗭紝鍙堟垨鑰呮槸Google鐨勪簯璁$畻絳夈備綔鑰呯敤鍏惰浜戞祦姘磋埇鐨勮璦灝嗗悇涓煡璇嗙偣鍍忚鏁呬簨涓鏍鋒湁瓚g殑鍙欒堪鍑烘潵銆?
        榪欐湰涔︾潃瀹炶鎴戝嵃璞℃繁鍒伙紝鎵浠ユ垜鎶婄瑪璁板垎浜嚭鏉ワ紝甯屾湜鏇村鍜屾垜瀛︿範鐮旂┒棰嗗煙涓鏍風殑浜轟細鍠滄騫朵翰鑷槄璇昏繖鏈功錛屽茍鑳芥敮鎸佷綔鑰呫傛瘯绔熷浗鍐呰繖縐嶄功瀹炲湪鏄お灝戜簡錛屼篃甯屾湜鑳芥湁鏇村棰嗗煙鍐呯殑澶х墰鑳藉啀鍐欏嚭涓浜涜繖縐嶄功綾嶆潵璁╂垜浠叡鍚屾彁楂樸?
1.    鍥犱負闇瑕佷紶鎾俊鎭噺鐨勫鍔狅紝涓嶅悓鐨勫0闊沖茍涓嶈兘瀹屽叏琛ㄨ揪淇℃伅錛岃璦渚夸駭鐢熶簡銆?
2.    褰撴枃瀛楀鍔犲埌娌℃湁浜鴻兘瀹屽叏璁頒綇鎵鏈夋枃瀛楁椂錛岃仛綾誨拰褰掔被灝卞紑濮嬩簡銆備緥濡傛棩浠h〃澶槼鎴栬呬唬琛ㄤ竴澶┿?
3.    鑱氱被浼氬甫鏉ユ涔夋э紝浣嗕笂涓嬫枃鍙互娑堥櫎姝т箟銆備俊鎭啑浣欐槸淇℃伅瀹夊叏鐨勪繚闅溿備緥濡傜綏濉炲鐭崇涓婂悓涓淇℃伅閲嶅涓夋銆?
4.    鏈鐭紪鐮佸師鐞嗗嵆甯哥敤淇℃伅鐭紪鐮侊紝鐢熷兓淇℃伅闀跨紪鐮併?
5.    鍥犱負鏂囧瓧鍙槸淇℃伅鐨勮澆浣撹岄潪淇℃伅鏈韓錛屾墍浠ョ炕璇戞槸鍙互瀹炵幇鐨勩?
6.    2012錛屽叾瀹炴槸鐜涢泤鏂囨槑閲囩敤浜屽崄榪涘埗錛屽嵆鍥涚櫨騫存槸涓涓お闃崇邯錛岃?012騫存伆宸ф槸褰撳墠澶槼綰殑鏈鍚庝竴騫達紝2013騫存槸鏂扮殑澶槼綰殑寮濮嬶紝鏁呰璇紶涓轟笘鐣屾湯鏃ャ?
7.    瀛楁瘝鍙互鐪嬩負鏄竴緇寸紪鐮侊紝鑰屾眽瀛楀彲浠ョ湅涓轟簩緇寸紪鐮併?
8.    鍩轟簬緇熻鐨勮嚜鐒惰璦澶勭悊鏂規硶錛屽湪鏁板妯″瀷涓婂拰閫氫俊鏄浉閫氱殑錛岀敋鑷蟲槸鐩稿悓鐨勩?
9.    璁╄綆楁満澶勭悊鑷劧璇█鐨勫熀鏈棶棰樺氨鏄負鑷劧璇█榪欑涓婁笅鏂囩浉鍏崇殑鐗規у緩绔嬫暟瀛︽ā鍨嬶紝鍗崇粺璁¤璦妯″瀷錛圫tatistical Language Modal錛夈?
10.    鏍規嵁澶ф暟瀹氱悊錛圠aw of Large Numbers錛夛紝鍙緇熻閲忚凍澶燂紝鐩稿棰戝害灝辯瓑浜庢鐜囥?
11.    浜屽厓妯″瀷銆傚浜巔(w1,w2,…,wn)=p(w1)p(w2|w1)p(w3|w1,w2)…p(wn|w1,w2,…,wn-1)鐨勫睍寮闂錛屽洜涓簆(w3|w1,w2)闅捐綆楋紝p(wn|w1,w2,…,wn-1)鏇撮毦璁$畻錛岄┈灝旂澶粰鍑轟簡涓涓伔鎳掍絾鏄涓烘湁鏁堢殑鏂規硶錛屼篃灝辨槸姣忓綋閬囧埌榪欑鎯呭喌鏃訛紝灝卞亣璁句換鎰弚i鍑虹幇鐨勬鐜囧彧涓庡畠鍓嶉潰鐨剋i-1鏈夊叧錛屽嵆p(s)=p(w1)p(w2|w1)p(w3|w2)…p(wi|wi-1)…p(wn|wn-1)銆傜幇鍦ㄨ繖涓鐜囧氨鍙樼殑綆鍗曚簡銆傚搴旂殑璇█妯″瀷涓?鍏冩ā鍨嬶紙Bigram Model錛夈?
12.    *N鍏冩ā鍨嬨倃i鍙笌鍓嶄竴涓獁i-1鏈夊叧榪戜技鐨勮繃澶翠簡錛屾墍浠-1闃墮┈灝旂澶亣璁句負p(wi|w1,w2,…,wi-1)=p(wi|wi-N+1,wi-N+2,…,wi-1)錛屽搴旂殑璇█妯″瀷鎴愪負N鍏冩ā鍨嬶紙N-Gram Model錛夈備竴鍏冩ā鍨嬪氨鏄笂涓嬫枃鏃犲叧妯″瀷錛屽疄闄呭簲鐢ㄤ腑鏇村瀹炵敤鐨勬槸涓夊厓妯″瀷銆侴oogle鐨勭綏濉炲緲昏瘧緋葷粺鍜岃璦鎼滅儲緋葷粺瀹炵敤鐨勬槸鍥涘厓妯″瀷錛屽瓨鍌ㄤ簬500鍙頒互涓婄殑Google鏈嶅姟鍣ㄤ腑銆?
13.    *鍗″吂閫閬挎硶錛圞atz backoff錛夛紝瀵逛簬棰戠巼瓚呰繃涓瀹氶槇鍊肩殑璇嶏紝瀹冧滑鐨勬鐜囦及璁″氨鏄畠浠湪璇枡搴撲腑鐨勭浉瀵歸搴︼紝瀵逛簬棰戠巼灝忎簬榪欎釜闃堝肩殑璇嶏紝瀹冧滑鐨勬鐜囦及璁″氨灝忎簬浠栦滑鐨勭浉瀵歸搴︼紝鍑虹幇嬈℃暟瓚婂皯錛岄鐜囦笅璋冭秺澶氥傚浜庢湭鐪嬭鐨勮瘝錛屼篃緇欎簣涓涓瘮杈冨皬鐨勬鐜囷紙鍗充笅璋冨緱鍒扮殑棰戠巼鎬誨拰錛夛紝榪欐牱鎵鏈夎瘝鐨勬鐜囦及璁¢兘騫蟲粦浜嗐傝繖灝辨槸鍗″吂閫閬挎硶錛圞atz backoff錛夈?
14.    璁粌鏁版嵁閫氬父鏄秺澶氳秺濂斤紝閫氳繃騫蟲粦榪囨浮鐨勬柟娉曞彲浠ヨВ鍐抽浂姒傜巼鍜屽緢灝忔鐜囩殑闂錛屾瘯绔熷湪鏁版嵁閲忓鐨勬椂鍊欐鐜囨ā鍨嬬殑鍙傛暟鍙互浼拌鐨勬瘮杈冨噯紜?
15.    鍒╃敤緇熻璇█妯″瀷榪涜鍒嗚瘝錛屽嵆鏈濂界殑鍒嗚瘝鏂規硶搴旇淇濊瘉鍒嗗畬璇嶅悗榪欎釜鍙ュ瓙鍑虹幇鐨勬鐜囨渶澶с傛牴鎹笉鍚屽簲鐢紝姹夎鍒嗚瘝鐨勯綺掑害澶у皬搴旇涓嶅悓銆?
16.    絎﹀悎椹皵縐戝か鍋囪錛堝悇涓姸鎬乻t鐨勬鐜囧垎甯冨彧涓庡畠鍓嶄竴涓姸鎬乻t-1鏈夊叧錛夌殑闅忓嵆榪囩▼鍗蟲垚涓洪┈灝旂澶繃紼嬶紝涔熺О涓洪┈灝旂澶摼銆?
17.    闅愬惈椹皵縐戝か妯″瀷鏄┈灝旂澶摼鐨勬墿灞曪紝浠繪剰鏃跺埢t鐨勭姸鎬乻t鏄笉鍙鐨勶紝鎵浠ヨ瀵熻呮病娉曢氳繃瑙傚療鍒頒竴涓姸鎬佸簭鍒梥1,s2,s3,…,sT鏉ユ帹嫻嬭漿縐繪鐜囩瓑鍙傛暟銆備絾鏄殣椹皵縐戝か妯″瀷鍦ㄦ瘡涓椂鍒籺浼氳緭鍑轟竴涓鍙穙t錛岃屼笖ot鍜宻t鐩稿叧涓斾粎鍜宱t鐩稿叧銆傝繖涓縐頒負鐙珛杈撳嚭鍋囪銆傚叾涓殣鍚殑鐘舵乻1,s2,s3,…鏄竴涓吀鍨嬬殑椹皵縐戝か閾俱?
18.    闅愬惈椹皵縐戝か妯″瀷鏄満鍣ㄥ涔犱富瑕佸伐鍏蜂箣涓錛屽拰鍑犱箮鎵鏈夋満鍣ㄥ涔犵殑妯″瀷宸ュ叿涓鏍鳳紝瀹冮渶瑕佷竴涓緇冪畻娉曪紙椴嶅-闊﹀皵濂囩畻娉曪級鍜屼嬌鐢ㄦ椂鐨勮В鐮佺畻娉曪紙緇寸壒姣旂畻娉曪級銆傛帉鎻′簡榪欎袱綾葷畻娉曪紝灝卞熀鏈笂鍙互浣跨敤闅愬惈椹皵縐戝か妯″瀷榪欎釜宸ュ叿浜嗐?
19.    椴嶅-闊﹀皵濂囩畻娉曪紙Baum-Welch Algorithm錛夛紝棣栧厛鎵懼埌涓緇勮兘澶熶駭鐢熻緭鍑哄簭鍒桹鐨勬ā鍨嬪弬鏁幫紝榪欎釜鍒濆妯″瀷鎴愪負Mtheta0錛岄渶瑕佸湪姝ゅ熀紜涓婃壘鍒頒竴涓洿濂界殑妯″瀷錛屽亣瀹氫笉浣嗗彲浠ョ畻鍑鴻繖涓ā鍨嬩駭鐢烵鐨勬鐜嘝(O|Mtheta0)錛岃屼笖鑳藉鎵懼埌榪欎釜妯″瀷浜х敓O鐨勬墍鏈夊彲鑳界殑璺緞浠ュ強榪欎簺璺緞鐨勬鐜囥傚茍綆楀嚭涓緇勬柊鐨勬ā鍨嬪弬鏁皌heta1錛屼粠Mtheta0鍒癕theta1鐨勮繃紼嬬О涓轟竴嬈¤凱浠c傛帴涓嬫潵浠嶮theta1鍑哄彂瀵繪壘鏇村ソ鐨勬ā鍨婱theta2錛屽茍涓鐩存壘涓嬪幓錛岀洿鍒版ā鍨嬬殑璐ㄩ噺娌℃湁鏄庢樉鎻愰珮涓烘銆傝繖鏍蜂竴鐩翠及璁★紙Expectation錛夋柊鐨勬ā鍨嬪弬鏁幫紝浣垮緱杈撳嚭鐨勬鐜囪揪鍒版渶澶у寲錛圡aximization錛夌殑榪囩▼琚О涓烘湡鏈涘兼渶澶у寲錛圗xpectation-Maximization錛夌畝縐癊M榪囩▼銆侲M榪囩▼鑳戒繚璇佷竴瀹氳兘鏀舵暃鍒頒竴涓眬閮ㄦ渶浼樼偣錛屼絾涓嶈兘淇濊瘉鎵懼埌鍏ㄥ眬鏈浼樼偣銆傚洜姝わ紝鍦ㄤ竴浜涜嚜鐒惰璦澶勭悊鐨勫簲鐢ㄤ腑錛岃繖縐嶆棤鐩戠潱鐨勯矋濮?闊﹀皵濂囩畻娉曡緇冨鐨勬ā鍨嬫瘮鏈夌洃鐫g殑璁粌寰楀埌鐨勬ā鍨嬫晥鏋滅暐宸?
20.    鐔碉紝淇℃伅鐔電殑瀹氫箟涓篐(X)=-SumP(x)logP(x)錛屽彉閲忕殑涓嶇‘瀹氭ц秺澶э紝鐔典篃瓚婂ぇ銆?
21.    涓涓簨鐗╁唴閮ㄤ細瀛樺湪闅忔満鎬э紝涔熷氨鏄笉紜畾鎬э紝鍋囧畾涓篣錛岃屼粠澶栭儴娑堥櫎榪欎釜涓嶇‘瀹氭у敮涓鐨勫姙娉曟槸寮曞叆淇℃伅I錛岃岄渶瑕佸紩鍏ョ殑淇℃伅閲忓彇鍐充簬榪欎釜涓嶇‘瀹氭х殑澶у皬錛屽嵆I>U鎵嶈銆傚綋I<U鏃訛紝榪欎簺淇℃伅鍙互娑堥櫎涓閮ㄥ垎涓嶇‘瀹氭э紝U'=U-I銆傚弽涔嬶紝濡傛灉娌℃湁淇℃伅錛屼換浣曞叕紺烘垨鑰呮暟瀛楃殑娓告垙閮芥棤娉曟帓闄や笉紜畾鎬с?
22.    淇℃伅鐨勪綔鐢ㄥ湪浜庢秷闄や笉紜畾鎬с?
23.    浜掍俊鎭紝瀵逛袱涓殢鏈轟簨浠剁浉鍏蟲х殑閲忓寲搴﹂噺錛屽嵆闅忔満浜嬩歡X鐨勪笉紜畾鎬ф垨鑰呰鐔礖(X)錛屽湪鐭ラ亾闅忔満浜嬩歡Y鏉′歡涓嬬殑涓嶇‘瀹氭э紝鎴栬呰鏉′歡鐔礖(X|Y)涔嬮棿鐨勫樊寮傦紝鍗矷(X;Y)=H(X)-H(X|Y)銆傛墍璋撲袱涓簨浠剁浉鍏蟲х殑閲忓寲搴﹂噺錛屽嵆鍦ㄤ簡瑙d簡鍏朵腑涓涓猋鐨勫墠鎻愪笅錛屽娑堥櫎鍙︿竴涓猉涓嶇‘瀹氭ф墍鎻愪緵鐨勪俊鎭噺銆?
24.    鐩稿鐔碉紙Kullback-Leibler Divergence錛変篃鍙氦鍙夌喌錛屽涓や釜瀹屽叏鐩稿悓鐨勫嚱鏁幫紝浠栦滑鐨勭浉瀵圭喌涓洪浂錛涚浉瀵圭喌瓚婂ぇ錛屼袱涓嚱鏁板樊寮傝秺澶э紝鍙嶄箣錛岀浉瀵圭喌瓚婂皬錛屼袱涓嚱鏁板樊寮傝秺灝忥紱瀵逛簬姒傜巼鍒嗗竷鎴栬呮鐜囧瘑搴﹀嚱鏁幫紝濡傛灉鍙栧煎潎澶т簬闆訛紝鐩稿鐔靛彲浠ュ害閲忎袱涓殢鏈哄垎甯冪殑宸紓鎬с?
25.    寮楅噷寰烽噷鍏?#183;璐鵑噷灝煎厠錛團rederek Jelinek錛夋槸鑷劧璇█澶勭悊鐪熻皼鐨勫厛椹辮呫?
26.    鎶鏈垎涓烘湳鍜岄亾涓ょ錛屽叿浣撶殑鍋氫簨鏂規硶鏄湳錛屽仛浜嬬殑鍘熺悊鍜屽師鍒欐槸閬撱傛湳浼氫粠鐙棬緇濇妧鍒版櫘鍙婂啀鍒拌惤浼嶏紝榪芥眰鏈殑浜轟細寰堣緵鑻︼紝鍙湁鎺屾彙浜嗛亾鐨勬湰璐ㄥ拰綺鵑珦鎵嶈兘姘歌繙娓稿垉鏈変綑銆?
27.    鐪熺悊鍦ㄥ艦寮忎笂浠庢潵鏄畝鍗曠殑錛岃屼笉鏄鏉傚拰鍚販鐨勩?
28.    鎼滅儲寮曟搸涓嶈繃鏄竴寮犲ぇ琛紝琛ㄧ殑姣忎竴琛屽搴斾竴涓叧閿瓧錛岃屾瘡涓涓叧閿瓧鍚庨潰璺熺潃涓緇勬暟瀛楋紝鏄寘鍚鍏抽敭璇嶇殑鏂囩尞搴忓彿銆備絾褰撶儲寮曞彉鐨勯潪甯稿ぇ鐨勬椂鍊欙紝榪欎簺绱㈠紩闇瑕侀氳繃鍒嗗竷寮忕殑鏂瑰紡瀛樺偍鍒頒笉鍚岀殑鏈嶅姟鍣ㄤ笂銆?
29.    緗戠粶鐖櫕錛圵eb Crawlers錛夛紝鍥捐鐨勯亶鍘嗙畻娉曞拰鎼滅儲寮曟搸鐨勫叧緋匯備簰鑱旂綉铏界劧澶嶆潅錛屼絾鏄絀夸簡鍏跺疄灝辨槸涓寮犲ぇ鍥?#8230;…鍙互鎶婃瘡涓涓綉欏靛綋鍋氫竴涓妭鐐癸紝鎶婇偅浜涜秴閾炬帴褰撳仛榪炴帴緗戦〉鐨勫姬銆傛湁浜嗚秴閾炬帴錛屽彲浠ヤ粠浠諱綍涓涓綉欏靛嚭鍙戯紝鐢ㄥ浘鐨勯亶鍘嗙畻娉曪紝鑷姩璁塊棶鍒版瘡涓涓綉欏靛茍涓旀妸浠栦滑瀛樺偍璧鋒潵銆傚畬鎴愯繖涓姛鑳界殑紼嬪簭鍙綉緇滅埇铏?
30.    鍝ュ凹鏂牎涓冩ˉ錛屽鏋滀竴涓浘鑳戒粠涓涓《鐐瑰嚭鍙戯紝姣忔潯杈逛笉閲嶅鐨勯亶鍘嗕竴閬嶅洖鍒拌繖涓《鐐癸紝閭d箞姣忎竴涓《鐐圭殑搴﹀繀欏諱負鍋舵暟銆?
31.    鏋勫緩緗戠粶鐖櫕鐨勫伐紼嬭鐐癸細1.鐢˙FS錛堝箍搴︿紭鍏堟悳绱級榪樻槸DFS錛堟繁搴︿紭鍏堟悳绱級錛屼竴鑸槸鍏堜笅杞藉畬涓涓綉绔欙紝鍐嶈繘鍏ヤ笅涓涓綉绔欙紝鍗矪FS鐨勬垚鍒嗗涓浜涖?.欏甸潰鐨勫垎鏋愬拰URL鐨勬彁鍙栵紝濡傛灉鏈変簺緗戦〉鏄庢槑瀛樺湪錛屼絾鎼滅儲寮曟搸騫舵病鏈夋敹褰曪紝鍙兘鐨勫師鍥犱箣涓鏄綉緇滅埇铏腑鐨勮В鏋愮▼搴忔病鑳芥垚鍔熻В鏋愮綉欏典腑涓嶈鑼冪殑鑴氭湰紼嬪簭銆?.璁板綍鍝簺緗戦〉宸茬粡涓嬭澆榪囩殑URL琛紝鍙互鐢ㄥ搱甯岃〃銆傛渶緇堬紝濂界殑鏂規硶涓鑸兘閲囩敤浜嗚繖鏍蜂袱涓妧鏈細棣栧厛鏄庣‘姣忓彴涓嬭澆鏈嶅姟鍣ㄧ殑鍒嗗伐錛屼篃灝辨槸鍦ㄨ皟搴︽椂錛屼竴鐪嬪埌鏌愪釜URL灝辯煡閬撹浜ょ粰鍝彴鏈嶅姟鍣ㄥ幓涓嬭澆錛岃繖鏍峰氨閬垮厤浜嗗緢澶氭湇鍔″櫒瀵瑰悓涓涓猆RL鍋氬嚭鏄惁闇瑕佷笅杞界殑鍒ゆ柇銆傜劧鍚庯紝鍦ㄦ槑紜垎宸ョ殑鍩虹涓婏紝鍒ゆ柇URL鏄惁涓嬭澆灝卞彲浠ユ壒澶勭悊浜嗭紝姣斿姣忔鍚戝搱甯岃〃錛堜竴緇勭嫭绔嬬殑鏈嶅姟鍣級鍙戦佷竴澶ф壒璇㈤棶錛屾垨鑰呮瘡嬈℃洿鏂頒竴澶ф壒鍝堝笇琛ㄧ殑鍐呭錛岃繖鏍烽氫俊鐨勬鏁板氨澶уぇ鍑忓皯浜嗐?
32.    PageRank琛¢噺緗戦〉璐ㄩ噺鐨勬牳蹇冩濇兂錛屽湪浜掕仈緗戜笂錛屽鏋滀竴涓綉欏佃寰堝鍏朵粬緗戦〉鎵閾炬帴錛岃鏄庡畠鍙楀埌鏅亶鐨勬壙璁ゅ拰淇¤禆錛岄偅涔堝畠鐨勬帓鍚嶅氨楂樸傚悓鏃訛紝瀵逛簬鏉ヨ嚜涓嶅悓緗戦〉鐨勯摼鎺ュ尯鍒寰咃紝鍥犱負緗戦〉鎺掑悕楂樼殑閭d簺緗戦〉鐨勯摼鎺ユ洿鍙潬錛屼簬鏄緇欒繖浜涢摼鎺ユ瘮杈冨ぇ鐨勬潈閲嶃?
33.    TF-IDF(Term Frequency / Inverse Document Frequency) 錛屽叧閿瘝棰戠巼-閫嗘枃鏈鐜囧鹼紝鍏朵腑錛孴F涓烘煇涓綉欏典笂鍑虹幇鍏抽敭璇嶇殑棰戠巼錛孖DF涓哄亣瀹氫竴涓叧閿瘝w鍦―w涓綉欏典腑鍑虹幇榪囷紝閭d箞Dw瓚婂ぇ錛寃鐨勬潈閲嶈秺灝忥紝鍙嶄箣浜︾劧錛屽叕寮忎負log(D/Dw)銆?.涓涓瘝棰勬祴涓婚鐨勮兘鍔涜秺寮猴紝鏉冮噸瓚婂ぇ錛屽弽涔嬶紝鏉冮噸瓚婂皬銆?.鍋滄璇嶇殑鏉冮噸涓洪浂銆?
34.    鍔ㄦ佽鍒掞紙Dynamic Programming錛夌殑鍘熺悊錛屽皢涓涓鎵懼叏紼嬫渶浼樼殑闂鍒嗚В鎴愪竴涓釜瀵繪壘灞閮ㄦ渶浼樼殑灝忛棶棰樸?
35.    涓涓ソ鐨勭畻娉曞簲璇ュ儚杞繪鍣ㄤ腑鏈鏈夊悕鐨凙K-47鍐查攱鏋偅鏍鳳細綆鍗曘佹湁鏁堛佸彲闈犳уソ鑰屼笖瀹規槗璇繪噦錛堟槗鎿嶄綔錛夎屼笉搴旇鏁呭紕鐜勮櫄銆傞夋嫨綆鍗曟柟妗堝彲浠ュ鏄撹В閲婃瘡涓楠ゅ拰鏂規硶鑳屽悗鐨勯亾鐞嗭紝榪欐牱涓嶄粎渚夸簬鍑洪棶棰樻椂鐨勬煡閿欙紝涔熷鏄撴壘鍒頒粖鍚庢敼榪涚殑鐩爣銆?
36.    鍦ㄥ疄闄呯殑鍒嗙被涓紝鍙互鍏堣繘琛屽寮傚煎垎瑙o紙寰楀埌鍒嗙被緇撴灉鐣ユ樉綺楃硻浣嗚兘杈冨揩寰楀埌緇撴灉錛夛紝鍦ㄧ矖鍒嗙被緇撴灉鐨勫熀紜涓婏紝鍒╃敤璁$畻鍚戦噺浣欏雞鐨勬柟娉曪紙瀵硅寖鍥村唴鐨勫垎綾誨仛涓や袱璁$畻錛夛紝鍦ㄧ矖鍒嗙被緇撴灉鐨勫熀紜涓婏紝榪涜鍑犳榪唬錛屽緱鍒版瘮杈冪簿紜殑緇撴灉銆?
37.    濂囧紓鍊煎垎瑙o紙Singular Value Decomposition錛夛紝鍦ㄩ渶瑕佺敤涓涓ぇ鐭╅樀A鏉ユ弿榪版垚鍗冧笂涓囨枃绔犲拰鍑犲崄涓婄櫨涓囪瘝鐨勫叧鑱旀ф椂錛岃綆楅噺闈炲父澶э紝鍙互灝咥濂囧紓鍊煎垎瑙d負X銆丅鍜孻涓変釜鐭╅樀錛孉mn=Xmm*Bmn*Ynn錛孹琛ㄧず璇嶅拰璇嶇被鐨勭浉鍏蟲э紝Y琛ㄧず鏂囨湰鍜屼富棰樼殑鐩稿叧鎬э紝B琛ㄧず璇嶇被鍜屼富棰樼殑鐩稿叧鎬э紝鍏朵腑B瀵硅綰夸笂鐨勫厓绱犲緢澶氬肩浉瀵瑰叾浠栫殑闈炲父灝忥紝鎴栬呬負闆訛紝鍙互鐪佺暐銆傚鍏寵仈鐭╅樀A榪涜涓嬈″寮傚煎垎瑙o紝灝卞彲浠ュ悓鏃跺畬鎴愯繎涔夎瘝鍒嗙被鍜屾枃绔犵殑鍒嗙被錛屽悓鏃惰兘寰楀埌姣忎釜涓婚鍜屾瘡涓瘝涔夌被涔嬮棿鐨勭浉鍏蟲э紝榪欎釜緇撴灉闈炲父婕備寒銆?
38.    淇℃伅鎸囩汗銆傚鏋滆兘澶熸壘鍒頒竴縐嶅嚱鏁幫紝灝?000浜跨綉鍧闅忓嵆鍦版槧灝勫埌128浣嶄簩榪涘埗錛屼篃灝辨槸16瀛楄妭鐨勬暣鏁扮┖闂達紝灝辯О榪?6瀛楄妭鐨勯殢鏈烘暟鍋氳緗戝潃鐨勪俊鎭寚綰廣備俊鎭寚綰瑰彲浠ョ悊瑙d負灝嗕竴孌典俊鎭槧灝勫埌涓涓緇翠簩榪涘埗絀洪棿涓殑涓涓偣錛屽彧瑕佽繖涓殢鍗沖嚱鏁板仛鐨勫ソ錛岄偅涔堜笉鍚屼俊鎭搴旂殑鐐逛笉浼氶噸鍚堬紝鍥犳榪欎釜浜岃繘鍒剁殑鏁板瓧灝卞彉鎴愪簡鍘熸潵淇℃伅鎵鍏鋒湁鐨勭嫭涓鏃犱簩鐨勬寚綰廣?
39.    鍒ゆ柇涓や釜闆嗗悎鏄惁鐩稿悓錛屾渶絎ㄧ殑鏂規硶鏄繖涓泦鍚堜腑鐨勫厓绱犱竴涓姣旇緝錛屽鏉傚害O(squareN)錛岀◢濂界殑鏄皢鍏冪礌鎺掑簭鍚庨『搴忔瘮杈冿紝澶嶆潅搴(NlogN)錛屾渶瀹岀編鐨勬柟娉曟槸璁$畻榪欎袱涓泦鍚堢殑鎸囩汗錛岀劧鍚庣洿鎺ヨ繘琛屾瘮杈冿紝璁$畻澶嶆潅搴(N)銆?
40.    浼殢鏈烘暟浜х敓鍣ㄧ畻娉曪紙Pseudo-Random Number Generator錛孭RNG錛夛紝榪欐槸浜х敓淇℃伅鎸囩汗鐨勫叧閿畻娉曪紝閫氳繃浠栧彲浠ュ皢浠繪剰闀跨殑鏁存暟杞崲鎴愮壒瀹氶暱搴︾殑浼殢鏈烘暟銆傛渶鏃╃殑PRNG鏄皢涓涓暟鐨勫鉤鏂規帎澶村幓灝懼彇涓棿錛屽綋鐒惰繖縐嶆柟娉曚笉鏄緢闅忓嵆錛岀幇鍦ㄥ父鐢ㄧ殑鏄媯棆杞畻娉曪紙Mersenne Twister錛夈?
41.    鍦ㄤ簰鑱旂綉涓婂姞瀵嗚浣跨敤鍩轟簬鍔犲瘑鐨勪吉闅忔満鏁頒駭鐢熷櫒錛圕ryptography Secure Pseudo-Random Number Generator錛孋SPRNG錛夛紝甯哥敤鐨勭畻娉曟湁MD5鎴栬匰HA-1絳夋爣鍑嗭紝鍙互灝嗕笉瀹氶暱鐨勪俊鎭彉鎴愬畾闀跨殑128浣嶆垨鑰?60浣嶄簩榪涘埗闅忔満鏁般?
42.    鏈澶х喌妯″瀷錛圡aximum Entropy錛夌殑鍘熺悊灝辨槸淇濈暀鍏ㄩ儴鐨勪笉紜畾鎬э紝灝嗛闄╅檷鍒版渶灝忋傛渶澶х喌鍘熺悊鎸囧嚭錛岄渶瑕佸涓涓殢鏈轟簨浠剁殑姒傜巼鍒嗗竷榪涜棰勬祴鏃訛紝鎴戜滑鐨勯嫻嬪簲褰撴弧瓚沖叏閮ㄥ凡鐭ョ殑鏉′歡錛岃屽鏈煡鐨勬儏鍐典笉瑕佸仛浠諱綍涓昏鍋囪銆傚湪榪欑鎯呭喌涓嬶紝姒傜巼鍒嗗竷鏈鍧囧寑錛岄嫻嬬殑椋庨櫓鏈灝忋侷.Csiszar璇佹槑錛屽浠諱綍涓緇勪笉鑷浉鐭涚浘鐨勪俊鎭紝榪欎釜鏈澶х喌妯″瀷涓嶄粎瀛樺湪錛岃屼笖鏄敮涓鐨勶紝姝ゅ錛屼粬浠兘鏈夊悓涓涓潪甯哥畝鍗曠殑褰㈠紡-鎸囨暟鍑芥暟銆?
43.    閫氱敤榪唬綆楁硶錛圙eneralized Iterative Scaling錛孏IS錛夋槸鏈鍘熷鐨勬渶澶х喌妯″瀷鐨勮緇冩柟娉曘?.鍋囧畾絎浂嬈¤凱浠g殑鍒濆妯″瀷涓虹瓑姒傜巼鐨勫潎鍖鍒嗗竷銆?.鐢ㄧN嬈¤凱浠g殑妯″瀷鏉ヤ及綆楁瘡縐嶄俊鎭壒寰佸湪璁粌鏁版嵁涓殑鍒嗗竷銆傚鏋滆秴榪囦簡瀹為檯鐨勶紝灝辨妸鐩稿簲鐨勬ā鍨嬪弬鏁板彉灝忥紝鍙嶄箣鍙樺ぇ銆?.閲嶅姝ラ2鐩磋嚦鏀舵暃銆傝繖鏄竴縐嶅吀鍨嬬殑鏈熸湜鍊兼渶澶у寲錛圗xpectation Maximization錛孍M錛夌畻娉曘侷IS(Improved Iterative Scaling)姣擥IS緙╃煭浜嗕竴鍒頒袱涓暟閲忕駭銆?
44.    甯冮殕榪囨護鍣ㄥ疄闄呬笂鏄竴涓緢闀跨殑浜岃繘鍒跺悜閲忓拰涓緋誨垪闅忔満鏄犲皠鐨勫嚱鏁般?
45.    璐濆彾鏂綉緇滀粠鏁板鐨勫眰闈㈣鏄竴涓姞鏉冪殑鏈夊悜鍥撅紝鏄┈灝旂澶摼鐨勬墿灞曪紝鑰屼粠鐭ヨ瘑璁虹殑灞傞潰鐪嬶紝璐濆彾鏂綉緇滃厠鏈嶄簡椹皵縐戝か閭g鏈烘鐨勭嚎鎬х殑綰︽潫錛屽畠鍙互鎶婁換浣曟湁鍏寵仈鐨勪簨浠剁粺涓鍒板畠鐨勬鏋朵笅闈€傚湪緗戠粶涓紝鍋囧畾椹皵縐戝か鍋囪鎴愮珛錛屽嵆姣忎竴涓姸鎬佸彧涓庡拰瀹冪洿鎺ョ浉榪炵殑鐘舵佹湁鍏籌紝鑰屽拰浠栭棿鎺ョ浉榪炵殑鐘舵佹病鏈夌洿鎺ュ叧緋伙紝閭d箞瀹冨氨鏄礉鍙舵柉緗戠粶銆傚湪緗戠粶涓瘡涓妭鐐規鐜囩殑璁$畻錛岄兘鍙互鐢ㄨ礉鍙舵柉鍏紡鏉ヨ繘琛岋紝璐濆彾鏂綉緇滀篃鍥犳寰楀悕銆傜敱浜庣綉緇滅殑姣忎釜寮ч兘鏈変竴涓彲淇″害錛岃礉鍙舵柉緗戠粶涔熻縐頒綔淇″康緗戠粶錛圔elief Networks錛夈?
46.    鏉′歡闅忔満鍦烘槸璁$畻鑱斿悎姒傜巼鍒嗗竷鐨勬湁鏁堟ā鍨嬨傚湪涓涓殣鍚┈灝旂澶ā鍨嬩腑錛屼互x1,x2,...,xn琛ㄧず瑙傛祴鍊煎簭鍒楋紝浠1,y2,...,yn琛ㄧず闅愬惈鐨勭姸鎬佸簭鍒楋紝閭d箞xi鍙彇鍐充簬浜х敓瀹冧滑鐨勭姸鎬亂i,鍜屽墠鍚庣殑鐘舵亂i-1鍜寉i+1閮芥棤鍏熾傛樉鐒跺緢澶氬簲鐢ㄩ噷瑙傚療鍊紉i鍙兘鍜屽墠鍚庣殑鐘舵侀兘鏈夊叧錛屽鏋滄妸xi鍜寉i-1,yi,yi+1閮借冭檻榪涙潵錛岃繖鏍風殑妯″瀷灝辨槸鏉′歡闅忔満鍦恒傚畠鏄竴縐嶇壒孌婄殑姒傜巼鍥炬ā鍨嬶紙Probablistic Graph Model錛夛紝瀹冪殑鐗規畩鎬у湪浜庯紝鍙橀噺涔嬮棿瑕侀伒瀹堥┈灝旂澶亣璁撅紝鍗蟲瘡涓姸鎬佺殑杞Щ姒傜巼鍙彇鍐充簬鐩擱偦鐨勭姸鎬侊紝榪欎竴鐐瑰拰鍙︿竴縐嶆鐜囧浘妯″瀷璐濆彾鏂綉緇滅浉鍚岋紝瀹冧滑鐨勪笉鍚屼箣澶勫湪浜庢潯浠墮殢鏈哄満鏄棤鍚戝浘錛岃岃礉鍙舵柉緗戠粶鏄湁鍚戝浘銆?
47.    緇寸壒姣旂畻娉曪紙Viterbi Algoritm錛夋槸涓涓壒孌婁絾搴旂敤鏈騫跨殑鍔ㄦ佽鍒掔畻娉曪紝鍒╃敤鍔ㄦ佽鍒掞紝鍙互瑙e喅浠諱綍涓涓浘涓殑鏈鐭礬寰勯棶棰樸傚畠涔嬫墍浠ラ噸瑕侊紝鏄洜涓哄嚒鏄嬌鐢ㄩ殣鍚┈灝旂澶ā鍨嬫弿榪扮殑闂閮藉彲浠ョ敤瀹冩潵瑙g爜銆?.浠庣偣S鍑哄彂錛屽浜庣涓涓姸鎬亁1鐨勫悇涓妭鐐癸紝涓嶅Θ鍋囧畾鏈塶1涓紝璁$畻鍑篠鍒頒粬浠殑璺濈d(S,x1i)錛屽叾涓瓁1i浠h〃浠繪剰鐘舵?鐨勮妭鐐廣傚洜涓哄彧鏈変竴姝ワ紝鎵浠ヨ繖浜涜窛紱婚兘鏄疭鍒頒粬浠悇鑷殑鏈鐭窛紱匯?.瀵逛簬絎簩涓姸鎬亁2鐨勬墍鏈夎妭鐐癸紝瑕佽綆楀嚭浠嶴鍒頒粬浠殑鏈鐭窛紱匯俤(S,x2i)=min_I=1,n1_d(S,x1j)+d(x1j,x2i)錛岀敱浜巎鏈塶1縐嶅彲鑳芥э紝闇瑕佷竴涓璁$畻錛岀劧鍚庢壘鍒版渶灝忓箋傝繖鏍峰浜庣浜屼釜鐘舵佺殑姣忎釜鑺傜偣錛岄渶瑕乶1嬈′箻娉曡綆椼傚亣瀹氳繖涓姸鎬佹湁n2涓妭鐐癸紝鎶奡榪欎簺鑺傜偣鐨勮窛紱婚兘綆椾竴閬嶏紝灝辨湁O(n1*n2)嬈¤繍綆椼?.鎸夌収涓婅堪鏂規硶浠庣浜屼釜鐘舵佽蛋鍒扮涓変釜鐘舵佷竴鐩磋蛋鍒版渶鍚庝竴涓姸鎬侊紝榪欐牱灝卞緱鍒版暣涓綉緇滀粠澶村埌灝劇殑鏈鐭礬寰勩?
48.    鎵╅浼犺緭錛圫pread-Spectrum Transmission錛夊拰鍥哄畾棰戠巼鐨勪紶杈撶浉姣旓紝鏈変笁鐐規槑鏄劇殑濂藉錛?.鎶楀共鎵拌兘鍔涘己銆?.淇″彿鑳介噺闈炲父浣庯紝寰堥毦鑾峰彇銆?.鎵╅浼犺緭鍒╃敤甯﹀鏇村厖鍒嗐?
49.    Google閽堝浜戣綆楃粰鍑虹殑瑙e喅宸ュ叿鏄疢apReduce錛屽叾鏍規湰鍘熺悊灝辨槸璁$畻鏈虹畻娉曚笂甯歌鐨勫垎娌葷畻娉曪紙Divide-and-Conquer錛夈傚皢涓涓ぇ浠誨姟鎷嗗垎鎴愬皬鐨勫瓙浠誨姟錛屽茍瀹屾垚瀛愪換鍔$殑璁$畻錛岃繖涓繃紼嬪彨Map錛屽皢涓棿緇撴灉鍚堝茍鎴愭渶緇堢粨鏋滐紝榪欎釜榪囩▼鍙玆educe銆?
50.    閫昏緫鍥炲綊妯″瀷錛圠ogistic Regression錛夋槸灝嗕竴涓簨浠跺嚭鐜扮殑姒傜巼閫傚簲鍒頒竴鏉¢昏緫鏇茬嚎錛圠ogistic Curve錛変笂銆傚吀鍨嬬殑閫昏緫鍥炲綊鍑芥暟錛歠(z)=e`z/e`z+1=1/1+e`-z銆傞昏緫鏇茬嚎鏄竴鏉鍨嬫洸綰匡紝鍏剁壒鐐規槸寮濮嬪彉鍖栧揩錛岄愭笎鍑忔參錛屾渶鍚庨ケ鍜屻傞昏緫鑷洖褰掔殑濂藉鏄畠鐨勫彉閲忚寖鍥翠粠璐熸棤絀峰埌姝f棤絀鳳紝鑰屽煎煙鑼冨洿闄愬埗鍦?-1涔嬮棿銆傚洜涓哄煎煙鐨勮寖鍥村湪0-1涔嬮棿錛岃繖鏍烽昏緫鍥炲綊鍑芥暟灝卞彲浠ュ拰涓涓鐜囧垎鍒仈緋昏搗鏉ヤ簡銆傚洜涓鴻嚜鍙橀噺鑼冨洿鍦ㄨ礋鏃犵┓鍒版鏃犵┓涔嬮棿錛屽畠灝卞彲浠ユ妸淇″彿緇勫悎璧鋒潵錛屼笉璁虹粍鍚堟垚澶氬ぇ鎴栬呭灝忕殑鍊鹼紝鏈鍚庝緷鐒惰兘寰楀埌涓涓鐜囧垎甯冦?
51.    鏈熸湜鏈澶у寲綆楁硶錛圗xpectation Maximization Algorithm錛夛紝鏍規嵁鐜版湁鐨勬ā鍨嬶紝璁$畻鍚勪釜瑙傛祴鏁版嵁杈撳叆鍒版ā鍨嬩腑鐨勮綆楃粨鏋滐紝榪欎釜榪囩▼縐頒負鏈熸湜鍊艱綆楄繃紼嬶紙Expectation錛夛紝鎴朎榪囩▼錛涙帴涓嬫潵錛岄噸鏂拌綆楁ā鍨嬪弬鏁幫紝浠ユ渶澶у寲鏈熸湜鍊鹼紝榪欎釜榪囩▼縐頒負鏈澶у寲鐨勮繃紼嬶紙Maximization錛夛紝鎴朚榪囩▼銆傝繖涓綾葷畻娉曢兘縐頒負EM綆楁硶錛屾瘮濡傞殣鍚┈灝旂澶ā鍨嬬殑璁粌鏂規硶Baum-Welch綆楁硶錛屼互鍙婃渶澶х喌妯″瀷鐨勮緇冩柟娉旼IS綆楁硶銆?br />
鏈枃杞嚜錛?a href="http://www.shnenglu.com/humanchao">http://www.shnenglu.com/humanchao


]]>濡備綍鍐欏ソUI紼嬪簭 http://www.shnenglu.com/wanghaiguang/archive/2012/09/05/189522.html鐜嬫搗鍏?/dc:creator>鐜嬫搗鍏?/author>Wed, 05 Sep 2012 02:45:00 GMThttp://www.shnenglu.com/wanghaiguang/archive/2012/09/05/189522.htmlhttp://www.shnenglu.com/wanghaiguang/comments/189522.htmlhttp://www.shnenglu.com/wanghaiguang/archive/2012/09/05/189522.html#Feedback0http://www.shnenglu.com/wanghaiguang/comments/commentRss/189522.htmlhttp://www.shnenglu.com/wanghaiguang/services/trackbacks/189522.html鍦╓indows騫沖彴鍋氬紑鍙戣偗瀹氫細鎺ヨЕ鍒癠I紼嬪簭鐨勭紪鍐欙紝浠FC鐨刄I寮鍙戜負渚嬶紝鍙互寮鍙戝崟鏂囨。錛屽鏂囨。錛屽璇濇絳夊艦寮忕殑搴旂敤銆傚啓涓涓猆I紼嬪簭瀹規槗錛屽啓濂藉嵈涓嶆槸涓浠剁畝鍗曠殑浜嬫儏銆傚湪鏁翠釜浠g爜緇撴瀯鐨勬竻鏅版т笌鍙淮鎶ゆф柟闈㈤渶瑕佸鍔犳敞鎰忋傚啓濂経I紼嬪簭闇姹傛敞鎰忎互涓嬪嚑鐐癸細

 

1銆佸洿緇曟暟鎹紪紼嬩笌涓嶆槸鍥寸粫UI緙栫▼

 

褰撴垜浠嬁鍒伴渶姹傛渶鍏堟帴瑙﹀埌鐨勫氨鏄疷I鐨勮璁★紝涔熻鏄編宸ョ敾鐨勶紝涔熻鏄璁¤崏鍥俱傚伐紼嬪笀鍦ㄥ叿浣撹璁$殑鏃跺欏鏄撳彈UI鐨勫獎鍝嶏紝鎴栬呭共鑴嗕粠UI寮濮嬬紪紼嬨?/span>

 

榪欐槸涓涓敊璇殑緙栫▼涔犳儻錛屾棤璁篣I濡備綍灞曠幇涓庝氦浜掞紝鏈緇堥兘搴旇鍥寸粫鏁版嵁緙栫▼銆傛嬁鍒伴渶姹傚悗錛屽簲璇ュ厛鎬濊冨拰鎺ㄦ暡鏁版嵁鐨勮璁′笌嫻佽漿錛孶I涓嶈繃灝辨槸鏁版嵁鐨勪竴縐嶅睍鐜板艦寮忚屽凡銆?/span>

 

2銆佸仛濂経I涓庨昏緫鐨勮В鑰?/span>

 

UI鐨勭紪紼嬩細娑夊強鍒拌澶氭帶浠剁殑鎿嶄綔錛屾秷鎭殑澶勭悊錛屼笉鐭ヤ笉瑙夛紝涓涓猆I綾葷殑浠g爜浼氳秺鍐欒秺澶э紝浠ヨ嚦浜庝竴孌墊椂闂翠互鍚庯紝嫻忚鍜屾⒊鐞嗛兘浼氬彉寰椾笉澶柟渚褲?/span>

 

鍦║I綾婚噷錛岄櫎浜嗕笌UI鏈韓鐨勬搷浣滄湁鍏崇殑浠g爜浠ュ錛屼換浣曢昏緫浠g爜閮藉簲璇ヤ笌姝よВ鑰︼紝騫舵牴鎹叿浣撴儏鍐佃繘琛屽皝瑁呰皟鐢ㄣ傚鏋滀竴涓帶浠跺叧鑱斾簡澶鏁版嵁鎿嶄綔錛屽簲璇ユ妸榪欎簺鎿嶄綔灝佽鍒版帶浠剁殑緇ф壙綾諱腑錛屾妸涓綾諱唬鐮佽繘琛岄泦涓鐞嗗拰緇存姢銆?/span>

 

涓婅堪闂錛屽湪紼嬪簭鍐欎綔鐨勫垵鏈熻繕涓嶅お鏄庢樉錛岄殢鐫浠g爜閫愭笎鑶ㄨ儉錛屼細瓚婁細瓚婅浜洪毦浠ュ繊鍙椼?/span>

 

3銆佹暟鎹崟鍚戜緷璧栵紝鍗曞悜鏇存柊

 

UI鍥寸粫鐨勬暟鎹繘琛屽睍鐜頒笌鏇存柊錛屽湪榪欎釜榪囩▼涓紝鎵浠ュ鏁版嵁鐨勬搷浣滃簲璇ヨ繘琛屽皝瑁咃紝鑰屼笉鏄暎钀藉湪UI紼嬪簭鍦ㄥ悇涓钀斤紝鏁版嵁鐨勬洿鏂般佽幏鍙栧拰UI浼犻掓秷鎭椂錛屽簲璇ュ崟鍚戞搷浣滐紝濡傛灉鍑虹幇寰幆澶勭悊鐨勬儏鍐碉紝鍦ㄤ互鍚庣淮鎶よ皟璇曠殑BUG鐨勮繃紼嬩腑浼氬彉寰楁瘮杈冨洶闅撅紝瀵艱嚧緇存姢鏁堢巼涓嬮檷銆?/span>

 

鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?/span>http://www.shnenglu.com/humanchao



]]>
浼樼紼嬪簭鍛樼殑鐗瑰緛 http://www.shnenglu.com/wanghaiguang/archive/2012/07/17/183832.html鐜嬫搗鍏?/dc:creator>鐜嬫搗鍏?/author>Tue, 17 Jul 2012 00:13:00 GMThttp://www.shnenglu.com/wanghaiguang/archive/2012/07/17/183832.htmlhttp://www.shnenglu.com/wanghaiguang/comments/183832.htmlhttp://www.shnenglu.com/wanghaiguang/archive/2012/07/17/183832.html#Feedback1http://www.shnenglu.com/wanghaiguang/comments/commentRss/183832.htmlhttp://www.shnenglu.com/wanghaiguang/services/trackbacks/183832.html浠涔堟牱鐨勭▼搴忓憳縐板緱涓婁紭縐錛屾牴鎹垜鎵鐪嬪埌錛屾湁濡備笅浣撲細錛?

1銆佷笉鎰挎剰灝嗗氨鐨勪漢

紼嬪簭璁捐宸ヤ綔鏄竴欏瑰湴鍦伴亾閬撶殑鑴戝姏鍔沖姩錛屾妸宸ヤ綔鍋氬緱寰堝ソ鍜屽仛鐨勫緢宸線寰鍙湪宸ヤ綔涓殑涓涓皬灝忕殑緇嗚妭錛屾垜鍙戠幇鎴戣韓杈逛紭縐鐨勭▼搴忓憳閮戒笉澶枩嬈㈠皢灝憋紝濮嬬粓鎶婅嚜宸辯殑璁$畻鏈哄拰鑷繁鐨勫紑鍙戠幆澧冭皟鏁村埌鏈浣崇姸鎬侊紝鍘熸潵甯︽垜鐨勮佸憳宸ョ敋鑷充細鑷繁鍐欎竴浜涘皬宸ュ叿錛屾潵鎻愰珮宸ヤ綔鏁堢巼銆?/span>

2銆佷笉鍠滄铔共

鑴戝姏鍔沖姩涓庝綋鍔涘姵鍔ㄤ笉鍚岋紝寰堝鏃跺欏緢闅鵑氳繃綆鍗曠殑閲忕殑縐瘡杈懼埌鐩殑錛屽挨鍏舵槸澶勭悊涓浜涢毦棰樼殑鏃跺欍備竴鍛崇殑寮鴻皟铔共錛屽姞鐝嚑涔庡ぉ鐢熶笌楂樻墜鏃犵紭銆傛病鏈夋濊礬鐨勬椂鍊欙紝鎹釜鐜錛屼篃璁哥瓟妗堝氨鍦ㄦ槑澶╀笂鐝殑璺笂鎯寵搗銆?/span>

3銆佹効鎰忔濊冦佷笓娉ㄦ敼榪?/strong>

紼嬪簭鍛樹笌鍏朵粬鍔沖姩鑰呯浉浼鹼紝鐔熺粌浜嗕互鍚庨兘浼氬艦鎴愭儻鎬ф濈淮錛屼細涓嶈嚜瑙夌殑鐢ㄨ嚜宸變範鎯殑鏂瑰紡瑙e喅闂錛屼絾闂鐨勫艦寮忎笌鏈川鎬諱細鍙樺寲錛屽彧鏈変笉鏂殑鏀硅繘鎵嶈兘浣垮伐浣滄晥鐜囦笉鏂彁楂樸傝屾妸鑴戝姏鍔沖姩鍙樻垚浣撳姏鍔沖姩鐨勭幇璞″湪瀹為檯宸ヤ綔涓瘮姣旂殕鏄?/span>

4銆佽壇濂界殑鍩虹鍜屼笉鏂殑瀛︿範

鑹ソ鐨勫熀紜涓庝笉鏂殑瀛︿範鏄ぉ鐢熺殑涓瀵瑰鐢熷厔寮燂紝鍥犱負鍩虹濂芥墍浠ュ鐨勫揩錛屽洜涓哄寰楀揩錛屾墍浠ュ熀鏈姛濂姐傝壇濂藉涔犱範鎯笉鏄笉鍋滅殑綆鍗曡拷韙柊鎶鏈紝涓鏂歸潰鏄簡瑙f柊鎶鏈紝鍙︿竴鏂歸潰闇瑕佷笉鏂殑寮ヨˉ鎬濈淮鐩插尯錛屽涔犲彲浠ユ湁寰堝縐嶇姸鎬侊紝鏈変竴縐嶆槸闂諱竴鑰岀煡涓錛屾妧涔燂紝鏈変竴縐嶆槸闂諱竴鑰岀煡涓夛紝鏈篃錛屾湁涓縐嶆槸闂諱竴鑰岀煡鍗侊紝閬撲篃銆?/span>

5銆佺洿鎺ュ垏鍏ラ棶棰樼殑鑳藉姏

鍦ㄨВ鍐充竴涓棶棰樼殑鏃跺欙紝鏈変簺浜烘繪槸鑳藉鐩存帴鍒囧叆闂鏍稿績錛岃屾湁浜涗漢鎬繪槸鍠滄鍏蟲敞杈圭紭闂銆傜洿鍏ヤ富棰樻槸涓縐嶆牳蹇冭兘鍔涳紝闇瑕佹濊冿紝瀹炶返錛屾敼榪涳紝縐瘡錛屾彁楂橈紝鍛ㄨ屽浣匡紝铻烘棆涓婂崌銆傚彟澶栨垜瑙夊緱榪欎笌鎬濈淮鏂瑰紡涓庣煡璇嗛潰鍏崇郴寰堝ぇ錛屽娑夌寧涓浜涢鍩熸病鏈夊潖澶勩?/span>

***鑻辮***錛氬懙鍛碉紝瀵癸紝榪樻槸鑻辮錛屾祦鍒╃殑鍚璇誨啓銆?/span>


鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?/span>http://www.shnenglu.com/humanchao



]]>鏂█寮忕紪紼?/title><link>http://www.shnenglu.com/wanghaiguang/archive/2012/04/12/171069.html</link><dc:creator>鐜嬫搗鍏?/dc:creator><author>鐜嬫搗鍏?/author><pubDate>Thu, 12 Apr 2012 04:58:00 GMT</pubDate><guid>http://www.shnenglu.com/wanghaiguang/archive/2012/04/12/171069.html</guid><wfw:comment>http://www.shnenglu.com/wanghaiguang/comments/171069.html</wfw:comment><comments>http://www.shnenglu.com/wanghaiguang/archive/2012/04/12/171069.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/wanghaiguang/comments/commentRss/171069.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/wanghaiguang/services/trackbacks/171069.html</trackback:ping><description><![CDATA[<span style="font-size: 14pt">鏈枃杞嚜錛?a href="http://www.shnenglu.com/humanchao/archive/2008/08/19/59309.html">http://www.shnenglu.com/humanchao/archive/2008/08/19/59309.html</a><br /><br />鎴戜滑鍏堢湅涓涓嚱鏁幫細鍑芥暟鐨勫姛鑳藉畬鎴?~10鐨勫姞娉曘?br /><br /> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">int</span><span style="color: #000000"> Add1to10(</span><span style="color: #0000ff">int</span><span style="color: #000000"> a, </span><span style="color: #0000ff">int</span><span style="color: #000000"> b)<br />{<br />   </span><span style="color: #0000ff">return</span><span style="color: #000000"> a </span><span style="color: #000000">+</span><span style="color: #000000">b;<br />}<br /></span></div><br />浣嗘槸涓鑸垜浠繕闇瑕佸姞涓婂嚑鏉′唬鐮侊細<br /><br /> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">int</span><span style="color: #000000"> Add1to10(</span><span style="color: #0000ff">int</span><span style="color: #000000"> a, </span><span style="color: #0000ff">int</span><span style="color: #000000"> b)<br />{<br />    assert(a </span><span style="color: #000000">>=</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000"> </span><span style="color: #000000">&&</span><span style="color: #000000"> a </span><span style="color: #000000"><=</span><span style="color: #000000"> </span><span style="color: #000000">10</span><span style="color: #000000">);<br />    assert(b </span><span style="color: #000000">>=</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000"> </span><span style="color: #000000">&&</span><span style="color: #000000"> b </span><span style="color: #000000"><</span><span style="color: #000000"> </span><span style="color: #000000">=</span><span style="color: #000000">10</span><span style="color: #000000">);<br /><br />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> ( a </span><span style="color: #000000"><</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000"> </span><span style="color: #000000">||</span><span style="color: #000000"> a </span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000">10</span><span style="color: #000000"> </span><span style="color: #000000">||</span><span style="color: #000000"> b </span><span style="color: #000000"><</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000"> </span><span style="color: #000000">||</span><span style="color: #000000"> b </span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000">10</span><span style="color: #000000">)<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br /><br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> a </span><span style="color: #000000">+</span><span style="color: #000000">b;<br />}</span></div><br />鍔犱笂涓婇潰鍑犳潯浠g爜鐨勪綔鐢ㄦ槸媯鏌ュ嚱鏁扮殑杈撳叆鍙傛暟錛屽綋鍙傛暟涓嶆紜殑鏃跺欎笉鍏夎鍦ㄨ繑鍥炲間笂寰楀埌浣撶幇錛岃屼笖浼氳Е鍙慳ssert鏂█錛屾彁閱掓垜浠弬鏁版湁璇?br /><br />鏂█寮忕紪紼嬩綋鐜頒竴涓紪紼嬬殑鎬濇兂錛屽湪鎴戜滑鐨勭▼搴忔墽琛屽亸紱婚鎯崇殑璺嚎鏃剁粰鍑烘彁閱掋傚綋紼嬪簭鎵ц鍋忕棰勬兂鐨勮礬綰挎椂涓鑸細鍑虹幇涓ょ鍙兘錛氬嵆鏂█浠ヤ笂鐨勭▼搴忔病鏈夌悊瑙d笅闈㈢▼搴忕殑璋冪敤鏉′歡銆佹垨鏂█浠ヤ笅鐨勭▼搴忛渶瑕佹帴鍙楁洿涓哄娉涜緭鍏ユ潯浠躲備互涓嬪垎鍒璁轟慨鏀規柟娉曪細<br /><br />1銆佸鏋滃嚱鏁扮殑杈撳叆鍙傛暟鏄垜浠紪紼嬬殑涓涓枏婕忥紝鎴戜滑璁や負鏍規湰灝變笉搴旇鍑虹幇鎴栦駭鐢熻繖鏍風殑鍊鹼紝閭f垜浠簲璇ヤ慨鏀硅皟鐢ㄥ嚱鏁板鐨勪唬鐮侊紝閬垮厤闈為鎯崇殑鍊煎嚭鐜般?br /><br />2銆佸鏋滄棤娉曢伩鍏嶅嚭鐜版垨鑰呬駭鐢熶竴涓潪娉曡緭鍏ュ鹼紝閭f垜浠涔堝湪鍑芥暟璋冪敤澶勫姞鍏ュ垽鏂紝浜х敓絎﹀悎鏉′歡鐨勫兼椂璋冪敤鍑芥暟錛屼笉絎﹀悎鍙傛暟鏉′歡else澶勭悊錛涜涔堜慨鏀瑰嚱鏁幫紝浣垮嚱鏁板彲浠ユ帴鍙楁洿涓哄娉涜緭鍏ユ潯浠訛紝騫惰皟鏁存柇璦鍐呭鍜屽弬鏁板垽鏂昏緫銆?br /><br />鏂█涓嶄粎鍙互鍑虹幇鍦ㄥ嚱鏁扮殑鍙傛暟媯鏌ョ殑鍦哄悎錛屼篃鍙互鍑虹幇鍦ㄥ叾浠栫殑涓婁笅鏂囪皟鐢ㄧ殑鍦哄悎銆傝屼笖瀹冭繕浼氶殢鐫紼嬪簭鐨勫紑鍙戣繘紼嬮愭笎鐨勫鍔犮佸垹闄ゅ拰璋冩暣銆傚畠鍙互楠岃瘉紼嬪簭鏄寜鐓ф垜浠鎯崇殑鎬濊礬鍦ㄦ墽琛岋紝褰撳嚭鐜版剰澶栨椂鍙婃椂鐨勭粰鍑烘彁閱掞紝鎻愰啋鎴戜滑淇紼嬪簭鎴栬呰嚜宸辯殑鎬濊礬銆?/span> <img src ="http://www.shnenglu.com/wanghaiguang/aggbug/171069.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/wanghaiguang/" target="_blank">鐜嬫搗鍏?/a> 2012-04-12 12:58 <a href="http://www.shnenglu.com/wanghaiguang/archive/2012/04/12/171069.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞琞鍐欏ソ浠g爜鐨?0涓瀵?http://www.shnenglu.com/wanghaiguang/archive/2012/04/09/170576.html鐜嬫搗鍏?/dc:creator>鐜嬫搗鍏?/author>Mon, 09 Apr 2012 05:36:00 GMThttp://www.shnenglu.com/wanghaiguang/archive/2012/04/09/170576.htmlhttp://www.shnenglu.com/wanghaiguang/comments/170576.htmlhttp://www.shnenglu.com/wanghaiguang/archive/2012/04/09/170576.html#Feedback0http://www.shnenglu.com/wanghaiguang/comments/commentRss/170576.htmlhttp://www.shnenglu.com/wanghaiguang/services/trackbacks/170576.html[杞琞鍐欏ソ浠g爜鐨?0涓瀵?鏀惰棌
浣滆咃細椋炲摜 錛堢櫨搴︼級

鍏堢粰澶у鐪嬩竴孌墊嵁璇存槸鍙蹭笂鏈寮虹殑紼嬪簭錛?br />e100 33 f6 bf 0 20 b5 10 f3 a5 8c c8 5 0 2 50 68 13 1 cb e 1f be a1 1 bf 0 1
e11b 6 57 b8 11 1 bb 21 13 89 7 4b 4b 48 79 f9 ad 86 e0 8b c8 bd ff ff e8 20
e134 0 3d 0 1 74 1a 7f 3 aa eb f3 2d ff 0 50 e8 f 0 5a f7 d8 8b d8 26 8a 1 aa
e14f 4a 75 f9 eb de cb 57 bb 21 13 8b c1 40 f7 27 f7 f5 8b fb ba 11 1 4f 4f 4a
e168 39 5 7f f9 52 8b c5 f7 25 f7 37 2b c8 95 f7 65 2 f7 37 95 2b e8 fe e fe
e181 10 79 6 c6 6 fe 10 7 46 d0 14 d1 d1 d1 e5 79 ec 5a b8 11 1 ff 7 4b 4b 48
e19b 3b d0 75 f7 5f c3 83 f7 83 a6 5d 59 82 cd b2 8 42 46 9 57 a9 c5 ca aa 1b
.............................................................................


榪欐紼嬪簭鏄?997騫翠笘鐣岀▼搴忚璁″ぇ璧涚殑涓絳夊浣滃搧鐨勯儴鍒嗕唬鐮侊紙瀹屾暣鐨勪唬鐮佷笅杞斤紝鎶婁唬鐮佸鍒剁矘璐村埌cmd鐨刣ebug鍛戒護涓紝鍥炶濺鐪嬪埌鏁堟灉錛夈傝繖涓▼搴忚繍琛屽悗灝嗘槸涓涓?D鐨勪笖浼撮殢鐫闊充箰鐨勫姩鐢匯傞渿鎾煎惂錛?br />鏄笉鏄粠浜嬭蔣浠跺紑鍙戠殑浜哄憳閮藉笇鏈涙垚涓鴻繖鏍風殑姝︽灄楂樻墜鍛紵鐒惰岀湡瑕佹槸鐢ㄨ繖鏍風殑楂樻墜鏉ヨ璁°佺紪鍐欐垜浠殑浜у搧浠g爜錛屾亹鎬曟煇涓澶╋紝鎴戜滑浠涔堥兘涓嶇敤騫蹭簡錛屽彧鑳戒漢鎵嬩竴鏈満鍣ㄤ唬鐮侊紝涓鍙ヤ竴鍙ヨ繘琛岀炕璇戜簡錛涢偅涔堝浜庤蔣浠朵駭鍝佸紑鍙戣岃█錛屽浣曞啓濂戒唬鐮佸憿錛熶竴嫻佺殑杞歡浜у搧鐨勪唬鐮佸叿澶囧摢浜涚壒寰佸憿錛?/p>


 

涓嫻佷唬鐮佺殑鐗瑰緛


1銆佺ǔ瀹氬彲闈狅紙Robustness錛?
浠g爜鍐欏嚭鏉ヤ互鍚庯紝涓瀹氳鑳藉榪愯寰楅潪甯稿ソ錛岄潪甯哥ǔ瀹氬彲闈犮傚湪鐜頒粖鐨処T琛屼笟錛岃蔣浠朵駭鍝侀兘鏄槸24*7錛屽嵆瑕佷繚璇佺郴緇熶竴澶?4灝忔椂錛屼竴鏄熸湡7澶╀腑閮藉彲浠ユ棤闂存柇鐨勬甯歌繍琛屻傛瘮濡傛垜浠櫨搴︾殑鎼滅儲寮曟搸緋葷粺錛屾瘮濡傛垜浠殑閫氫俊緋葷粺錛岀瓑絳夈傚埌浜嗕駭鍝佸紑鍙戝悗鏈燂紝澶ч儴鍒嗙殑鎴愭湰閮藉皢鎶曞叆鍒頒駭鍝佺ǔ瀹氭х殑鎻愰珮銆?

2銆佸彲緇存姢涓旂畝媧侊紙Maintainable and Simple Code錛?br />鍦ㄥ啓浠g爜鏃訛紝棣栧厛瑕佽冭檻鐨勬槸錛氬啓鍑烘潵鐨勪唬鐮佷笉浣嗚鑷繁鍙互璇繪噦錛岃屼笖鎴戜滑鐨勫悓浜嬨佹祴璇曞伐紼嬪笀閮藉彲鑳借淇敼榪欎簺浠g爜錛屽鍏惰繘琛屽鍑忋傚鏋滀唬鐮佸緢澶嶆潅錛屼笉瀹規槗璇繪噦錛屽紼嬪簭涓殑閫掑綊涓澶у爢銆佺▼搴忎笉鐭ヤ綍鏃舵垨浠庝綍鍦拌煩鍑猴紝鍒欎細浣跨▼搴忕殑鍙淮鎶ゆу拰綆媧佹ч檷浣庛傛墍浠ュ繀瑕佺殑娉ㄩ噴銆佺粺涓鐨勭紪紼嬭鑼冪瓑閮芥槸闈炲父閲嶈鐨勩?

3銆侀珮鏁堬紙Fast錛?br />鍦ㄨ蔣浠惰涓氫腑鏁堢巼鏄潪甯擱噸瑕佺殑錛屾瘮濡傛悳绱㈠紩鎿庛傛湁浜涜蔣浠剁殑鎼滅儲鏁堢巼灝變笉楂橈紝鎼滅儲榪囩▼鐗瑰埆緙撴參錛岃浜洪毦浠ユ帴鍙椼傚綋鐒惰繖閲岄潰鏈変竴涓甫瀹界殑闂錛屼絾鏄▼搴忔晥鐜囦笉楂樹篃鏄竴涓噸瑕佺殑鍘熷洜銆傝屽疄闄呬笂紼嬪簭鐨勬晥鐜囨彁楂橈紝鏈夋椂鍊欏緢綆鍗曪紝騫舵病鏈変粈涔堢縐樹箣澶勶紝濡備嬌鐢ㄦ暟緇勭儲寮曟椂鍊欙紝鍙互鐢ㄦ寚閽堟柟寮忚屼笉浣跨敤鏁扮粍涓嬫爣錛涙暟緇勭殑絀洪棿瀹氫箟搴旇瀹氫箟涓?鐨凬嬈″箓絳夌瓑銆?

4銆佺畝鐭紙Small錛?br />榪欐柟闈㈠ぇ瀹剁殑鎰熷彈鍙兘涓嶆槸寰堟繁錛屼絾鏄垜鐨勬劅鍙楁槸寰堟繁鐨勩傞厤緗繃PSTN紼嬫帶浜ゆ崲鏈恒佽礬鐢卞櫒銆乂oIP緗戝叧璁懼鐨勪漢閮界煡閬擄紝榪欎簺璁懼鐨勮蔣浠墮兘鏄粠PC鏈洪氳繃緗戝彛鎴栦覆鍙d笅杞藉埌榪欎簺璁懼鐨凢lash涓婏紙綾諱技PC鏈虹殑BIOS錛夊啀閫氳繃璁懼涓婄殑CPU鍚姩銆傚鏋滅▼搴忓啓鐨勫緢緗楀棪錛岄殢鐫鐗規т笉鏂鍔狅紝紼嬪簭瑙勬ā灝嗗彉澶х殑宸ㄥぇ錛孎lash絀洪棿鍛婃ャ佸唴瀛樺憡鎬ャ佷笅杞藉崌綰у彉鐨勪笉鍙繊鍙楋紝絳夌瓑錛屽甫鏉ョ殑灝辨槸鎴愭湰涓嶆柇澧炲姞錛屽埄娑︿笉鏂笅闄嶃?

5銆佸叡浜э紙Reusable錛?br />濡傛灉鍋氬ぇ鍨嬩駭鍝佸紑鍙戯紝紼嬪簭鐨勫叡浜т篃鏄潪甯擱噸瑕佺殑銆傛垜浠駭鍝佹湁閭d箞澶氬紑鍙戜漢鍛橈紝濡傛灉姣忎竴涓漢閮借嚜宸卞畾涔夊瓧絎︿覆銆侀摼琛ㄧ瓑鏁版嵁緇撴瀯錛岄偅涔堝紑鍙戞晥鐜囧氨浼氶檷浣庯紝鎴戜滑鐨勪駭鍝佹亹鎬曞埌浠婂ぉ涔熶笉鑳藉嚭鍙般傛垜鎵璇寸殑“鍏變韓”涓嶆槸鎸囧皢鍒漢鐨勪唬鐮佸鍒跺埌鑷繁鐨勪唬鐮佷腑錛岃屾槸鎸囩洿鎺ヨ皟鐢ㄥ埆浜虹殑浠g爜錛屾嬁鏉ュ嵆鍙敤銆傝繖涓鏂歸潰鍙互鍑忓皯浠g爜鐨勫啑浣欐э紝鍙︿竴鏂歸潰鍙互澧炲己浠g爜鐨勫彲緇存姢鎬с傚鏋滃埆浜虹殑浠g爜閲屾湁Bug錛屽彧闇淇敼浠栫殑浠g爜錛岃岃皟鐢ㄦ浠g爜鐨勭▼搴忎笉鐢ㄨ繘琛屼換浣曚慨鏀瑰氨鍙互杈懼埌鍚屾銆傝繖鍚屾椂瑕佹眰鎴戜滑鍦ㄨ璁$殑鏃跺欙紝濡備綍鑰冭檻緋葷粺鐨勫唴鑱氬拰鑰﹀悎鐨勯棶棰樸?

6銆佸彲嫻嬭瘯鎬э紙Testable錛?br />鎴戜滑鐨勪駭鍝佸紑鍙戦噷錛岄櫎浜嗚蔣浠跺紑鍙戜漢鍛橈紝榪樻湁涓閮ㄥ垎宸ョ▼甯堣礋璐h蔣浠舵祴璇曘傝蔣浠舵祴璇曚漢鍛樹細灝嗗紑鍙戜唬鐮佹嬁鏉ワ紝涓琛屼竴琛屽湴榪愯錛岀湅紼嬪簭榪愯鏄惁鏈夐敊銆傚鏋滆蔣浠跺紑鍙戜漢鍛樼殑浠g爜涓嶅彲嫻嬭瘯錛岄偅嫻嬭瘯宸ョ▼甯堝氨娌℃湁鍔炴硶榪涜宸ヤ綔銆傚洜姝ゅ彲嫻嬭瘯鎬у湪澶у瀷杞歡寮鍙戦噷鏄緢閲嶈鐨勪竴鐐廣傚彲嫻嬭瘯鎬ф湁鏃跺欎笌鍙淮鎶ゆф槸閬ョ浉鍛煎簲鐨勶紝涓涓叿鏈夊ソ鐨勫彲嫻嬭瘯鎬у拰鍙淮鎶ゆх殑浠g爜錛屾祴璇曚漢鍛樺彲浠ユ牴鎹紑鍙戞彁渚涚殑緇存姢鎵嬪唽銆乨ebug淇℃伅鎵嬪唽絳夊氨鍙互鍒ゆ柇鍑虹▼搴忓嚭閿欏湪鍝釜妯″潡銆?

7銆佸彲縐繪鎬э紙Portable錛?br />鍙Щ妞嶆ф槸鎸囩▼搴忓啓鍑烘潵浠ュ悗錛屼笉浠呭湪windows 2000閲屽彲浠ヨ繍琛岋紝鍦∟T/9X涓嬪彲浠ヨ繍琛岋紝鑰屼笖鍦↙inux鐢氳嚦Macintosh絳夌郴緇熶笅閮藉彲浠ヨ繍琛屻傛墍鏈夎繖浜涚壒鎬ч兘鏄竴嫻佷唬鐮佹墍鍏峰鐨勭壒鎬с備絾鏄叾涓湁浜涚壒鎬ф槸浼氭湁鍐茬獊鐨勩傛瘮濡傞珮鏁堟э紝紼嬪簭鍐欑殑鏁堢巼寰堥珮錛屽氨鍙兘鍙樺緱寰堝鏉傦紝鐗虹壊鐨勫氨鏄畝媧併傚ソ鐨勪唬鐮佽鍦ㄨ繖浜涚壒鎬т腑鍙栧緱騫寵 銆?

 

鍐欏ソ浠g爜鐨?0涓瀵?br />

1銆佺櫨瀹朵箣闀垮綊鎴戞墍鏈夛紙Follow Basic Coding Style錛?br />鍏跺疄鍐欎唬鐮佺殑鏂瑰紡鏈夊緢澶氾紝姣忎釜浜洪兘鏈夎嚜宸辯殑椋庢牸錛屼絾鏄紬澶氱殑椋庢牸涓繪湁涓浜涘叡鎬х殑銆佸熀鏈殑鍐欎唬鐮佺殑椋庢牸錛屽涓虹▼搴忓啓娉ㄩ噴銆佷唬鐮佸榻愶紝絳夌瓑銆傛槸涓嶆槸緙栫▼瑙勮寖錛熷灝辨槸緙栫▼瑙勮寖銆?

2銆佸彇涓ソ鍚嶅瓧錛圲se Naming Conventions錛?br />鍙栦釜濂界殑鍑芥暟鍚嶃佸彉閲忓悕錛屾渶濂芥寜鐓т竴瀹氱殑瑙勫垯璧峰悕銆傝繕鏄紪紼嬭鑼冦?

3銆佸噷娉㈠井姝ワ紝鏈繀鎽旇筏錛圗vil goto's?Maybe Not...錛?br />榪欓噷鎴戠敤“鍑屾嘗寰”鏉ュ艦瀹筭oto璇彞銆傞氬父錛実oto璇彞浣跨▼搴忚煩鏉ヨ煩鍘伙紝涓嶅鏄撹錛岃屼笖涓嶈兘浼樺寲錛屼絾鏄湪鏌愮鎯呭喌涓嬶紝goto璇彞鍙嶈屽彲浠ュ寮虹▼搴忕殑鍙鎬с侸ust go ahead錛宯ot go back銆?

4銆佸厛鍙戝埗浜猴紝鍚庡彂鍒朵簬浜猴紙Practic Defensive Coding錛?br />Defensive Coding鎸囦竴浜涘彲鑳戒細鍑洪敊鐨勬儏鍐碉紝濡傚彉閲忕殑鍒濆鍖栫瓑錛岃鑰冭檻鍒板嚭鐜伴敊璇儏鍐典笅鐨勫鐞嗙瓥鐣ャ傛祴璇曟椂瑕佸榪愯鍑犱釜綰跨▼銆傛湁浜涚▼搴忓湪涓涓嚎鍩庝笅榪愯鏄甯哥殑錛屼絾鏄湪澶氫釜綰跨▼騫惰榪愯鏃跺氨浼氬嚭鐜伴棶棰橈紱鑰屾湁浜涚▼搴忓湪涓涓狢PU涓嬭繍琛屽嚑涓嚎紼嬫槸姝e父鐨勶紝浣嗘槸鍦ㄥ涓狢PU涓嬭繍琛屾椂灝變細鍑虹幇闂錛屽洜涓哄崟CPU榪愯綰跨▼鍙槸鐙箟鐨勫茍琛岋紝澶欳PU涓璧瘋繍琛岀▼搴忥紝鎵嶆槸鐪熸鐨勫茍琛岃繍綆椼?

5銆佽鎷涙媶鎷涳紝婊存按涓嶆紡錛圚andle The Error Cases錛歍hey Will Occur錛侊級
榪欓噷鐨凟rror Case錛堥敊璇儏鍐碉級錛屾槸鎸囬偅浜涗笉鏄撻噸瑙嗙殑閿欒銆傚鏋滀笉瀵笶rror Case榪涜澶勭悊錛岀▼搴忓湪澶氭暟鎯呭喌涓嬩笉浼氬嚭閿欙紝浣嗘槸涓鏃﹀嚭鐜板紓甯革紝紼嬪簭灝變細宕╂簝銆?6銆佺啛涔犲墤娉曞垁鏈紝鎵鍚戞棤鏁岋紙Learn Win32 API Seriously錛?br />鐢?#8220;鍓戞硶鍒鏈?#8221;鏉ュ艦瀹逛竴浜汚PI鏄洜涓哄畠浠兘鏄粡榪囦簡寰堝浼樼寮鍙戜漢鍛樼殑涓嶆柇寮鍙戙佹祴璇曪紝鍏舵晥鐜囧緢楂橈紝鑰屼笖綆媧佹槗鎳傦紝甯屾湜澶у鑳芥帉鎻″畠錛岀啛鎮夊畠錛屼嬌鐢ㄥ畠銆傛槸涓嶆槸璞℃垜浠殑ULIB銆?

7銆佸弻鎵嬩簰鎼忥紝鏃犲潥涓嶆懅錛圱est,but don't stop there錛?br />榪欓噷鐨勬祴璇曚笉鏄寚鍒漢鏉ユ祴璇曚綘鐨勪唬鐮侊紝鑰屾槸鎸囪嚜宸卞幓嫻嬭瘯銆傚洜涓轟綘鏄啓浠g爜鐨勫師浣滆咃紝瀵逛唬鐮佺殑浜嗚В鏈娣憋紝鍒漢涓嶅彲鑳芥瘮浣犳洿浜嗚В錛屾墍浠ヤ綘鑷繁鍦ㄦ祴璇曟椂錛屽彲浠ュ緢濂藉湴鍘繪祴璇曞摢浜涜竟鐣屾潯浠訛紝浠ュ強涓浜涙剰鍚戜笉鍒扮殑鎯呭喌銆?

8銆佹椿鐢ㄦ柇璦錛圲se,don't abuse,assertions錛?br />鏂█錛坅ssertion錛夋槸涓緢濂界殑璋冭瘯宸ュ叿鍜屾柟娉曪紝甯屾湜澶у鑳藉鐢ㄦ柇璦錛屼絾鏄茍涓嶆槸鎵鏈夌殑鎯呭喌涓嬮兘鍙互鐢ㄥ埌鏂█銆傛湁浜涙儏鍐典嬌鐢ㄦ柇璦鍙嶈屼笉鍚堥傘?

9銆佽崏鏈ㄧ殕鍏碉紝涓嶅彲澶ф剰錛圓void Assumptions錛?br />鏄寚鍦ㄥ啓浠g爜鏃訛紝瑕佸皬蹇冧竴浜涜緭鍏ョ殑鎯呭喌錛屾瘮濡傝緭鍏ユ枃浠躲乀CP鐨剆ockets銆佸嚱鏁扮殑鍙傛暟絳夌瓑錛屼笉瑕佽涓轟嬌鐢ㄦ垜浠殑API鐨勭敤鎴烽兘鐭ラ亾浠涔堟槸姝g‘鐨勩佷粈涔堟槸閿欑殑錛屼篃灝辨槸璇翠竴瀹氳鑰冭檻鍒板澶栨帴鍙g殑鍑洪敊澶勭悊闂銆?

10銆佹渶楂樺鐣屻佹棤鎷涜儨鏈夋嫑錛圫top writing so much code錛?br />鎰忔濆氨鏄灝介噺閬垮厤鍐欏お澶氱殑浠g爜錛屽啓鐨勮秺澶氾紝鍑洪敊鐨勬満浼氫篃瓚婂銆傛渶濂借兘閲嶇敤鍒漢寮鏀劇殑鎺ュ彛鍑芥暟鎴栫洿鎺ヨ皟鐢ㄥ埆浜虹殑api銆?

 

鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a href="http://www.shnenglu.com/humanchao/archive/2010/08/05/122334.html">http://www.shnenglu.com/humanchao/archive/2010/08/05/122334.html



]]>
杞澆錛氬浣曟煡璇㈢鍙h鍗犵敤鐨勭▼搴?/title><link>http://www.shnenglu.com/wanghaiguang/archive/2012/02/22/166251.html</link><dc:creator>鐜嬫搗鍏?/dc:creator><author>鐜嬫搗鍏?/author><pubDate>Wed, 22 Feb 2012 09:06:00 GMT</pubDate><guid>http://www.shnenglu.com/wanghaiguang/archive/2012/02/22/166251.html</guid><wfw:comment>http://www.shnenglu.com/wanghaiguang/comments/166251.html</wfw:comment><comments>http://www.shnenglu.com/wanghaiguang/archive/2012/02/22/166251.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/wanghaiguang/comments/commentRss/166251.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/wanghaiguang/services/trackbacks/166251.html</trackback:ping><description><![CDATA[<p>澶у鍦ㄥ惎鍔ㄦ湇鍔″櫒鏃訛紝鏈夋椂姝e父鍚姩鏈夋椂鍙堝惎鍔ㄤ笉浜嗘槸鎬庝箞鍥炰簨鍛紵錛熼偅涓轟粈涔堝叧鎺夎繀闆風瓑杞歡灝卞張濂戒簡鍛紵錛熺幇鍦ㄥ氨鏉ョ粰澶у璁茶В涓涓嬶紝</p> <p><a target="_blank"><img alt="濡備綍鏌ヨ绔彛琚崰鐢ㄧ殑紼嬪簭 - kakis - Kakis" src="http://img.blog.163.com/photo/Tl2tguIIMavHqSmPIqmjUg==/1422293057320130173.jpg" __1329901352878__="ev_7614859533" /></a></p> <p>杞嚜錛?a ><font color="#3468a4">http://yinkai210.blog.163.com/blog/static/287483452009050256466/</font></a><br /><br />榪欎簺绔彛濡傛灉琚叾浠栫▼搴忓崰鐢ㄥ氨涓嶈兘姝e父鍚姩錛屾瘮濡傛湁鏃跺惎鍔ㄦ椂浼氭彁紺篧EB鍚姩澶辮觸錛屽叾瀹炲氨鏄?0绔彛琚崰鐢ㄤ簡錛岃岃繀闆風瓑涓嬭澆杞歡鎭版伆灝辨槸鍗犵敤浜?0绔彛錛屽叧鎺夊氨琛屼簡銆備絾鏈夋椂榪呴浄絳夐兘娌℃湁寮涔熷惎鍔ㄤ笉浜嗭紝閭e氨鏄埆鐨勪笢瑗垮崰鐢ㄤ簡錛岄偅鎬庝箞鍔炲憿錛熸垜鏉ュ彨浣犳煡鐪嬬鍙e茍鍏蟲帀鐨勬柟娉曘?br />1.鍦ㄥ紑濮?-榪愯   閲岄潰杈撳叆cmd鐐瑰洖杞︼紝浼氬嚭鐜拌繍琛岀獥鍙c?br />2.鍦ㄦ彁紺虹鍚庤緭鍏etstat -ano鍥炶濺錛屾壘鍒皌cp 80绔彛瀵瑰簲鐨刾id錛屾瘮濡?484.<br />3.ctrl+alt+del鎵撳紑浠誨姟綆$悊鍣紝閫夎繘紼嬶紝榪欓噷鏈夊緢澶氭鍦ㄨ繍琛岀殑紼嬪簭鎬庝箞鎵撅紵鍒ョ偣涓婇潰鐨?nbsp;  鏌ョ湅--閫夋嫨鍒?-鍦≒ID錛堣繘紼嬫爣紺虹錛夊墠闈㈡墦閽┿傚ソ浜嗭紝涓嬮潰鐨勮繘紼嬪墠闈㈤兘鏈変簡PID鍙風爜銆傝繖鏃朵笂涓姝ユ壘鍒扮殑PID灝辨湁鐢ㄤ簡錛屾壘鍒?484錛屾瘮濡侾EER.EXE浠涔堢殑錛岀粨鏉熻繘紼嬪惂銆傝繖鏃跺啀寮鏈嶅姟鍣紝鐪媁EB鍙互鍚姩浜嗭紒</p> <p><font color="#ff0000"><strong>濡備笂闈㈢殑涓嶆竻妤氳繕鏈夌畝鏄庣殑錛?/strong></font></p> <p><font color="#ff0000"><strong>鍋囧鎴戜滑闇瑕佺‘瀹氳皝鍗犵敤浜嗘垜浠殑80绔彛</strong></font></p> <p><font color="#ff0000"><strong>1銆乄indows騫沖彴<br />鍦╳indows鍛戒護琛岀獥鍙d笅鎵ц錛?br />C:\>netstat -aon|findstr "80" <br />TCP     127.0.0.1:80         0.0.0.0:0               LISTENING       2448<br />鐪嬪埌浜嗗悧錛岀鍙h榪涚▼鍙蜂負2448鐨勮繘紼嬪崰鐢紝緇х畫鎵ц涓嬮潰鍛戒護錛?br />C:\>tasklist|findstr "2448" <br />thread.exe                     2016 Console                 0     16,064 K<br />寰堟竻妤氬惂錛宼hread鍗犵敤浜嗕綘鐨勭鍙?Kill it<br />濡傛灉絎簩姝ユ煡涓嶅埌錛岄偅灝卞紑浠誨姟綆$悊鍣紝鐪嬪摢涓繘紼嬫槸2448錛岀劧鍚庢潃涔嬪嵆鍙?/strong></font></p> <p><font color="#ff0000"><strong>濡傛灉闇瑕佹煡鐪嬪叾浠栫鍙c傛妸 80 鏀規帀鍗沖彲<br /><br /></strong></font><a style="color: #333333; text-decoration: none; font-family: 'Microsoft YaHei'; font-size: 20px; line-height: 30px; background-color: #ffffff;">Linux鏌ョ湅绔彛浣跨敤鐘舵併佸叧闂鍙f柟娉?br /></a>杞嚜錛?a >http://blog.csdn.net/wudiyi815/article/details/7473097</a><br /><span style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;">鍓嶆彁錛氶鍏堜綘蹇呴』鐭ラ亾錛岀鍙d笉鏄嫭绔嬪瓨鍦ㄧ殑錛屽畠鏄緷闄勪簬榪涚▼鐨勩傛煇涓繘紼嬪紑鍚紝閭d箞瀹冨搴旂殑绔彛灝卞紑鍚簡錛岃繘紼嬪叧闂紝鍒欒绔彛涔熷氨鍏抽棴浜嗐備笅嬈¤嫢鏌愪釜榪涚▼鍐嶆寮鍚紝鍒欑浉搴旂殑绔彛涔熷啀嬈″紑鍚傝屼笉瑕佺函綺圭殑鐞嗚В涓哄叧闂帀鏌愪釜绔彛錛屼笉榪囧彲浠ョ鐢ㄦ煇涓鍙c?/span><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><span style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;">1. 鍙互閫氳繃"netstat -anp" 鏉ユ煡鐪嬪摢浜涚鍙h鎵撳紑銆?/span><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><span style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;">錛堟敞錛氬姞鍙傛暟'-n'浼氬皢搴旂敤紼嬪簭杞負绔彛鏄劇ず錛屽嵆鏁板瓧鏍煎紡鐨勫湴鍧錛屽錛歯fs->2049, ftp->21錛屽洜姝ゅ彲浠ュ紑鍚袱涓粓绔紝涓涓瀵瑰簲涓涓嬬▼搴忔墍瀵瑰簲鐨勭鍙e彿錛?/span><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><span style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;">2. 鐒跺悗鍙互閫氳繃"lsof -i:$PORT"鏌ョ湅搴旂敤璇ョ鍙g殑紼嬪簭錛?PORT鎸囧搴旂殑绔彛鍙鳳級銆傛垨鑰呬綘涔熷彲浠ユ煡鐪嬫枃浠?etc/services錛屼粠閲岄潰鍙互鎵懼嚭绔彛鎵瀵瑰簲鐨勬湇鍔°?/span><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><span style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;">錛堟敞錛氭湁浜涚鍙i氳繃netstat鏌ヤ笉鍑烘潵錛屾洿鍙潬鐨勬柟娉曟槸"sudo nmap -sT -O localhost"錛?/span><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><span style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;">3. 鑻ヨ鍏抽棴鏌愪釜绔彛錛屽垯鍙互錛?/span><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><span style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;">1)閫氳繃iptables宸ュ叿灝嗚绔彛紱佹帀錛屽錛?/span><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><span style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;"> "sudo iptables -A INPUT -p tcp --dport $PORT -j DROP"</span><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><span style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;"> "sudo iptables -A OUTPUT -p tcp --dport $PORT -j DROP"    </span><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><span style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;">2)鎴栬呭叧鎺夊搴旂殑搴旂敤紼嬪簭錛屽垯绔彛灝辮嚜鐒跺叧闂簡錛屽錛?/span><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><span style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;"> "kill -9 PID" (PID錛氳繘紼嬪彿)</span><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><span style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;">  濡傦細    閫氳繃"netstat -anp | grep ssh"</span><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><span style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;">  鏈夋樉紺猴細    tcp 0 127.0.0.1:2121 0.0.0.0:* LISTEN 7546/ssh</span><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><span style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;">  鍒欙細    "kill -9 7546"</span><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><br style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;" /><span style="font-family: Arial; font-size: 16px; line-height: 26px; background-color: #ffffff;">錛堝彲閫氳繃"chkconfig"鏌ョ湅緋葷粺鏈嶅姟鐨勫紑鍚姸鎬侊級</span><br /><font color="#ff0000"><strong><br /></strong></font></p><img src ="http://www.shnenglu.com/wanghaiguang/aggbug/166251.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/wanghaiguang/" target="_blank">鐜嬫搗鍏?/a> 2012-02-22 17:06 <a href="http://www.shnenglu.com/wanghaiguang/archive/2012/02/22/166251.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://www.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://wwwsao117.com" target="_blank">国产精品99久久久久久宅男</a>| <a href="http://scratbag.com" target="_blank">好吊色欧美一区二区三区四区</a>| <a href="http://66666556.com" target="_blank">亚洲国产日韩一区</a>| <a href="http://www3344xz.com" target="_blank">久久国产精品毛片</a>| <a href="http://avtaobao7788.com" target="_blank">久久久免费观看视频</a>| <a href="http://16355t.com" target="_blank">在线精品亚洲</a>| <a href="http://lovehefei.com" target="_blank">欧美日韩中文</a>| <a href="http://shuoqe.com" target="_blank">久久精品国产亚洲aⅴ</a>| <a href="http://17ang.com" target="_blank">欧美在线视频不卡</a>| <a href="http://wltaste.com" target="_blank">亚洲美女一区</a>| <a href="http://lmjqav.com" target="_blank">久久成人精品一区二区三区</a>| <a href="http://tubcup.com" target="_blank">亚洲精品国产日韩</a>| <a href="http://www-76577c.com" target="_blank">国产女主播一区二区三区</a>| <a href="http://4448884.com" target="_blank">久久久国产视频91</a>| <a href="http://china391.com" target="_blank">亚洲一区二区三区在线看 </a>| <a href="http://124909.com" target="_blank">老司机免费视频一区二区</a>| <a href="http://xxoo668.com" target="_blank">亚洲国产女人aaa毛片在线</a>| <a href="http://021-job.com" target="_blank">久久免费视频网站</a>| <a href="http://9952222.com" target="_blank">亚洲网站在线</a>| <a href="http://wwwok1965.com" target="_blank">亚洲福利在线观看</a>| <a href="http://012488.com" target="_blank">久久精品99国产精品日本 </a>| <a href="http://hhh699.com" target="_blank">欧美在线一区二区</a>| <a href="http://gg5gg.com" target="_blank">欧美α欧美αv大片</a>| <a href="http://ourskycity.com" target="_blank">午夜精品一区二区三区四区</a>| <a href="http://ktokt.com" target="_blank">日韩视频欧美视频</a>| <a href="http://9486322.com" target="_blank">亚洲国产精品久久91精品</a>| <a href="http://737sihu.com" target="_blank">国产婷婷色一区二区三区在线</a>| <a href="http://11b29.com" target="_blank">欧美精品一区在线播放</a>| <a href="http://kdy444.com" target="_blank">久久久久在线</a>| <a href="http://97sgg.com" target="_blank">午夜在线一区二区</a>| <a href="http://jilcool.com" target="_blank">亚洲视频精品在线</a>| <a href="http://www-6410c.com" target="_blank">亚洲日本激情</a>| <a href="http://456dv.com" target="_blank">亚洲欧洲视频在线</a>| <a href="http://138268.com" target="_blank">欧美多人爱爱视频网站</a>| <a href="http://www49773.com" target="_blank">久久激情综合</a>| <a href="http://603445.com" target="_blank">亚洲精品一线二线三线无人区</a>| <a href="http://huaihuaihuai.com" target="_blank">欧美成人午夜激情</a>| <a href="http://8868866.com" target="_blank">亚洲综合大片69999</a>| <a href="http://ynjzwh.com" target="_blank">亚洲香蕉成视频在线观看</a>| <a href="http://xxxx48.com" target="_blank">久久三级视频</a>| <a href="http://021-job.com" target="_blank">亚洲人午夜精品</a>| <a href="http://mimi78.com" target="_blank">国产精品成人播放</a>| <a href="http://www3344xz.com" target="_blank">欧美.com</a>| <a href="http://chaxiangmall.com" target="_blank">久久人人爽爽爽人久久久</a>| <a href="http://jiejiesao8.com" target="_blank">欧美精彩视频一区二区三区</a>| <a href="http://080177.com" target="_blank">欧美黑人在线播放</a>| <a href="http://er65.com" target="_blank">欧美日韩一二区</a>| <a href="http://520taose.com" target="_blank">欧美日韩专区在线</a>| <a href="http://xianqyd.com" target="_blank">在线国产精品一区</a>| <a href="http://cao3e8c8.com" target="_blank">久热成人在线视频</a>| <a href="http://ssss96.com" target="_blank">欧美风情在线观看</a>| <a href="http://mishangmi.com" target="_blank">久久成人一区</a>| <a href="http://86311ib.com" target="_blank">国产亚洲欧美日韩日本</a>| <a href="http://92xx00.com" target="_blank">精品成人免费</a>| <a href="http://56701sy.com" target="_blank">亚洲精品欧美一区二区三区</a>| <a href="http://wwwok1965.com" target="_blank">久久裸体视频</a>| <a href="http://xaipad.com" target="_blank">欧美在线一级视频</a>| <a href="http://zqx186.com" target="_blank">国产亚洲欧美日韩在线一区</a>| <a href="http://004ttt.com" target="_blank">久久国产精品久久久久久久久久 </a>| <a href="http://www17bxbx.com" target="_blank">亚洲大胆在线</a>| <a href="http://jorhom.com" target="_blank">噜噜噜久久亚洲精品国产品小说</a>| <a href="http://fc3332.com" target="_blank">你懂的成人av</a>| <a href="http://677968.com" target="_blank">91久久久亚洲精品</a>| <a href="http://jldianda.com" target="_blank">免费在线亚洲欧美</a>| <a href="http://miaoxp.com" target="_blank">久久男女视频</a>| <a href="http://caokk1.com" target="_blank">91久久综合</a>| <a href="http://www433444.com" target="_blank">最新高清无码专区</a>| <a href="http://xxxx90.com" target="_blank">欧美黄免费看</a>| <a href="http://fs-nanxiang.com" target="_blank">亚洲视频在线观看一区</a>| <a href="http://sishengnv.com" target="_blank">国产精品99久久99久久久二8</a>| <a href="http://aaddgg66.com" target="_blank">欧美色图天堂网</a>| <a href="http://www-787333.com" target="_blank">亚洲欧美亚洲</a>| <a href="http://ayxchc.com" target="_blank">久久国产精品99精品国产</a>| <a href="http://cao3e8c8.com" target="_blank">曰本成人黄色</a>| <a href="http://www8xvi.com" target="_blank">亚洲欧美日韩精品一区二区</a>| <a href="http://335848.com" target="_blank">久久精品在线播放</a>| <a href="http://jzsp94.com" target="_blank">91久久精品网</a>| <a href="http://39ddtv.com" target="_blank">欧美日韩精品一区二区三区</a>| <a href="http://4545www.com" target="_blank">国产日韩欧美精品在线</a>| <a href="http://261262.com" target="_blank">久久精品91</a>| <a href="http://jiajianpei.com" target="_blank">久久天堂国产精品</a>| <a href="http://www-33tt.com" target="_blank">亚洲精品在线二区</a>| <a href="http://chainhuayu.com" target="_blank">一区二区三区视频在线</a>| <a href="http://9486322.com" target="_blank">久热精品视频</a>| <a href="http://www369cf.com" target="_blank">日韩视频免费在线观看</a>| <a href="http://www37999.com" target="_blank">在线综合欧美</a>| <a href="http://0855123.com" target="_blank">激情久久久久久</a>| <a href="http://smiczbb.com" target="_blank">亚洲福利视频免费观看</a>| <a href="http://zhaosaofu.com" target="_blank">欧美精品导航</a>| <a href="http://by5130.com" target="_blank">久久高清国产</a>| <a href="http://bcjianyan.com" target="_blank">欧美成人首页</a>| <a href="http://107766a.com" target="_blank">在线成人激情</a>| <a href="http://papala4444.com" target="_blank">亚洲三级免费</a>| <a href="http://807225.com" target="_blank">国产亚洲免费的视频看</a>| <a href="http://69ru.com" target="_blank">亚洲精品一区二区三区蜜桃久 </a>| <a href="http://www524141.com" target="_blank">欧美视频官网</a>| <a href="http://dtwave-ind.com" target="_blank">欧美一区二区私人影院日本</a>| <a href="http://wallypanel.com" target="_blank">亚洲电影免费观看高清完整版</a>| <a href="http://9881600.com" target="_blank">欧美日韩免费看</a>| <a href="http://04oy.com" target="_blank">久久久久国色av免费看影院 </a>| <a href="http://www5123ri.com" target="_blank">国产欧美一区二区三区在线老狼</a>| <a href="http://www-438686.com" target="_blank">麻豆精品视频在线</a>| <a href="http://www52y.com" target="_blank">欧美视频中文一区二区三区在线观看 </a>| <a href="http://3848404.com" target="_blank">一级日韩一区在线观看</a>| <a href="http://lampreydb.com" target="_blank">嫩模写真一区二区三区三州</a>| <a href="http://cgnwp.com" target="_blank">欧美激情精品久久久</a>| <a href="http://p54y.com" target="_blank">久久精品国产亚洲aⅴ</a>| <a href="http://junmatek.com" target="_blank">免费成人黄色</a>| <a href="http://32m8.com" target="_blank">欧美影院成年免费版</a>| <a href="http://chaoporn97.com" target="_blank">女仆av观看一区</a>| <a href="http://devmashup.com" target="_blank">久久国产精品电影</a>| <a href="http://holotu.com" target="_blank">欧美日韩一区二区欧美激情 </a>| <a href="http://133868.com" target="_blank">午夜精品视频网站</a>| <a href="http://ll992.com" target="_blank">日韩香蕉视频</a>| <a href="http://8xxjj.com" target="_blank">亚洲乱码精品一二三四区日韩在线 </a>| <a href="http://xiuren2021.com" target="_blank">久久综合久久美利坚合众国</a>| <a href="http://bjayj.com" target="_blank">午夜精品久久久久久久</a>| <a href="http://3644688.com" target="_blank">欧美成人久久</a>| <a href="http://378682.com" target="_blank">欧美成人a∨高清免费观看</a>| <a href="http://www-13413.com" target="_blank">国产精品福利久久久</a>| <a href="http://3838418.com" target="_blank">91久久午夜</a>| <a href="http://3333328.com" target="_blank">亚洲狠狠婷婷</a>| <a href="http://0061366.com" target="_blank">久久嫩草精品久久久久</a>| <a href="http://yzsss.com" target="_blank">久久久999精品免费</a>| <a href="http://qqkanp.com" target="_blank">国产精品爽黄69</a>| <a href="http://s0247.com" target="_blank">欧美亚洲一区在线</a>| <a href="http://3333328.com" target="_blank">欧美在线视频观看</a>| <a href="http://avtbr123.com" target="_blank">午夜精品99久久免费</a>| <a href="http://621767.com" target="_blank">欧美日产一区二区三区在线观看</a>| <a href="http://990288.com" target="_blank">欧美jizz19性欧美</a>| <a href="http://njhuike.com" target="_blank">娇妻被交换粗又大又硬视频欧美</a>| <a href="http://710952.com" target="_blank">亚洲欧美影院</a>| <a href="http://www-00468.com" target="_blank">在线观看一区</a>| <a href="http://1323123.com" target="_blank">久久av老司机精品网站导航</a>| <a href="http://www-188445.com" target="_blank">亚洲欧美一区二区视频</a>| <a href="http://mes-dvd.com" target="_blank">欧美婷婷久久</a>| <a href="http://8eeeccc.com" target="_blank">亚洲午夜精品网</a>| <a href="http://cmtqd.com" target="_blank">午夜精品免费在线</a>| <a href="http://7redy.com" target="_blank">国产精品日韩精品欧美精品</a>| <a href="http://wewe520.com" target="_blank">一本一道久久综合狠狠老精东影业 </a>| <a href="http://haose23.com" target="_blank">亚洲午夜女主播在线直播</a>| <a href="http://wnboke.com" target="_blank">欧美另类亚洲</a>| <a href="http://anal-movie-teen.com" target="_blank">中文欧美在线视频</a>| <a href="http://yckjwb.com" target="_blank">亚洲国产免费</a>| <a href="http://chaoporn97.com" target="_blank">国产精品99久久久久久久久久久久 </a>| <a href="http://jjy891.com" target="_blank">国产精品福利久久久</a>| <a href="http://amass-ic.com" target="_blank">亚洲国产精品久久精品怡红院</a>| <a href="http://3dxxoo.com" target="_blank">亚洲一区二区精品在线观看</a>| <a href="http://gyzhoucheng.com" target="_blank">在线欧美亚洲</a>| <a href="http://xingmaipet.com" target="_blank">美玉足脚交一区二区三区图片</a>| <a href="http://yw-95588.com" target="_blank">欧美aaaaaaaa牛牛影院</a>| <a href="http://6767673.com" target="_blank">亚洲国产91精品在线观看</a>| <a href="http://czwangluoyouhua.com" target="_blank">另类欧美日韩国产在线</a>| <a href="http://www330088.com" target="_blank">亚洲国产成人在线视频</a>| <a href="http://tsjcmm.com" target="_blank">野花国产精品入口</a>| <a href="http://clwjbcxs.com" target="_blank">国产精品成人午夜</a>| <a href="http://zyjxyx.com" target="_blank">亚洲在线视频网站</a>| <a href="http://yy0754.com" target="_blank">久久久欧美精品</a>| <a href="http://cswlts.com" target="_blank">亚洲国内精品在线</a>| <a href="http://winkwink333.com" target="_blank">欧美日韩国产高清视频</a>| <a href="http://4c7175.com" target="_blank">亚洲在线视频一区</a>| <a href="http://5858yp.com" target="_blank">欧美成人在线网站</a>| <a href="http://686852a.com" target="_blank">亚洲一区精品视频</a>| <a href="http://lyminghang.com" target="_blank">亚洲免费视频一区二区</a>| <a href="http://iamsleekcn.com" target="_blank">久久精品免费</a>| <a href="http://www-442336.com" target="_blank">亚洲高清在线播放</a>| <a href="http://69ru.com" target="_blank">欧美日韩亚洲精品内裤</a>| <a href="http://yunpiwang.com" target="_blank">一区二区三区.www</a>| <a href="http://9238479.com" target="_blank">久久久久久久一区二区三区</a>| <a href="http://scqike.com" target="_blank">亚洲欧洲日本国产</a>| <a href="http://www559955.com" target="_blank">国产精品久久久爽爽爽麻豆色哟哟</a>| <a href="http://xdlot.com" target="_blank">免费久久精品视频</a>| <a href="http://www-474736.com" target="_blank">这里只有精品丝袜</a>| <a href="http://402626com.com" target="_blank">av成人手机在线</a>| <a href="http://32666066.com" target="_blank">国产美女诱惑一区二区</a>| <a href="http://nn99dd.com" target="_blank">欧美成人视屏</a>| <a href="http://400206.com" target="_blank">日韩视频在线一区</a>| <a href="http://fangsling.com" target="_blank">国产精品亚洲片夜色在线</a>| <a href="http://0370city.com" target="_blank">久久九九免费视频</a>| <a href="http://jizz16.com" target="_blank">亚洲美女视频在线免费观看</a>| <a href="http://sdkingpin.com" target="_blank">久久久噜噜噜久噜久久</a>| <a href="http://96ykm.com" target="_blank">aaa亚洲精品一二三区</a>| <a href="http://caopormo.com" target="_blank">国产一区在线看</a>| <a href="http://jy920.com" target="_blank">亚洲在线视频</a>| <a href="http://xiangshi888.com" target="_blank">欧美激情第4页</a>| <a href="http://kinghongs.com" target="_blank">影音先锋久久</a>| <a href="http://v58q.com" target="_blank">国产精品久久久久久久久久直播</a>| <a href="http://wwwmm131.com" target="_blank">久久久亚洲国产美女国产盗摄</a>| <a href="http://eastasp.com" target="_blank">日韩午夜免费视频</a>| <a href="http://alex-bruni.com" target="_blank">另类图片综合电影</a>| <a href="http://555346.com" target="_blank">亚洲欧美综合精品久久成人</a>| <a href="http://wanzhixue.com" target="_blank">亚洲国产高清在线观看视频</a>| <a href="http://520637.com" target="_blank">国产伦精品一区二区三区免费迷</a>| <a href="http://414670.com" target="_blank">欧美高清在线精品一区</a>| <a href="http://www369cf.com" target="_blank">久久国产综合精品</a>| <a href="http://xxxyyy168.com" target="_blank">亚洲一区二区三区免费在线观看</a>| <a href="http://lianjiemenye.com" target="_blank">亚洲大胆美女视频</a>| <a href="http://1323123.com" target="_blank">亚洲欧洲精品一区二区三区</a>| <a href="http://www-4997.com" target="_blank">久久精品五月</a>| <a href="http://3b6f.com" target="_blank">国产综合av</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>