锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
http://www.infoq.com/articles/brown-are-you-a-software-architect;jsessionid=D5393C0C41BB6F3D63AC893C18D3480F
-----------------
http://www.infoq.com/cn/articles/brown-are-you-a-software-architect;jsessionid=A4A3B3D552F9DB2FAF7FC2D991FC74F0
寮鍙戝拰鏋舵瀯鐨勭晫闄愰毦浠ユ崏鎽搞傛湁浜涗漢鍛婅瘔浣犲畠鏍規湰涓嶅瓨鍦紝鏋舵瀯鍙槸寮鍙戣呬滑鎵鍋氱殑璁捐榪囩▼鐨勭畝鍗曟墿灞曘?鍙﹀涓浜涗漢璁や負榪欐槸涓涓縛娌燂紝瀹冨彧鑳界敱閭d簺鍋氬埌楂樺害鎶借薄錛岃屼笖涓嶄細闄峰叆瀹炵幇緇嗚妭鐨勫紑鍙戣呮墠鑳借法瓚娿傞氬父錛屽湪榪欎袱涓瀬绔殑瑙傜偣涓棿鏌愬鏈変釜鍙搷浣滅殑騫寵 鐐癸紱涓嶈濡備綍錛屾庝箞浠庡紑鍙戣漿鎹負鏋舵瀯甯堥兘鏄釜鏈夎叮鐨勯棶棰樸?/p>
緇忓父琚敤鏉ュ尯鍒嗚蔣浠舵灦鏋勫拰杞歡璁捐寮鍙戠殑鍏抽敭鍑犵偣鍖呮嫭 浼哥緝鎬у拰鎶借薄紼嬪害鐨勫鍔犱互鍙婁綔鍑烘紜璁″喅絳栨剰涔夌殑澧炲己銆傝蔣浠舵灦鏋勬槸閫氳繃涓涓叏灞鐨勮鐐癸紝瀹忚鐨勮瑙掓潵鐞嗚В杞歡緋葷粺浣滀負涓涓暣浣撳浣曞伐浣溿?/p>
鍗充嬌榪欒兘澶熷府鍔╁尯鍒嗚蔣浠跺紑鍙戝拰鏋舵瀯錛屽畠騫朵笉鑳藉府鍔╃悊瑙f煇浜哄浣曚粠寮鍙戞彁鍗囧埌鏋舵瀯銆?騫朵笖錛屽畠涔熶笉鑳藉府鍔╄瘑鍒皝鑳藉鎴愪負涓涓ソ鐨勮蔣浠舵灦鏋勫笀錛屽鏋滀綘鎯抽泧浜虹殑璇濅綘濡備綍鍘誨鎵句粬浠互鍙婁綘鏄惁鏄竴涓蔣浠舵灦鏋勫笀銆?/p>
瑕佹垚涓轟竴涓蔣浠舵灦鏋勫笀騫朵笉鏄竴澶滀箣闂存垨鑰呬竴涓亴浣嶇殑鎻愬崌灝辮兘綆鍗曡揪鍒扮殑銆?榪欐槸涓亴璐o紝鑰屼笉鏄ご琛斻傝繖鏄釜榪涘寲鐨勮繃紼嬶紝浣犲皢浼氶愭寰楀埌鎷呭綋榪欎釜鑱岃矗鎵闇鐨勭粡楠屽拰淇″績銆?/p>
褰撲綘瀵繪壘鏋舵瀯甯堟椂錛岄渶瑕佽冭檻鍚勬柟闈㈢殑绱犺川錛屼粬浠繃鍘葷殑緇忛獙寰寰鏄粬浠湁鑳藉姏鎷呭綋榪欎釜鑱岃矗寰堝ソ鐨勫垽鏂傜敱浜庤蔣浠舵灦鏋勫笀鐨勮亴璐f槸澶氱澶氭牱鐨勶紝鎵浠ヤ綘闇瑕佸啀娣卞叆浜嗚В浠栦滑鍦ㄤ笉鍚岄鍩熺殑鍙備笌搴︼紝褰卞搷鍔涳紝棰嗗鍔涘拰璐d換鎰熴備竴鑸潵璇達紝鍦ㄥぇ澶氭暟欏圭洰涓蔣浠舵灦鏋勫彲鍒嗕負涓や釜闃舵錛屾灦鏋勭殑瀹氫箟錛岀劧鍚庢槸瀹冪殑浜や粯銆?/p>
鏋舵瀯鐨勫畾涔夎繃紼嬬湅璧鋒潵闈炲父綆鍗曟槑浜嗐?浣犻渶瑕佸仛鐨勬槸鐞嗚В闇姹傚茍璁捐涓涓郴緇熸潵婊¤凍闇姹傘?浣嗗疄闄呬笂騫舵病鏈夐偅涔堢畝鍗曪紝鏍規嵁浣犱笉鍚岀殑鍋氭硶錛岃蔣浠舵灦鏋勭殑鑱岃矗涔嬮棿宸窛寰堝ぇ錛屼互鍙婂浣曡鐪熺湅寰呰嚜宸辯殑鑱岃矗鑰屽畾銆傚涓嬪浘鎵紺猴紝榪欎釜鑱岃矗鐨勬灦鏋勫畾涔夐儴鍒嗭紝鍙互榪涗竴姝ョ粏鍒嗘垚涓嶅悓鐨勫厓绱犮?/p>
瀵逛簬鏋舵瀯鐨勫彂甯冧篃鏄悓鏍鳳紝瀵逛簬鎴愬姛鐨勮蔣浠墮」鐩弬涓庣▼搴︾殑涓嶅悓錛屼篃鍐沖畾浜嗚蔣浠舵灦鏋勮亴璐g殑涓嶅悓銆?/p>
涓嶇浣犺涓鴻蔣浠跺紑鍙戝拰鏋舵瀯涔嬮棿鐨勭晫闄愬彧鏄竴涓夠瑙夎繕鏄釜宸ㄥぇ鐨勯縛娌燂紝浠ヤ笂寮鴻皟浜嗕漢浠鏁翠釜杞歡鏋舵瀯涓殑緇忛獙姘村鉤寰寰鏈夊緢澶х殑宸埆錛岃岃繖鍙栧喅浜庝粬浠庝箞鏍峰伐浣滀互鍙婁粬浠浣曡鐪熷湴鐪嬪緟浠栦滑鐨勮亴璐c傚ぇ澶氭暟寮鍙戜漢鍛樹笉鏄湪鏌愪竴涓槦鏈熶竴鐨勬棭鏅ㄩ啋鏉ュ氨瀹e竷鑷繁鎴愪負涓涓蔣浠舵灦鏋勫笀鐨勩傛垜褰撶劧涔熶笉鏄紝鎴戞垚涓鴻蔣浠舵灦鏋勫笀鐨勮礬綰挎槸涓涓笎榪涚殑榪囩▼銆傝瘽铏藉姝わ紝浣嗗緢鍙兘鍚屾牱閭d簺寮鍙戣呭凡緇忓仛浜嗕竴閮ㄥ垎鏋舵瀯鐨勫伐浣滐紝涓嶈浠栦滑鐨勮亴浣嶅悕縐版槸浠涔堛?/p>
涓鴻蔣浠剁郴緇熺殑鏋舵瀯浣滃嚭璐$尞鍜岃嚜宸辮礋璐e畾涔夊畠鏈夊緢澶х殑鍖哄埆錛屾嫢鏈夋寔緇殑銆佽法涓嶅悓棰嗗煙鐨勬妧鑳姐佺煡璇嗗拰緇忛獙鏋勬垚浜嗚蔣浠舵灦鏋勭殑鑱岃矗銆傝法瓚婅蔣浠跺紑鍙戣呭拰鏋舵瀯甯堢殑鐣岄檺鍙栧喅浜庝綘鑷繁錛屼絾鏄鍏堜綘瑕佹槑鐧戒綘鐨勭粡楠屾按騫籌紝鎵嶈兘寮濮嬫灦鏋勫笀涔嬫梾鐨勭涓绔欍?/p>
浣犲彲浠ヨ涓篠imon Brown鏄竴涓啓浠g爜鐨勮蔣浠舵灦鏋勫笀鎴栬呯悊瑙f灦鏋勭殑杞歡寮鍙戣呫傚綋浠栨病鏈夌敤.NET鎴朖ava寮鍙戣蔣浠剁殑鏃跺欙紝Simon閫氬父鍦ㄥ仛鍜ㄨ錛屾寚瀵兼垨鑰呭煿璁?Simon榪樺啓榪囧叧浜嶫ava鐨勪功錛屽湪琛屼笟媧誨姩鍋氳繃婕旇錛屽茍涓旀暣鍚堜簡涓涓彨Software Architecture for Developers鐨勫煿璁紼嬶紝 璇ヨ紼嬪熀浜庝粬鍦?a >Coding the Architecture鎻?榪扮殑杞歡鏋舵瀯銆備綘鍙互閫氳繃e-mail 鎴?Twitter 鎵懼埌浠栥?/p>
鍖垮悕綰у埆鍙互鍙傝冧笅琛ㄦ潵鍒ゆ柇銆?/p>
緇欏嚭涓涓簲鐢ㄤ緥瀛愶紝鍙互鎸備笂浠g悊璇曡瘯鏁堟灉: http://ip.mixsec.org/
涓銆佹病鏈変嬌鐢ㄤ唬鐞?a title=鏈嶅姟鍣ㄦ暀紼?>鏈嶅姟鍣?/font>鐨勬儏鍐?/strong>錛?!--iwms_ad_begin--> 涓夈佷嬌鐢ㄦ櫘閫氬尶鍚嶄唬鐞?a title=鏈嶅姟鍣ㄦ暀紼?>鏈嶅姟鍣?/font>鐨勬儏鍐碉細Anonymous Proxies 鍥涖佷嬌鐢ㄦ楠楁т唬鐞?a title=鏈嶅姟鍣ㄦ暀紼?>鏈嶅姟鍣?/font>鐨勬儏鍐碉細Distorting Proxies 浜斻佷嬌鐢ㄩ珮鍖垮悕浠g悊鏈嶅姟鍣?/font>鐨勬儏鍐碉細High Anonymity Proxies 鏈鍚庡啓涓涓?a title=PHP鏁欑▼ >PHP渚嬪瓙,浠呬緵澶у鍙傝? if(!empty($_SERVER['HTTP_VIA'])) //浣跨敤浜嗕唬鐞?br>{ //浠g悊IP鍦板潃涓?$_SERVER['REMOTE_ADDR'] }
REMOTE_ADDR = 鎮ㄧ殑 IP
HTTP_VIA = 娌℃暟鍊兼垨涓嶆樉紺?br> HTTP_X_FORWARDED_FOR = 娌℃暟鍊兼垨涓嶆樉紺?/p>
浜屻佷嬌鐢ㄩ忔槑浠g悊鏈嶅姟鍣?/font>鐨勬儏鍐碉細Transparent Proxies
REMOTE_ADDR = 浠g悊鏈嶅姟鍣?/font> IP
HTTP_VIA = 浠g悊鏈嶅姟鍣?/font> IP (琛ュ厖錛氳繖涓瓧孌電敱浠g悊鏈嶅姟鍣ㄥ~鍏咃紝鏈夋椂浼氬~鍏呯綉鍏充俊鎭瓑)
HTTP_X_FORWARDED_FOR = 鎮ㄧ殑鐪熷疄 IP
榪欑被浠g悊鏈嶅姟鍣?/font>榪樻槸灝嗘偍鐨勪俊鎭漿鍙戠粰鎮ㄧ殑璁塊棶瀵硅薄錛屾棤娉曡揪鍒伴殣钘忕湡瀹炶韓浠界殑鐩殑銆?/p>
REMOTE_ADDR = 浠g悊鏈嶅姟鍣?/font> IP
HTTP_VIA = 浠g悊鏈嶅姟鍣?/font> IP (琛ュ厖錛氳繖涓瓧孌電敱浠g悊鏈嶅姟鍣ㄥ~鍏咃紝鏈夋椂浼氬~鍏呯綉鍏充俊鎭瓑)
HTTP_X_FORWARDED_FOR = 浠g悊鏈嶅姟鍣?/font> IP
闅愯棌浜嗘偍鐨勭湡瀹濱P錛屼絾鏄悜璁塊棶瀵硅薄閫忛湶浜嗘偍鏄嬌鐢ㄤ唬鐞?a title=鏈嶅姟鍣ㄦ暀紼?>鏈嶅姟鍣?/font>璁塊棶浠栦滑鐨勩?/p>
REMOTE_ADDR = 浠g悊鏈嶅姟鍣?/font> IP
HTTP_VIA = 浠g悊鏈嶅姟鍣?/font> IP (琛ュ厖錛氳繖涓瓧孌電敱浠g悊鏈嶅姟鍣ㄥ~鍏咃紝鏈夋椂浼氬~鍏呯綉鍏充俊鎭瓑)
HTTP_X_FORWARDED_FOR = 闅忔満鐨?nbsp;IP
鍛婅瘔浜嗚闂璞℃偍浣跨敤浜嗕唬鐞?a title=鏈嶅姟鍣ㄦ暀紼?>鏈嶅姟鍣?/font>錛屼絾緙栭犱簡涓涓櫄鍋囩殑闅忔満IP浠f浛鎮ㄧ殑鐪熷疄IP嬈洪獥瀹冦?/p>
REMOTE_ADDR = 浠g悊鏈嶅姟鍣?/font> IP
HTTP_VIA = 娌℃暟鍊兼垨涓嶆樉紺?br> HTTP_X_FORWARDED_FOR = 娌℃暟鍊兼垨涓嶆樉紺?br> 瀹屽叏鐢ㄤ唬鐞?a title=鏈嶅姟鍣ㄦ暀紼?>鏈嶅姟鍣?/font>鐨勪俊鎭浛浠d簡鎮ㄧ殑鎵鏈変俊鎭紝灝辮薄鎮ㄥ氨鏄畬鍏ㄤ嬌鐢ㄩ偅鍙頒唬鐞嗘湇鍔″櫒鐩存帴璁塊棶瀵硅薄銆?/p>
闄ゆ涔嬪錛屽彲浠ラ氳繃proxy judges鎬?緇撳叾浠栦竴浜涘彲渚涘弬鑰冪殑鍒ゅ畾淇℃伅錛屼竴閬嶄簬鍦ㄥ疄璺典腑鍔犱互鍒╃敤銆?/p>
if(!isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
//Anonymous Proxies 鏅氬尶鍚嶄唬鐞?a title=鏈嶅姟鍣ㄦ暀紼?>鏈嶅姟鍣?/font>
else
{
//Transparent Proxies 閫忔槑浠g悊鏈嶅姟鍣?/font>
//浠g悊IP鍦板潃涓?$_SERVER['REMOTE_ADDR']
//鐪熷疄ip鍦板潃涓?$_SERVER['HTTP_X_FORWARDED_FOR']
}
}
else //娌℃湁浠g悊鎴栬呮槸楂樺尶鍚嶄唬鐞?br>{
//鐪熷疄ip鍦板潃涓?$_SERVER['REMOTE_ADDR']
}
]]>