| ±à¼ÍƼö: |
| ±¾ÎÄÀ´×ÔÓÚmamicode£¬ÎÄÕÂÖ÷Òª½éÉÜÁËʲôÊÇÁìÓòÇý¶¯Éè¼Æ£¬2ÖÖ½¨Ä£·½Ê½£¬ÁìÓòÇý¶¯µÄ¼Ü¹¹µÈÏà¹ØÄÚÈÝ¡£ |
|
Ò»¡¢Ê²Ã´ÊÇÁìÓòÇý¶¯Éè¼Æ
1.1¡¢ÃæÏòÒµÎñµÄÉè¼Æ
µ±ÎÒÃÇÐèÒª¹¹½¨Ò»¸öÒµÎñ¸´ÔÓµÄϵͳ£¬ÎÒÃDz»½öÒª´Ó¼¼Êõ½Ç¶ÈÈ¥¹¹½¨Ò»¸öÎȽ¡µÄϵͳ£¬»¹Òª´ÓÒµÎñ½Ç¶È³ö·¢£¬±£Ö¤ÏµÍ³ÄÜÂú×ãÒµÎñÐèÇó¡£
¼Ü¹¹Éè¼ÆµÄ¿¼Âǵ㣺²»½öÃæÏò¼¼Êõ£¬¸üÓ¦¸ÃÃæÏòÒµÎñ£»Ãæ¶Ô²»Í¬µÄÒµÎñ¸´ÔÓ¶È£¬Ñ¡ÔñµÄ¼Ü¹¹¿ÉÄܲ»Í¬¡£
¼Ü¹¹Ê¦µÄ¹¤×÷£ºÃæ¶Ô¸´ÔÓµÄÒµÎñÂß¼£¬ÐèÒªÕûºÏÒµÎñºÍ¼¼Êõ²ÅÄܺܺõؽâ¾ö¡£ÒµÎñ¼Ü¹¹Çý¶¯¼¼Êõ¼Ü¹¹¡£
Ò»¸öµäÐÍ¿ª·¢ÍŶӣºÐÂÊÖ¡¢Öм¶¿ª·¢Õß¡¢¸ß¼¶¿ª·¢Õß/¼Ü¹¹Ê¦£¨¼¼Êõ¼Ü¹¹£©¡¢ÁìÓòר¼Ò/²úÆ·¾Àí£¨ÒµÎñ¼Ü¹¹£©¡¢ÏîÄ¿¾Àí
Òª½â¾öµÄÎÊÌ⣺½«¸´ÔÓµÄÒµÎñ¼Ü¹¹ÊáÀíºÃ£¬²¢ÄÜΪ¼¼Êõ¼Ü¹¹µÄÉè¼ÆÌṩҪÇó»òÖ¸µ¼¡£
×ܽ᣺Ҫ½øÐÐÒ»¸öÒµÎñ¸´ÔÓϵͳµÄ¼Ü¹¹Éè¼Æ£¬ÎÒÃÇÒª½«¼¼Êõ¼Ü¹¹ºÍÒµÎñ¼Ü¹¹ÕûºÏÆðÀ´¡£
1.2¡¢Ê¹ÓÃÁìÓòÇý¶¯Éè¼Æ£¬ÈÃÒµÎñ¼Ü¹¹ºÍ¼¼Êõ¼Ü¹¹ÄÜÕûºÏÆðÀ´
¼ÈȻҵÎñ¶Ôϵͳ¼Ü¹¹ÓÐÓ°Ï죬ÄÇôÈçºÎÄܽ«ÒµÎñÓïÑÔת»¯Îª¶Ô¼¼Êõ¼Ü¹¹Éè¼ÆÓÐÖ¸µ¼ÒâÒåµÄÐÅÏ¢£¿
ÆäÖÐÒ»ÖÖ·½·¨¾ÍÊÇÁìÓòÇý¶¯Éè¼Æ¡£
ÁìÓòÇý¶¯Éè¼Æ£ºDomain Driven Design£¨DDD£©£¬Ò»ÖÖÈí¼þ¿ª·¢µÄ·½·¨Ñ§

ʲôÊÇÁìÓò£ºÒ»¸ö×éÖ¯µÄÒµÎñ¿ªÕ¹·½Ê½£¬ÌåÏÖÒµÎñ¼ÛÖµ¡£
ÀýÈ磺µçÉÌÍøÕ¾ÖеIJúÆ·¡¢¶©µ¥¡¢·¢Æ±¡¢¿â´æ¡¢ÎïÁ÷£»±£ÏÕ¹«Ë¾µÄ±£ÏÕµ¥¡¢ÀíÅâ¡¢ÔÙ±£Ïյȡ£
ÒµÎñ¼ÛÖµ£ºÓÐÓõÄÁìÓòÄ£ÐÍ¡¢³éÏóµÄÒµÎñ¶¨Òå¡¢¸üºÃµÄÓû§ÌåÑé¡¢ÇåÎúµÄÄ£Ðͱ߽磻ĿµÄÊÇÖ¸µ¼¿ª·¢³öÓÅÐãµÄ¼¼Êõ¼Ü¹¹¡£
ÈçºÎʹÓÃDDD£º

×îÖÕÄ¿±ê£ºÄÜÌåÏÖϵͳҵÎñ£¬ÓÖÄÜÖ¸µ¼´úÂ뿪·¢µÄÒ»¸öÄ£ÐÍ£»½«Éè¼ÆÄ£ÐͺʹúÂëÄ£ÐͺܺõؽáºÏÆðÀ´¡£
ͨÓÃÓïÑÔ£¨Ubiquitous Language£©£º
ÍŶӳÉÔ±µÄÐл°
ÃæÏòÒµÎñ
±íÏÖÐÎʽ£ºÊõÓï±í¡¢ÎĵµºÍͼ¡¢Ä£ÐÍÓïÑÔ¡£¡£¡£
ÃæÁÙµÄÌôÕ½£ºÁìÓòר¼Ò³ÖÐø²»¶Ï½éÈë¡¢¿ª·¢Õß¶ÔÁìÓòµÄ˼¿¼·½·¨
×ÛÉÏ£¬ÎÒÃÇ¿ÉÒÔ¿¼ÂÇÁìÓòÇý¶¯Éè¼ÆµÄÉè¼ÆÎ³¶È£¬´Ó2¸ö·½ÃæÀ´¿´ÁìÓòÇý¶¯Éè¼Æ
Éè¼ÆµÄ²ßÂÔ£º
¹Ø×¢ÈçºÎÉè¼ÆÁìÓòÄ£ÐÍÒÔ¼°¶ÔÁìÓòÄ£Ð͵Ļ®·Ö
ÁìÓò/×ÓÓò
ͨÓÃÓïÑÔ
½çÏÞÉÏÏÂÎÄ
¼Ü¹¹·ç¸ñ
ÓÃÓÚÇå³þ½ç·Ö²»Í¬µÄϵͳºÍÒµÎñ¹Ø×¢µã
Éè¼ÆµÄ¼¼Êõ£º
¹Ø×¢¼¼ÊõʵÏֵIJãÃæ½Ì»áÎÒÃÇÈçºÎ¾ßÌåµØÊµÊ©DDD
ʵÌå/Öµ¶ÔÏó
ÁìÓò·þÎñ
ÁìÓòʼþ
×ÊÔ´¿â
»ùÓÚ¼¼ÊõÉè¼Æ¹¤¾ß°´ÕÕÁìÓòÄ£ÐÍ¿ª·¢Èí¼þ
×ܽ᣺ÎÒÃÇΪʹҵÎñÄÜÖ¸µ¼¼Ü¹¹¿ª·¢£¬½«ÒµÎñ¼Ü¹¹Óë¼¼Êõ¼Ü¹¹ÕûºÏÆðÀ´£¬ÌṩµÄÒ»ÖÖ½â¾ö°ì·¨ÊÇÁìÓòÇý¶¯Éè¼Æ£¬²¢Ìá³öÁËÁìÓòÇý¶¯Éè¼ÆµÄʵÏÖ²ßÂÔºÍʵÏÖ¼¼Êõ¡£
1.3¡¢ÊµÏÖÁìÓòÇý¶¯Éè¼ÆµÄ˼·
ÌṩһÌ×ͨÓõĽ¨Ä£ÓïÑÔºÍÊõÓï
չʾ»ùÓÚÁìÓòÇ÷ͬµÄ¼Ü¹¹Éè¼Æ·½·¨
չʾʵÏÖÁìÓòÇý¶¯Éè¼ÆµÄ¸÷Ïî¹Ø¼ü¼¼Êõ
»ùÓÚ¾ßÌå°¸ÀýչʾÉè¼ÆµÄ²ßÂԺͼ¼Êõ
¶þ¡¢ÁìÓòÓëÉÏÏÂÎÄ
2.1¡¢¼Ü¹¹µÄÂÖ»Ø
ÁìÓò£¨Domain£©£º
Ò»¸ö×éÖ¯Ëù×öµÄÊÂÇéÒÔ¼°ÆäÖÐËù°üº¬µÄÒ»ÇÐÄÚÈÝ
ÒµÎñ·¶Î§¼°Ëù½øÐеĻ
¿ª·¢Ä³¸öÈí¼þʱ£¬Ãæ¶ÔµÄ¾ÍÊÇ×éÖ¯µÄÁìÓò
ÁìÓòÄ£ÐÍ£¨Domain Model£©£º
Õë¶ÔÕû¸öÒµÎñϵͳ´´½¨µÄÄ£ÐÍ

ÓÐ2ÖÖ½¨Ä£·½Ê½£º
µ¥Ò»¡¢ÄÚ¾Û¡¢È«¹¦ÄÜʽ£ºÏÖÔÚ²»ºÃ
¹¦Äܲð·Ö¡¢·þÎñ»¯¡¢×ÓÓò£ºÏÖÔÚÔ½À´Ô½Á÷ÐУ¬Èç΢·þÎñ

¸´ÔÓϵͳµÄ¼òµ¥»¯£º¹¦Äܲð·Ö
²ð·Ö¹Ø×¢µã£ººËÐŦÄÜ¡¢¸¨Öú¹¦ÄÜ¡¢µÚÈý·½¹¦ÄÜ
²ð·ÖºóµÄ¹¦ÄÜ×é×°£ºÏµÍ³¼¯³É
¹¦Äܲð·ÖÔÚÁìÓòÇý¶¯Éè¼ÆµÄ±íÏÖ£º
²ð·Ö¹Ø×¢µã£º×ÓÓò
¹¦ÄÜ×é×°£º½çÏÞÉÏÏÂÎÄ
2.2¡¢ÁìÓò/×ÓÓò/½çÏÞÉÏÏÂÎÄ 
×ÓÓò·ÖÀࣨһ¸ö³£¼û·ÖÀࣩ£º
ºËÐÄÓò£ººËÐÄÒµÎñ
Ö§³Å×ÓÓò£º×¨×¢ÓÚÒµÎñµÄijһ·½Ãæ
ͨÓÃ×ÓÓò£ºÓÃÓÚÕû¸öÒµÎñϵͳ
½çÏÞÉÏÏÂÎÄ£º
ÁìÓò´æÔÚÓÚ½çÏÞÉÏÏÂÎÄÖÐ
ÿ¸öÄ£Ð͸ÅÄî¡¢ÊôÐԺͲÙ×÷£¬Ôڱ߽çÖ®ÄÚÓÐÌØÊ⺬Òå

²ð·ÖÉÏÏÂÎĵIJßÂÔ£º¼¸¸ö¿ÉÒÔ¿¼ÂǵĽǶÈ
¸ù¾ÝÒµÎñ/ͨÓÃÓïÑÔ£¨ºÏÊÊ£©
¸ù¾Ý¼¼Êõ¼Ü¹¹£¨²»½¨Ò飩
¸ù¾Ý¿ª·¢ÈÎÎñ·ÖÅ䣨²»½¨Ò飩
Ò»¸öÍŶÓÒ»¸öÉÏÏÂÎÄ£¨ºÏÊÊ£©
2.3¡¢ÎÒÃǵݸÀý
ÏîÄ¿¼Æ»®ÏµÍ³
ϵͳÍê³É¶Ôij¸öÏîÄ¿ÈÎÎñµÄ·Ö½â
ϵͳµÄÄ¿µÄÊÇÏîÄ¿¼Æ»®µÄÖÆ¶¨
¼Æ»®µÄÖÆ¶¨Í¨¹ýÕÙ¿ªÏîÄ¿»áÒéµÄ·½·¨½øÐÐ
ÏîÄ¿»áÒéµÄÓë»áÈËÔ±ÐèҪȷ±£Éí·ÝµÄÓÐЧÐÔ
˼·£º
¼ÙÏëÒµÎñÁ÷³Ì
Î§ÈÆÁìÓòÇý¶¯Éè¼ÆµÄÀíÄîºÍʵ¼ù
´Ó²ßÂÔµÄÉè¼Æµ½¼¼ÊõµÄÉè¼Æ
²ã²ãÆÊÎöºÍÑݽø
³õ²½ÉÏÏÂÎIJð·Ö

2.4¡¢×éÖ¯ºÍ¼¯³Éģʽ
´óÄàÇò·ç¸ñ£¨Big ball of mud£©
ʵ¼ùÖбȽϳ£¼û£¬Ëæ×ÅÒµÎñ¸´ÔÓ£¬Âß¼¶Ñ»ý£¬µ¼Ö½ṹ²»ÇåÎú£¬±ß½çÄ£ºý
¸Ä½ø£º²ð·Öºó¼¯³É
¸ß²ã´ÎµÄ¼Ü¹¹·ÖÎö£ºÉÏÓΣ¨Upstream£©ÏÂÓΣ¨Downstream£©

¼¯³ÉµÄ¹Ø×¢µã£º
ÉÏÏÂÎÄÖ®¼äµÄ¹ØÏµÈçºÎ£¨ËÊÇÉÏÓÎËÊÇÏÂÓΣ©
²»Í¬¿ª·¢ÍŶÓÖ®¼äµÄ¹ØÏµÈçºÎ
ÍŶÓÖ®¼äµÄ¹ØÏµ£º×éÖ¯ºÍ¼¯³Éģʽ
ºÏ×÷¹ØÏµ£º¹²Í¬³É°Ü
¹²ÏíÄںˣº¹²ÏíÄÚºËÏÔʽ±ß½çºÍСÐÍ»¯
¿Í»§·½/¹©Ó¦·½£ºÉÏÓÎ/ÏÂÓΣ¬ÏÂÓÎÊÜÉÏÓÎÓ°Ïì¾Þ´ó£»Ö÷Á÷ģʽµ«²»ÊÇ×îºÃģʽ
×ñ·îÕߣºÉÏÓÎÎÞÍÆ¶¯Á¦£¬ÏÂÓÎÖ»ÄÜÍ×лòÁíıËû·
ÉÏÃæ¼¸ÖÖ²»ÊôÓڽϺõķ½·¨£¬ÒÔÏÂÊDZȽϺõķ½·¨
·À¸¯²ã£¨Anticorruption Layer£©£ºÏÂÓοͻ§¸ù¾ÝÁìÓòÄ£ÐÍ´´½¨µ¥¶ÀÒ»²ã£¨¿ÉÒÔÀí½âΪÃÅÃæ£¿»òÊÊÅäģʽ£¿£©
¿ª·ÅÖ÷»ú£¨Open Host£©£º¶¨ÒåÐÒ飬ÈñðÈËͨ¹ýÐÒé·ÃÎÊ£¨ÈçRESTful·ç¸ñ£©
·¢²¼ÓïÑÔ£¨Published Language£©£º¹²ÏíÓïÑÔÍê³É¼¯³É½»Á÷£¨Èç·¢²¼¶ÔÓ¦APIÎĵµ£©
2.5¡¢ÉÏÏÂÎɼ¼Êõ
¿ª·ÅÖ÷»ú·þÎñ
ÉÏÓÎÉÏÏÂÎÄÌṩ
REST
·¢²¼ÓïÑÔ
ÉÏÓÎÉÏÏÂÎÄÌṩ
XML/JSON/...
ÏûϢʼþ
·À¸¯²ã
ÏÂÓÎÉÏÏÂÎÄÌṩ
2.6¡¢°¸ÀýÖеÄÉÏÏÂÎÄ



OHS/PL/ACL£º·Ö±ðÊÇÉÏÃæËµµÄ3ÖֽϺõɼ¼Êõ


Èý¡¢ÁìÓòÇý¶¯¼Ü¹¹
ÁìÓòÇý¶¯£¬²»½öÊDzßÂÔ¼¼Êõ£¬»¹°üº¬¼¼ÊõÉè¼Æ
3.1¡¢·Ö²ã¼Ü¹¹


Ñϸñ·Ö²ã£ºÖ»Äܵ÷ÏÂÃæÒ»²ã
ËÉÉ¢·Ö²ã£º¿ÉÒÔËæÒâµ÷ÓÃ
ÁìÓòÖÐÒ»°ã¶¼Êǰüº¬½Ó¿Ú£¬½Ó¿ÚÓÉÆäËû²ãʵÏÖ¡£
ÈçºÎʵÏÖ£¿ÒÀÀµµ¹Öã¿Spring¿ò¼Ü£¿



ÔÚÁìÓòÇý¶¯ÖУ¬·Ö²ãµÄ¸ÅÄîÒѾ²»ÊÇÄÇÃ´ÖØÒª
3.2¡¢Æ½ÃæÐͼܹ¹£¨ÖØÒªµÄ¼Ü¹¹£©
ÁìÓòÇý¶¯ÍƳç
Ϊʲô£¿
ÒòΪ
1¡¢ÏµÍ³ÒÀÀµ¸´ÔÓµÄÁìÓòÄ£ÐÍ£¬ÁìÓòÄ£ÐÍÓ¦¸Ã·ÅÖм䱻ÆäËüÄ£¿éÒÀÀµ
2¡¢ÓнçÏÞÉÏÏÂÎÄ£¬ÐèÒªºÍÆäËü·þÎñ½»»¥
·Ö²ã¼Ü¹¹²»Ì«ÈÝÒ×ʵÏÖ

»ù´¡¼Ü¹¹£º
ÓÉÄÚ¶øÍâÎ§ÈÆÁìÓòÄ£ÐÍÕ¹¿ª
Ó¦ÓóÌÐò°üº¬ÒµÎñÂß¼
ÊÊÅäÆ÷
¶àÖÖÊÊÅäÆ÷
Êý¾Ý³Ö¾Ã»¯
Êý¾Ý¼¯³É
ÃæÏò½á¹¹ºÍMock»úÖÆ
3.3¡¢SOA¼Ü¹¹
¸ù¾ÝÊÊÅäÆ÷µÄ²»Í¬Ðг̲»Í¬µÄ·ç¸ñ

3.4¡¢RESTful·ç¸ñ


4¡¢CQRS
´«Í³Êý¾Ý²Ù×÷



ÃüÁîÓë²éѯְÔð·ÖÀë


½â¾öÁìÓòÊý¾ÝºÍ½çÃæÏÔʾµÄÆ¥Åä

5¡¢EDA





|