架构师技术路线图
閫夎嚜GitHub
浣滆咃細Justin Miller鏈哄櫒涔嬪績缂栬瘧
鍙備笌锛氱帇瀛愬槈銆侀瓟鐜
鏋舵瀯甯堟妧鏈矾绾垮浘銆
杞欢鏋舵瀯甯堟槸浠涔堬紵
鍦ㄨ繘琛屾繁灞傛鐨勬帰璁ㄤ箣鍓嶏紝鎴戜滑鍏堟潵鐪嬩袱涓畾涔夛細
鏋舵瀯鐨勩屽眰绾с
鏋舵瀯涓昏鍙互鎶借薄鎴愪互涓嬪嚑涓屽眰绾с嶃備笉鍚屽眰绾ф墍闇鐨勬妧鑳戒篃涓嶅悓銆傚敖绠″灞傜骇鐨勫垎绫绘湁寰堝绉嶆爣鍑嗭紝浣嗘槸鎴戞渶鍠滄鎶婃灦鏋勫垎鎴 3 涓眰绾э細
鏈夋椂鍊欙紝鏋舵瀯甯堜篃琚湅鍋氫笉鍚屽伐浣滅粍涔嬮棿鐨勭矘鍚堝墏銆備互涓嬫槸涓変釜渚嬪瓙锛
杞欢鏋舵瀯甯堢殑鏃ュ父
瑕佷簡瑙f灦鏋勫笀鐨勫繀澶囨妧鑳斤紝鎴戜滑寰楀厛鐭ラ亾鏋舵瀯甯堜富瑕佸仛浠涔堛傛垜璁や负鏋舵瀯甯堟渶閲嶈鐨勬椿鍔ㄥ寘鎷細
娉ㄦ剰锛氭灦鏋勮璁℃槸涓椤规寔缁х殑宸ヤ綔锛屽挨鍏舵槸鍦ㄦ晱鎹疯蒋浠跺紑鍙戣繃绋嬩腑銆傚洜姝わ紝鎴戜滑浼氫竴閬嶅張涓閬嶅湴閲嶅杩欎簺宸ヤ綔銆
杞欢鏋舵瀯甯堝繀澶囨妧鑳
涓轰簡瀹屾垚涓婇潰璇寸殑閭d簺宸ヤ綔锛屾灦鏋勫笀闇瑕佸叿澶囦竴浜涚壒瀹氱殑鎶鑳姐備粠鎴戠殑涓汉缁忛獙銆佺浉鍏充功绫嶅拰璁ㄨ涓紝鎴戜滑鍙互灏嗗叾鎬荤粨涓轰互涓 10 椤规妧鑳斤細璁捐銆佸喅绛栥佺畝鍖栥佺紪绋嬨佽褰曘佹矡閫氥佷及绠椼佸钩琛°佸挩璇佸競鍦恒
鎺ヤ笅鏉ユ垜灏嗛愪竴浠嬬粛杩欎簺鎶鑳姐
璁捐
棣栧厛鏈閲嶈涔熸渶闅惧洖绛旂殑闂灏辨槸銆屼粈涔堟槸濂界殑璁捐銆嶃傛垜灏嗕粠鐞嗚鍜屽疄璺典袱涓眰闈㈣繘琛岄槓杩般傚氨鎴戠殑缁忛獙鏉ヨ锛屼袱鑰呭吋澶囨墠鏄渶濂界殑銆傞偅鎴戜滑鍏堣涓涓嬬悊璁哄眰闈㈠惂锛
鍐崇瓥
鏋舵瀯甯堥渶瑕佸埗瀹氬喅绛栵紝鎸囧紩椤圭洰鐢氳嚦鏁翠釜鍏徃鐨勬纭柟鍚戙
绠鍖
鏃跺埢璁颁綇濂ュ崱濮嗗墐鍒鍘熷垯锛屼篃灏辨槸绠鍗曞嵆姝d箟銆傛垜瀵硅繖涓師鍒欑殑鐞嗚В鏄繖鏍风殑锛氬鏋滀綘鐨勮В鍐虫柟妗堟槸鍦ㄥ仛浜嗗緢澶氬亣璁剧殑鍩虹涓婃彁鍑烘潵鐨勶紝閭d箞浣犵殑鏂规寰堝彲鑳芥槸閿欑殑锛屼篃寰堝彲鑳戒細鍙樺緱鏋佸叾澶嶆潅銆傝繖涓椂鍊欎綘灏卞簲璇ュ噺灏戯紙绠鍖栵級涓浜涘亣璁撅紝浠ヨ幏寰楁洿濂界殑瑙e喅鏂规銆
缂栫▼
鍗充娇浣滀负浼佷笟绾ф灦鏋勫笀锛堟渶鎶借薄鐨勬灦鏋勫眰绾э級锛屼綘浠嶇劧搴旇浜嗚В寮鍙戜汉鍛樼殑鏃ュ父宸ヤ綔銆傚鏋滀綘涓嶄簡瑙e紑鍙戝浣曞畬鎴愮殑锛岄偅浣犲彲鑳戒細闈复涓や釜涓昏闂锛
璁板綍
鏋舵瀯鏂囨。鏈夋椂寰堥噸瑕侊紝鏈夋椂鍗翠笉閭d箞閲嶈銆備緥濡傦紝鏋舵瀯鍐崇瓥鎴栦唬鐮佹寚鍗楁槸閲嶈鏂囨。銆傚湪寮濮嬬紪绋嬩箣鍓嶏紝閫氬父闇瑕佸垵濮嬫枃妗o紝骞朵笖瀵规涓嶆柇缁嗗寲銆傚洜涓轰唬鐮佷篃鍙互浣滀负鏂囨。锛堝 UML 绫诲浘锛夛紝鎵浠ユ湁浜涙枃妗e彲浠ヨ嚜鍔ㄧ敓鎴愩
鍙傝冮摼鎺ワ細https://github.com/justinamiller/SoftwareArchitect
鏈枃涓烘満鍣ㄤ箣蹇冪紪璇戯紝杞浇璇疯仈绯绘湰鍏紬鍙疯幏寰楁巿鏉冦
鉁------------------------------------------------
鍔犲叆鏈哄櫒涔嬪績锛堝叏鑱岃鑰 / 瀹炰範鐢燂級锛歨r@jiqizhixin.com
鎶曠鎴栧姹傛姤閬擄細content@jiqizhixin.com
骞垮憡 & 鍟嗗姟鍚堜綔锛歜d@jiqizhixin.com
浣滆咃細Justin Miller鏈哄櫒涔嬪績缂栬瘧
鍙備笌锛氱帇瀛愬槈銆侀瓟鐜
鍑犲ぉ鍓嶏紝楂樼骇鏋舵瀯甯 Justin Miller 鍦 GitHub 涓婂垱寤洪」鐩紝浠嬬粛鑷繁鍏充簬銆屽浣曟垚涓烘洿濂界殑杞欢鏋舵瀯甯堛嶇殑鎯虫硶銆傝椤圭洰鍙戝竷涓澶╁嵆鑾峰緱 1.4K star锛岀幇鍦ㄥ凡鏈 3.8K star 閲忋鍑犲勾鍓嶆湁浜洪棶鎴戯細銆屼綘鏄庝箞鎴愪负涓鍚嶈蒋浠舵灦鏋勫笀鐨勶紵銆嶆垜浠氨姝ゆ帰璁ㄤ簡蹇呭鎶鑳姐佺粡楠岋紝浠ュ強鍌ㄥ鐩稿叧鐭ヨ瘑鎵闇鐨勬椂闂村拰绮惧姏銆傞櫎姝や箣澶栵紝鎴戜篃鍥為【浜嗚嚜宸辫蛋杩囩殑璺佷娇鐢ㄦ垨灏濊瘯杩囩殑鎶鏈紝浠ュ強鎴戜粠閭d簺浜旇姳鍏棬鐨勫伐浣滀腑瀛﹀埌鐨勪笢瑗裤
鏋舵瀯甯堟妧鏈矾绾垮浘銆
杞欢鏋舵瀯甯堟槸浠涔堬紵
鍦ㄨ繘琛屾繁灞傛鐨勬帰璁ㄤ箣鍓嶏紝鎴戜滑鍏堟潵鐪嬩袱涓畾涔夛細
杞欢鏋舵瀯甯堟槸鎸囬偅浜涘埗瀹氶珮绾ц璁″喅绛栵紝骞剁‘瀹氭妧鏈爣鍑嗭紙鍖呮嫭杞欢缂栫▼鏍囧噯銆佸伐鍏峰拰骞冲彴锛夌殑杞欢涓撳銆傝繖涔嬩腑鐨勯甯笓瀹跺氨鏄绘灦鏋勫笀銆傦紙鏉ユ簮锛歐ikipedia: Software Architect锛
杞欢鏋舵瀯鏄郴缁熺殑鍩烘湰缁勭粐鏋勬垚锛岃繖绉嶇粍缁囦富瑕佷綋鐜板湪鍏剁粍浠躲佺粍浠朵箣闂寸殑鍏崇郴銆佺粍浠朵笌鐜涔嬮棿鐨勫叧绯伙紝浠ュ強鍐冲畾绯荤粺璁捐涓庢紨鍖栫殑鍘熷垯銆傦紙鏉ユ簮锛歐ikipedia: Software Architecture锛
鏋舵瀯鐨勩屽眰绾с
鏋舵瀯涓昏鍙互鎶借薄鎴愪互涓嬪嚑涓屽眰绾с嶃備笉鍚屽眰绾ф墍闇鐨勬妧鑳戒篃涓嶅悓銆傚敖绠″灞傜骇鐨勫垎绫绘湁寰堝绉嶆爣鍑嗭紝浣嗘槸鎴戞渶鍠滄鎶婃灦鏋勫垎鎴 3 涓眰绾э細
搴旂敤绾э細鏈浣庡眰绾х殑鏋舵瀯銆傚彧鍏虫敞鍗曚竴鐨勫簲鐢ㄣ傚眰绾т綆锛屼絾鏄緢璇︾粏銆傝繖鏂归潰鐨勪氦娴佷竴鑸槸鍦ㄤ竴涓紑鍙戝洟闃熷唴灞曞紑锛
瑙e喅鏂规绾э細鏋舵瀯鐨勪腑闂村眰銆傚叧娉ㄤ竴鎴栧涓弧瓒充笟鍔¢渶姹傜殑搴旂敤锛堜篃灏辨槸鍟嗕笟鏂规锛夈傝繖涔嬩腑鏈変簺璁捐鏄珮灞傛鐨勶紝浣嗗ぇ閮ㄥ垎杩樻槸浣庡眰娆$殑璁捐銆傝繖绉嶅眰绾ф灦鏋勭殑浜ゆ祦灏卞紑濮嬫秹鍙婂涓洟闃熶簡锛
浼佷笟绾э細鏋舵瀯鐨勬渶楂樺眰绾с傚叧娉ㄥ涓柟妗堛傝繖绉嶆灦鏋勭殑璁捐灞傛楂樹笖鎶借薄锛屽洜姝や篃闇瑕佹柟妗堢骇鍜屽簲鐢ㄧ骇鐨勬灦鏋勫笀瀵规杩涜缁嗗寲銆傝繖绉嶅眰娆$殑鏋舵瀯灏遍渶瑕佸涓粍缁囪繘琛屾矡閫氫簡銆傚鏋滀綘鎯充簡瑙f洿澶氾紝鍙互鍙傞槄杩欎釜閾炬帴锛歨ttps://github.com/justinamiller/EnterpriseArchitecture銆
鏈夋椂鍊欙紝鏋舵瀯甯堜篃琚湅鍋氫笉鍚屽伐浣滅粍涔嬮棿鐨勭矘鍚堝墏銆備互涓嬫槸涓変釜渚嬪瓙锛
妯悜锛氬湪涓氬姟閮ㄥ拰寮鍙戜汉鍛樻垨鏄笉鍚岀殑寮鍙戝洟闃熶箣闂存灦璧锋矡閫氱殑妗ユ锛
绾靛悜锛氬湪绠$悊鑰呭拰寮鍙戜汉鍛樹箣闂存灦璧锋ˉ姊侊紱
鎶鏈細灏嗕笉鍚岀殑鎶鏈垨搴旂敤鏁村悎鍦ㄤ竴璧枫
杞欢鏋舵瀯甯堢殑鏃ュ父
瑕佷簡瑙f灦鏋勫笀鐨勫繀澶囨妧鑳斤紝鎴戜滑寰楀厛鐭ラ亾鏋舵瀯甯堜富瑕佸仛浠涔堛傛垜璁や负鏋舵瀯甯堟渶閲嶈鐨勬椿鍔ㄥ寘鎷細
瀹氫箟鍜岀‘瀹氭墍闇鐨勫紑鍙戞妧鏈笌骞冲彴锛
瀹氫箟寮鍙戞爣鍑嗭紝濡傜紪绋嬫爣鍑嗐佸伐鍏枫佸鏍告祦绋嬨佹祴璇曟柟娉曠瓑锛
瀵圭‘瀹氬拰鐞嗚В涓氬姟闇姹傛彁渚涙敮鎸侊紱
璁捐绯荤粺骞舵牴鎹渶姹傚仛鍑哄喅绛栵紱
瀵规灦鏋勫畾涔夈佽璁″拰鍐崇瓥杩涜璁ㄨ璁板綍锛
妫鏌ュ苟瀹℃牳鏋舵瀯涓庝唬鐮侊紝姣斿妫鏌ュ墠鏈熺‘瀹氱殑妯″紡涓庣紪绋嬫爣鍑嗘槸鍚﹁姝g‘瀹炴柦锛
涓庡叾浠栭儴闂ㄥ拰鏋舵瀯甯堝悎浣滐紱
瀵瑰紑鍙戜汉鍛樼殑寮曞鍙婂挩璇紱
灏嗛珮绾ц璁$粏鍖栵紝骞惰浆鍖栦负杈冧綆绾х殑璁捐銆
娉ㄦ剰锛氭灦鏋勮璁℃槸涓椤规寔缁х殑宸ヤ綔锛屽挨鍏舵槸鍦ㄦ晱鎹疯蒋浠跺紑鍙戣繃绋嬩腑銆傚洜姝わ紝鎴戜滑浼氫竴閬嶅張涓閬嶅湴閲嶅杩欎簺宸ヤ綔銆
杞欢鏋舵瀯甯堝繀澶囨妧鑳
涓轰簡瀹屾垚涓婇潰璇寸殑閭d簺宸ヤ綔锛屾灦鏋勫笀闇瑕佸叿澶囦竴浜涚壒瀹氱殑鎶鑳姐備粠鎴戠殑涓汉缁忛獙銆佺浉鍏充功绫嶅拰璁ㄨ涓紝鎴戜滑鍙互灏嗗叾鎬荤粨涓轰互涓 10 椤规妧鑳斤細璁捐銆佸喅绛栥佺畝鍖栥佺紪绋嬨佽褰曘佹矡閫氥佷及绠椼佸钩琛°佸挩璇佸競鍦恒
鎺ヤ笅鏉ユ垜灏嗛愪竴浠嬬粛杩欎簺鎶鑳姐
璁捐
棣栧厛鏈閲嶈涔熸渶闅惧洖绛旂殑闂灏辨槸銆屼粈涔堟槸濂界殑璁捐銆嶃傛垜灏嗕粠鐞嗚鍜屽疄璺典袱涓眰闈㈣繘琛岄槓杩般傚氨鎴戠殑缁忛獙鏉ヨ锛屼袱鑰呭吋澶囨墠鏄渶濂界殑銆傞偅鎴戜滑鍏堣涓涓嬬悊璁哄眰闈㈠惂锛
浜嗚В鍩烘湰鐨勮璁℃ā寮忥細妯″紡鏄灦鏋勫笀寮鍙戝彲缁存姢绯荤粺鎵闇鐨勬渶閲嶈宸ュ叿涔嬩竴銆傚熀浜庤繖浜涙ā寮忥紝浣犲彲浠ユ妸涓浜涘凡缁忓湪鍏朵粬闂涓婂鏁堢殑鏂规杩佺Щ鍒颁竴浜涙ā寮忕浉鍚岀殑鏂伴棶棰樹笂銆傘孏ang of Four銆(GoF) 鎵钁椼奃esign Patterns: Elements of Reusable Object-Oriented Software銆嬫槸鎵鏈変粠浜嬭蒋浠跺紑鍙戠殑浜虹殑蹇呰涔︺傚敖绠¤繖浜涙ā寮忓彂甯冧簬 20 澶氬勾鍓嶏紝瀹冧滑浠嶆槸鐜颁唬杞欢浣撶郴缁撴瀯鐨勫熀纭銆備緥濡備功涓殑妯″瀷-瑙嗗浘-鎺у埗鍣紙Model-View-Controller锛孧VC锛夋ā寮忓氨琚簲鐢ㄤ簬璁稿棰嗗煙锛屽畠鍚屾椂涔熸槸涓浜涙柊妯″紡锛堝 MVVM锛夌殑鍩虹锛
鍐嶆寲娣变竴鐐癸紝鐮旂┒涓涓嬫ā寮忎笌鍙嶆ā寮忥紙anti-pattern锛夛細濡傛灉浣犲 GoF 鎵鍐欑殑妯″紡鍏峰鍏ㄩ潰鐨勪簡瑙o紝閭d箞浣犲氨鍙互瀛︿範鏇村鐨勮蒋浠惰璁℃ā寮忎簡锛屾垨鑰呮繁鎸栦綘鎰熷叴瓒g殑棰嗗煙銆傚湪搴旂敤闆嗘垚棰嗗煙锛屾垜鏈鍠滄鐨勪竴鏈功鏄 Gregor Hohpe 缂栧啓鐨勩婁紒涓氶泦鎴愭ā寮忋嬨傚綋涓や釜搴旂敤闇瑕佷氦鎹㈡暟鎹椂锛屾棤璁烘槸鏉ヨ嚜涓浜涢仐鐣欑郴缁熺殑鑰佸紡鏂囦欢浜ゆ崲杩樻槸鐜颁唬寰湇鍔′綋绯荤粨鏋勶紝杩欐湰涔︾殑鍐呭閮介傜敤锛
浜嗚В璐ㄩ噺搴﹂噺锛氬畾涔夋灦鏋勮繕涓嶇畻瀹岋紝杩樿瑙i噴涓轰粈涔堣瀹氫箟銆佸簲鐢ㄥ苟鎺у埗杩欎簺鍑嗗垯鍜岀紪绋嬫爣鍑嗐傝繖鏍峰仛鏄洜涓洪渶瑕佹帶鍒惰川閲忥紝婊¤冻涓浜涢潪鍔熻兘闇姹傘傛垜浠兂瑕佺殑鏄竴涓彲缁存姢銆佸彲闈犮佸彲閫傚簲銆佸畨鍏ㄣ佸彲娴嬭瘯銆佸彲鎵╁睍銆佸彲鐢ㄧ殑绯荤粺銆傝屽疄鐜版墍鏈夎繖浜涜姹傜殑鏂规硶灏辨槸鏈変竴涓ソ鐨勬灦鏋勮璁℃柟娉曘備綘鍙互鍦ㄧ淮鍩虹櫨绉戜笂浜嗚В鏇村鍏充簬璐ㄩ噺搴﹂噺鐨勪俊鎭傜悊璁哄緢閲嶈锛屼絾鏄鏋滀綘涓嶆兂鎴愪负涓鍚嶆椿鍦ㄨ薄鐗欏閲岀殑鏋舵瀯甯堬紝瀹炶返涔熷悓鏍烽噸瑕侊紝鐢氳嚦鏇村姞閲嶈锛
灏濊瘯骞剁悊瑙d笉鍚岀殑鎶鏈爤锛氭垜璁や负杩欐槸浣犳垚涓烘洿濂芥灦鏋勫笀涔嬭矾涓婃渶閲嶈鐨勪竴姝ャ傚皾璇曟柊鐨勬妧鏈爤锛屽苟浜嗚В鍏跺彂灞曞巻绋嬨傝繖浜涗笉鍚岀殑鎶鏈叿鏈変笉鍚岀殑璁捐鐞嗗康鍜屾ā寮忋傚彧娴忚 PPT 瀛︿笉鍒板お澶氫笢瑗匡紝浣犻渶瑕佽嚜宸卞幓灏濊瘯骞舵劅鍙楄繖椤规妧鏈殑鍠滀笌鎮层傛灦鏋勫笀涓嶄粎瑕佹湁骞垮崥鐨勭煡璇嗛潰锛岃繕瑕佸湪涓浜涢鍩熸湁娣卞帤鐨勭Н绱傞噸鐐逛笉鍦ㄤ簬鎺屾彙鎵鏈夌殑鎶鏈爤锛岃屾槸瀵逛綘鎵鍦ㄩ鍩熸渶閲嶈鐨勬妧鏈湁鍧氬疄鐨勭悊瑙c備綘杩樺彲浠ュ皾璇曚竴浜涢鍩熷鐨勬妧鏈紝渚嬪锛屽鏋滀綘瀵 SAP R/3 鏈夊緢娣辩殑浜嗚В锛屼綘搴旇灏濊瘯涓涓 JavaScript锛屽弽涔嬩害鐒躲傚敖绠″姝わ紝鍙屾柟閮戒細瀵 SAP S/4 Hana 鐨勬渶鏂拌繘灞曟劅鍒版儕璁躲備緥濡傦紝浣犲彲浠ヨ嚜宸卞皾璇曞苟鍏嶈垂鍙傚姞 openSAP 鐨勮绋嬨備繚鎸佸ソ濂囧績锛屽灏濊瘯鏂颁簨鐗╋紝涔熷彲浠ュ皾璇曚竴浜涘嚑骞村墠涓嶅枩娆㈢殑涓滆タ锛
鍒嗘瀽鍜岀悊瑙e簲鐢ㄦā寮忥細鏌ョ湅浠绘剰褰撳墠妗嗘灦锛堝 Angular锛夈備綘鍙互鍦ㄥ疄璺典腑瀛︿範鍒板緢澶氭ā寮忥紙濡 Observables锛夛紝浣犺繕搴旇璇曠潃鐞嗚В瀹冩槸濡備綍鍦ㄦ鏋朵腑搴旂敤鐨勶紝涓轰粈涔堣杩欐牱鍋氥傚鏋滀綘鏄湡姝g殑涓撲笟浜哄+锛屼綘杩橀渶瑕佹洿娣卞叆鍦扮爺绌朵唬鐮佸苟浜嗚В瀹冩槸濡備綍瀹炵幇鐨勶紱
淇濇寔濂藉蹇冿紝鍏虫敞鐢ㄦ埛缇ゃ
鍐崇瓥
鏋舵瀯甯堥渶瑕佸埗瀹氬喅绛栵紝鎸囧紩椤圭洰鐢氳嚦鏁翠釜鍏徃鐨勬纭柟鍚戙
鍒嗘竻涓绘锛氫笉瑕佸湪涓嶉噸瑕佺殑鍐崇瓥鍜屽伐浣滀笂娴垂鏃堕棿锛岃瀛︿細鍒嗘竻涓绘銆傚氨鎴戜釜浜烘潵璇达紝鎴戞瘮杈冨枩娆㈤氳繃浠ヤ笅涓や釜鐗瑰緛鏉ュ垽鏂竴浠朵簨鏄惁閲嶈锛
a. 姒傚康瀹屾暣鎬э細濡傛灉浣犱竴寮濮嬪喅瀹氫簡涓涓悊蹇碉紝鍧氭寔涓嬪幓锛屽嵆浣挎湁鏃跺欑敤涓嶅悓鐨勬柟娉曞仛浼氭洿濂姐傝繖鏍锋暣浣撴蹇靛氨鏇存竻鏅版槑纭紝鎻愬崌浜嗗彲鐞嗚В鎬э紝涔熺畝鍖栦簡缁存姢杩囩▼銆
b. 涓鑷存э細渚嬪锛屽鏋滀綘瀹氫箟骞跺簲鐢ㄤ簡鍛藉悕绾﹀畾锛岄偅涔堝畠涓嶆槸鍏充簬澶у啓鎴栧皬鍐欑殑锛岃屾槸浠ョ浉鍚岀殑鏂瑰紡搴旂敤浜庢墍鏈夊湴鏂广
浼樺厛绾э細鏈変簺鍐冲畾闈炲父鍏抽敭锛屽鏋滄病鏈夊強鏃╅噰鍙栧悎閫傜殑瑙e喅鏂规锛屽緢鏈夊彲鑳界粰鏃ュ悗閫犳垚鏃犳硶瑙e喅鐨勯棶棰樸傝繖瀵圭淮鎶や汉鍛樻潵璇存潵璇存槸涓鍦哄櫓姊︼紝鎴栬呮洿绯熺殑锛屽紑鍙戜汉鍛樺湪杩欎釜鍐崇瓥鍒跺畾涔嬪墠鏃犳硶缁х画宸ヤ綔銆傚湪杩欑鎯呭喌涓嬶紝鍏堝仛涓涓岀碂绯曘嶇殑鍐冲畾鐢氳嚦姣旀病鏈夊喅瀹氭洿濂姐備絾鏄湪杩欑鎯呭喌鍙戠敓涔嬪墠锛屼綘瑕佺煡閬撳摢浜涘喅瀹氭槸搴旇琚紭鍏堝鐞嗙殑銆傛湁寰堝鏂规硶鍙互鍋氬埌杩欎竴鐐广傛垜寤鸿鍏堢湅鐪嬪姞鏉冩渶鐭綔涓氫紭鍏堬紙WSJF锛夋ā鍨嬶紝瀹冨湪鏁忔嵎杞欢寮鍙戜腑琚箍娉涗娇鐢ㄣ傚挨鍏舵槸鏃堕棿涓寸晫鍜岄闄╅檷浣庯紝瀵硅繖浜岃呯殑搴﹂噺鏄瘎浼版灦鏋勫喅绛栦紭鍏堢骇鐨勫叧閿紱
璁ゆ竻鑷繁鐨勮兘鍔涳細涓嶈鍦ㄨ兘鍔涜寖鍥翠箣澶栫殑浜嬫儏涓婂仛鍐冲畾銆傝繖寰堥噸瑕侊紝鍥犱负濡傛灉涓嶅姞浠ヨ冭檻锛屽畠鍙兘浼氫弗閲嶇牬鍧忎綘浣滀负鏋舵瀯甯堢殑鍦颁綅銆備负浜嗛伩鍏嶈繖绉嶆儏鍐碉紝浣犲簲璇ュ拰鍚屼簨鏄庣‘鑷繁鐨勮亴璐e拰瑙掕壊銆傚鏋滄湁涓嶆涓涓灦鏋勫笀锛岄偅涔堜綘搴斿綋鍙礋璐e綋鍓嶈礋璐g殑鏋舵瀯灞傜骇銆備綔涓轰竴涓緝浣庡眰绾х殑鏋舵瀯甯堬紝浣犲簲璇ヤ负鏇撮珮灞傜骇鐨勬灦鏋勬彁鍑哄缓璁紝鑰屼笉鏄仛鍑哄喅绛栥傛澶栵紝鎴戝缓璁綘缁忓父鍜屽悓浜嬩竴璧锋鏌ラ噸瑕佺殑鍐冲畾锛
璇勪及澶氱閫夋嫨锛氬湪鍋氬喅瀹氭椂锛屾绘槸瑕佸垪鍑哄涓夐」銆傚湪鎴戝弬涓庣殑澶у鏁版渚嬩腑锛岄兘鏈変笉姝竴涓彲鑳界殑锛堜紭绉锛夐夋嫨銆備笉濂界殑閫夋嫨涓昏鏈夎繖涓や釜鐗圭偣锛氾紙1锛夌湅璧锋潵浣犳病鏈夊畬鎴愬ソ鑷繁鐨勫伐浣滐紱锛2锛夋湁纰嶄簬浣滃嚭姝g‘鐨勫喅瀹氥傚畾涔夊害閲忓悗锛屼綘灏卞彲浠ユ牴鎹簨瀹烇紙濡傝鍙瘉鎴愭湰鎴栨垚鐔熷害锛夋潵姣旇緝鍚勭閫夋嫨锛岃屼笉鏄氳繃鐩磋銆傝繖閫氬父浼氳浣犲仛鍑烘洿濂姐佹洿鍙寔缁殑鍐崇瓥銆傛澶栵紝灏嗚鍐崇瓥鎺ㄥ箍鍒板叾浠栭儴闂ㄤ篃浼氭洿瀹规槗銆備絾鏄鏋滀綘娌℃湁姝g‘璇勪及閫夐」锛屽湪鏈缁堣璁烘椂浣犲彲鑳戒細澶卞幓涓涓噸瑕佺殑璁烘嵁銆
绠鍖
鏃跺埢璁颁綇濂ュ崱濮嗗墐鍒鍘熷垯锛屼篃灏辨槸绠鍗曞嵆姝d箟銆傛垜瀵硅繖涓師鍒欑殑鐞嗚В鏄繖鏍风殑锛氬鏋滀綘鐨勮В鍐虫柟妗堟槸鍦ㄥ仛浜嗗緢澶氬亣璁剧殑鍩虹涓婃彁鍑烘潵鐨勶紝閭d箞浣犵殑鏂规寰堝彲鑳芥槸閿欑殑锛屼篃寰堝彲鑳戒細鍙樺緱鏋佸叾澶嶆潅銆傝繖涓椂鍊欎綘灏卞簲璇ュ噺灏戯紙绠鍖栵級涓浜涘亣璁撅紝浠ヨ幏寰楁洿濂界殑瑙e喅鏂规銆
澶氭柟浣嶈瀵熻В鍐虫柟妗堬細涓轰簡绠鍖栬В鍐虫柟妗堬紝缁忓父闇瑕佷綘璋冩暣瀵硅В鍐虫柟妗堢殑瑙傚療瑙掑害銆傛瘮濡傦紝浣犲彲浠ュ皾璇曢氳繃鑷《鍚戜笅鍜岃嚜搴曞悜涓婄殑鎬濊冩潵鑾峰彇瑙e喅鏂规銆傚鏋滀綘鏈変竴涓暟鎹祦鎴栨祦绋嬶紝閭d箞棣栧厛鑰冭檻浠庡乏鍒板彸锛岀劧鍚庡啀鑰冭檻浠庡彸鍒板乏銆傚湪绠鍖栬繃绋嬩腑璇㈤棶鑷繁锛氥屽湪瀹岀編鐨勪笘鐣岄噷锛屼綘鐨勮В鍐虫柟妗堥渶瑕佸仛浠涔堜慨姝e悧锛熴嶏紝鎴栬呫屾煇鍏徃/鏌愪汉浼氭庝箞鍋氾紵銆嶃傝繖涓や釜闂閮藉彲浠ュ府鍔╀綘鎸夌収濂ュ崱濮嗗墐鍒鍘熷垯鏉ョ畝鍖栧亣璁撅紱
閫涓姝ワ細缁忚繃婵鐑堣屾极闀跨殑璁ㄨ鍚庯紝甯稿父浼氬緱鍒颁竴浜涙瀬鍏跺鏉傜殑鏂规銆傛案杩滀笉瑕佹妸瀹冧滑褰撳仛鏈缁堢殑缁撴灉銆傘岄涓姝ャ嶇殑鎰忔濆氨鏄細鍐嶆浠庡畯瑙傝搴︾湅涓涓嬭繖涓棶棰橈紝褰撲笅鐨勬柟妗堣繕璇寸殑閫氬悧锛熺劧鍚庡啀鍦ㄦ娊璞″眰闈㈠鏂规杩涜閲嶆瀯銆傛湁鏃跺欐殏鍋滆璁虹浜屽ぉ鍐嶇户缁槸涓笉閿欑殑閫夋嫨銆傝嚦灏戝浜庢垜鏉ヨ锛屾垜鐨勫ぇ鑴戦渶瑕佷竴浜涙椂闂存潵澶勭悊淇℃伅锛屾兂鍑烘洿濂姐佹洿浼橀泤鍜屾洿绠鍗曠殑瑙e喅鏂规锛
鍒嗚屾不涔嬶細鎶婂ぇ闂鍒嗚В鎴愭洿灏忕殑闂锛岀劧鍚庡垎鍒В鍐冲皬闂锛屽苟楠岃瘉杩欎簺灏忔柟妗堟槸鍚﹀尮閰嶃傛渶鍚庡啀閫涓姝ユ潵鐪嬩竴涓嬫讳綋鎯呭喌锛
閲嶆瀯骞堕潪鍧忎簨锛氬鏋滄壘涓嶅埌鏇村ソ鐨勮В鍐虫柟妗堬紝閭d箞淇涓涓鏉傜殑瑙e喅鏂规涔熸槸涓嶉敊鐨勯夋嫨銆傚鏋滄煇涓В鍐虫柟妗堥棶棰樺緢澶氾紝浣犲彲浠ョ◢鍚庨噸鏂版濊冭鏂规锛屽啀灏嗘兂鍒扮殑鏂颁笢瑗垮簲鐢ㄥ埌璇ユ柟妗堜腑銆傞噸鏋勫苟闈炲潖浜嬶紝浣嗘槸鍦ㄤ綘寮濮嬮噸鏋勪箣鍓嶏紝璇疯浣忥細锛1锛夊噯澶囧ソ瓒冲鐨勮嚜鍔ㄥ寲娴嬭瘯锛屼互纭繚绯荤粺鐨勬甯稿姛鑳斤紱锛2锛夎幏寰楀埄鐩婄浉鍏宠呯殑鏀寔銆傝浜嗚В鏇村鍏充簬閲嶆瀯鐨勭煡璇嗭紝鎴戝缓璁槄璇 Martin Fowler 鍐欑殑銆奟efactoring. Improving the Design of Existing Code銆嬨
缂栫▼
鍗充娇浣滀负浼佷笟绾ф灦鏋勫笀锛堟渶鎶借薄鐨勬灦鏋勫眰绾э級锛屼綘浠嶇劧搴旇浜嗚В寮鍙戜汉鍛樼殑鏃ュ父宸ヤ綔銆傚鏋滀綘涓嶄簡瑙e紑鍙戝浣曞畬鎴愮殑锛岄偅浣犲彲鑳戒細闈复涓や釜涓昏闂锛
寮鍙戜汉鍛樹笉鎺ュ彈浣犵殑璇存硶锛
浣犱笉浜嗚В寮鍙戜汉鍛樼殑鎸戞垬鍜岄渶姹傘
寮灞曞壇椤圭洰锛氬仛鍓」鐩殑鐩殑鏄皾璇曟柊鎶鏈拰宸ュ叿锛屼粠鑰屽彂鐜扮洰鍓嶅拰鏈潵鐨勫紑鍙戞柟寮忋傜粡楠屾槸瑙傚療銆佹儏鎰熷拰鍋囪鐨勭粨鍚 (銆奅xperience and Knowledge Management in Software Engineering銆嬶紝Kurt Schneider 钁)銆傞槄璇绘暀绋嬫垨瀵瑰埄寮婄殑浠嬬粛褰撶劧濂斤紝浣嗚繖鍙槸銆屼功鏈煡璇嗐嶃傚彧鏈夊綋浣犺嚜宸卞皾璇曟椂锛屼綘鎵嶈兘浣撻獙鍒板紑鍙戜汉鍛樼殑鎯呯华锛屾墠鑳藉浜嬫儏濂藉潖鑳屽悗鐨勫師鍥犲仛鍑哄亣璁俱備娇鐢ㄤ竴绉嶆妧鏈殑鏃堕棿瓒婇暱锛屼綘鍋氬嚭鐨勫亣璁惧氨浼氳秺濂姐傝繖浼氬府鍔╀綘鍦ㄦ棩甯稿伐浣滀腑鍋氬嚭鏇村ソ鐨勫喅瀹氥傛垜鍒氬紑濮嬬紪绋嬫椂锛屽苟娌℃湁浠g爜琛ュ叏鍔熻兘锛屽彧鏈変竴浜涘彲浠ュ姞閫熷紑鍙戠殑瀹炵敤绋嬪簭搴撱傛樉鐒讹紝鎶婇偅鏃跺欑殑鑳屾櫙鐭ヨ瘑鐢ㄥ湪浠婂ぉ锛屾垜浼氬仛鍑洪敊璇殑鍐冲畾銆傜幇鍦ㄦ垜浠湁澶ч噺鐨勭紪绋嬭瑷銆佹鏋躲佸伐鍏枫佹祦绋嬪拰瀹炶返銆傚彧鏈夊綋浣犳湁缁忛獙锛屽涓昏瓒嬪娍鏈夌矖鐣ョ殑浜嗚В鏃讹紝浣犳墠鑳藉弬涓庡埌璁ㄨ涓潵锛屽苟灏嗗紑鍙戝紩鍚戞纭殑鏂瑰悜锛
鍙皾璇曢渶瑕佸皾璇曠殑浜嬫儏锛氫綘涓嶅彲鑳藉皾璇曟墍鏈夌殑浜嬫儏锛岃繖鏍规湰鏄笉鍙兘鐨勩備綘闇瑕佷竴涓洿缁撴瀯鍖栫殑鏂规硶銆傛垜鏈杩戝彂鐜颁簡涓涓祫婧愶細ThoughtWorks 鐨勬妧鏈浄杈撅紝浠栦滑灏嗘妧鏈佸伐鍏枫佸钩鍙般佽瑷鍜屾鏋跺垎涓哄洓绫伙細閲囩撼銆佽瘯楠屻佽瘎浼板拰鏆傜紦銆傞噰绾宠〃绀恒屽己鐑堝缓璁笟鐣岄噰鐢ㄨ繖浜涙妧鏈嶏紝璇曢獙琛ㄧず銆屼紒涓氬簲褰撳湪椋庨櫓鍙帶鐨勫墠鎻愪笅鍦ㄩ」鐩腑灏濊瘯搴旂敤姝ら」鎶鏈嶏紝璇勪及琛ㄧず銆屽畠瀵逛紒涓氱殑褰卞搷杩橀渶鎺㈢储銆嶏紝鏆傜紦琛ㄧず銆岃皑鎱庤浜嬨嶃傛湁浜嗚繖绉嶅垎绫绘柟娉曪紝鎴戜滑鏇村鏄撹幏寰楁柊浜嬬墿鐨勬鍐碉紝骞舵洿濂藉湴璇勪及涓嬩竴姝ヨ鎺㈢储鐨勮秼鍔裤
璁板綍
鏋舵瀯鏂囨。鏈夋椂寰堥噸瑕侊紝鏈夋椂鍗翠笉閭d箞閲嶈銆備緥濡傦紝鏋舵瀯鍐崇瓥鎴栦唬鐮佹寚鍗楁槸閲嶈鏂囨。銆傚湪寮濮嬬紪绋嬩箣鍓嶏紝閫氬父闇瑕佸垵濮嬫枃妗o紝骞朵笖瀵规涓嶆柇缁嗗寲銆傚洜涓轰唬鐮佷篃鍙互浣滀负鏂囨。锛堝 UML 绫诲浘锛夛紝鎵浠ユ湁浜涙枃妗e彲浠ヨ嚜鍔ㄧ敓鎴愩
浠g爜鏁存磥锛氬ソ鐨勪唬鐮佹湰韬氨鏄渶濂界殑鏂囨。銆傚ソ鐨勬灦鏋勫笀搴旇鎷ユ湁杈ㄥ埆濂藉潖浠g爜鐨勮兘鍔涖俁obert C. Martin 鍐欑殑銆奀lean Code銆嬪氨鏄繖鏂归潰寰堝ソ鐨勫涔犺祫鏂欍
鍦ㄥ彲鑳界殑鎯呭喌涓嬬敓鎴愭枃妗o細绯荤粺鍙樺寲寰堝揩锛屽洜姝ゆ枃妗e緢闅惧強鏃舵洿鏂般傛棤璁烘槸 API 杩樻槸浠 CMDB 褰㈠紡鍑虹幇鐨勭郴缁熺幆澧冿細搴曞眰淇℃伅鐨勫彉鍖栧線寰澶揩锛屽洜姝ゆ棤娉曟墜鍔ㄦ洿鏂扮浉搴旂殑鏂囨。銆備緥濡傦細濡傛灉浣犵殑 API 鏄ā鍨嬮┍鍔ㄧ殑锛屼綘灏卞彲浠ユ牴鎹畾涔夋枃浠惰嚜鍔ㄧ敓鎴愭枃妗o紝鎴栬呯洿鎺ヤ粠婧愪唬鐮佺敓鎴愭枃妗c傛湁寰堝宸ュ叿鍙互甯綘瀹屾垚杩欓」宸ヤ綔锛屾垜璁や负 Swagger 鍜 RAML 鏄緢濂界殑璧风偣銆
灏藉彲鑳藉璁板繀闇鐨勪笢瑗匡紝鍐呭灏藉彲鑳藉皯锛氫笉绠′綘闇瑕佽褰曚粈涔堬紙濡傚喅绛栨枃浠讹級锛岃瘯鐫涓娆″彧鍏虫敞涓浠朵簨锛屽彧璁板綍杩欎欢浜嬬殑蹇呰淇℃伅銆備赴瀵岀殑鏂囨。寰堥毦闃呰鍜岀悊瑙o紝闄勫姞淇℃伅搴斾繚瀛樺湪闄勫綍涓傜壒鍒槸鍐崇瓥鏂囦欢锛屾洿閲嶈鐨勬槸瑕佽涓涓湁璇存湇鍔涚殑鏁呬簨锛岃屼笉鏄姏鍑哄ぇ閲忕殑璁烘嵁銆傛澶栵紝杩欒繕鑳戒负浣犲拰浣犵殑鍚屼簨鑺傜渷澶ч噺鏃堕棿锛屽洜涓轰綘浠繀椤婚槄璇昏繖浜涙枃妗c傜湅鐪嬩綘杩囧幓鍋氳繃鐨勪竴浜涙枃妗o紙婧愪唬鐮併佹ā鍨嬨佸喅绛栨枃浠剁瓑锛夛紝鐒跺悗闂嚜宸变互涓嬮棶棰橈細銆岀敤浜庣悊瑙h鏂囦欢鐨勬墍鏈夊繀瑕佷俊鎭兘鍖呮嫭鍦ㄥ唴浜嗗悧锛熴嶃併屽摢浜涗俊鎭槸鐪熸闇瑕佺殑锛屽摢浜涘彲浠ョ渷鐣ワ紵銆嶃併屾枃妗f湁绾㈢嚎鍚楋紵銆
鏇村鍦颁簡瑙f灦鏋勬鏋讹細杩欎竴鐐逛篃閫傜敤浜庢墍鏈夊叾浠栥屾妧鏈嶇被寤鸿銆傛垜涔嬫墍浠ユ妸瀹冩斁鍦ㄨ繖閲岋紝鏄洜涓哄儚 TOGAF 鎴 Zachmann 杩欐牱鐨勬鏋舵彁渚涗簡銆屽伐鍏枫嶏紝杩欎簺宸ュ叿鍦ㄦ枃妗g珯鐐逛笂寰堥噸瑕侊紝灏界瀹冧滑鐨勯檮鍔犱环鍊煎苟涓嶅眬闄愪簬鏂囨。銆傛繁鍏ヤ簡瑙f绫绘鏋跺皢鏁欎細浣犳洿绯荤粺鍦板鐞嗘灦鏋勩
鍙傝冮摼鎺ワ細https://github.com/justinamiller/SoftwareArchitect
鏈枃涓烘満鍣ㄤ箣蹇冪紪璇戯紝杞浇璇疯仈绯绘湰鍏紬鍙疯幏寰楁巿鏉冦
鉁------------------------------------------------
鍔犲叆鏈哄櫒涔嬪績锛堝叏鑱岃鑰 / 瀹炰範鐢燂級锛歨r@jiqizhixin.com
鎶曠鎴栧姹傛姤閬擄細content@jiqizhixin.com
骞垮憡 & 鍟嗗姟鍚堜綔锛歜d@jiqizhixin.com