锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲巨乳在线,欧美激情精品久久久久久免费印度 ,韩国视频理论视频久久http://m.shnenglu.com/converse/archive/2010/08/08/122713.html閭h皝閭h皝Sun, 08 Aug 2010 15:44:00 GMThttp://m.shnenglu.com/converse/archive/2010/08/08/122713.htmlhttp://m.shnenglu.com/converse/comments/122713.htmlhttp://m.shnenglu.com/converse/archive/2010/08/08/122713.html#Feedback1http://m.shnenglu.com/converse/comments/commentRss/122713.htmlhttp://m.shnenglu.com/converse/services/trackbacks/122713.html
鍦ㄨ繖閲屽凡緇忓啓浜嗗揩浜斿勾鐨勫崥瀹? 鎰熻阿cppblog 榪欎簺騫存潵涓鐩存彁渚涚殑浼樿川鏈嶅姟, 浠ヨ嚦浜庢垜閮藉繕浜嗕粬浠殑瀛樺湪--鍥犱負瀹炲湪娌℃湁浠涔堜笉鐥涘揩鐨勪簨鎯呰鎶曡瘔鍙嶉鐨?涓嶈繃,浼間箮鐩墠瀵筩hrome鐨勬敮鎸佸茍涓嶅お濂? 鎴戞瘡嬈″啓鍗氬閮介渶瑕佸垏鎹㈠埌Firefox涓婇潰,甯屾湜鑳芥湁鏀瑰杽.




閭h皝 2010-08-08 23:44 鍙戣〃璇勮
]]>
璋堢洰鍓嶉」鐩粍鐨勪唬鐮佹彁浜ゅ埗搴?/title><link>http://m.shnenglu.com/converse/archive/2010/07/08/119660.html</link><dc:creator>閭h皝</dc:creator><author>閭h皝</author><pubDate>Wed, 07 Jul 2010 17:53:00 GMT</pubDate><guid>http://m.shnenglu.com/converse/archive/2010/07/08/119660.html</guid><wfw:comment>http://m.shnenglu.com/converse/comments/119660.html</wfw:comment><comments>http://m.shnenglu.com/converse/archive/2010/07/08/119660.html#Feedback</comments><slash:comments>20</slash:comments><wfw:commentRss>http://m.shnenglu.com/converse/comments/commentRss/119660.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/converse/services/trackbacks/119660.html</trackback:ping><description><![CDATA[(杞澆璇鋒敞鏄庡嚭鑷?http://m.shnenglu.com/converse 閭h皝)<br><br>涓鐩翠互鏉ユ兂鎵炬満浼氳皥璋堢洰鍓嶈繖涓」鐩粍鍐呴噰鐢ㄧ殑浠g爜鎻愪氦鍒跺害,浠婂ぉ鏁寸悊涓涓?<br><br>鍒嗗涓嬪嚑涓祦紼?<br>1) 鍦╰rac緋葷粺涓婂緩绔媡icket,鍐欏ソ榪欎釜浠誨姟鐨勭洰鐨?騫朵笖accept榪欎釜ticket.<br>2) 淇敼浠g爜,鎶婄浉鍏崇殑淇敼榪囩殑浠g爜(涓鑸繕搴斿寘鎷浉鍏崇殑嫻嬭瘯鐢ㄤ緥鐨勪唬鐮?鍚庨潰浼氬姞浠ヨ鏄?鎻愪氦鍒皉eview board涓?<br>3) 鍦╮eview board涓婂~鍐欏涓嬪嚑涓繀瑕佺殑淇℃伅:<br>a)絎?)姝ュ緩绔嬬殑ticket鐨勫彿鐮?鍙互鏈夊ソ鍑犱釜,涔熷氨鏄竴嬈′慨鏀瑰彲浠ラ拡瀵瑰ソ鍑犱釜浠誨姟),浠ユ槑紜繖嬈℃彁浜ら拡瀵圭殑鏄摢涓換鍔?<br>b)鍐欎笅嫻嬭瘯浜嗗摢鍑犱釜嫻嬭瘯鐢ㄤ緥,瀵硅繖嬈$殑鎻愪氦鍐欎竴孌墊弿榪?<br>c)鍐欎笅緇欏摢浜涗漢鍋歳eview.reviewer鐨勮鑹插垎涓轟袱縐?涓縐嶆槸璐熻矗浜?鍙︿竴縐嶅氨鏄櫘閫氱殑緇勫憳.姣忎竴嬈℃彁浜?蹇呴』淇濊瘉reviewer涓湁鑷沖皯涓涓礋璐d漢,騫朵笖闇瑕佹墍鏈夌殑reviewer閮介氳繃浜嗚繖嬈′慨鏀?鎵嶈兘鍚戜唬鐮佸簱鎻愪氦浠g爜.reviewer浼氶拡瀵規彁浜ょ殑浠g爜榪涜鎵規敞鍥炲.<br>4)涓鑸儏鍐典笅,浠g爜涓嶄細鍦ㄧ涓嬈℃彁浜ゅ氨鑳介氳繃review,澶у鏁版儏鍐典細琚墦鍥炰慨鏀?浜庢槸2)-4)涓変釜姝ラ灝嗗驚鐜繘琛屼笅鍘葷洿鍒頒唬鐮侀氳繃review涓烘.<br>5) 鎻愪氦浜嗕唬鐮佷箣鍚?1)涓緩绔嬬殑ticket浼氳鑷姩鍏抽棴,騫朵笖灝嗗湪ticket鐨勫洖澶嶈嚜鍔ㄥ啓涓婃湰嬈℃彁浜や慨鏀圭殑鏂囦歡浠ュ強svn revision鍙?榪欐牱浠ュ悗鍐嶇湅璧鋒潵灝辯煡閬撴槸鍝鎻愪氦騫朵笖淇敼浜嗗摢浜涙枃浠墮拡瀵圭殑鍙堟槸鍝釜鍔熻兘浜?<br>6) 鏈変竴鍙版湇鍔″櫒涓撻棬浣滀負buildbot鏈哄櫒, 榪欏彴鏈哄櫒鍦ㄦ瘡嬈℃彁浜や簡浠g爜涔嬪悗, 灝嗚嚜鍔ㄦ竻絀哄師鏉ョ殑浠g爜鐩綍,鏇存柊鏈鏂扮殑浠g爜,閲嶆柊緙栬瘧,鐒跺悗鎶婇噷闈㈢殑嫻嬭瘯鐢ㄤ緥鍏ㄩ儴璺戜竴閬?鎴戜滑鐨勯」鐩嬌鐢ㄧ殑tcmalloc,浼氭鏌ュ唴瀛樻硠婕?鎵浠ュ湪嫻嬭瘯鐢ㄤ緥嫻嬭瘯澶辮觸,浠ュ強鏈夊唴瀛樻硠婕忕殑鏃跺?buildbot閮戒細澶辮觸.闇瑕佽ˉ鍏呬竴鐐圭殑鏄?闄や簡姣忔鎻愪氦浠g爜浼氬鑷碽uildbot閲嶆柊緙栬瘧鏂扮殑浠g爜,鍦ㄦ瘡鏅氱殑涓涓浐瀹氭椂闂?鍗充嬌娌℃湁鏇存柊浠g爜,涔熶細鍋氱浉鍚岀殑鍔ㄤ綔.buildbot鐨勫瓨鍦?灝辨槸涓轟簡涓嶆柇鐨勬竻絀虹紪璇戞枃浠墮噸鏂扮紪璇戝啀璺戞祴璇曠敤渚?浠ュぇ閲忕殑嫻嬭瘯娑堥櫎闅忔満鎬т繚璇佹紜?<br><br>浠ヤ笂鏄暣涓唬鐮佹彁浜ゆ満鍒剁殑澶т綋嫻佺▼璇存槑,涓嬮潰璋堥噷闈㈢殑緇嗚妭.<br><br>1)涓婇潰鐨勭1)姝ヤ腑,寤虹珛trac鐨則icket鏃?闇瑕佹寚瀹氫竴涓猰ilestone,涓鑸垜浠蹇呴』鍋氱殑浜嬫儏鏄瘡鍛ㄤ互鏃ユ湡鍛藉悕寤虹珛涓涓猰ilestone,榪欐牱,浣犲仛鐨勪換鍔″氨浼氳嚜鐒剁殑鍙樻垚姣忓懆鍙互鍘昏窡榪涚殑浠誨姟.<br>2)絎?)姝ヤ腑,鍐欐祴璇曠敤渚嬮拡瀵圭殑鏄瘡涓被鎴栬呮瘡涓ご鏂囦歡瀵瑰鏆撮湶鐨凙PI鎺ュ彛,姣斿瀵瑰鐨凙PI c浣跨敤鍐呴儴鐨勫嚱鏁癇,閭d箞鏄病鏈夊姙娉曞鍑芥暟B緙栧啓嫻嬭瘯鐢ㄤ緥鐨?鎴戜滑鐨勮姹傛槸, 浠諱綍鐨勪竴涓柊澧炵殑API閮介渶瑕佸啓閽堝瀹冭繘琛屾祴璇曠殑嫻嬭瘯鐢ㄤ緥,涓嶄竴瀹氬彧鏈変竴涓?鍥犱負闇瑕佽冭檻鐨勬儏鍐靛彲鑳藉緢澶?鎬昏岃█涔?灝藉彲鑳界殑鑰冭檻榻愬叏.鍋囧鏈淇敼淇敼浜嗗唴閮ㄥ嚱鏁癇,閭d箞渚濊禆浜庡嚱鏁癇鐨凙PI c瀹冪殑嫻嬭瘯鐢ㄤ緥涔熷氨闇瑕佸啀嫻嬭瘯浜?榪欎簺嫻嬭瘯鐢ㄧ殑浠g爜涔熶細涓騫舵彁浜ゅ埌浠g爜搴撲腑,鍥犱負榪欐牱鎵嶈兘淇濊瘉buildbot鏇存柊涔嬪悗涔熸寜鐓ф渶鏂扮殑嫻嬭瘯鐢ㄤ緥榪涜嫻嬭瘯.<br>3) 浠g爜鎻愪氦鍒皉eviewboard涔嬪墠,榪橀渶瑕佽繃lint榪欎竴鍏?瀵瑰熀鏈殑浠g爜椋庢牸榪涜媯鏌?鎴戜滑浣跨敤鐨勬槸google c++ code style.<br>4) reviewer涓殑璐熻矗浜鴻鑹插緢閲嶈, 璧風潃鐪嬮棬浜虹殑浣滅敤,浠諱綍鐨勪竴嬈′慨鏀規彁浜?閮藉繀欏昏嚦灝戠粡榪囦竴涓礋璐d漢鐨剅eview, 鎵浠ュ浠栫殑瑕佹眰灝辯浉瀵歸珮浜涗簡,闄や簡瑕佸畬鎴愯嚜宸辯殑宸ヤ綔澶?榪橀渶瑕佽鐪焤eview浠栦漢鐨勪唬鐮?鑰岃review浠栦漢鐨勪唬鐮佸茍涓旂粰鍑哄ソ鐨勬剰瑙佹潵,鍙堣姹備粬鏈漢闄や簡緙栫爜鑳藉姏澶?榪樿鍦ㄤ笟鍔″眰闈㈠鍒漢鐨勫伐浣滄湁澶т綋鐨勪簡瑙?涓嶇劧娌℃硶review浜?<br>5) 浠庡墠鏂囧彲浠ョ湅鍑?review瀹炲湪鏄竴涓箒鏉傜殑宸ヤ綔,寰堟湁鍙兘鍦╮eview闃舵琚墦鍥炰慨鏀逛唬鐮?灝辨垜鐨勭粡楠岃岃█,鎻愪氦review鐨勪漢瑕佸皢鎻愪氦鐨勪換鍔″敖閲忕殑鍒掑垎鐨勭粏涓浜涘氨鏉ョ殑寰堥噸瑕佷簡.鍦ㄦ彁浜eview鐨勬椂鍊?鎴戜竴鐩村潥鎸丏OTDIW鍘熷垯(Do One Thing,Do It Well).鐩稿弽鐨勪緥瀛?鎴戜滑緇勬湁涓悓浜?鍋氫簡涓涓緢澶х殑鍔熻兘,鍏夋槸瀹屾垚榪欎釜澶х殑鍔熻兘,灝辮姳璐瑰ソ鍑犲懆鐨勬椂闂?鎻愪氦review鐨勬椂鍊欎唬鐮侀噺澶?鏈変釜鍑犲崈琛岀殑,榪欐牱鍒漢review璧鋒潵涔熸參,鑰屼笖涓鏃︿笉閫氳繃闇瑕佷慨鏀?鍙堟槸涓涓嫤鍔涙椿鍎?榪欐牱涓鎶樿吘,涓涓湀鏃墮棿榪囧幓浜?濡傛灉褰撴椂鑳藉鏁翠綋鐨勫姛鑳芥湁涓妸鎻?鎳傚緱鍒掑垎妯″潡灞傛,閫愪釜鎻愪氦,涔熻浼氬ソ浜?褰撶劧,澶ц妯$殑浠g爜鎻愪氦鏈夋椂騫朵笉鑳藉畬鍏ㄧ殑閬垮厤,姣斿涓涓瘮杈冨ぇ鐨勯噸鏋?鐗典竴鍙戣屽姩鍏ㄨ韓鐨?鎴戝彧鏄濡傛灉鍙兘,搴斿敖閲忛伩鍏嶅ぇ瑙勬ā浠g爜鐨勬彁浜?騫朵笖鏈閲嶈鐨勬槸:姣忔鎻愪氦鏈濂戒粎閽堝涓涓姛鑳界偣.<br><br>浠ヤ笂鏄嫻佺▼浠庢暣浣撳埌緇嗚妭鐨勬弿榪?鐜板湪璋堣皥鎴戠殑鐪嬫硶.<br>鍏堟潵璋堜紭鐐?<br>1) 閫氳繃codereview鍒跺害,淇濊瘉浜嗛」鐩粍鎴愬憳涔嬮棿鑳藉鍦ㄤ唬鐮佸眰闈笂鐩存帴鐨勮繘琛屼氦嫻?鎴戞兂榪欎竴鐐規槸鏈閲嶈鐨?娌℃湁涔嬩竴.<br>濡傛灉浣犳槸涓涓按騫沖樊涓浜涚殑紼嬪簭鍛?閭d箞鏈夋瘮浣犵墰鍙夌殑浜哄府浣爎eview,鐩稿綋浜庢槸璇諱功鐨勬椂鍊欐湁鑰佸笀甯綘闃呭嵎淇敼浣滀笟,鍙互鎸囨浣犵殑闂鎵鍦?鎴戝湪琚漢review鐨勮繃紼嬩腑灝卞惉鍒頒簡鍒漢瀵規垜寰堝鐨勬剰瑙?鑰屽鏋滄槸涓涓按騫寵緝楂樼殑浜?鏄笉鏄姘村鉤宸殑浜鴻繘琛宑odereview灝辨槸嫻垂浠栫殑鏃墮棿浜嗗憿?鎴戜釜浜鴻涓?榪欎釜浜嬫儏鍒嗘庝箞鐪?浠庡洟闃熺殑瑙掑害鐪?鎸夌収鏈ㄦ《鐞嗚,鏈鐭殑鐭澘寰寰鍐沖畾浜嗚兘杈懼埌鐨勬按騫?鎬諱笉鑳芥寚鏈涙墍鏈夌殑浜嬫儏閮界敱鑰侀笩瀹屾垚,鎵浠ヨ佷漢鍦ㄥ府鏂頒漢review浠g爜鐨勬椂鍊欓棿鎺ョ殑甯姪浜嗘柊浜虹殑鎴愰暱,鍚屾椂浣滀負欏圭洰緇勪腑璧勫巻姣旇緝娣辯殑浜?涔熷簲璇ュ欏圭洰澶氳垂涓浜涙椂闂磋繘琛屾妸鍏?鎴戣寰楄繖涓鐐規棤鍙帤闈?鍚屾椂,鍗充嬌鏄柊浜?閫氳繃闃呰浠栦漢鐨勪唬鐮佸茍涓斾氦嫻?涔熷彲浠ュ涔犲埌鍒漢鐨勬濇兂.<br>codereview鍒跺害浠庝笂闈㈢殑瑙掑害涓婁繚璇佷簡欏圭洰鎴愬憳鍙互鐩存帴閫氳繃浠g爜榪涜浜ゆ祦,綆鍗曠殑璇?璋佸啓鐨勪唬鐮佽川閲忓浣?涓鍒頒簡review,涓鐩簡鐒?鍐欑殑濂界殑閫氳繃鐨勫揩,鍐欑殑涓嶅ソ琚墦鍥炰慨鏀瑰浜嗚嚜宸變篃浼氶暱璁版?榪樺彲浠ュ鐪嬪埆浜虹殑浠g爜榪涜瀛︿範.榪欐牱,鍦ㄤ竴瀹氬眰闈笂鍙互浣塊」鐩粍鎴愬憳鐨勮兘鍔涘敖鍙兘鐨勬帴榪?鎴戣兘鍔涢暱浜嗕竴綰?鐩稿簲鐨勪篃浼氭媺鍔ㄩ」鐩粍涓殑浜哄崌綰?<br><br>2) 嫻嬭瘯鐢ㄤ緥.鎴戜箣鍓嶆彁鍒扮殑嫻嬭瘯椹卞姩寮鍙?鎯蟲硶灝辨潵鑷簬欏圭洰緇勪腑緙栧啓嫻嬭瘯鐢ㄤ緥+buildbot鎵ц嫻嬭瘯鐢ㄤ緥鐨勫仛娉?濡備綍璇佹槑涓涓狝PI鏄‘瀹氭棤璇殑?鎴戣寰楄繖涓棶棰樹技涔庨潪甯擱毦.闄や簡涓浜涘彲浠ラ氳繃鏁板涓婇昏緫涓婅瘉鏄庣殑鎯呭喌澶?榪橀渶瑕佽冭檻寰堝鍏朵粬鐨勯殢鏈烘儏鍐?姣斿綰跨▼鐨勫垏鎹㈡槸闅忔満鐨?鏌愪釜鏂囦歡澶規伆濂藉瓨鍦ㄦ槸闅忔満鐨?絳夌瓑.榪欎簺闅忔満鍑虹幇鐨勯棶棰?寰堝鏃跺欎笉鑳藉湪鏌愪竴嬈℃祴璇曚腑鏄劇幇鍑烘潵.浣嗘槸濡傛灉鏈変簡buildbot,涓嶅仠鐨勬洿鏂?緙栬瘧,鎵ц,鎬諱細鏈夋毚闇查棶棰樼殑涓澶?鍙﹀,涔嬪墠鎴戜篃鎻愬埌榪?鑴戜腑濡傛灉鏈変簡嫻嬭瘯鐢ㄤ緥鐨勬蹇靛瓨鍦?姣忓啓涓涓狝PI鏃墮兘浼氳冭檻鍒伴拡瀵瑰畠鐨勭敤渚嬪簲璇ユ槸鎬庢牱鐨?浠庡彟涓涓搴?涔熷府鍔╀綘鐨勮璁?-浣犻渶瑕佽冭檻榪欎釜API鐨勮緭鍏?杈撳嚭,寮傚父鎯呭喌閮芥湁鍝簺,濡備綍嫻嬭瘯鍒?嫻嬭瘯鐢ㄤ緥鐨勫瓨鍦?淇濊瘉欏圭洰灝介噺鐨勫仛鍒頒簡"鍙帶鍒?.<br><br>緙虹偣:<br>1) 浠庝笂闈㈢殑嫻佺▼鍙互鐪嬪嚭,璧板畬涓涓唬鐮佹彁浜ょ殑嫻佺▼闇瑕佽姳璐瑰ぇ閲忕殑綺懼姏/鏃墮棿(鏈変竴浜涜繕鏄粬浜虹殑綺懼姏/鏃墮棿),鎵浠?涔熻榪欎釜鍒跺害騫朵笉閫傚悎浜庨偅縐嶆椂闂村帇鍔涙瘮杈冨ぇ鐨勯」鐩?<br><br>2) 鏈夊嚑涓湴鏂瑰緢闅懼潥鎸?姣斿codereview鏃?鏈変簺reviewer浼氳蛋榪囧満,涔熸病鎬庝箞鐪嬩唬鐮佸氨鐩存帴閫氳繃浜?榪欐牱灝變細嫻佷簬褰㈠紡浜?榪樻湁緙栧啓嫻嬭瘯鐢ㄤ緥,涔熸槸涓浠跺緢鑰楁椂闂寸殑浜嬫儏.<br><br>3) 鐢變簬codereview鍒跺害鐨勫瓨鍦?緇檙eview涓殑璐熻矗浜哄甫鍘葷殑鍘嬪姏寰堝ぇ,鍥犱負鏈韓浠栨湁鑷繁鐨勫伐浣?鍙堣灝介噺瀵逛粬浜虹殑涓氬姟/浠g爜榪涜浜嗚В,灝卞儚閭g璐熻澆寰堝ぇ鐨勬湇鍔″櫒涓鏍?鏈夋椂鍊欎細涓嶅牚閲嶈礋.榪欎竴鐐逛笂,鎴戠殑鎯蟲硶鏄?欏圭洰緇勫唴鐨勫叾浠栨垚鍛?濡傛灉鑳界Н鏋佷富鍔ㄤ竴浜?澶氳姳鏃墮棿浜嗚В鍒漢鐨勪唬鐮?灝介噺鍒嗘媴review鐨勪換鍔?鎴栬呰瘯鐫鎴愰暱涓鴻礋璐d漢綰у埆(闄嶄綆鍗曠偣鏁呴殰鐜?),涔熻鏄竴涓ソ鍔炴硶.涓嶈繃,榪欒繕寰楃湅浜轟簡.<br><br>鏁翠釜浠g爜鎻愪氦嫻佺▼涓婄殑杞歡,鐩墠鎴戞墍鐭ョ殑閮芥槸浣跨敤鐨勫紑婧愯蔣浠?SVN, google c++ code style lint,review board,buildbot,trac,嫻嬭瘯鐢ㄤ緥鐨勭紪鍐欎笂浣跨敤鐨勬槸google鐨勬祴璇曠敤渚嬫鏋秅test.涓嶈繃,鏁村悎璧瘋繖浜涜蔣浠舵惌寤哄ソ榪欎釜嫻佺▼灝變笉鏄偅涔堝鏄撲簡,鐢ㄤ簡涓浜?鍗婂勾宸﹀彸鐨勬椂闂?鎵嶈榪欎釜嫻佺▼鍩烘湰紼沖畾涓嬫潵.<br><br>鎬諱箣,榪欏鏈哄埗涓?鏃㈡湁浜轟負鐨勫共娑?涔熸湁鏈哄櫒灞傞潰涓婄殑騫叉秹,涔熻騫朵笉鏄渶瀹岀編鐨?浣嗘槸灝戒簡鏈澶х殑鍔涢噺鍘諱繚璇侀」鐩殑姝g‘鎬у拰鍙帶鎬?<br><br>浠ユ紜殑鏂瑰紡姝g‘鐨勫埗搴﹀仛浜?鏄皢浜嬫儏鍋氬ソ鐨勪竴涓叧閿?<br><br> <img src ="http://m.shnenglu.com/converse/aggbug/119660.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/converse/" target="_blank">閭h皝</a> 2010-07-08 01:53 <a href="http://m.shnenglu.com/converse/archive/2010/07/08/119660.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C++鐨勬祦璁捐寰堢碂緋?/title><link>http://m.shnenglu.com/converse/archive/2010/07/06/119427.html</link><dc:creator>閭h皝</dc:creator><author>閭h皝</author><pubDate>Tue, 06 Jul 2010 05:04:00 GMT</pubDate><guid>http://m.shnenglu.com/converse/archive/2010/07/06/119427.html</guid><wfw:comment>http://m.shnenglu.com/converse/comments/119427.html</wfw:comment><comments>http://m.shnenglu.com/converse/archive/2010/07/06/119427.html#Feedback</comments><slash:comments>79</slash:comments><wfw:commentRss>http://m.shnenglu.com/converse/comments/commentRss/119427.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/converse/services/trackbacks/119427.html</trackback:ping><description><![CDATA[鏈榪戦渶瑕佹彁渚涗竴涓姛鑳?閲囩敤綾諱技C++嫻佽緭鍑虹殑鏍煎紡杈撳嚭涓浜涙棩蹇椾俊鎭? 渚嬪Log(FATAL) << "log to" .<br><br>鎴戞壘浜嗕袱涓被浼奸」鐩潵鐮旂┒,google鐨?a >glog</a> 鍜?<a >log4cpp</a>, 瀹冧滑閮芥敮鎸佷互C++嫻佽緭鍑烘牸寮忚繘琛岃緭鍑?<br><br>浣嗘槸鐮旂┒鍒版渶鍚?鎴戝彂鐜版渶澶х殑闂鏄? 濡傛灉鎸夌収C++鐨勬祦杈撳嚭鏍煎紡榪涜杈撳嚭, 灝嗘棤娉曞垽瀹氶渶瑕佽緭鍑虹殑淇℃伅鍒板摢閲屾槸緇撴潫.姣斿log << "hello " << "world",鏄棤娉曞垽鏂埌搴曞湪杈撳嚭"hello"榪樻槸"world"鐨勬椂鍊欎笂闈㈢殑鍙傛暟杈撳叆宸茬粡緇撴潫浜?涓婇潰涓や釜欏圭洰涓? 瑙e喅榪欎釜闂鐨勫姙娉曞ぇ鑷存槸鐩稿悓鐨?浠ヤ笅闈㈠彲緙栬瘧榪愯浠g爜涓轟緥璇存槑瀹冧滑鐨勫仛娉?鍦╨inux g++涓嬮潰緙栬瘧閫氳繃):<br> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include </span><span style="color: #000000;"><</span><span style="color: #000000;">iostream</span><span style="color: #000000;">></span><span style="color: #000000;"><br>#include </span><span style="color: #000000;"><</span><span style="color: #000000;">sstream</span><span style="color: #000000;">></span><span style="color: #000000;"><br><br>#ifdef __DEPRECATED<br></span><span style="color: #008000;">//</span><span style="color: #008000;"> Make GCC quiet.</span><span style="color: #008000;"><br></span><span style="color: #000000;"> # undef __DEPRECATED<br> # include </span><span style="color: #000000;"><</span><span style="color: #000000;">strstream</span><span style="color: #000000;">></span><span style="color: #000000;"><br> # define __DEPRECATED<br></span><span style="color: #0000ff;">#else</span><span style="color: #000000;"><br> # include </span><span style="color: #000000;"><</span><span style="color: #000000;">strstream</span><span style="color: #000000;">></span><span style="color: #000000;"><br></span><span style="color: #0000ff;">#endif</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">using</span><span style="color: #000000;"> </span><span style="color: #0000ff;">namespace</span><span style="color: #000000;"> std;<br><br></span><span style="color: #0000ff;">class</span><span style="color: #000000;"> LoggerStream : </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> std::ostrstream {<br> </span><span style="color: #0000ff;">public</span><span style="color: #000000;">:<br>  LoggerStream(</span><span style="color: #0000ff;">char</span><span style="color: #000000;"> </span><span style="color: #000000;">*</span><span style="color: #000000;"> buf, </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> len)<br>   : ostrstream(buf, len),<br>    buf_(buf),<br>    len_(len) {<br>  }<br><br>  </span><span style="color: #000000;">~</span><span style="color: #000000;">LoggerStream() {<br>    </span><span style="color: #008000;">//</span><span style="color: #008000;"> do the real fucking output</span><span style="color: #008000;"><br></span><span style="color: #000000;">    cout </span><span style="color: #000000;"><<</span><span style="color: #000000;"> buf_;<br>  }<br><br> </span><span style="color: #0000ff;">private</span><span style="color: #000000;">:<br>  </span><span style="color: #0000ff;">char</span><span style="color: #000000;"> </span><span style="color: #000000;">*</span><span style="color: #000000;">buf_;<br>  </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> len_;<br>};<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;"> main() {<br>  </span><span style="color: #0000ff;">char</span><span style="color: #000000;"> buf[</span><span style="color: #000000;">100</span><span style="color: #000000;">] </span><span style="color: #000000;">=</span><span style="color: #000000;"> {</span><span style="color: #000000;">'</span><span style="color: #000000;">\0</span><span style="color: #000000;">'</span><span style="color: #000000;">};<br><br>  LoggerStream(buf, </span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(buf)) </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;"> </span><span style="color: #000000;">"</span><span style="color: #000000;"> hello world\n</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br><br>  cout </span><span style="color: #000000;"><<</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">buf = </span><span style="color: #000000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;"><<</span><span style="color: #000000;"> buf </span><span style="color: #000000;"><<</span><span style="color: #000000;"> endl;<br><br>  </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>}<br></span></div> <br>鍦ㄤ笂闈㈢殑浠g爜涓? 寮濮嬭繘琛岃緭鍑虹殑鏃跺欓鍏堝垵濮嬪寲涓涓狶oggerStream瀵硅薄, 鑰屽湪杈撳嚭鍙傛暟杈撳叆瀹屾瘯鐨勬椂鍊欏皢璋冪敤瀹冪殑鏋愭瀯鍑芥暟,鍦ㄨ繖涓瀽鏋勫嚱鏁頒腑鎵嶅畬鎴愮湡姝g殑杈撳嚭鍔ㄤ綔.涔熷氨鏄,鐢變簬瀵硅緭鍏ュ弬鏁扮粨鏉熶綅緗垽鏂墜孌電殑緙哄け,C++涓笉寰椾笉閲囩敤榪欎釜鎵嬫鍦ㄦ瀽鏋勫嚱鏁頒腑瀹屾垚鏈緇堢殑杈撳嚭宸ヤ綔.<br>榪欐牱鐨勫仛娉?鏈澶х殑闂鏄?棰戠箒鐨勬瀯閫?鏋愭瀯寮閿澶?鑰屼笖姣忎釜"<<"鎿嶄綔絎﹁儗鍚庡張闇瑕佽皟鐢╫stream鐨刼perator<<,涔熷氨鏄亣濡備綘鐨勮緭鍏ュ弬鏁版湁涓変釜灝嗚皟鐢╫perator <<涓夋(褰撶劧鏄粡榪囬噸杞界殑,涓嶄竴瀹氶兘鏄悓涓涓猳perator<<),鍥犳,鍋囧闇瑕佽冭檻澶氱嚎紼嬬殑璇?閭d箞涓嬈¤緭鍏ユ湁澶氫釜鍑芥暟鍑芥暟涓璋冪敤,浠嶇劧鏄棶棰?澶?瑕佷嬌鐢ㄨ繖闂ㄨ璦鍐欏嚭姝g‘鐨勭▼搴忔潵,闇瑕佷簡瑙e簳涓嬪灝戠殑緇嗚妭鍛?!<br><br>鏈鍚?鎴戝悜欏圭洰緇勫弽鏄犺繖涓棶棰?涓鑷村悓鎰忎互C涓被浼約printf鍙彉鍙傛暟鐨勫艦寮忓疄鐜拌繖涓姛鑳?鍙彉鍙傛暟瑙e喅榪欎釜闂,灝辨垜鐨勬劅瑙夎岃█,灝辨槸杈撳叆鍙傛暟鐨勬椂鍊?紼嶆樉澶嶆潅,闇瑕佺敤鎴鋒寚瀹氳緭鍏ョ殑鏍煎紡.鐒惰?鍏跺疄榪欎釜鍋氭硶涔熸湁濂藉:浣滀負鍑芥暟鐨勪嬌鐢ㄨ?浣犲繀欏繪槑紜殑鐭ラ亾浣犲湪鍋氫粈涔堝茍涓斿弽棣堢粰浣犳墍浣跨敤鐨勫嚱鏁?鏄庣‘鐨?鏃犳涔夌殑浣跨敤鍑芥暟,鑰屼笉鏄緷闈犳墍璋撳嚱鏁伴噸杞界寽浣犵殑鐢ㄦ剰,鎴戞兂涔熸槸閬垮厤闂鐨勪竴涓墜孌?gcc涓? 鎻愪緵浜嗗鍙彉鍙傛暟媯鏌ョ殑鏈哄埗,瑙?a >榪欓噷</a>.<br><br> <img src ="http://m.shnenglu.com/converse/aggbug/119427.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/converse/" target="_blank">閭h皝</a> 2010-07-06 13:04 <a href="http://m.shnenglu.com/converse/archive/2010/07/06/119427.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍚戝痙鍥戒漢浣庡ごhttp://m.shnenglu.com/converse/archive/2010/07/04/119287.html閭h皝閭h皝Sun, 04 Jul 2010 02:55:00 GMThttp://m.shnenglu.com/converse/archive/2010/07/04/119287.htmlhttp://m.shnenglu.com/converse/comments/119287.htmlhttp://m.shnenglu.com/converse/archive/2010/07/04/119287.html#Feedback4http://m.shnenglu.com/converse/comments/commentRss/119287.htmlhttp://m.shnenglu.com/converse/services/trackbacks/119287.html
浣滀負璧勬繁鐨勫凡緇忓枩嬈㈤樋鏍瑰環浜哄崄澶氬勾鐨勪漢,鏄ㄦ櫄鐪嬪埌0:2钀藉悗鐨勬椂鍊?鎴戣繀閫熻蛋鍥炶嚜宸辯殑鎴塊棿.鎴戠煡閬撳凡緇忓穿鐩?鐒惰屾瘮璧涜繕鏈夊嚑鍗佸垎閽熺殑鏃墮棿,浠ヨ繖涓佸娍鍙戝睍涓嬪幓,緇撴灉榪樹細鏇村樊.

浣嗘槸,榪囦簡鍑犲垎閽?鎴戝張璧板嚭鏉ョ戶緇湅瀹屽墿涓嬬殑姣旇禌,0:3,0:4,闃挎牴寤蜂漢鐪間腑鐨勬棤濂?鏄犺‖鐫寰峰浗浜虹殑杞繪澗.寰峰浗浜轟互鍙婂叾杞繪澗鐨?鎴栬呰鏄鎵嬮樋鏍瑰環鏈鎿呴暱鐨勬柟寮?寰瑧鐫涓鍒涓鍒灝嗗鎵嬪垏鍓?

寰峰浗浜烘槸涓栫晫鏉巻鍙蹭笂鍙戞尌鏈涓虹ǔ瀹氱殑涓鏀悆闃?娌℃湁涔嬩竴),榪欎釜鏁版嵁鐨勫緱鏉ユ牴鎹槸浠栦滑鏄縿浠婁負姝㈣繘鍏ヤ笘鐣屾澂鍏己鏈澶氱殑鐞冮槦.

"紼沖畾"鏄粈涔堟剰鎬?紼沖畾灝辨槸鑷繁涓嶇姱閿?姝e父鍙戞尌鑷繁鐨勬按騫?鏈?0鍒嗘墦鍑?0鍒嗙殑姘村鉤,鏈?00鍒嗘墦鍑?00鍒嗙殑姘村鉤.淇濊瘉浜嗚嚜宸變笉鐘敊,鎵嶈兘絳夊緟瀵規墜鐨勭姱閿?

鍗充嬌鍦?4,98涓ゅ勾涓栫晫鏉?寰峰浗浜虹敱浜庢暣浣撲漢鍛樼殑鑰佸寲,娌¤兘鍙栧緱濂芥垚緇?浠栦滑涔熶緷鐒跺緢"紼沖畾",鍥犱負褰撴椂鐨勪漢鍛樿兘鍔涗篃紜疄鍙湁閭d釜姘村鉤浜?浠栦滑娌℃湁鑷垜鐘敊,渚濈劧鎶婅嚜宸辨渶濂界殑姘村鉤鍙戞尌鍑烘潵.

鐪嬬湅鍏朵粬鐨勯槦浼嶅惂,娉曞浗鍐呰,鎰忓ぇ鍒╁浐鎵?宸磋タ淇濆畧,闃挎牴寤?鎴戝氨涓嶈瘎浠蜂簡).鍑犱箮閮芥湁鍚勮嚜鐨勯棶棰?鏈緇堥兘鍊掑湪鑷繁鐨勮剼涓?

瓚崇悆鏄竴涓厖婊″伓鐒舵х殑榪愬姩,涓涓摝韜?鎺㈠ご,浼歌剼閮藉彲鑳介犳垚榪涚悆.閬囧埌涓涓嚑鍗佸勾涓瑙佺殑澶╂墠,灝卞彲浠ヨ鐞冮槦鍛奸鍞ら洦濂藉騫?

浣嗘槸,浣犱笉鑳芥繪槸鍑熺潃鍋剁劧鎬?榪愭皵璧扮殑鏇磋繙.濂芥瘮璇?浣犱笉鑳芥繪槸鎸囨湜鐫鍑虹幇璐濆埄,椹媺澶氱撼,榻愮榪欐牱鐨勫ぉ鎵嶈兘绔欏嚭鏉ヤ竴澶綋鍏蟲嫰鏁戠悆闃?鎴戜滑鎻愬¤嫳闆?宕囨嫓鑻遍泟,浣嗘槸,鑻遍泟騫朵笉鎬繪槸瀛樺湪鐨?鍑虹幇鑻遍泟榪欐湰韜氨鏄歡榪愭皵鍗佽凍鐨勪簨鎯?

鏇村鐨?搴旇鏄寜鐓ц寰嬪姙浜?涓涓濅笉鑻?涓ヨ皚姹傚疄.鍐欎笅涓婇潰閭e彞璇濇椂,鎴戞兂鍒頒簡寰峰浗浜哄湪06騫翠笘鐣屾澂鐨勫闃挎牴寤蜂簰緗氱偣鐞冩椂鐨勫皬綰告潯.寰峰浗闄や簡璐濊偗椴嶅皵涔嬪浼間箮娌℃湁鍑虹幇鍏鐨勮秴綰у法鏄?鐒惰屽氨鏄兘鍙栧緱濡傛紼沖畾鐨勬垚緇?榪欐湰韜凡緇忔槸寰堝ソ鐨勮В閲?

鏇劇粡鎴戣糠鎭嬪反涔?宸磋拏閭f牱鐨勬偛鍓у摜,涓婂ぉ緇欎簣浠栦滑澶╄祴,鍗存病鏈夌粰浠栦滑濂界殑緇撴灉.鏇劇粡鎴戝湪浠栦滑韜笂,鐩鎬俊鏈夋墍璋撶殑"鍛借繍".

鎴戣繖涔堣,騫朵笉鏄浠栦滑鐨勭粨鏋滃畬鍏ㄧ殑鏃犲鍥犳墍浣滅敤.鍙槸鎴戣寰?褰撲綘鎶婁簨鎯呯殑緇撴灉榪囧害鐨勫綊鍜庝簬閭d簺鐜勪箣鍙堢巹鐨勪笢瑗挎椂,浜哄氨浼氬彉寰楃煫鎯?鏂囪壓,涓嶅幓鍙嶆濊嚜宸?

浣涜,涓栭棿涓鍒囦簨,鐨嗘槸鍥犳灉鎶ュ簲.璇寸殑閫氫織浜?鍙滀箣浜哄繀鏈夊叾鍙仺涔嬪.

鎵浠?鍘諱粬濡堢殑<<闃挎牴寤峰埆涓烘垜鍝常>>鍚?鐭儏鍜屾枃鑹哄茍涓嶈兘璁╀綘鐨勭敓媧誨洜姝ゆ敼鍙?鎶搗澶存潵闈㈠鐜板疄鍙嶆濊嚜宸卞惂.

鍚戝痙鍥戒漢浣庡ご,榪欎釜姘戞棌鐨勫瓧鍏擱噷娌℃湁"鍛借繍"涓璇?



閭h皝 2010-07-04 10:55 鍙戣〃璇勮
]]>
闆嗘垚libevent,google protobuf鐨凴PC妗嗘灦http://m.shnenglu.com/converse/archive/2010/06/20/118310.html閭h皝閭h皝Sun, 20 Jun 2010 08:30:00 GMThttp://m.shnenglu.com/converse/archive/2010/06/20/118310.htmlhttp://m.shnenglu.com/converse/comments/118310.htmlhttp://m.shnenglu.com/converse/archive/2010/06/20/118310.html#Feedback4http://m.shnenglu.com/converse/comments/commentRss/118310.htmlhttp://m.shnenglu.com/converse/services/trackbacks/118310.htmlRemote Procedure Call),涓枃緲昏瘧鏄繙紼嬭繃紼嬭皟鐢?鍏跺疄浠庡師鐞嗘潵璇磋繖騫朵笉鏄竴涓柊鐨勬蹇?鎴戠殑鐞嗚В鏄? 涓嶅悓鐨勬満鍣ㄤ箣闂村畾涔変簡涓浜涙帴鍙? 涔熸湁瀹㈡埛绔拰鏈嶅姟鍣ㄧ,瀹㈡埛绔彲浠ラ氳繃鍗忓晢濂界殑鎺ュ彛璋冪敤鏈嶅姟鍣ㄧ宸茬粡娉ㄥ唽濂界殑鏈嶅姟.璇寸櫧浜?榪樻槸緗戠粶閫氫俊鐨勯偅涓濂楁満鍒?鏃㈢劧榪樻槸緗戠粶閫氫俊,閭d箞涓轟粈涔堥渶瑕佷嬌鐢≧PC鑰屼笉鏄嚜宸卞幓瀹屾垚榪欐牱鐨勪竴濂楀伐浣滃憿?鍋囧鏄嚜宸卞仛榪欐牱鐨勪簨鎯?闇瑕佽冭檻緙栬В鐮?緗戠粶灞?灝ゅ叾寰堝緇嗚妭闇瑕佸幓鍏蟲敞:鍗忚鏈夊摢浜?濡備綍瀹氫箟鏍煎紡?娑夊強鍒版暣鏁扮殑榪樿鑰冭檻緗戠粶鍜屼富鏈哄瓧鑺傚簭絳?濡傛灉閫昏緫紼嬪簭鍛樿繕闇瑕佸叧娉ㄨ繖浜涚粏鑺?鏄劇劧澶箒鐞愪簡.榪樻湁灝辨槸,鍥藉唴鐨勫叕鍙稿紑鍙戝緢灝戞湁鏂囨。,鍋囧鏌ユ壘闂鏃惰繕闇瑕侀氳繃璇諱唬鐮佹墠鑳界煡閬撳崗璁腑鍚勪釜瀛楁鐨勫惈涔?榪欐牱瀵歸」鐩殑鍙淮鎶ゆт細鏈夊緢澶х殑褰卞搷.鍋囧浣跨敤浜哛PC,閫氳繃RPC宸ュ叿瀹氫箟鐨勬牸寮忔潵瀹氫箟鍗忚,鍙互涓鐩簡鐒?鑰屼笖,緗戠粶灞傚氨搴旇鍙叧娉ㄧ綉緇滃眰鐨勫伐浣?閫昏緫灞傛灦鏋勫湪緗戠粶灞備箣涓婂啀瀹屾垚閫昏緫鐨勬搷浣?鎶婄綉緇滃拰閫昏緫鍒嗗紑,涔熸槸娓呮櫚鐨勬灦鏋勮璁?

google protobuf 鏄痝oogle鍏紑鐨勪竴濂楃敤浜庣綉緇滈氫俊鏃剁敤浜庡崗璁紪瑙g爜鐨勫伐鍏峰簱,浣跨敤瀹冨畾涔夌殑鏍煎紡,浣犲彲浠ュ畾涔夊崗璁殑瀛楁,鐢卞畠鑷甫鐨勭紪璇戝櫒鐢熸垚鍑鴻礋璐g紪瑙g爜鐨勪唬鐮佹枃浠?鍙敓鎴愯澶氫笉鍚岀殑璇█鏂囦歡).鍚屾椂,瀹冭繕鍖呮嫭浜嗗熀鏈殑RPC鎺ュ彛瀹氫箟.浣嗘槸,榪欎釜宸ュ叿鐢ㄥ湪RPC涓婃瘮杈冨ぇ鐨勯棶棰樻槸瀹冨彧璐熻矗鐢熸垚浠g爜鏂囦歡,鑰屽鏋滆鐪熸浣跨敤璧鋒潵鍋氫負涓涓猂PC妗嗘灦,榪橀渶瑕佸瀹冭繘琛岀綉緇滃眰涓婄殑灝佽,浣嗘槸鍦ㄥ畠鑷繁鐨勫畼鏂規枃妗d笂騫舵病鏈夌粰鍑轟竴涓猟emo鍛婅瘔璇昏呭浣曚竴姝ヤ竴姝ョ殑鏉ュ畬鎴愯繖鏍蜂竴涓伐浣?thrift鏄笌google protobuf鍚屾牱瀹氫綅鐨勪竴涓伐鍏峰簱,闄や簡鍏峰google protobuf鐩稿悓鐨勫姛鑳藉,濡傛敮鎸佸璇█,璺ㄥ鉤鍙?楂樻晥鐨勭紪瑙g爜,榪橀泦鎴愪簡緗戠粶閫氫俊灞?鍙互浣跨敤瀹冨畬鎴愭墍鏈塕PC鎵闇瑕佸畬鎴愮殑宸ヤ綔.鍦?a >榪欎釜欏甸潰涓?google protobuf緇欏嚭浜嗕竴浜涘凡鐭ョ殑浣跨敤涓嶅悓璇█瀵瑰畠榪涜灝佽鐨勯」鐩?

chenshuo鐨?a >evproto鍚屾牱涔熸槸闆嗘垚libevent涓巊oogle protobuf鐨凴PC妗嗘灦,涓嶈繃鍦ㄥlibevent鐨勪嬌鐢ㄤ笂,榪欓噷鐨勫仛娉曚笌浠栦笉灝界浉鍚?
1) 浠栦嬌鐢ㄤ簡libevent鑷甫鐨凴PC鍔熻兘, 鑰岃繖閲屽彧浣跨敤鍒發ibevent瀵圭綉緇淚/O榪涜鐨勫皝瑁呯殑鏈鍩烘湰鐨勫姛鑳?
2) 涔嬫墍浠ユ湁1)鐨勮冭檻,鏄洜涓烘垜璁や負涓涓伐鍏鋒渶濂藉簲璇ユ槸"do one thing, do it better"鐨?涔熻浠庤繖鐐瑰彲浠ヨВ閲婁負浠涔坓oogle protobuf娌℃湁鍍弔hrift閭f牱鑷甫緗戠粶灞?鑰屾槸鎶婅繖涓伐浣滅暀緇欎簡鐢ㄦ埛),libevent宸茬粡瓚婃潵瓚婂ぇ,闄や簡瀵笽/O,淇″彿,瀹氭椂鍣ㄧ瓑鐨勫皝瑁呬箣澶?鐜板湪榪樻湁RPC,寮傛DNS,http鍗忚鐨勬敮鎸佺瓑絳?璇寸湡鐨?濡傛灉鍙槸鍏蟲敞鍒扮綉緇淚/O鐨勫璺鐢ㄦ満鍒?閭d箞鍑犱箮浠諱綍涓涓啛緇冪殑紼嬪簭鍛橀兘鍙互寰堝揩鐨勮嚜宸卞仛鍑鴻繖鏍風殑涓濂椾笢瑗挎潵,浣跨敤libevent鏃犻潪灝辨槸涓轟粖鍚庡彲鑳界殑璺ㄥ鉤鍙板仛鍑嗗緗簡.闅忕潃鎴戝libevent鍙戝睍鏂瑰悜鐨勪笉璁ゅ悓,榪樻浘緇忔兂榪囦嬌鐢╨ibev鏇夸唬libevent,涓嶈繃鐜板湪鏆傛椂涓嶆兂鎶樿吘榪欎釜浜嬫儏浜?

eventrpc欏圭洰鐩墠鏄?a >avidya涓嬬殑涓涓瓙欏圭洰,avidya欏圭洰鐨勫畾浣嶆槸瀹炵幇涓浜涘垎甯冨紡鐨勭帺鍏風郴緇?姣斿google宸茬粡鍏紑璁烘枃鐨刢hubby,mapreduce,GFS絳?,涔熻浠ュ悗涓嶄竴瀹氳兘琚敤涓?浣嗘槸涔熻瀹炶返鍋氫竴鎶?鐢變簬鏈変竴涓ソ鐢ㄧ殑RPC妗嗘灦鏄仛鍒嗗竷寮忕殑蹇呴渶鍝?鎵鏈夐鍏堝疄鐜癳ventrpc榪欎釜瀛愰」鐩簡,浠ュ悗涔熻榪樹細瀹炵幇鍏朵粬璇█鐨勭増鏈?濡俻ython,java.

eventrpc鐨勭綉緇滄ā鍨嬩笂,浣跨敤浠ュ墠鎻愬埌鐨?a href="http://m.shnenglu.com/converse/archive/2010/03/11/109449.html">memcached鐨勭綉緇滄ā鍨?/a>, 涓葷嚎紼嬭礋璐f帴鏀舵柊鐨勮繛鎺? 鍐嶅皢榪欎簺鏂扮殑榪炴帴浜ょ敱鍓嚎紼嬪鐞?姣忎釜鍓嚎紼嬭嚜甯/O dispatcher.鍦╯amples鐩綍涓?鏈変竴涓疄鐜頒簡echo鏈嶅姟鐨勫鎴風鍜屾湇鍔″櫒绔ず渚?

鍦ㄤ嬌鐢ㄤ箣鍓?璇風‘淇漧ibevent鍜実oogle protobuf宸茬粡瀹夎鎴愬姛,褰撳墠鍙湪linux涓嬪彲鐢?



閭h皝 2010-06-20 16:30 鍙戣〃璇勮
]]>
嫻嬭瘯椹卞姩寮鍙?/title><link>http://m.shnenglu.com/converse/archive/2010/06/10/117596.html</link><dc:creator>閭h皝</dc:creator><author>閭h皝</author><pubDate>Thu, 10 Jun 2010 15:19:00 GMT</pubDate><guid>http://m.shnenglu.com/converse/archive/2010/06/10/117596.html</guid><wfw:comment>http://m.shnenglu.com/converse/comments/117596.html</wfw:comment><comments>http://m.shnenglu.com/converse/archive/2010/06/10/117596.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/converse/comments/commentRss/117596.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/converse/services/trackbacks/117596.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt;">鏈変竴鏈功灝卞彨<a ><<嫻嬭瘯椹卞姩寮鍙?gt;></a> , 鎴戞病鏈夌湅榪?榪欓噷浠呰皥璁烘垜鎵鐞嗚В鐨?嫻嬭瘯椹卞姩寮鍙?.<br><br>鎴戝榪欏彞璇濈殑鐞嗚В鏄? <br>1) 浠諱綍涓嬈℃彁浜ゆ柊鐨勪唬鐮侀兘闇瑕佹坊鍔犻拡瀵硅繖浜涙柊鍔熻兘鐨勬祴璇曠敤渚?<br>2) 鏃犺璁捐鍑芥暟榪樻槸綾? 瀵瑰鏆撮湶鐨勬帴鍙i兘搴旇鍋氬埌鏄庣‘, 娓呮櫚, 涓嶄細緇欎漢妯℃1涓ゅ彲鐨勬劅瑙?鎻愪緵鐨勫姛鑳界偣灝藉彲鑳界殑鍗曚竴, do one thing, do it well.<br><br>綆鑰岃█涔? 鎴戞墍鐞嗚В鐨?嫻嬭瘯椹卞姩寮鍙?, 鍗佸垎寮鴻皟瀵規帴鍙g殑璁捐, 浠ュ強閽堝榪欎釜鎺ュ彛鎵闇瑕佽冭檻鐨勫紓甯稿拰嫻嬭瘯鐢ㄤ緥.鎺ュ彛鏄澶栫殑淇濊瘉, 鑰屾祴璇曠敤渚嬫槸楠屾敹鑰? 姣忔鐨勪慨鏀? 閮介渶瑕佷繚璇佷箣鍓嶅拰鐜板湪鐨勭敤渚嬭兘欏哄埄閫氳繃.<br><br>鎵浠? 瀵瑰紑鍙戜漢鍛樻潵璇? 濡傛灉鏈夎繖涓?嫻嬭瘯椹卞姩寮鍙?鐨勮蹇? 閭d箞鍦ㄨ璁$紪鍐欎唬鐮佺殑鏃跺欎細寰堝鏄撶殑褰㈡垚鍑犱釜濂戒範鎯? 姣斿浠栦細鍙嶉棶鑷繁浠ヤ笅鍑犱釜闂:<br>1) 鏂板鐨勪唬鐮佹彁渚涚殑鏄粈涔堝姛鑳? 鍔熻兘鐐規槸鍚﹁凍澶熺殑鍗曚竴, 鏄庣‘, 姣斿鏈嫻嬭瘯鐨勪唬鐮佷粎閽堝鍔熻兘A, 涓嬩竴嬈$殑浠呴拡瀵瑰姛鑳紹, 鍋囧B鍔熻兘榪樹緷璧栦簬A鍔熻兘, 閭d箞棣栧厛瑕佷繚璇丄鍔熻兘鐐規紜彁浜?鍒囧繉涓囦笉寰楀凡鐨勬儏鍐典笅涓嶅彲浠ュ皢澶氫釜鍔熻兘鐐規斁鍦ㄤ竴嬈℃彁浜や腑, 榪欐牱, 浠ュ悗鍥炴函闂鏃朵細鍔犲ぇ闅懼害, 涔熶細緇檆odereview絳夊甫鏉ュ洶闅?<br>2) 鏂板鐨勫姛鑳? 瀵瑰鏆撮湶鐨勬帴鍙f槸鍝簺?鏈夋病鏈夊啑浣? 涓嶆槑紜殑鎺ュ彛璁捐?榪欎簺鎺ュ彛鏄笉鏄垰鍒氬ソ涓嶅涓嶅皯瓚沖浜?<br>3) 瀵規柊澧炵殑鍔熻兘, 鏄庣‘浜嗗澶栧簲璇ユ彁渚涗粈涔堟帴鍙d箣鍚? 榪橀渶瑕佸弽闂嚜宸?鍙兘鍦ㄥ摢浜涙儏鍐典笅鍑洪敊, 姣忕鍑洪敊鐨勬儏鍐靛簲璇ュ浣曞鐞? 濡備綍閫氱煡璋冪敤鑰? 浠g爜鐨勬敞閲婃槸涓嶆槸瀵逛竴浜涙儏鍐典綔浜嗚鏄?<br>4) 鏈鍚? 瀵規柊澧炵殑鍔熻兘, 鑰冭檻浜嗗摢浜涙祴璇曠敤渚? 嫻嬭瘯鏄惁鍏呭垎, 鏄惁鑰冭檻浜嗗緢澶氬紓甯哥殑鎯呭喌?<br><br>鎵浠? 姣忔鐨勪唬鐮佹彁浜ら兘鏄竴浠跺緢涓ヨ們鐨勪簨鎯? 榪欐剰鍛崇潃, 浣犲緋葷粺鐜版湁鐨勪唬鐮佸仛鍑轟簡涓浜涗慨鏀? 鍙兘鏄帴鍙g殑淇敼, 鍙兘鏄疄鐜扮殑淇敼.濡備綍鑳戒繚璇佷綘鐨勪慨鏀規病鏈夐棶棰? codereview鏄竴鐐? 濂界殑codereview鏄竴浠跺緢鑰楁椂鐨勪簨鎯? 榪欓渶瑕乺eviewer璐熻矗浠?鍚屾椂鏈濂借繕瑕佸灝戝榪欓儴鍒嗕唬鐮佹湁浜嗚В.濡傛灉reviewer鑳藉姏杈冨己, 鍙堟瘮杈冭礋璐? 閭d箞涓嬈eview鐩稿綋浜庢槸涓涓佸笀鍦ㄩ槄璇諱綔涓? 浠栦細緇欏嚭浣犱竴浜涘緩璁?鍙嶄箣, 濡傛灉浣犱綔涓簉eviewer鍘籸eview涓涓珮姘村鉤鐨勪漢鐨勪唬鐮? 鍙堝彲浠ヤ粠闃呰涓涔犲鏂圭殑鎬濊礬.鎬昏岃█涔? 鎴戣寰楀仛濂絚odereview鏄竴浠惰兘澶熻繀閫熸彁楂?緇忛獙鍊?鐨勬嵎寰? 鏃╁墠鎴戦槄璇昏繃璁稿寮婧愰」鐩? 瀛︿範浜嗗緢澶氬埆浜虹殑鎶宸ф濊礬, codereview姣斾箣鏇磋繎浜嗕竴姝?-鍥犱負鎴戣繕鏈夋満浼氫笌浣滆呴潰瀵歸潰鐨勪竴璧蜂氦嫻?鍙﹀, 闄や簡codereview涔嬪, 姣忔鎻愪氦閮芥湁嫻嬭瘯鐢ㄤ緥, 涔熸槸淇濊瘉浠g爜璐ㄩ噺鐨勬柟寮忎箣涓, 濡傛灉鎶婁唬鐮佹瘮鍋氫竴涓悆鍦? 閭d箞嫻嬭瘯鐢ㄤ緥灝辨槸绔欏湪榪欎釜鐞冨満闂ㄥ彛榪涜瀹夋宸ヤ綔鐨勪繚瀹? 涓嶈鍋氫簡浠涔堜慨鏀? 鍙淇濊瘉嫻嬭瘯鐢ㄤ緥鍐欑殑濂? 閭d箞鍩烘湰涓婇兘璺戜笉榪囪繖涓繚瀹夌殑鎺屽績.鏈変簡嫻嬭瘯鐢ㄤ緥, 欏圭洰鐨勪慨鏀規墠鏈変簡淇濊瘉, 瀹冩墍鎻愪緵鐨勫姛鑳? 閮芥槸鍙帶鐨?鏈変繚璇佺殑.<br><br>鍙﹀, 姣忔鎻愪氦鐨勪慨鏀瑰姛鑳界偣灝介噺鐨勫崟涓涔熸槸寰堥噸瑕佺殑涓鐐? 鍥犱負鍋囪浣犳兂鍋氱殑浜嬫儏寰堝, 姣斿鍋氫簡A鍙堟兂鍋欱,鍙戠幇鍋欱鍔熻兘闇瑕佸疄鐜癈鍔熻兘,瀹炵幇C鍔熻兘棣栧厛瑕佸仛D鍔熻兘....瀛愬瓙瀛欏瓩,鏃犵┓灝戒篃.榪欐牱浼氬鑷翠綘鐨勪唬鐮佹彁浜odereview鏃惰閫氳繃鐨勬椂闂存參(鍘熷洜鏈夊緢澶? 姣斿浣犻渶瑕佹彁浜ゆ祴璇曠敤渚嬪浜? 姣斿鍒漢鐨刢odereview鏃墮棿澶氫簡).榪樻湁涓鐐? 鍋囧鍒漢璧跺湪浣犱箣鍓嶆彁浜や簡浠g爜, 鑰屼綘鐨勪慨鏀歸渶瑕佷緷璧栧埆浜虹殑浠g爜, 榪欐牱瀵艱嚧浜嗕綘闇瑕佸悎騫跺埆浜虹殑鏀瑰姩, 榪欏張鏄竴浠跺緢楹葷儲鐨勪簨鎯?<br><br>鎵浠? 褰撴帴鎵嬩竴涓換鍔℃椂, 濡備綍鎸夌収灞傛欏哄簭鍒掑垎浠誨姟, 姣忔鎻愪氦閮戒繚璇佸敖鍙兘鎻愪氦灝戠殑鍔熻兘鐐? 鑰屼笖鍙堣兘淇濊瘉姣忔鐨勬彁浜ら兘鏈変弗鏍肩殑嫻嬭瘯鐢ㄤ緥, 涔熸槸瀵瑰紑鍙戜漢鍛樼殑涓涓冮獙.褰撶劧,榪欎簺涔熻鍦ㄥ姩鎵嬬殑鏃跺欎笉鑳界櫨鍒嗙櫨鐨勮冭檻娓呮, 浣嗘槸濡傛灉瀹屽叏鐨勬病鏈夎冭檻榪? 涓婃墜灝卞仛, 榪熸棭閮借榪樼殑.<br><br>鍙﹀, 鏈変簡鍚屾柊澧炰唬鐮佷竴璧鋒彁浜ゆ祴璇曠敤渚嬬殑瑕佹眰涔嬪悗, "鐪嬩笂鍘?姣忔鎻愪氦鐨勯熷害鎱簡, 鍥犱負榪橀渶瑕佹挵鍐欐祴璇曠敤渚? 鎵浠ュ浠誨姟鏃墮棿鐐圭殑浼拌鍙兘涔熼渶瑕佹敼鍙? 鎴戜釜浜虹殑浼拌鏄啓浠g爜鏃墮棿 : 嫻嬭瘯鏃墮棿(鍖呮嫭鍐欐祴璇曠敤渚?鏀筨ug) : 鏍規嵁codereview淇敼浠g爜鐨勪笁鑰呬箣闂存瘮渚嬪ぇ姒備負4:3:3, 鎵浠ュ鏋滀竴涓換鍔$粰鎴戜簲涓伐浣滄棩鐨勬椂闂村畬鎴? 涔熻浠ュ墠鎴戝埌浜嗙鍥涘ぉ鎵嶇紪鐮佸畬鎴? 鑰岀幇鍦ㄥ氨瑕佸敖閲忓仛鍒扮涓夊ぉ涔嬪唴鑳藉畬鎴愮紪鐮佷簡.涓嶈繃榪欎釜姣斾緥騫朵笉紜畾, 渚濅釜浜虹殑绱犺川鑰屽畾, 鏈夌殑浜哄啓浠g爜璐ㄩ噺寰堥珮, 鑷繁宸茬粡鎶婂緢澶氭儏鍐靛湪鍐欑殑鏃跺欒冭檻榪涘幓浜? 鎵浠ュ悗鏈熸祴璇曞拰codereview鏃跺嚭鐜伴棶棰樼殑鏈轟細灝? 鍙嶄箣, 鏈夌殑浜虹殑浠g爜璐ㄩ噺杈冨樊鐨? 鍙兘緇忓父鍦╟odereview鐨勬椂鍊欒鎵撳洖鍘婚噸鏋?鐢氳嚦浜庨噸鍐?鐨? 鍚庨潰鐨勬瘮渚嬪氨瑕佸鍔犱簡.浠ユ垜鑰岃█, 濡傛灉鑳藉湪淇濊瘉浠g爜璐ㄩ噺鐨勫悓鏃? 鍑忓皯鍚庨潰涓ら」鐨勬椂闂存瘮渚? 閭e簲璇ユ槸璇存槑浜嗘垜鐨勪唬鐮佽川閲忔湁浜嗘彁楂樹簡.<br><br>鎬昏岃█涔? 鎺ュ彛鐨勮璁? 浠誨姟灞傛欏哄簭鐨勫垝鍒? 閮芥槸寰堣冮獙浜虹粡楠岀殑媧? 璇█鐨勮〃杈炬繪槸鑻嶇櫧鐨? 闇瑕佸疄瀹炲湪鍦ㄧ殑鍘誨疄璺典綋浼?<br><br>K.I.S.S<br> </span> <img src ="http://m.shnenglu.com/converse/aggbug/117596.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/converse/" target="_blank">閭h皝</a> 2010-06-10 23:19 <a href="http://m.shnenglu.com/converse/archive/2010/06/10/117596.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瑙hgoogle C++ code style璋堝C++鐨勭悊瑙?/title><link>http://m.shnenglu.com/converse/archive/2010/05/29/116689.html</link><dc:creator>閭h皝</dc:creator><author>閭h皝</author><pubDate>Sat, 29 May 2010 12:34:00 GMT</pubDate><guid>http://m.shnenglu.com/converse/archive/2010/05/29/116689.html</guid><wfw:comment>http://m.shnenglu.com/converse/comments/116689.html</wfw:comment><comments>http://m.shnenglu.com/converse/archive/2010/05/29/116689.html#Feedback</comments><slash:comments>43</slash:comments><wfw:commentRss>http://m.shnenglu.com/converse/comments/commentRss/116689.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/converse/services/trackbacks/116689.html</trackback:ping><description><![CDATA[ C++鏄竴闂ㄨ凍澶熷鏉傜殑璇█.璇村畠"瓚沖澶嶆潅",鏄洜涓篊++鎻愪緵浜嗚凍澶熷緙栫▼鑼冨紡--娉涘瀷, 妯℃澘, 闈㈠悜瀵硅薄, 寮傚父,絳夌瓑.欏轟究璇磋,鎴戝凡緇忓緢涔呮病鏈夎窡榪汣++鐨勬渶鏂板彂灞曚簡(姣斿C++0x), 鎵浠ュ墠闈㈠垪涓懼嚭鏉ョ殑鐗規у簲璇ュ彧鏄疌++鎵鏈夌壒鎬х殑涓涓儴鍒嗙艦浜?C++鐗規ц繃澶氬緢闅鵑┚椹ソC++鐨勫師鍥犱箣涓.鍙︿竴涓師鍥犳槸C++榪囦簬"鑷綔鑱槑",鍦ㄥ緢澶氬湴鏂規倓鏃犲0鎭殑鍋氫簡寰堝浜嬫儏, 姣斿闅愬紡鐨勭被鍨嬭漿鎹? 閲嶈澆, 妯℃澘鎺ㄥ絳夌瓑.鑰屽緢澶氭椂鍊?榪欎簺鍔ㄤ綔闅句互瀵熻,鏈夋椂鍊欎細鍦ㄤ綘鎰忔兂涓嶅埌鐨勫湴鏂瑰彂鐢?鍗充嬌鏄啛緇冪殑C++紼嬪簭鍛樹篃闅懼厤琚浼?(鍏充簬浜嗚ВC++緙栬瘧鍣ㄨ嚜浣滆仾鏄庡仛浜嗗摢浜涗簨鎯? <<娣卞叆鐞嗚ВC++鐗╀歡妯″瀷>>鏄笉閿欑殑閫夋嫨).<br><br>涓栫晫涓婃湁寰堝闂, 浜轟滑鐭ラ亾濡備綍鍘昏В鍐?浣嗘槸, 浼間箮榪欒繕涓嶇畻鏄渶楂樻槑鐨?鏇撮珮鏄庣殑鍋氭硶鏄浼氶伩鍏嶉棶棰樼殑鍙戠敓.鑰屽浣曢伩鍏嶉棶棰樼殑鍙戠敓, 闇瑕佺粡楠岀殑縐瘡--鏇劇粡鐘笅閿欒,鍚冧竴鍫戦暱涓鏅?浜庢槸鐭ラ亾鍝簺浜嬫儏鏄笉璇ュ仛鐨勬垨鑰呮槸涓嶅簲璇ヨ繖涔堝仛鐨?<br><br><a >google C++ code style</a>鏄痝oogle瀵瑰鍏竷鐨勪竴浠絞oogle鍐呴儴緙栧啓C++鐨勪唬鐮佽鑼冩枃妗?涓庡叾浠栧緢澶氭垜鏇劇粡鐪嬭繃鐨勭紪鐮佹枃妗d竴鏍?閲岄潰鏈変竴浜涘叧浜庝唬鐮侀鏍肩殑瑙勫畾,涔熷氨鏄唬鐮佺殑澶栬,榪欎竴閮ㄥ垎涓嶅湪榪欓噷榪囧璁ㄨ,姣曠珶浠g爜濡備綍鎵嶅彨"緹庤"鏄竴涓浠佽鏅虹殑璇濋.鍦ㄨ繖閲屼笓闂ㄨ璁鴻繖浠芥枃妗d腑瀵逛竴浜汣++鐗規ц濡備綍浣跨敤鐨勮璁?鏈鍚庡啀鍋氫竴涓葷粨.娉ㄦ剰鍏朵腑鐨勫簭鍙峰茍涓嶆槸鏂囨。涓殑搴忓彿,濡傛灉瑕佽緇嗕簡瑙?鍙互鑷繁鍘葷湅榪欎喚鏂囨。.<br><br><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000; ">1</span><span style="color: #000000; ">) Static and Global Variables<br>   Static or global variables of </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> type are forbidden: they cause hard</span><span style="color: #000000; ">-</span><span style="color: #000000; ">to</span><span style="color: #000000; ">-</span><span style="color: #000000; ">find bugs due to indeterminate order of construction and destruction.</span></div>google鏄庣‘紱佹鍏ㄥ眬瀵硅薄鏄被瀵硅薄, 鍙兘鏄墍璋揚OD(Plain Old Data,濡俰nt char絳?鏁版嵁鎵嶈.鍥犱負C++鏍囧噯涓病鏈夋槑紜瀹氬叏灞瀵硅薄鐨勫垵濮嬪寲欏哄簭, 鍋囪鍏ㄥ眬綾誨璞,B,鍏朵腑A鐨勫垵濮嬪寲渚濊禆浜嶣鐨勫? 閭d箞灝嗘棤娉曚繚璇佹渶鍚庣殑緇撴灉.濡傛灉闈炶浣跨敤鍏ㄥ眬綾誨璞? 閭d箞鍙兘浣跨敤鎸囬拡, 鍦╩ain絳夊嚱鏁板叆鍙g粺涓榪涜鍒濆鍖?<br><br><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000; ">2</span><span style="color: #000000; ">) Doing Work </span><span style="color: #0000FF; ">in</span><span style="color: #000000; "> Constructors<br>In general, constructors should merely </span><span style="color: #0000FF; ">set</span><span style="color: #000000; "> member variables to their initial values. Any complex initialization should go </span><span style="color: #0000FF; ">in</span><span style="color: #000000; "> an </span><span style="color: #0000FF; ">explicit</span><span style="color: #000000; "> Init() method. </span></div>鏂囨。瑙勫畾, 鍦ㄧ被鏋勯犲嚱鏁頒腑瀵圭被鎴愬憳瀵硅薄鍋氬熀鏈殑鍒濆鍖栨搷浣? 鎵鏈夌殑澶嶆潅鍒濆鍖栨搷浣滈泦涓竴涓瘮濡侷nit()鐨勫嚱鏁頒腑,鐞嗙敱濡備笅:<br> <ul> <li> There is no easy way for constructors to signal errors, short of using exceptions (which are <a >forbidden</a>). </li> <li> If the work fails, we now have an object whose initialization code failed, so it may be an indeterminate state. </li> <li> If the work calls virtual functions, these calls will not get dispatched to the subclass implementations. Future modification to your class can quietly introduce this problem even if your class is not currently subclassed, causing much confusion. </li> <li> If someone creates a global variable of this type (which is against the rules, but still), the constructor code will be called before <code>main()</code>, possibly breaking some implicit assumptions in the constructor code. For instance, <a >gflags</a> will not yet have been initialized. </li> </ul> 綆鍗曠殑姒傛嫭璧鋒潵涔熷氨鏄?鏋勯犲嚱鏁版病鏈夎繑鍥炲? 闅句互璁╀嬌鐢ㄨ呮劅鐭ラ敊璇?鍋囧鍦ㄦ瀯閫犲嚱鏁頒腑璋冪敤铏氭嫙鍑芥暟, 鍒欐棤娉曟寜鐓т嬌鐢ㄨ呯殑鎯蟲硶璋冪敤鍒板搴斿瓙綾諱腑瀹炵幇鐨勮櫄鎷熷嚱鏁?鐞嗙敱鏄瀯閫犲嚱鏁拌繕鏈畬鎴愭剰鍛崇潃榪欎釜瀵硅薄榪樻病鏈夎鎴愬姛鏋勯犲畬鎴?.<br><br><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000; ">3</span><span style="color: #000000; ">) Default Constructors<br>You must define a </span><span style="color: #0000FF; ">default</span><span style="color: #000000; "> constructor </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> your </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> defines member variables and has no other constructors. Otherwise the compiler will </span><span style="color: #0000FF; ">do</span><span style="color: #000000; "> it </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> you, badly. </span></div>褰撶▼搴忓憳娌℃湁涓虹被緙栧啓涓涓粯璁ゆ瀯閫犲嚱鏁扮殑鏃跺? 緙栬瘧鍣ㄤ細鑷姩鐢熸垚涓涓粯璁ゆ瀯閫犲嚱鏁?鑰岃繖涓紪璇戝櫒鐢熸垚鐨勫嚱鏁板浣曞疄鐜?姣斿濡備綍鍒濆鍖栫被鎴愬憳瀵硅薄)鏄笉紜畾鐨?榪欐牱,鍋囧鍑虹幇闂鏃跺皢緇欒皟璇曡窡韙甫鏉ュ洶闅?鎵浠? 瑙勮寖瑕佹眰姣忎釜綾婚兘闇瑕佺紪鍐欎竴涓粯璁ゆ瀯閫犲嚱鏁伴伩鍏嶈繖縐嶆儏鍐電殑鍑虹幇.<br><br><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000; ">4</span><span style="color: #000000; ">) Explicit Constructors<br>Use the C</span><span style="color: #000000; ">++</span><span style="color: #000000; "> keyword </span><span style="color: #0000FF; ">explicit</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> constructors with one argument.</span></div>鍋囧鏋勯犲嚱鏁板彧鏈変竴涓弬鏁? 浣跨敤explicit閬垮厤闅愬紡杞崲, 鍥犱負闅愬紡杞崲鍙兘鍦ㄤ綘騫朵笉闇瑕佺殑鏃跺欏嚭鐜?<br> <br><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000; ">5</span><span style="color: #000000; ">) Copy Constructors<br>Provide a copy constructor and assignment </span><span style="color: #0000FF; ">operator</span><span style="color: #000000; "> only when necessary. Otherwise, disable them with DISALLOW_COPY_AND_ASSIGN.</span></div>鍙湁褰撳繀瑕佺殑鏃跺欐墠闇瑕佸畾涔夋嫹璐濇瀯閫犲嚱鏁板拰璧嬪兼搷浣滅. 鍚屼笂涓鏉$悊鐢變竴鏍? 閬垮厤涓浜涢殣寮忕殑杞崲.鍙︿竴鏉$悊鐢辨槸,"="闅句互璺熻釜,濡傛灉鐪熺殑瑕佸疄鐜扮被浼肩殑鍔熻兘,鍙互鎻愪緵姣斿鍚嶄負Copy()鐨勫嚱鏁?榪欐牱瀛愪竴鐩簡鐒?涓嶄細鍍忚祴鍊兼搷浣滅閭f牱鍙兘鍦ㄦ瘡涓?="鍑虹幇鐨勫湴鏂瑰嚭鐜?<br><br><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000; ">6</span><span style="color: #000000; ">) Operator Overloading<br>Do not overload operators except </span><span style="color: #0000FF; ">in</span><span style="color: #000000; "> rare, special circumstances.</span></div>涓嶈閲嶈澆鎿嶄綔絎?鍚屾牱, 涔熸槸閬垮厤鑾悕鍏跺鐨勮皟鐢ㄤ簡涓浜涘嚱鏁?鍚屼笂涓鏉′竴鏍? 姣斿瑕佹彁渚涘"=="鐨勯噸杞? 鍙互鎻愪緵涓涓悕涓篍qual()鐨勫嚱鏁? 濡傛灉闇瑕佹彁渚涘"+"鐨勯噸杞? 鍙互鎻愪緵涓涓悕涓篈dd()鐨勫嚱鏁?<br><br><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000; ">7</span><span style="color: #000000; ">) Function Overloading<br>Use overloaded functions (including constructors) only </span><span style="color: #0000FF; ">in</span><span style="color: #000000; "> cases where input can be specified </span><span style="color: #0000FF; ">in</span><span style="color: #000000; "> different types that contain the same information. Do not use function overloading to simulate </span><span style="color: #0000FF; ">default</span><span style="color: #000000; "> function parameters.</span></div>鍙湁鍦ㄤ笉鍚岀殑綾誨瀷琛ㄧず鍚屾牱鐨勪俊鎭殑鏃跺? 鍙互浣跨敤閲嶈澆鍑芥暟.鍏朵粬鎯呭喌涓?涓寰嬩笉鑳戒嬌鐢?浣跨敤閲嶈澆, 涔熷彲鑳藉嚭鐜頒竴浜涢殣寮忓嚭鐜扮殑杞崲.鎵浠? 鍦ㄩ渶瑕佸涓嶅悓鍑芥暟榪涜鍚屾牱鎿嶄綔鐨勬椂鍊? 鍙互鍦ㄥ嚱鏁板悕縐頒笂榪涜鍖哄垎, 鑰屼笉鏄嬌鐢ㄩ噸杞?濡傚彲浠ユ彁渚涢拡瀵箂tring綾誨瀷鐨凙ppendString()鍑芥暟, 閽堝int綾誨瀷鐨凙ppendInt()鍑芥暟,鑰屼笉鏄string鍜宨nt綾誨瀷閲嶈澆Append()鍑芥暟.鍙︿竴涓ソ澶勫湪浜? 鍦ㄩ槄璇諱唬鐮佹椂,閫氳繃鍑芥暟鍚嶇О鍙互涓鐩簡鐒?<br><br><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000; ">8</span><span style="color: #000000; ">) Exceptions<br>We </span><span style="color: #0000FF; ">do</span><span style="color: #000000; "> not use C</span><span style="color: #000000; ">++</span><span style="color: #000000; "> exceptions.</span></div>涓嶄嬌鐢ㄥ紓甯?鐞嗙敱濡備笅:<br> <ul> <li>When you add a <code>throw</code> statement to an existing function, you must examine all of its transitive callers. Either they must make at least the basic exception safety guarantee, or they must never catch the exception and be happy with the program terminating as a result. For instance, if <code>f()</code> calls <code>g()</code> calls <code>h()</code>, and <code>h</code> throws an exception that <code>f</code> catches, <code>g</code> has to be careful or it may not clean up properly.</li> <li>More generally, exceptions make the control flow of programs difficult to evaluate by looking at code: functions may return in places you don't expect. This results maintainability and debugging difficulties. You can minimize this cost via some rules on how and where exceptions can be used, but at the cost of more that a developer needs to know and understand.</li> <li>Exception safety requires both RAII and different coding practices. Lots of supporting machinery is needed to make writing correct exception-safe code easy. Further, to avoid requiring readers to understand the entire call graph, exception-safe code must isolate logic that writes to persistent state into a "commit" phase. This will have both benefits and costs (perhaps where you're forced to obfuscate code to isolate the commit). Allowing exceptions would force us to always pay those costs even when they're not worth it.</li> <li>Turning on exceptions adds data to each binary produced, increasing compile time (probably slightly) and possibly increasing address space pressure. </li> <li>The availability of exceptions may encourage developers to throw them when they are not appropriate or recover from them when it's not safe to do so. For example, invalid user input should not cause exceptions to be thrown. We would need to make the style guide even longer to document these restrictions!</li> </ul> 涓婇潰鎻愬埌鐨勭悊鐢變腑, 鎴戣涓轟嬌鐢ㄥ紓甯告渶澶х殑瀹沖灝辨槸:寮傚父鐨勪嬌鐢ㄥ鑷翠簡紼嬪簭鏃犳硶鎸夌収浠g爜鎵灞曠幇鐨勬祦紼嬪幓璧扮殑, 姣斿浠g爜閲岄潰鍐欎簡姝ラ涓浜屼笁,浣嗘槸鍋囧鏈夊紓甯稿嚭鐜? 榪欏氨涓嶅ソ棰勭煡浠g爜鐪熸姝ヨ繘鐨勬楠や簡, 鍦ㄥ嚭鐜伴棶棰樻椂, 緇欒皟璇曞拰璺熻釜甯︽潵鍥伴毦.<br>鍙﹀, 鎴戞洿鍠滄unix API鐨勮璁?鐔熸倝unix緙栫▼鐨勪漢閮界煡閬? unix API鍩烘湰涓婇兘閬靛畧涓嬪垪瑙勫垯:<br>a) 榪斿洖0琛ㄧず鎴愬姛, 鍏朵粬(涓鑸槸-1)琛ㄧず澶辮觸.<br>b) 鍦ㄥけ璐ユ椂, 鍙互鏍規嵁errno鍒ゆ柇澶辮觸鐨勫師鍥? 榪欎簺鍦╩an鎵嬪唽涓兘鏄細娓呮鐨勬弿榪?<br><br>鎬葷粨涓涓? 榪欎喚瑙勮寖涓閬跨殑C++鐗規уぇ鑷村垎涓轟互涓嬪嚑綾?<br>a) 閬垮厤浣跨敤閭d簺娌℃湁紜畾琛屼負鐨勭壒鎬?濡傚叏灞鍙橀噺涓嶈兘鏄被瀵硅薄(鍒濆鍖栭『搴忎笉紜畾), 涓嶄嬌鐢ㄧ紪璇戝櫒鐢熸垚鐨勯粯璁ゆ瀯閫犲嚱鏁?鏋勯犺涓轟笉紜畾), 寮傚父(浠g爜璧板悜涓嶇‘瀹?.<br>b) 閬垮厤浣跨敤閭d簺闅愬紡鍙戠敓鐨勬搷浣?濡傚0鏄庡崟鍙傛暟鏋勯犲嚱鏁頒負explict浠ラ伩鍏嶉殣寮忚漿鎹? 涓嶅畾涔夋嫹璐濇瀯閫犲嚱鏁伴伩鍏嶉殣寮忕殑鎷瘋礉琛屼負, 涓嶄嬌鐢ㄦ搷浣滅閲嶈澆閬垮厤闅愬紡鐨勮漿鎹?br>c) 瀵規ā媯變袱鍙殑鐗規х粰浜堟槑紜殑瑙勫畾:涓嶄嬌鐢ㄥ嚱鏁伴噸杞借屾槸瀹氫箟瀵規瘡涓被鍨嬫槑紜殑鍑芥暟.<br>d) 鍗充嬌鍑洪敊浜嗙▼搴忎篃鏈夊姙娉曠煡閬? 姣斿涓嶈兘鍦ㄧ被鏋勯犲嚱鏁頒腑榪涜澶嶆潅鐨勬瀯閫犳搷浣? 灝嗚繖浜涚Щ鍔ㄥ埌綾籌nit()鐨勫嚱鏁頒腑.<br><br>鍚屾椂, 榪欎喚鏂囨。涓弿榪扮殑澶ч儴鍒咰++鐗規? 閮芥槸鎴戜箣鍓嶆墍鐔熸倝鐨?闄や簡RTTI涔嬪, 涓嶈繃榪欓噷鎻愬埌瀹冧篃鏄璇存槑涓嶄嬌鐢ㄥ畠,鍙﹀榪樻彁鍒癰oost, 涓嶈繃涔熸槸璇寸殑瑕佸瀹?鏈夐檺鍒?鐨勪嬌鐢?姣斿閲岄潰鐨勬櫤鑳芥寚閽?.鍙互鐪嬪埌, 闈㈠榪欐牱涓闂ㄥ鏉傚悓鏃惰繕鍦ㄤ笉鍋滅殑鍙戝睍鏇存柊鐗規х殑璇█, google鐨勬佸害鏄瘮杈?淇濆畧"鐨?榪欎笌鎴戜箣鍓嶅C++鐨勭悊瑙d篃鏄帴榪戠殑, 鎴戜竴鐩磋涓篊++涓渶瑕佷嬌鐢ㄥ埌鐨勭壒鎬ф湁鍩烘湰鐨勯潰鍚戝璞?STL灝卞浜?緇忚繃鏈榪戠殑緙栫爜瀹炶返,鎴戣涓鴻繕寰楀姞涓櫤鑳芥寚閽?.鎴戝榪欎釜"淇濆畧"鎬佸害鐨勭悊瑙f槸, 浠++褰撳墠鐨勫簲鐢ㄥ満鏅潵鐪? 榪欎簺鐗規у凡緇忚凍澶? 濡傛灉浣跨敤鍏朵粬涓浜涙洿鍔犲鏉傜殑, 瀵逛漢鐨勮姹傛彁楂樹簡, 浠g爜鐨勫彲璇繪т互鍙婁互鍚庣殑鍙淮鎶ゆу氨涓嬮檷浜?<br><br>鍓嶉潰璇磋繃, 閬垮厤闂鐨勫嚭鐜版瘮瑙e喅闂鏉ョ殑鏇村姞楂樻槑浜? 鑰岄潰瀵笴++榪欎竴涓彁渚涗簡浼楀鐗規? google C++ code style緇欎簣浜嗘槑紜殑瑙勫畾, 涔熷氨鏄瘡涓涓? 濡傛灉閮借兘鍋氬埌鏈夋槑紜殑鍔ㄤ綔, 鍚屾椂緇撴灉涔熼兘鏄彲浠ラ鐭ョ殑, 閭d箞浼氬皢鍑洪棶棰樼殑姒傜巼鏈澶у彲鑳界殑闄嶄綆, 鍗充嬌鍑轟簡闂, 涔熷鏄撹窡韙?<br><br>涓婇潰鎻忚堪鐨勫茍涓嶆槸榪欎喚鏂囨。涓湁鍏矯++鐨勬墍鏈夊唴瀹? 鍙笉榪囨垜瑙夊緱榪欎簺鏇村姞鏈夊悓鎰熶簺, 璇︾粏鐨勫唴瀹? 鍙互鍙傜湅榪欎喚鏂囨。.閮界煡閬揼oogle鐨勪綔鍝?璐ㄩ噺鏈変繚璇? 闄や簡浜虹殑绱犺川紜疄楂樹箣澶? 鏈夎鑼冪殑鍒跺害淇濊瘉涔熸槸閲嶈鐨勫師鍥? 姣曠珶鍙鏄漢灝變細鐘敊, 涓轟簡鏈澶ч檺搴︾殑閬垮厤浜虹姱閿? 鏈変竴浠借灝界殑浠g爜瑙勮寖, 鍐欏ソ鍝簺璇ュ仛鍝簺涓嶈鍋氬摢浜涗笉璇ヨ繖涔堝仛, 涔熸槸鍒跺害涓婄殑淇濊瘉.鍙﹀, 鍋囧姣忎釜浜洪兘鑳戒互涓涓瘮杈冮珮鐨勬爣鍑嗚姹傝嚜宸辨墍鍐欑殑浠g爜, 涔呰屼箙涔? 鑾峰緱榪涙涔熸槸蹇呯劧鐨勭粨鏋?<br><br>浠庤繖濂楄鑼冮噷闈? 鎴戠殑鍙︿竴涓劅鎮熸槸, 涓嶈鏄粈涔堣涓? "瀛︿細濡備綍姝g‘鐨勫仛浜嬫儏", 閮芥槸鍗佸垎蹇呰鐨?榪欎釜"姝g‘鐨勫仛浜嬫儏", 鍏蜂綋鍒扮紪鐮佹潵璇? 灝辨槸浠g爜瑙勮寖閲岄潰鎻愬埌鐨勯偅浜涜姹?鑰岄櫎鍘葷紪鐮? 鍋氫換浣曠殑浜嬫儏, 浣跨敤姝g‘鐨勬柟寮忓仛浜? 閮芥槸灝藉彲鑳藉皯鐨勯伩鍏嶉敊璇殑鏂規硶.浣嗘槸, "閿?涓?瀵?鏄浉瀵硅岃█鐨? 娌℃湁涔嬪墠"閿?鐨勭粡鍘? 灝變笉濂戒綋浼氫粈涔堝彨"瀵?.鎵浠? "濡備綍姝g‘鐨勫仛浜?, 璇村埌浜嗘渶鍚? 榪樺緱鐪嬩釜浜虹殑緇忛獙縐瘡, 鏈変簡涔嬪墠"閿欒"鐨勭粡鍘?鎵嶈兘鍚冧竴鍫戦暱涓鏅? "閿欒"騫朵笉鏄竴鏃犳槸澶勭殑, 鍙笉榪? 騫朵笉鏄皝閮藉幓灝濊瘯鐫浠庝腑瀛︿範.<br><br><br> <img src ="http://m.shnenglu.com/converse/aggbug/116689.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/converse/" target="_blank">閭h皝</a> 2010-05-29 20:34 <a href="http://m.shnenglu.com/converse/archive/2010/05/29/116689.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Callback鍦–\C++涓殑瀹炵幇http://m.shnenglu.com/converse/archive/2010/04/19/113023.html閭h皝閭h皝Mon, 19 Apr 2010 14:45:00 GMThttp://m.shnenglu.com/converse/archive/2010/04/19/113023.htmlhttp://m.shnenglu.com/converse/comments/113023.htmlhttp://m.shnenglu.com/converse/archive/2010/04/19/113023.html#Feedback12http://m.shnenglu.com/converse/comments/commentRss/113023.htmlhttp://m.shnenglu.com/converse/services/trackbacks/113023.html闃呰鍏ㄦ枃

閭h皝 2010-04-19 22:45 鍙戣〃璇勮
]]>
鏂規硶涓庡伐鍏?/title><link>http://m.shnenglu.com/converse/archive/2010/04/15/112605.html</link><dc:creator>閭h皝</dc:creator><author>閭h皝</author><pubDate>Wed, 14 Apr 2010 16:57:00 GMT</pubDate><guid>http://m.shnenglu.com/converse/archive/2010/04/15/112605.html</guid><wfw:comment>http://m.shnenglu.com/converse/comments/112605.html</wfw:comment><comments>http://m.shnenglu.com/converse/archive/2010/04/15/112605.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://m.shnenglu.com/converse/comments/commentRss/112605.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/converse/services/trackbacks/112605.html</trackback:ping><description><![CDATA[ 浠庢渶榪戦亣鍒扮殑鍑犱釜鏁呬簨璇磋搗.<br><br>鏁呬簨涓:<br>鏌愬ぉ鏅氫笂鍜屽鍙嬭亰澶?璋堝埌浣跨敤Vim闃呰浠g爜,瀹ゅ弸涔熸槸浣跨敤Vim鐨勪漢,浠栬鐢ㄧ被浼糲tags鐨勬煡鎵懼畾浣嶅姛鑳戒笉澶?鏇村鐨勬椂鍊?浠栭槄璇諱竴孌典唬鐮?瑕佸畾浣嶄竴涓姛鑳界偣,棣栧厛鏄粠闃呰浠g爜鏂囦歡鐨勭粍緇?浜嗚В欏圭洰鐨勫姛鑳界瓑鍏ユ墜,絳夎繖浜涢兘鍩烘湰娓呮浜?瀹氫綅璧鋒潵灝變細蹇緢澶?鎴戣櫧鐒惰涓?ctags瀹炲湪鏄疺im閲岄潰涓涓緢涓嶉敊鐨勫姛鑳?涓嶇敤榪欎釜瀹炲湪鍙儨,浣嗘槸浠栬鐨勯偅濂楀畾浣嶆濊礬鍏跺疄涔熸槸涓嶉敊鐨勬柟娉?鍏跺疄鎴戣嚜宸辯敤鎯簡ctags綾葷殑鍔熻兘涔嬪悗,闃呰浠g爜鐨勬椂鍊欎篃浼氱敤鎯版?鏇村鐨勬椂鍊欐槸瑕侀潬榪欎簺宸ュ叿鏉ュ府鎴戝畾浣?鑰屼笉鏄氳繃鑷繁涓誨姩鐨勬濊冨拰鍒嗘瀽.<br><br>鏁呬簨浜?<br>鎴戠殑緇忛獙閲岄潰,鍐欏畬涓孌典唬鐮佷箣鍚庣殑絎竴嬈$紪璇?濡傛灉緙栬瘧鍣ㄦ姤閿欒秺灝?閭d箞鍙互璁や負榪欐浠g爜灝嗘潵鍙兘鍑虹幇bug鐨勫嚑鐜囪秺灝?綆鑰岃█涔?鎴戣涓轟唬鐮佺殑璐ㄩ噺涓庣涓嬈$紪璇戠殑鎶ラ敊鏁伴噺鎴愬弽姣?鍝?涓嶇敤鎷縣elloworld綾葷殑紼嬪簭璺熸垜閽葷墰瑙掑皷浜?).鏈変簺浜哄啓鐨勪唬鐮?鍝楀摋鐨勫啓浜嗕竴澶ф,鍐欎箣鍓嶄笉鑰冭檻濂?鍙兂鐫鍒版椂鍊欏啓鐨勪笉瀵逛簡鍙互鍦ㄧ紪璇戠敱緙栬瘧鍣ㄧ殑鎶ラ敊鏉ュ府蹇欐壘闂,榪欎釜鎬濊礬鏄笉瀵圭殑.緙栬瘧鎶ラ敊瓚婂皯鐨勪唬鐮?璇存槑浜嗕綔鑰呭啓鐨勬椂鍊欐濊礬鏇存竻鏅頒竴浜?鑰冭檻鐨勬洿鍛ㄥ叏涓浜?鎵鏈夌殑榪欎簺嫻佺▼涓婄殑姝ラ璧扮殑閮戒笉閿欎簡,鎵浠ユ墠鏈夋渶鍚庣紪璇戞姤閿欏皯鐨勭粨鏋?緙栬瘧鎶ラ敊搴旇鏄啓浠g爜鐨勭粨鏋滀箣涓,鑰屼笉搴斿綋褰撴垚浜嗘壘浠g爜闂鐨勬墜孌?榪欐牱鐨勬濊礬,鏈湯鍊掔疆浜?<br><br>鏁呬簨涓?<br>榪涘叆鏂伴」鐩粍鍚?緇勫唴瀵逛唬鐮佺紪鐮佺殑嫻佺▼鏈夋瘮杈冧弗鏍肩殑瑕佹眰,鍖呮嫭鍐欎竴涓狝PI涔嬪悗闇瑕佸啓涓涓拡瀵硅繖涓狝PI鐨勫悇縐嶆儏鍐電殑嫻嬭瘯鐢ㄤ緥,鎻愪氦浠g爜鐨勬椂鍊?闇瑕佽蛋codereview嫻佺▼,闇瑕佷嬌鐢╟pplint媯楠屼唬鐮侀鏍?闇瑕佸皢瀵瑰簲鐨勬祴璇曠敤渚嬩篃鎻愪氦涓婂幓.榪欎竴濂楁祦紼嬭蛋涓嬫潵,鎻愪氦浠g爜鐨勯鐜囨瘮涔嬩互鍓?闄嶄綆浜嗗緢澶?浣嗘槸涓嶅彲鍚﹁鐨勬槸,涔熺‘瀹炴彁楂樹簡浠g爜鐨勮川閲?鍋囪涓涓姛鑳?鐢盢涓狝PI鏋勬垚,濡傛灉鑳藉榪橬涓狝PI閮藉仛榪囪緇嗙殑嫻嬭瘯,淇濊瘉瀹冧滑鐨勮緭鍏ュ拰杈撳嚭鍦ㄥ悇縐嶆儏鍐典笅閮借兘絎﹀悎瑕佹眰,閭d箞寰堟樉鐒剁殑,鏈鍚庤繖涓姛鑳戒篃搴旇鏄紜殑.鍙嶄箣,瓚婃槸鍒頒簡嫻嬭瘯闃舵闇瑕佷嬌鐢ㄧ被浼糶db榪欐牱鐨勮皟璇曞櫒鏉ュ畾浣嶉棶棰樼殑,浼氳秺璁╀漢涓嶆斁蹇?--鍥犱負娌℃湁鍒跺害鍜屾祦紼嬬殑淇濊瘉,璋佷篃涓嶈兘璇村皢鏉ュ彲鑳藉湪鍝釜鐐逛細鍑洪棶棰?瀹冨彲浠ュ府浣犲畾浣嶉棶棰?浣嗘槸娌℃湁鍔炴硶鍛婅瘔浣犲凡緇忔病鏈夐棶棰樹簡,鏈鍚庤繖涓鐐?鏈緇堣繕鏄閫氳繃涓ユ牸鐨勫崟鍏冩祴璇曠瓑嫻佺▼鏉ヤ繚璇佺殑.涓庣浜屼釜鏁呬簨鐩稿悓,鎴戣涓?鍦ㄦ祴璇曢樁孌典嬌鐢╣db瀹氫綅闂鐨勬鏁頒篃涓庝唬鐮佺殑璐ㄩ噺鎴愬弽姣?)<br><br>榪欏嚑涓晠浜嬬患鍚堣搗鏉?鎯寵琛ㄨ揪鐨勬槸,鍋氫竴浠朵簨鎯?闇瑕佹湁嫻佺▼,鍒跺害鐨勪繚璇?褰撶劧涔熼渶瑕佸伐鍏?姣斿榪欏嚑涓晠浜嬮噷闈㈡彁鍒扮殑Vim,gcc,gdb),浣嗘槸宸ュ叿灝辨槸宸ュ叿,瀹冨彧鏄竴縐嶆墜孌?娌℃湁鍔炴硶鏇夸唬姝g‘鐨勬濊礬,嫻佺▼鍜屽埗搴︾瓑,浠呰兘鍦ㄦ暣涓繃紼嬩腑璧峰埌杈呭姪鐨勪綔鐢?鑰屼笖,榪囧垎渚濊禆宸ュ叿,涔熶細緇欎漢浠ユ儼鎬?姣斿鍓嶉潰鎻愬埌鐨勪嬌鐢ㄧ紪璇戝櫒緙栬瘧浠g爜鏉ユ壘閿?姣斿浣跨敤gdb鏉ヤ繚璇佸姛鑳芥紜х瓑).<br><br>鎵浠?鏇村簲璇ユ彁鍊$殑鏄紜殑嫻佺▼,鍒跺害,鏈変簡榪欎簺,欏圭洰鐨勮川閲忔墠鑳芥湁鎵淇濊瘉.姣斿,鍦ㄥ啓涓涓姛鑳界偣鏃?闇瑕佸叿浣撳垎瑙d負鍝嚑姝?姣忎竴姝ユ湁鍝嚑涓狝PI,閽堝瀹冧滑鐨勬祴璇曠敤渚嬫湁鍝簺,嫻嬭瘯鏃剁殑杈撳叆鍜岃緭鍑烘湁鍝簺,闇瑕佽冭檻鐨勫紓甯告儏鍐墊湁鍝簺,絳夌瓑鐨?榪欎簺閮借冭檻娓呮浜?鍐嶅姩鎵嬪啓,涔呰屼箙涔?鎴戞兂榪欐柟闈㈢殑鑳藉姏浼氭參鎱㈢殑鎻愰珮.<br><br><br><br><img src ="http://m.shnenglu.com/converse/aggbug/112605.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/converse/" target="_blank">閭h皝</a> 2010-04-15 00:57 <a href="http://m.shnenglu.com/converse/archive/2010/04/15/112605.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>memcached閲囩敤鐨勭綉緇滄ā鍨?/title><link>http://m.shnenglu.com/converse/archive/2010/03/11/109449.html</link><dc:creator>閭h皝</dc:creator><author>閭h皝</author><pubDate>Thu, 11 Mar 2010 12:30:00 GMT</pubDate><guid>http://m.shnenglu.com/converse/archive/2010/03/11/109449.html</guid><wfw:comment>http://m.shnenglu.com/converse/comments/109449.html</wfw:comment><comments>http://m.shnenglu.com/converse/archive/2010/03/11/109449.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.shnenglu.com/converse/comments/commentRss/109449.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/converse/services/trackbacks/109449.html</trackback:ping><description><![CDATA[     鎽樿: memcached閲囩敤鐨勭綉緇滄ā鍨嬫槸鏃╁墠鎻愬埌鐨勫崐鍚屾鍗婂紓姝ョ殑緗戠粶妯″瀷.  <a href='http://m.shnenglu.com/converse/archive/2010/03/11/109449.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/converse/aggbug/109449.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/converse/" target="_blank">閭h皝</a> 2010-03-11 20:30 <a href="http://m.shnenglu.com/converse/archive/2010/03/11/109449.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.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://yjizzdizhigmail.com" target="_blank">一区二区国产精品</a>| <a href="http://26thb.com" target="_blank">一区二区三区产品免费精品久久75</a>| <a href="http://cxjzcl.com" target="_blank">99re在线精品</a>| <a href="http://muwendada.com" target="_blank">在线播放不卡</a>| <a href="http://aa224.com" target="_blank">亚洲国产欧美日韩</a>| <a href="http://y4088.com" target="_blank">欧美日韩国产不卡</a>| <a href="http://cp88966.com" target="_blank">欧美三日本三级少妇三2023 </a>| <a href="http://avtt0.com" target="_blank">欧美一级一区</a>| <a href="http://pfpf66.com" target="_blank">久久久国产精品一区</a>| <a href="http://www-222304.com" target="_blank">久久久噜噜噜久久中文字幕色伊伊</a>| <a href="http://7m08.com" target="_blank">久久久人人人</a>| <a href="http://3dpasion.com" target="_blank">亚洲日韩成人</a>| <a href="http://rljyy.com" target="_blank">亚洲一区三区视频在线观看</a>| <a href="http://www23sds.com" target="_blank">欧美在线播放</a>| <a href="http://www-878009.com" target="_blank">亚洲三级电影在线观看</a>| <a href="http://5566kan.com" target="_blank">亚洲理论在线观看</a>| <a href="http://689558.com" target="_blank">小黄鸭精品密入口导航</a>| <a href="http://811914.com" target="_blank">美女免费视频一区</a>| <a href="http://hu62.com" target="_blank">国产精品国产精品</a>| <a href="http://xingmaipet.com" target="_blank">精品96久久久久久中文字幕无</a>| <a href="http://kissgz.com" target="_blank">亚洲精品国产无天堂网2021</a>| <a href="http://54zcr.com" target="_blank">亚洲欧美日韩国产综合精品二区 </a>| <a href="http://xw4433.com" target="_blank">亚洲动漫精品</a>| <a href="http://gelaimeiwedding.com" target="_blank">亚洲一区二区黄色</a>| <a href="http://22400com.com" target="_blank">欧美顶级少妇做爰</a>| <a href="http://www8888803.com" target="_blank">亚洲在线播放</a>| <a href="http://eee285.com" target="_blank">欧美成人一区二区</a>| <a href="http://hongmoyi.com" target="_blank">国产精品你懂的</a>| <a href="http://133255.com" target="_blank">亚洲精品久久久久久久久</a>| <a href="http://81plas.com" target="_blank">亚洲欧美日韩精品久久亚洲区</a>| <a href="http://scqike.com" target="_blank">欧美 日韩 国产在线</a>| <a href="http://hwlxwp.com" target="_blank">亚洲一区二区欧美</a>| <a href="http://hkjccc.com" target="_blank">欧美日本一道本在线视频</a>| <a href="http://58yewu.com" target="_blank">黑人极品videos精品欧美裸</a>| <a href="http://www456456.com" target="_blank">99日韩精品</a>| <a href="http://by4425.com" target="_blank">免费欧美高清视频</a>| <a href="http://yjsp8888.com" target="_blank">香港久久久电影</a>| <a href="http://xpfuli.com" target="_blank">国产精品成人久久久久</a>| <a href="http://baoyu1313.com" target="_blank">**性色生活片久久毛片</a>| <a href="http://hczztj.com" target="_blank">香蕉久久国产</a>| <a href="http://wallypanel.com" target="_blank">亚洲久久视频</a>| <a href="http://www-n77.com" target="_blank">欧美黑人多人双交</a>| <a href="http://birhit.com" target="_blank">黄色成人片子</a>| <a href="http://xian369.com" target="_blank">久久精品国产亚洲一区二区三区</a>| <a href="http://211186.com" target="_blank">99国产精品久久久</a>| <a href="http://281191.com" target="_blank">欧美激情一二三区</a>| <a href="http://syfeichi.com" target="_blank">亚洲人体一区</a>| <a href="http://dmzjz.com" target="_blank">亚洲第一视频</a>| <a href="http://jav1111.com" target="_blank">美女爽到呻吟久久久久</a>| <a href="http://www11108b.com" target="_blank">国产中文一区二区三区</a>| <a href="http://605799.com" target="_blank">久久激情一区</a>| <a href="http://686852a.com" target="_blank">欧美在线观看视频在线</a>| <a href="http://bdkaoyan.com" target="_blank">国产精品久久久久久久久久久久 </a>| <a href="http://6168138.com" target="_blank">久久久久亚洲综合</a>| <a href="http://13501680.com" target="_blank">欧美亚洲综合另类</a>| <a href="http://bcjianyan.com" target="_blank">欧美日韩免费网站</a>| <a href="http://esdzu.com" target="_blank">一区二区三区.www</a>| <a href="http://by21999.com" target="_blank">91久久精品一区</a>| <a href="http://chinasck.com" target="_blank">欧美国产精品久久</a>| <a href="http://82b2.com" target="_blank">亚洲日本视频</a>| <a href="http://26mmmm.com" target="_blank">亚洲欧洲在线免费</a>| <a href="http://anxingou365.com" target="_blank">欧美国产国产综合</a>| <a href="http://lampreydb.com" target="_blank">亚洲免费观看视频</a>| <a href="http://bjjxgcsxy.com" target="_blank">亚洲黄网站在线观看</a>| <a href="http://wwwmm131.com" target="_blank">欧美不卡视频一区</a>| <a href="http://0773ye.com" target="_blank">日韩一级精品</a>| <a href="http://www-772773.com" target="_blank">一区二区三区四区蜜桃</a>| <a href="http://77017w.com" target="_blank">国产精品劲爆视频</a>| <a href="http://wwwmy77757.com" target="_blank">欧美一区午夜视频在线观看</a>| <a href="http://123273.com" target="_blank">午夜一区二区三区在线观看</a>| <a href="http://ahqdlq.com" target="_blank">国产一区二区三区免费在线观看 </a>| <a href="http://ju5556.com" target="_blank">亚洲制服av</a>| <a href="http://194123.com" target="_blank">国产一区二区三区奇米久涩</a>| <a href="http://www-333304.com" target="_blank">久久久欧美精品</a>| <a href="http://0085212.com" target="_blank">六月天综合网</a>| <a href="http://www17727.com" target="_blank">乱中年女人伦av一区二区</a>| <a href="http://sqms2013.com" target="_blank">日韩午夜av在线</a>| <a href="http://z169.com" target="_blank">欧美色视频日本高清在线观看</a>| <a href="http://avtb2120.com" target="_blank">亚洲午夜黄色</a>| <a href="http://sese912.com" target="_blank">亚洲欧美另类久久久精品2019</a>| <a href="http://7811c.com" target="_blank">国内激情久久</a>| <a href="http://zhipiao998.com" target="_blank">亚洲第一黄网</a>| <a href="http://zhhtianyi.com" target="_blank">欧美日韩在线观看一区二区三区 </a>| <a href="http://fengboll.com" target="_blank">欧美午夜一区二区福利视频</a>| <a href="http://917729.com" target="_blank">国产欧美日韩不卡免费</a>| <a href="http://www280999.com" target="_blank">久久福利影视</a>| <a href="http://04781900.com" target="_blank">猫咪成人在线观看</a>| <a href="http://tongrenyaoye.com" target="_blank">亚洲天堂男人</a>| <a href="http://sinojinxing.com" target="_blank">久久aⅴ国产紧身牛仔裤</a>| <a href="http://www225011.com" target="_blank">在线观看日韩欧美</a>| <a href="http://tfccrk.com" target="_blank">日韩小视频在线观看专区</a>| <a href="http://tao62bao.com" target="_blank">国产午夜精品理论片a级探花 </a>| <a href="http://www-893333.com" target="_blank">亚洲第一福利视频</a>| <a href="http://448968.com" target="_blank">欧美日韩另类综合</a>| <a href="http://2589999.com" target="_blank">久久激情五月婷婷</a>| <a href="http://www77vcd.com" target="_blank">欧美高清不卡</a>| <a href="http://hhh246.com" target="_blank">久久精品成人欧美大片古装</a>| <a href="http://hjk56.com" target="_blank">欧美a级一区二区</a>| <a href="http://cechi8.com" target="_blank">久久爱www久久做</a>| <a href="http://lymzdd.com" target="_blank">欧美精品一区二区视频</a>| <a href="http://www-222304.com" target="_blank">久久成人国产精品</a>| <a href="http://www90aaa.com" target="_blank">欧美精品麻豆</a>| <a href="http://v63xs.com" target="_blank">麻豆av一区二区三区</a>| <a href="http://8eya.com" target="_blank">国产精品分类</a>| <a href="http://9113i.com" target="_blank">91久久综合</a>| <a href="http://6399128.com" target="_blank">精品成人a区在线观看</a>| <a href="http://dracotek.com" target="_blank">亚洲图片欧美一区</a>| <a href="http://91mase.com" target="_blank">亚洲老板91色精品久久</a>| <a href="http://tuiliqi.com" target="_blank">欧美一区午夜视频在线观看</a>| <a href="http://am3757.com" target="_blank">亚洲一区二区视频在线</a>| <a href="http://mm778899.com" target="_blank">久久精品水蜜桃av综合天堂</a>| <a href="http://5101h.com" target="_blank">亚洲欧美国产日韩天堂区</a>| <a href="http://854277.com" target="_blank">免费欧美日韩</a>| <a href="http://jafzjz.com" target="_blank">久久综合网hezyo</a>| <a href="http://www48929.com" target="_blank">国产伦精品一区</a>| <a href="http://xfrlyy.com" target="_blank">99国产精品久久久久久久久久 </a>| <a href="http://921367.com" target="_blank">亚洲三级国产</a>| <a href="http://holotu.com" target="_blank">久久久久成人精品</a>| <a href="http://www-369111.com" target="_blank">欧美一级专区</a>| <a href="http://lukushe.com" target="_blank">国产精品高潮呻吟视频</a>| <a href="http://9928k.com" target="_blank">亚洲精品国产精品国自产在线</a>| <a href="http://www9797abc.com" target="_blank">激情成人在线视频</a>| <a href="http://khc83.com" target="_blank">欧美一区激情</a>| <a href="http://339871.com" target="_blank">久久久综合网站</a>| <a href="http://shiyoudiban.com" target="_blank">国产亚洲欧美在线</a>| <a href="http://954k.com" target="_blank">亚洲男人的天堂在线</a>| <a href="http://www-ty66.com" target="_blank">亚洲午夜电影</a>| <a href="http://sdluliang.com" target="_blank">欧美日韩在线一区</a>| <a href="http://zb557.com" target="_blank">av成人动漫</a>| <a href="http://wwdd44.com" target="_blank">亚洲欧美日韩国产成人</a>| <a href="http://8xv0.com" target="_blank">欧美午夜在线一二页</a>| <a href="http://eee285.com" target="_blank">亚洲美女性视频</a>| <a href="http://lysyfls.com" target="_blank">一区二区日韩精品</a>| <a href="http://a718sx.com" target="_blank">欧美日韩亚洲综合</a>| <a href="http://eeii33.com" target="_blank">一区二区不卡在线视频 午夜欧美不卡在 </a>| <a href="http://szsywine.com" target="_blank">在线播放中文一区</a>| <a href="http://y8e8.com" target="_blank">欧美一区二区三区男人的天堂</a>| <a href="http://wanzhixue.com" target="_blank">亚洲欧美成人一区二区三区</a>| <a href="http://gykfqzgpt.com" target="_blank">欧美日韩综合视频</a>| <a href="http://799858.com" target="_blank">夜夜嗨av色一区二区不卡</a>| <a href="http://www5566szy.com" target="_blank">中文在线不卡视频</a>| <a href="http://fangxinedu.com" target="_blank">欧美日韩一区二区在线观看</a>| <a href="http://xxdd51.com" target="_blank">99国产精品99久久久久久</a>| <a href="http://7282789.com" target="_blank">99re6热只有精品免费观看</a>| <a href="http://2312138.com" target="_blank">欧美精品一区二区三</a>| <a href="http://spvicarb.com" target="_blank">亚洲精品乱码久久久久久久久</a>| <a href="http://127mingdao.com" target="_blank">亚洲美女淫视频</a>| <a href="http://wwwq4yy.com" target="_blank">欧美日韩精品福利</a>| <a href="http://dgxinshidai.com" target="_blank">这里只有精品丝袜</a>| <a href="http://y7y7s.com" target="_blank">久久精品国产亚洲精品</a>| <a href="http://www-888593.com" target="_blank">黄色亚洲免费</a>| <a href="http://zhxjl.com" target="_blank">欧美激情精品久久久久久久变态 </a>| <a href="http://qq666qq.com" target="_blank">久久成人资源</a>| <a href="http://607032.com" target="_blank">在线欧美不卡</a>| <a href="http://www-222kkk.com" target="_blank">欧美激情片在线观看</a>| <a href="http://www227ee.com" target="_blank">一区二区三区免费在线观看</a>| <a href="http://airsixth.com" target="_blank">欧美一区二区三区四区高清</a>| <a href="http://sd-12530.com" target="_blank">黄色免费成人</a>| <a href="http://irongxun.com" target="_blank">欧美日产一区二区三区在线观看</a>| <a href="http://6k7a.com" target="_blank">中日韩美女免费视频网站在线观看</a>| <a href="http://thisisfil.com" target="_blank">欧美亚洲一区三区</a>| <a href="http://y08877.com" target="_blank">亚洲丰满少妇videoshd</a>| <a href="http://605799.com" target="_blank">欧美日韩久久不卡</a>| <a href="http://jldianda.com" target="_blank">欧美一区二区在线播放</a>| <a href="http://9273829.com" target="_blank">亚洲成色精品</a>| <a href="http://373336.com" target="_blank">校园春色综合网</a>| <a href="http://baoxiniao666.com" target="_blank">在线色欧美三级视频</a>| <a href="http://000695.com" target="_blank">欧美日韩性生活视频</a>| <a href="http://133969.com" target="_blank">欧美一区二区大片</a>| <a href="http://hkjccc.com" target="_blank">亚洲精品欧美日韩</a>| <a href="http://605054.com" target="_blank">久久九九全国免费精品观看</a>| <a href="http://fs-nanxiang.com" target="_blank">91久久精品日日躁夜夜躁欧美 </a>| <a href="http://moonshile.com" target="_blank">国产精品久久久亚洲一区</a>| <a href="http://1515t.com" target="_blank">久久久久9999亚洲精品</a>| <a href="http://eee285.com" target="_blank">亚洲精品久久久久久下一站</a>| <a href="http://5456yy.com" target="_blank">欧美伊人久久久久久午夜久久久久 </a>| <a href="http://498626.com" target="_blank">999亚洲国产精</a>| <a href="http://0934photo.com" target="_blank">久久麻豆一区二区</a>| <a href="http://www333444123.com" target="_blank">99热免费精品在线观看</a>| <a href="http://zisxks.com" target="_blank">国产在线观看91精品一区</a>| <a href="http://www-485050.com" target="_blank">欧美精品在线播放</a>| <a href="http://136066.com" target="_blank">久久国产一区二区</a>| <a href="http://www-4890.com" target="_blank">一区二区三区蜜桃网</a>| <a href="http://4923cc.com" target="_blank">亚洲高清一区二</a>| <a href="http://dehuabz.com" target="_blank">久久天天狠狠</a>| <a href="http://www-442336.com" target="_blank">午夜精彩视频在线观看不卡 </a>| <a href="http://668527.com" target="_blank">一级日韩一区在线观看</a>| <a href="http://448968.com" target="_blank">免费视频一区</a>| <a href="http://567acg.com" target="_blank">欧美丝袜一区二区三区</a>| <a href="http://www30bxbx.com" target="_blank">午夜欧美电影在线观看</a>| <a href="http://ourskycity.com" target="_blank">亚洲国产美女精品久久久久∴</a>| <a href="http://911mmm.com" target="_blank">亚洲欧美国产日韩天堂区</a>| <a href="http://bdkaoyan.com" target="_blank">亚洲国产精品成人va在线观看</a>| <a href="http://1323123.com" target="_blank">国产精品视频第一区</a>| <a href="http://lorgou.com" target="_blank">欧美精品亚洲精品</a>| <a href="http://iotbzw.com" target="_blank">久久资源在线</a>| <a href="http://569658.com" target="_blank">欧美在线免费一级片</a>| <a href="http://zhxjl.com" target="_blank">亚洲免费人成在线视频观看</a>| <a href="http://royaljinma.com" target="_blank">亚洲精品色图</a>| <a href="http://8xyxs1.com" target="_blank">亚洲日本va午夜在线影院</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>