Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÁìÓòÇý¶¯Ä£ÐÍ&CQRSѧϰ
 
×÷Õߣº Íõ³½
  1432  次浏览      32
 2020-4-15 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜʲôÊÇÁìÓòÇý¶¯£¬ºËÐĸÅÄHalo¿ò¼Ü¸ÅÊöµÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×ÔÓڲشôÑò£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

1¡¢ÁìÓòÇý¶¯¸ÅÊö

΢·þÎñϵͳµÄÉè¼Æ×ÔÈ»Àë²»¿ªDDD£¨Domain-Driven Design£¬ÁìÓòÇý¶¯Éè¼Æ£©£¬ËüÓÉEric EvansÌá³ö£¬ÊÇÒ»ÖÖȫеÄϵͳÉè¼ÆºÍ½¨Ä£·½·¨¡£DDDÊÂʵÉÏÊÇÕë¶ÔÃæÏò¶ÔÏó·ÖÎöºÍÉè¼ÆµÄÒ»¸öÀ©Õ¹ºÍÑÓÉ죬¶Ô¼¼Êõ¼Ü¹¹½øÐÐÁË·Ö²ã¹æ»®£¬Í¬Ê±¶Ôÿ¸öÀà½øÐÐÁ˲ßÂÔºÍÀàÐ͵Ļ®·Ö¡£ÁìÓòÄ£ÐÍÊÇÁìÓòÇý¶¯µÄºËÐÄ¡£ÁìÓòÄ£ÐÍͨ¹ý¾ÛºÏ£¨Aggregate£©×éÖ¯ÔÚÒ»Æð£¬¾ÛºÏ¼äÓÐÃ÷ÏÔµÄÒµÎñ±ß½ç£¬ÕâЩ±ß½ç½«ÁìÓò»®·ÖΪһ¸ö¸öÏÞ½çÉÏÏÂÎÄ£¨Bounded Context£©¡£²ÉÓÃDDDµÄÉè¼ÆË¼Ï룬ҵÎñÂß¼­²»ÔÙ¼¯ÖÐÔÚ¼¸¸ö´óÐ͵ÄÀàÉÏ£¬¶øÊÇÓÉ´óÁ¿Ïà¶ÔСµÄÁìÓò¶ÔÏó£¨Àࣩ×é³É£¬ÕâЩÀà¾ß±¸×Ô¼ºµÄ״̬ºÍÐÐΪ£¬Ã¿¸öÀàÊÇÏà¶ÔÍêÕûµÄ¶ÀÁ¢Ì壬²¢ÓëÏÖʵÁìÓòµÄÒµÎñ¶ÔÏóÓ³Éä¡£ÁìÓòÄ£Ð;ÍÊÇÓÉÐí¶àÕâÑùµÄϸÁ£¶ÈµÄÀà×é³ÉµÄ¡£»ùÓÚÁìÓòÇý¶¯µÄÉè¼Æ£¬±£Ö¤ÁËϵͳµÄ¿Éά»¤ÐÔ¡¢¿ÉÀ©Õ¹ÐԺͿɸ´ÓÃÐÔ£¬ÔÚ´¦Àí¸´ÔÓÒµÎñÂß¼­·½ÃæÓÐ×ÅÏÈÌìµÄÓÅÊÆ¡£1.1¡¢Spring CloudÓëÁìÓòÇý¶¯

ÔÚ΢·þÎñ£¨MicroServices£©¼Ü¹¹Êµ¼ùÖУ¬´óÁ¿½èÓÃÁËDDDÖеĸÅÄîºÍ¼¼Êõ£¬±ÈÈçÒ»¸ö΢·þÎñÓ¦¸Ã¶ÔÓ¦DDDÖеÄÒ»¸öÏÞ½çÉÏÏÂÎÄ£¨Bounded Context£©£»ÔÚ΢·þÎñÉè¼ÆÖÐÓ¦¸ÃÊ×ÏÈʶ±ð³öDDDÖеľۺϸù£¨Aggregate Root£©£»»¹ÓÐÔÚ΢·þÎñÖ®¼ä¼¯³ÉʱӦ¸Ã²ÉÓÃDDDÖеķÀ¸¯²ã£¨Anti-Corruption Layer, ACL£©¡£ÎÒÃÇÉõÖÁ¿ÉÒÔ˵DDDºÍ΢·þÎñÓÐ×ÅÌìÉúµÄĬÆõ¡£

×¢£º¾ÛºÏ¸ùµÄÉè¼ÆÓÈÎªÖØÒª£¬Èç¹û¾ÛºÏ¸ùÉè¼Æ¼¯Öл¯£¬»áËæ×źóÀ´µÄÒµÎñÀ©Õ¹Ä£ÐÍÔ½À´Ô½ÅӴ󣬻ᵼÖÂһϵÁеÄÄÚ´æ¡¢ÐÔÄܵÈÎÊÌ⣬¶øÇÒ¼¸ºõ²»¿ÉÄܽâ¾ö£¬³ý·ÇÖØ¹¹¾ÛºÏ¸ùÉè¼Æ¡£1.2¡¢ÎªÊ²Ã´ÐèÒªÁìÓò½¨Ä£

ÁìÓòÄ£ÐÍÓÐÖúÓÚÍŶӴ´½¨Ò»¸öÒµÎñ²¿ÃÅÓëIT²¿ÃŶ¼ÄÜÀí½âµÄͨÓÃÄ£ÐÍ£¬²¢ÓøÃÄ£ÐÍÀ´¹µÍ¨ÒµÎñÐèÇó¡¢Êý¾ÝʵÌå¡¢¹ý³ÌÄ£ÐÍ¡£Ä£ÐÍÊÇÄ£¿é»¯¡¢¿ÉÀ©Õ¹¡¢Ò×ÓÚά»¤µÄ£¬Í¬Ê±Éè¼Æ»¹·´Ó³ÁËÒµÎñÄ£ÐÍ£¬Ìá¸ßÁËÒµÎñÁìÓò¶ÔÏóµÄ¿ÉÖØÓÃÐԺͿɲâÐÔ¡£·´¹ýÀ´£¬Èç¹ûITÍŶÓÔÚ¿ª·¢´óÖÐÐÍÆóÒµÈí¼þÓ¦ÓÃʱ²»×ñÑ­ÁìÓòÄ£ÐÍ·½·¨£¬²»Í¶·Å×ÊÔ´È¥½¨Á¢ºÍ¿ª·¢ÁìÓòÄ£ÐÍ£¬»áµ¼ÖÂÓ¦Óüܹ¹³öÏÖ¡°·Ê·þÎñ²ã¡±ºÍ¡°Æ¶ÑªµÄÁìÓòÄ£ÐÍ¡±£¬ÔÚÕâÑùµÄ¼Ü¹¹ÖУ¬»á»ý¾ÛÔ½À´Ô½¶àµÄÒµÎñÂß¼­¡£ÎÒÃÇÏ£ÍûÁìÓò¶ÔÏóÄܹ»×¼È·µØ±í´ï³öÒµÎñÒâͼ£¬µ«ÊǶàÊýʱºò£¬ÎÒÃÇ¿´µ½µÄÈ´ÊdzäÂúgetterºÍsetterµÄÁìÓò¶ÔÏó¡£´ËʱµÄÁìÓò¶ÔÏóÒѾ­²»ÊÇÁìÓò¶ÔÏóÁË£¬ËüÃÇÖ»ÊǸöÊý¾ÝÔØÌ壬Ҳ¾ÍÊÇMartin FowlerËù˵µÄƶѪ¶ÔÏó¡£ÕâÖÖ×ö·¨»áµ¼ÖÂÁìÓòÌØ¶¨ÒµÎñÂß¼­·ÖÉ¢ÔÚÒ»¶Ñservice²ãÖУ¬Èí¼þ¼Ü¹¹ËæÒµÎñ¿ª·¢³£ÄêÀÛ»ýÒ°ÂùÉú³¤£¬´Ó¶ø¸¯°Ü£¬ÎÞ·¨Î¬»¤¡£ÁìÓòÇý¶¯Éè¼Æ¸æËßÎÒÃÇ£¬ÔÚͨ¹ýÈí¼þʵÏÖÒ»¸öÒµÎñϵͳʱ£¬½¨Á¢Ò»¸öÁìÓòÄ£ÐÍÊǷdz£ÖØÒªºÍ±ØÒªµÄ£¬ÒòΪÁìÓòÄ£Ð;ßÓÐÒÔÏÂÌØµã£º

ÁìÓòÄ£ÐÍÊǶԾßÓÐij¸ö±ß½çµÄÁìÓòµÄÒ»¸ö³éÏ󣬷´Ó³ÁËÁìÓòÄÚÓû§ÒµÎñÐèÇóµÄ±¾ÖÊ£»ÁìÓòÄ£ÐÍÊÇÓб߽çµÄ£¬Ö»·´Ó³ÁËÎÒÃÇÔÚÁìÓòÄÚËù¹Ø×¢µÄ²¿·Ö¡£

ÁìÓòÄ£ÐÍÖ»·´Ó³ÒµÎñ£¬ºÍÈκμ¼ÊõʵÏÖÎ޹أ»ÁìÓòÄ£ÐͲ»½öÄÜ·´Ó³ÁìÓòÖеÄһЩʵÌå¸ÅÄÈç»õÎï¡¢Êé±¾¡¢Ó¦Æ¸¼Ç¼¡¢µØÖ·µÈ£»»¹ÄÜ·´Ó³ÁìÓòÖеÄһЩ¹ý³Ì¸ÅÄÈç×ʽðתÕ˵ȡ£

ÁìÓòÄ£ÐÍÈ·±£ÁËÎÒÃǵÄÈí¼þÒµÎñÂß¼­¶¼ÔÚÒ»¸öÄ£ÐÍÖУ¬ÕâÑù¶ÔÌá¸ßÈí¼þµÄ¿Éά»¤ÐÔ£¬ÒµÎñ¿ÉÀí½âÐÔÒÔ¼°¿ÉÖØÓÃÐÔ¶¼ÓаïÖú¡£

ÁìÓòÄ£ÐÍÄܹ»°ïÖú¿ª·¢ÈËÔ±Ïà¶Ôƽ»¬µØ½«ÁìÓò֪ʶת»¯ÎªÈí¼þ¹¹Ôì¡£

ÁìÓòÄ£Ð͹ᴩÈí¼þ·ÖÎö¡¢Éè¼Æ¼°¿ª·¢µÄÕû¸ö¹ý³Ì£»ÁìÓòר¼Ò¡¢Éè¼ÆÈËÔ±¡¢¿ª·¢ÈËԱͨ¹ýÁìÓòÄ£ÐͽøÐн»Á÷£¬±Ë´Ë¹²Ïí֪ʶÓëÐÅÏ¢£»ÒòΪ´ó¼ÒÃæÏòµÄ¶¼ÊÇͬһ¸öÄ£ÐÍ£¬ËùÒÔ¿ÉÒÔ·ÀÖ¹ÐèÇó×ßÑù£¬¿ÉÒÔÈÃÈí¼þÉè¼Æ¿ª·¢ÈËÔ±×ö³öÀ´µÄÈí¼þÕæÕýÂú×ãÐèÇó¡£

Òª½¨Á¢ÕýÈ·µÄÁìÓòÄ£ÐͲ¢²»¼òµ¥£¬ÐèÒªÁìÓòר¼Ò¡¢Éè¼ÆÈËÔ±¡¢¿ª·¢ÈËÔ±»ý¼«¹µÍ¨¹²Í¬Å¬Á¦£¬È»ºó²ÅÄÜʹ´ó¼Ò¶ÔÁìÓòµÄÈÏʶ²»¶ÏÉîÈ룬´Ó¶ø²»¶Ïϸ»¯ºÍÍêÉÆÁìÓòÄ£ÐÍ¡£

ΪÁËÈÃÁìÓòÄ£ÐÍ¿´µÃ¼û£¬ÎÒÃÇÐèÒªÓÃһЩ·½·¨À´±íʾËü£»Í¼ÊDZí´ïÁìÓòÄ£ÐÍ×î³£Óõķ½Ê½£¬µ«²»ÊÇΨһµÄ·½Ê½£¬´úÂë»òÎÄ×ÖÃèÊöÒ²Äܱí´ïÁìÓòÄ£ÐÍ¡£

ÁìÓòÄ£ÐÍÊÇÕû¸öÈí¼þµÄºËÐÄ£¬ÊÇÈí¼þÖÐ×îÓмÛÖµºÍ×î¾ß¾ºÕùÁ¦µÄ²¿·Ö£»Éè¼Æ×ã¹»¾«Á¼ÇÒ·ûºÏÒµÎñÐèÇóµÄÁìÓòÄ£ÐÍÄܹ»¸ü¿ìËÙµØÏìÓ¦ÐèÇóµÄ±ä»¯¡£

2¡¢ÁìÓòÇý¶¯ºËÐĸÅÄî

2.1¡¢ ʵÌå¸ÅÊö

ʵÌ壨Entity£©ÊÇÁìÓòÖÐÐèҪΨһ±êʶµÄÁìÓò¸ÅÄÒòΪÎÒÃÇÓÐʱÐè񻂿·ÖÊÇÄĸöʵÌå¡£Èç¹ûÓÐÁ½¸öʵÌ壬ÇÒΨһ±êʶ²»Ò»Ñù£¬ÄÇô¼´±ãʵÌåµÄÆäËûËùÓÐÊôÐÔ¶¼Ò»Ñù£¬ÎÒÃÇÒ²ÈÏΪËüÃÇÊDz»Í¬µÄʵÌ壻ÒòΪʵÌåÓÐÉúÃüÖÜÆÚ£¬ÊµÌå±»´´½¨ºó¿ÉÄܻᱻ³Ö¾Ã»¯µ½Êý¾Ý¿â£¬È»ºóij¸öʱºòÓֻᱻȡ³öÀ´¡£ËùÒÔ£¬Èç¹ûÎÒÃDz»ÎªÊµÌ嶨ÒåÒ»ÖÖ¿ÉÒÔÎ¨Ò»Çø·ÖµÄ±êʶ£¬ÄÇÎÒÃǾÍÎÞ·¨Çø·Öµ½µ×ÊÇÕâ¸öʵÌ廹ÊÇÄǸöʵÌå¡£

ÁíÍ⣬²»Ó¦¸Ã¸øÊµÌ嶨ÒåÌ«¶àµÄÊôÐÔ»òÐÐΪ£¬¶øÓ¦¸ÃѰÕÒ¹ØÁª£¬·¢ÏÖÆäËûһЩʵÌå»òÖµ¶ÔÏ󣬽«ÊôÐÔ»òÐÐÎª×ªÒÆµ½ÆäËû¹ØÁªµÄʵÌå»òÖµ¶ÔÏóÉÏ¡£±ÈÈçCustomerʵÌ壬ËüÓÐһЩµØÖ·ÐÅÏ¢£¬ÓÉÓÚµØÖ·ÐÅÏ¢ÊÇÒ»¸öÍêÕûµÄÓÐÒµÎñº¬ÒåµÄ¸ÅÄËùÒÔÎÒÃÇ¿ÉÒÔ¶¨ÒåÒ»¸öAddress¶ÔÏó£¬È»ºó°ÑCustomerÖÐÓëµØÖ·Ïà¹ØµÄÐÅÏ¢×ªÒÆµ½Address¶ÔÏóÉÏ¡£Èç¹ûûÓÐAddress¶ÔÏ󣬶ø°ÑÕâЩµØÖ·ÐÅÏ¢Ö±½Ó·ÅÔÚCustomer¶ÔÏóÉÏ£¬²¢ÇÒ°ÑÆäËûÀàËÆAddressµÄÐÅÏ¢Ò²¶¼Ö±½Ó·ÅÔÚCustomerÉÏ£¬»áµ¼ÖÂCustomer¶ÔÏóºÜ»ìÂÒ£¬½á¹¹²»ÇåÎú£¬×îÖÕµ¼ÖÂËüÄÑÒÔά»¤ºÍÀí½â¡£

2.2¡¢Öµ¶ÔÏó¸ÅÊö

ÔÚÁìÓòÖУ¬²¢²»ÊÇÿһ¸öÊÂÎï¶¼±ØÐëÓÐÒ»¸öΨһ±êʶ£¬Ò²¾ÍÊÇ˵ÎÒÃDz»¹ØÐĶÔÏóÊÇÄĸö£¬Ö»¹ØÐĶÔÏóÊÇʲô¡£¾ÍÒÔÉÏÃæµÄµØÖ·¶ÔÏóAddressΪÀý£¬Èç¹ûÓÐÁ½¸öCustomerµÄµØÖ·ÐÅÏ¢ÊÇÒ»ÑùµÄ£¬ÎÒÃǾͻáÈÏΪÕâÁ½¸öCustomerµÄµØÖ·ÊÇͬһ¸ö¡£Ò²¾ÍÊÇ˵ֻҪµØÖ·ÐÅÏ¢Ò»Ñù£¬ÎÒÃǾÍÈÏΪÊÇͬһ¸öµØÖ·¡£

ÓóÌÐòµÄ·½Ê½À´±í´ï¾ÍÊÇ£¬Èç¹ûÁ½¸ö¶ÔÏóµÄËùÓÐÊôÐÔµÄÖµ¶¼Ïàͬ£¬ÎÒÃÇ»áÈÏΪËüÃÇÊÇͬһ¸ö¶ÔÏó£¬ÄÇôÎÒÃǾͿÉÒÔ°ÑÕâÖÖ¶ÔÏóÉè¼ÆÎªÖµ¶ÔÏó£¨Value Object£©¡£Òò´Ë£¬Öµ¶ÔÏóûÓÐΨһ±êʶ£¬ÕâÊÇËüºÍʵÌåµÄ×î´ó²»Í¬¡£ÁíÍâÖµ¶ÔÏóÔÚÅжÏÊÇ·ñÊÇͬһ¸ö¶ÔÏóʱÊÇͨ¹ýËüÃǵÄËùÓÐÊôÐÔÊÇ·ñÏàͬʵÏֵģ¬Èç¹ûÏàͬÔòÈÏΪÊÇͬһ¸öÖµ¶ÔÏó£»¶øÎÒÃÇÔÚÇø·ÖÊÇ·ñÊÇͬһ¸öʵÌåʱ£¬Ö»¿´ÊµÌåµÄΨһ±êʶÊÇ·ñÏàͬ£¬²»¹ÜʵÌåµÄÊôÐÔÊÇ·ñÏàͬ¡£Öµ¶ÔÏóÁíÍâÒ»¸öÃ÷ÏÔµÄÌØÕ÷ÊDz»¿É±ä£¬¼´ËùÓÐÊôÐÔ¶¼ÊÇÖ»¶ÁµÄ¡£ÒòΪÊôÐÔÊÇÖ»¶ÁµÄ£¬ËùÒÔ¿ÉÒÔ±»°²È«¹²Ïí¡£µ±¹²ÏíÖµ¶ÔÏóʱ£¬Ò»°ãÓи´Öƺ͹²ÏíÁ½ÖÖ×ö·¨£¬¾ßÌå²ÉÓÃÄÄÖÖ×ö·¨»¹Òª¸ù¾Ýʵ¼ÊÇé¿ö¶ø¶¨¡£ÁíÍ⣬ÎÒÃÇÓ¦¸Ã½«Öµ¶ÔÏóÉè¼ÆµÃ¾¡Á¿¼òµ¥£¬²»ÒªÈÃËüÒýÓúܶàÆäËû¶ÔÏó£¬ÒòΪËüÖ»ÊÇÒ»¸öÖµ¡£ÊµÌåºÍÖµ¶ÔÏóµÄ¶Ô±È£¬ÈçϱíËùʾ£º

2.3¡¢ÁìÓò·þÎñ

ÁìÓòÖеÄһЩ¸ÅÄî²»ÊʺϽ¨Ä£Îª¶ÔÏ󣬼´²»ÊʺϹéÀൽʵÌå¶ÔÏó»òÖµ¶ÔÏó£¬ÒòΪËüÃDZ¾ÖÊÉϾÍÊÇһЩ²Ù×÷»ò¶¯×÷£¬¶ø²»ÊÇʵÎï¡£ÕâЩ²Ù×÷»ò¶¯×÷ÍùÍù»áÉæ¼°¶à¸öÁìÓòµÄ¶ÔÏ󣬲¢ÇÒÐèҪЭµ÷ÕâЩÁìÓò¶ÔÏó¹²Í¬Íê³ÉÕâ¸ö²Ù×÷»ò¶¯×÷¡£Èç¹ûÇ¿Ðн«ÕâЩ²Ù×÷Ö°Ôð·ÖÅ䏸ÈκÎÒ»¸ö¶ÔÏó£¬Ôò±»·ÖÅäµÄ¶ÔÏó¾Í»á³Ðµ£Ò»Ð©²»¸Ã³Ðµ£µÄÖ°Ô𣬴Ӷø»áµ¼Ö¶ÔÏóµÄÖ°Ôð²»Ã÷È·¡£µ«ÊÇ»ùÓÚÀàµÄÃæÏò¶ÔÏóµÄÓïÑԹ涨£¬ÈκÎÊôÐÔ»òÐÐΪ¶¼±ØÐë·ÅÔÚ¶ÔÏóÀïÃæ¡£ËùÒÔÎÒÃÇÐèҪѰÕÒÒ»ÖÖеÄģʽÀ´±íʾÕâÖÖ¿ç¶à¸ö¶ÔÏóµÄ²Ù×÷£¬DDDÈÏΪ·þÎñÊÇÒ»¸öºÜ×ÔÈ»µÄ·¶Ê½£¬¿ÉÓÃÀ´¶ÔÓ¦ÕâÖÖ¿ç¶à¸ö¶ÔÏóµÄ²Ù×÷£¬ËùÒÔ¾ÍÓÐÁËÁìÓò·þÎñ£¨Domain Service£©Õâ¸öģʽ¡£ÁìÓò·þÎñ±¾À´¾ÍÊÇÀ´´¦ÀíÕâÖÖ³¡¾°µÄ¡£±ÈÈçÒª¶ÔÃÜÂë½øÐнâÃÜ£¬¿ÉÒÔ´´½¨Ò»¸öPasswordServiceÀ´×¨ÃÅ´¦Àí¼Ó½âÃܵÄÎÊÌâ¡£

ÁìÓò·þÎñ»¹ÓÐÒ»¸öºÜÖØÒªµÄ¹¦ÄÜ£¬¾ÍÊÇ¿ÉÒÔ±ÜÃâÁìÓòÂß¼­Ð¹Â¶µ½Ó¦Óò㡣ÒòΪÈç¹ûûÓÐÁìÓò·þÎñ£¬ÄÇôӦÓòã»áÖ±½Óµ÷ÓÃÁìÓò¶ÔÏóÍê³É±¾¸ÃÊôÓÚÁìÓò·þÎñ×öµÄ²Ù×÷£¬ÕâÑùÒ»À´£¬ÁìÓò²ã¿ÉÄÜ»á°ÑÒ»²¿·ÖÁìÓòй¶µ½Ó¦Óò㡣Òò´Ë£¬ÒýÈëÁìÓò·þÎñ¿ÉÒÔÓÐЧ·ÀÖ¹ÁìÓò²ãµÄÂß¼­Ð¹Â¶µ½Ó¦Óò㡣¶ÔÓÚÓ¦Óò㣬´Ó¿ÉÀí½âµÄ½Ç¶ÈÀ´½²£¬Í¨¹ýµ÷ÓÃÁìÓò·þÎñÌṩµÄ¼òµ¥¡¢Ò×¶®¡¢Ã÷È·µÄ½Ó¿Ú¿Ï¶¨Òª±ÈÖ±½Ó²Ù×ÝÁìÓò¶ÔÏóÈÝÒ׵öࡣ

ÄÇÈçºÎȥʶ±ðÁìÓò·þÎñÄØ£¿Ö÷Òª¿´ËüÊÇ·ñÂú×ãÒÔÏÂÈý¸öÌØÕ÷£º

·þÎñÖ´ÐеIJÙ×÷´ú±íÁËÒ»¸öÁìÓò¸ÅÄÕâ¸öÁìÓò¸ÅÄîÎÞ·¨×ÔÈ»Á¥ÊôÓÚÒ»¸öʵÌå»òÕßÖµ¶ÔÏó¡£

±»Ö´ÐеIJÙ×÷Éæ¼°ÁìÓòÖÐµÄÆäËûµÄ¶ÔÏó¡£

²Ù×÷ÊÇÎÞ״̬µÄ¡£

2.4¡¢¾ÛºÏ¼°¾ÛºÏ¸ù

¾ÛºÏͨ¹ý¶¨Òå¶ÔÏóÖ®¼äÇåÎúµÄËùÊô¹ØÏµºÍ±ß½çÀ´ÊµÏÖÁìÓòÄ£Ð͵ÄÄÚ¾Û£¬²¢±ÜÃâÁË´í×Û¸´Ôӵġ¢ÄÑÒÔά»¤µÄ¶ÔÏó¹ØÏµÍøµÄÐγɡ£¾ÛºÏ¶¨ÒåÁËÒ»×é¾ßÓÐÄÚ¾Û¹ØÏµµÄÏà¹Ø¶ÔÏóµÄ¼¯ºÏ£¬ÎÒÃǰѾۺϿ´×÷Ò»¸öÐÞ¸ÄÊý¾ÝµÄµ¥Ôª¡£¾ÛºÏÖÐËù°üº¬µÄ¶ÔÏóÖ®¼ä¾ßÓÐÃܲ»¿É·ÖµÄÁªÏµ£¬ËüÃÇÊÇÄÚ¾ÛÔÚÒ»ÆðµÄ¡£±ÈÈçÒ»Á¾Æû³µ£¨Car£©°üº¬ÁËÒýÇæ£¨Engine£©¡¢³µÂÖ£¨Wheel£©ºÍÓÍÏ䣨Tank£©µÈ×é¼þ£¬È±Ò»²»¿É¡£Ò»¸ö¾ÛºÏÖпÉÒÔ°üº¬¶à¸öʵÌåºÍÖµ¶ÔÏó£¬Òò´Ë¾ÛºÏÒ²±»³ÆÎª¸ùʵÌå¡£ÈçÏÂͼËùʾ¾ÍÊÇÒ»¸ö¾ÛºÏ£¬CustomerÊǾۺϸùÒ²ÊÇʵÌ壬addressÊÇÖµ¶ÔÏó£¬ContactInfoÒ²ÊÇÖµ¶ÔÏó¡£

¾ÛºÏ¸ù£¨Aggregate Root£©ÊÇDDDÖеÄÒ»¸ö¸ÅÄÊÇÒ»ÖÖ¸ü´ó·¶Î§µÄ·â×°£¬Æä°ÑÒ»×éÓÐÏàͬÉúÃüÖÜÆÚ¡¢ÔÚÒµÎñÉϲ»¿É·Ö¸ôµÄʵÌåºÍÖµ¶ÔÏó·ÅÔÚÒ»Æð¿¼ÂÇ£¬Ö»ÓиùʵÌå¿ÉÒÔ¶ÔÍⱩ¶ÒýÓã¬Ò²ÊÇÒ»ÖÖÄÚ¾ÛÐԵıíÏÖ¡£µ«ÊÇҪȷ¶¨¾ÛºÏ±ß½çÒªÂú×ã¹Ì¶¨¹æÔò£¨Invariant£©£¬Ò²¾ÍÊÇÔÚÊý¾Ý±ä»¯Ê±±ØÐë±£³ÖÒ»ÖÂÐÔ¹æÔò£¬¾ßÌ广ÔòÈçÏ£º

¸ùʵÌå¾ßÓÐÈ«¾Ö±êʶ£¬×îÖÕ¸ºÔð¼ì²é¹æ¶¨¹æÔò¡£

¾ÛºÏÄÚµÄʵÌå¾ßÓб¾µØ±êʶ£¬ÕâЩ±êʶÔÚAggregateÄÚ²¿²ÅÊÇΨһµÄ¡£

Íⲿ¶ÔÏó²»ÄÜÒýÓóý¸ùEntityÖ®ÍâµÄÈκÎÄÚ²¿¶ÔÏó¡£

Ö»ÓÐAggregateµÄ¸ùEntity²ÅÄÜÖ±½Óͨ¹ýÊý¾Ý¿â²éѯ»ñÈ¡£¬ÆäËû¶ÔÏó±ØÐëͨ¹ý±éÀú¹ØÁªÀ´·¢ÏÖ¡£

AggegateÄÚ²¿µÄ¶ÔÏó¿ÉÒÔ±£³Ö¶ÔÆäËûAggregate¸ùµÄÒýÓá£

¶ÔAggregate±ß½çÄÚµÄÈκζÔÏó½øÐÐÐÞ¸Äʱ£¬Õû¸öAggregateµÄËùÓй̶¨¹æÔò¶¼±ØÐëÂú×ã¡£

2.5¡¢±ß½çÉÏÏÂÎÄ

ÁìÓòʵÌåÊÇÓб߽çÉÏÏÂÎĵģ¬ÏµÍ³»ñÈ¡µÄÊý¾ÝÊÇÓнçÉÏÏÂÎÄ£¨Bounded Context£©ÏµÄÊý¾Ý¡£±ß½çÉÏÏÂÎÄ£¨Bounded Context£©ÔÚDDDÀïÃæÊÇÒ»¸ö·Ç³£ÖØÒªµÄ¸ÅÄBounded ContextÃ÷È·ÏÞ¶¨ÁËÄ£Ð͵ÄÓ¦Ó÷¶Î§¡£ÔÚContextÖУ¬Òª±£Ö¤Ä£ÐÍÔÚÂß¼­ÉÏͳһ£¬¶ø²»Óÿ¼ÂÇËüÊDz»ÊÇÊÊÓÃÓڱ߽çÖ®ÍâµÄÇé¿ö¡£ÔÚÆäËûContextÖУ¬»áʹÓÃÆäËûÄ£ÐÍ£¬ÕâЩģÐ;ßÓв»Í¬µÄÊõÓï¡¢¸ÅÄî¡¢¹æÔòºÍUbiquitous Language¡£ÄÇô²»Í¬ContextϵÄÒµÎñÒª»¥ÏàͨÐÅÔõô°ì£¿Õâ¾ÍÉæ¼°¿ç±ß½çµÄ¼¯³ÉÁË£¬¼¯³É²»ÄÜÊǼòµ¥µÄRPC·þÎñµ÷Ó㬶øÐèÒªÒ»¸öרÃŵķÀ¸¯²ã£¨Anti-Corruption£©×öת»¯¡£·À¸¯²ãÖ÷ÒªÊǶÔÍⲿÒÀÀµ½âñÒÔ¼°±ÜÃâÍⲿÁìÓò¸ÅÄîÎÛȾContextÄÚ²¿ÊµÌåÓïÒå¡£ÒÔÎÒÃÇÕæÊµµÄÒµÎñ³¡¾°¾Ù¸öÀý×Ó£¬±ÈÈç»áÔ±Õâ¸ö¸ÅÄîÔÚICBUÍøÕ¾ÉÏÖ¸ÍøÕ¾ÉϵÄÂòÖ÷£¬µ«ÊÇÔÚCRMÁìÓòÖÐÖ¸¿Í»§£¬ËäÈ»ºÜ¶àµÄÊôÐÔ¶¼ÊÇÒ»ÑùµÄ£¬µ«ÊǶþÕßÔÚ²»Í¬µÄContextÏÂÆäÓïÒåºÍ¸ÅÄîÊÇÓвî±ðµÄ£¬ÎÒÃÇÐèÒªÓ÷À¸¯²ã×öÒ»ÏÂת»»£¬ÈçͼËùʾ£º

2.6¡¢¹¤³§

DDDÖеŤ³§£¨Factory£©Ò²ÊÇÒ»ÖÖÌåÏÖ·âװ˼ÏëµÄģʽ¡£DDDÖÐÒýÈ빤³§Ä£Ê½µÄÔ­ÒòÊÇ£ºÓÐʱ´´½¨Ò»¸öÁìÓò¶ÔÏóÊÇÒ»¼þ±È½Ï¸´ÔÓµÄÊÂÇ飬¶ø²»Êǽö½ö½øÐмòµ¥µÄnew²Ù×÷¾Í¿ÉÒÔ¡£ÕýÈç¶ÔÏó·â×°ÁËÄÚ²¿ÊµÏÖÒ»Ñù£¨ÎÒÃÇÎÞÐëÖªµÀ¶ÔÏóµÄÄÚ²¿ÊµÏ־ͿÉÒÔʹÓöÔÏóµÄÐÐΪ£©£¬¹¤³§ÔòÓÃÀ´·â×°´´½¨Ò»¸ö¸´ÔÓ¶ÔÏóµÄ²Ù×÷¡£¹¤³§µÄ×÷ÓÃÊǽ«´´½¨¶ÔÏóµÄϸ½ÚÒþ²ØÆðÀ´¡£

¹¤³§ÔÚ´´½¨Ò»¸ö¸´ÔÓµÄÁìÓò¶ÔÏóʱ£¬Í¨³£»áÖªµÀ¸ÃÂú×ãʲôҵÎñ¹æÔò£¨ËüÖªµÀÏÈÔõÑùʵÀý»¯Ò»¸ö¶ÔÏó£¬È»ºó¶ÔÕâ¸ö¶ÔÏó×öÄÄЩ³õʼ»¯²Ù×÷£¬ÕâЩ¹æÔò¾ÍÊÇ´´½¨¶ÔÏóµÄϸ½Ú£©£¬Èç¹û´«µÝ½øÀ´µÄ²ÎÊý·ûºÏ´´½¨¶ÔÏóµÄÒµÎñ¹æÔò£¬Ôò¿ÉÒÔ˳Àû´´½¨ÏàÓ¦µÄ¶ÔÏó£»µ«ÊÇÈç¹ûÓÉÓÚ²ÎÊýÎÞЧµÈ²»ÄÜ´´½¨³öÆÚÍûµÄ¶ÔÏó£¬ÔòÓ¦¸ÃÅ׳öÒ»¸öÒì³££¬ÒÔÈ·±£²»»á´´½¨³öÒ»¸ö´íÎóµÄ¶ÔÏó¡£

µ±È»Ò²²»ÊÇËùÓж¼ÐèҪͨ¹ý¹¤³§À´´´½¨¶ÔÏ󣬵±¹¹ÔìÆ÷ºÜ¼òµ¥»òÕß¹¹Ôì¶ÔÏó²»ÒÀÀµÓÚÆäËû¶ÔÏóÀ´´´½¨Ê±£¬ÎÒÃÇÖ»ÐèÒª¼òµ¥µØÊ¹Óù¹Ô캯Êý´´½¨¶ÔÏó¾Í¿ÉÒÔ¡£Òþ²Ø´´½¨¶ÔÏóµÄºÃ´¦ÊÇÏÔ¶øÒ×¼ûµÄ£¬ÕâÑù¿ÉÒÔ²»ÈÃÁìÓò²ãµÄÒµÎñÂß¼­Ð¹Â¶µ½Ó¦Óò㣬ͬʱҲ¼õÇáÁËÓ¦ÓòãµÄ¸ºµ££¬ËüÖ»ÐèÒª¼òµ¥µØµ÷ÓÃÁìÓò¹¤³§´´½¨·ûºÏÆÚÍûµÄ¶ÔÏó¼´¿É¡£

2.7¡¢²Ö´¢/×ÊÔ´¿â

ÁìÓòÄ£ÐÍÖеĶÔÏó×Ô´Ó±»´´½¨³öÀ´ºó²»»áÒ»Ö±ÔÚÄÚ´æÖл£¬µ±Ëü²»»î¶¯Ê±»á±»³Ö¾Ã»¯µ½Êý¾Ý¿âÖУ¬È»ºóµ±ÐèÒªµÄʱºòÎÒÃÇ»áÖØ½¨¸Ã¶ÔÏó¡£Öؽ¨¶ÔÏó¾ÍÊǸù¾ÝÊý¾Ý¿âÖÐÒÑ´æ´¢µÄ¶ÔÏóµÄ×´Ì¬ÖØÐ´´½¨¶ÔÏó¡£ËùÒÔÖØ½¨¶ÔÏóÊÇÒ»¸öºÍÊý¾Ý¿â´ò½»µÀµÄ¹ý³Ì¡£´Ó¸ü¹ãÒåµÄ½Ç¶ÈÀ´Àí½â£¬ÎÒÃǾ­³£»áÏñ¼¯ºÏÒ»Ñù´Óij¸öÀàËÆ¼¯ºÏµÄµØ·½¸ù¾Ýij¸öÌõ¼þ»ñȡһ¸ö»òһЩ¶ÔÏó£¬Íù¼¯ºÏÖÐÌí¼Ó¶ÔÏó»òÒÆ³ý¶ÔÏó¡£Ò²¾ÍÊÇ˵£¬ÎÒÃÇÐèÒªÌṩһÖÖ»úÖÆ£¬¿ÉÒÔÌṩÀàËÆ¼¯ºÏµÄ½Ó¿ÚÀ´°ïÖúÎÒÃǹÜÀí¶ÔÏó¡£²Ö´¢£¨Repository£©¾ÍÊÇ»ùÓÚÕâÑùµÄ˼Ïë±»Éè¼Æ³öÀ´µÄ¡£

²Ö´¢ÀïÃæ´æ·ÅµÄ¶ÔÏóÒ»¶¨ÊǾۺϣ¬Ô­ÒòÊÇÁìÓòÄ£ÐÍÖÐÊÇÒԾۺϵĸÅÄîÈ¥»®·Ö±ß½çµÄ¡£¾ÛºÏÊÇÎÒÃǸüжÔÏóµÄÒ»¸ö±ß½ç£¬ÊÂʵÉÏÎÒÃǰÑÕû¸ö¾ÛºÏ¿´³ÉÒ»¸öÕûÌå¸ÅÄҪôһÆð±»È¡³öÀ´£¬ÒªÃ´Ò»Æð±»É¾³ý¡£ÎÒÃÇÓÀÔ¶²»»áµ¥¶À¶Ôij¸ö¾ÛºÏÄÚµÄ×Ó¶ÔÏó½øÐе¥¶À²éѯ»ò×ö¸üвÙ×÷¡£Òò´Ë£¬ÎÒÃÇֻΪ¾ÛºÏÉè¼Æ²Ö´¢¡£

²Ö´¢»¹ÓÐÒ»¸öÖØÒªµÄÌØÕ÷¾ÍÊÇ·ÖΪ²Ö´¢¶¨Ò岿·ÖºÍ²Ö´¢ÊµÏÖ²¿·Ö£¬ÔÚÁìÓòÄ£ÐÍÖÐÎÒÃǶ¨Òå²Ö´¢µÄ½Ó¿Ú£¬¶øÔÚ»ù´¡ÉèÊ©²ãʵÏÖ¾ßÌåµÄ²Ö´¢¡£ÕâÑùÉè¼ÆµÄÔ­ÒòÊÇ£º²Ö´¢±³ºóµÄʵÏÖ¶¼ÊÇÔÚºÍÊý¾Ý¿â´ò½»µÀ£¬µ«ÊÇÎÒÃÇÓÖ²»Ï£Íûµ÷Ó÷½£¨ÈçÓ¦Óò㣩°ÑÖØµã·ÅÔÚÈçºÎ´ÓÊý¾Ý¿â»ñÈ¡Êý¾ÝµÄÎÊÌâÉÏ£¬ÒòΪÕâÑù×ö»áµ¼Öµ÷Ó÷½£¨Ó¦Óò㣩´úÂë»ìÂÒ£¬ºÜ¿ÉÄÜ»áÒò´Ë¶øºöÂÔÁËÁìÓòÄ£Ð͵ĴæÔÚ¡£ËùÒÔÎÒÃÇÐèÒªÌṩһ¸ö¼òµ¥Ã÷Á˵Ľӿڹ©µ÷Ó÷½Ê¹Óã¬È·±£¿Í»§ÄÜÒÔ×î¼òµ¥µÄ·½Ê½»ñÈ¡ÁìÓò¶ÔÏ󣬴Ӷø¿ÉÒÔÈÃËüÔÚ²»±»Êý¾Ý·ÃÎÊ´úÂë´òÈŵÄÇé¿öÏÂЭµ÷ÁìÓò¶ÔÏóÒÔÍê³ÉÒµÎñÂß¼­¡£ÕâÖÖͨ¹ý½Ó¿ÚÀ´¸ôÀë·â×°±ä»¯µÄ×ö·¨ÆäʵºÜ³£¼û¡£ÓÉÓÚ¶ÔÍⱩ¶µÄÊdzéÏóµÄ½Ó¿Ú²¢²»ÊǾßÌåµÄʵÏÖ£¬ËùÒÔ¿ÉÒÔËæÊ±Ìæ»»²Ö´¢µÄÕæÊµÊµÏÖ¡£

2.8¡¢CQRS¼Ü¹¹

CQRSµÄºËÐÄ˼ÏëÊǽ«Ó¦ÓóÌÐòµÄ²éѯ²¿·ÖºÍÃüÁ·ÖÍêÈ«·ÖÀ룬ÕâÁ½²¿·Ö¿ÉÒÔÓÃÍêÈ«²»Í¬µÄÄ£Ðͺͼ¼ÊõȥʵÏÖ¡£±ÈÈçÃüÁ·Ö¿ÉÒÔͨ¹ýÁìÓòÇý¶¯Éè¼ÆÀ´ÊµÏÖ£»²éѯ²¿·Ö¿ÉÒÔÖ±½ÓÓÃ×î¿ìµÄ·ÇÃæÏò¶ÔÏóµÄ·½Ê½À´ÊµÏÖ£¬±ÈÈçÓÃSQL¡£ÕâÑùµÄ˼ÏëÓкܶàºÃ´¦£º

ʵÏÖÃüÁ·ÖµÄÁìÓòÄ£ÐÍ£¬²»Óþ­³£ÎªÁË¿¼ÂÇÁìÓò¶ÔÏó¿ÉÄܻᱻÈçºÎ²éѯ¶ø×öһЩÕÛÖд¦Àí¡£

ÓÉÓÚÃüÁîºÍ²éѯÊÇÍêÈ«·ÖÀëµÄ£¬ËùÒÔÕâÁ½²¿·Ö¿ÉÒÔÓò»Í¬µÄ¼¼Êõ¼Ü¹¹ÊµÏÖ£¬°üÀ¨Êý¾Ý¿âÉè¼ÆÀíÂÛÉ϶¼¿ÉÒÔ·Ö¿ªÉè¼Æ£¬Ã¿Ò»²¿·Ö¿ÉÒÔ³ä·Ö·¢»ÓÆä³¤´¦¡£

ÒòΪÃüÁî¶ËûÓзµ»ØÖµ£¬ËùÒÔ¿ÉÒÔÏñÏûÏ¢¶ÓÁÐÒ»Ñù½ÓÊÜÃüÁ·ÅÔÚ¶ÓÁÐÖУ¬ÂýÂý´¦Àí£»´¦ÀíÍêºó£¬¿ÉÒÔͨ¹ýÒì²½µÄ·½Ê½Í¨Öª²éѯ¶Ë£¬ÕâÑù²éѯ¶Ë¿ÉÒÔ×öÊý¾Ýͬ²½µÄ´¦Àí¡£

CQRS¼Ü¹¹µÄÓÅȱµãÈçϱíËùʾ£º

2.9¡¢ÁìÓòʼþ

ÁìÓòʼþ£¨Domain Event£©ÊÇ×î½ü¼¸Äê²Å¼ÓÈëDDDÉú̬ϵͳµÄ£¬Í¨¹ýÁìÓòʼþµÄ·½Ê½´ïµ½¸÷¸ö×é¼þÖ®¼äµÄÊý¾ÝÒ»ÖÂÐÔ¡£ÁìÓòʼþµÄ¶îÍâºÃ´¦ÔÚÓÚËü¿ÉÒԼǼ·¢ÉúÔÚÈí¼þϵͳÖеÄËùÓÐÖØÒªÐ޸ģ¬ÕâÑù¿ÉÒԺܺõØÖ§³Ö³ÌÐòµ÷ÊÔºÍÉÌÒµÖÇÄÜ»¯¡£ÔÚCQRS¼Ü¹¹µÄÈí¼þϵͳÖУ¬ÁìÓòʼþ»¹ÓÃÓÚдģÐͺͶÁÄ£ÐÍÖ®¼äµÄÊý¾Ýͬ²½¡£ÔÙ½øÒ»²½·¢Õ¹£¬Ê¼þÇý¶¯¼Ü¹¹¿ÉÒÔÑݱä³ÉʼþÔ´£¨Event Sourcing£©£¬¼´¶Ô¾ÛºÏµÄ»ñÈ¡²¢²»ÊÇͨ¹ý¼ÓÔØÊý¾Ý¿âÖеÄ˲ʱ״̬ʵÏֵ쬶øÊÇͨ¹ýÖØ·Å·¢ÉúÔÚ¾ÛºÏÉúÃüÖÜÆÚÖеÄËùÓÐÁìÓòʼþÍê³ÉµÄ¡£

ʼþËÝÔ´£¨Event Sourcing£©ÊÇ»ùÓÚDDDÉè¼ÆµÄ£¬¶ÔÓھۺϣ¬²»±£´æ¾ÛºÏµÄµ±Ç°×´Ì¬£¬¶øÊDZ£´æ¶ÔÏóÉÏËù·¢ÉúµÄÿ¸öʼþ¡£µ±ÒªÖؽ¨Ò»¸ö¾ÛºÏ¶ÔÏóʱ£¬¿ÉÒÔͨ¹ý»ØËÝÕâЩʼþ£¨¼´ÈÃÕâЩʼþÖØÐ·¢Éú£©À´ÈöÔÏó»Ö¸´µ½Ä³¸öÌØ¶¨µÄ״̬£»ÒòΪÓÐʱһ¸ö¾ÛºÏ¿ÉÄܻᷢÉúºÜ¶àʼþ£¬ËùÒÔÈç¹ûÿ´ÎÒªÔÚÖØ½¨¶ÔÏóʱ¶¼´ÓÍ·»ØËÝʼþ£¬»áµ¼ÖÂÐÔÄܵÍÏ£¬ËùÒÔÎÒÃÇ»áÔÚÒ»¶¨Ê±ºòΪ¾ÛºÏ´´½¨Ò»¸ö¿ìÕÕ¡£ÕâÑù£¬ÎÒÃǾͿÉÒÔ»ùÓÚij¸ö¿ìÕÕ¿ªÊ¼´´½¨¾ÛºÏ¶ÔÏóÁË¡£

2.10¡¢ ÁìÓòÇý¶¯Ä£Ð͵ÄÉè¼Æ²½Öè

ÁìÓòÇý¶¯Ä£Ð͵ÄÉè¼Æ²½ÖèÈçÏ£º

£¨1£©¸ù¾ÝÐèÇó½¨Á¢Ò»¸ö³õ²½µÄÁìÓòÄ£ÐÍ£¬Ê¶±ð³öһЩÃ÷ÏÔµÄÁìÓò¸ÅÄî¼°ËüÃÇÖ®¼äµÄ¹ØÁª£¬¹ØÁª¿ÉÒÔÔÝʱûÓз½Ïòµ«ÐèÒªÓÐÒ»¶ÔÒ»¡¢Ò»¶Ô¶à¡¢¶à¶Ô¶àÕâЩ¹ØÏµ¡£¿ÉÒÔÓÃÎÄ×Ö¾«È·ÇÒûÓÐÆçÒ嵨ÃèÊö³öÿ¸öÁìÓò¸ÅÄîµÄº­Òå¼°°üº¬µÄÖ÷ÒªÐÅÏ¢¡£

£¨2£©·ÖÎöÖ÷ÒªµÄÈí¼þÓ¦ÓóÌÐò¹¦ÄÜ£¬Ê¶±ð³öÖ÷ÒªµÄÓ¦ÓòãµÄÀ࣬ÕâÑùÓÐÖúÓÚ¼°Ôç·¢ÏÖÄÄЩÊÇÓ¦ÓòãµÄÖ°Ôð£¬ÄÄЩÊÇÁìÓò²ãµÄÖ°Ôð¡£

£¨3£©½øÒ»²½·ÖÎöÁìÓòÄ£ÐÍ£¬Ê¶±ð³öÄÄЩÊÇʵÌ壬ÄÄЩÊÇÖµ¶ÔÏó£¬ÄÄЩÊÇÁìÓò·þÎñ¡£

£¨4£©·ÖÎö¹ØÁª£¬Í¨¹ý¶ÔÒµÎñ½øÐиüÉîÈë·ÖÎö¼°¸÷ÖÖÈí¼þÉè¼ÆÔ­Ôò¡¢ÐÔÄÜ·½ÃæµÄȨºâ£¬Ã÷È·¹ØÁªµÄ·½Ïò»òÕßÈ¥µôһЩ²»ÐèÒªµÄ¹ØÁª¡£

£¨5£©ÕÒ³ö¾ÛºÏ±ß½ç¼°¾ÛºÏ¸ù£¬ÕâÊÇÒ»¼þºÜÓÐÄѶȵÄÊÂÇ飬ÒòΪÔÚ·ÖÎöµÄ¹ý³ÌÖÐÍùÍù»áÅöµ½ºÜ¶àÄÑÒÔÇåÎúÅжϵÄÎÊÌ⣬´ËʱÐèÒªÎÒÃÇÆ¾½è¾­ÑéÕÒ³öÕýÈ·µÄ¾ÛºÏ¸ù¡£

£¨6£©Îª¾ÛºÏ¸ùÅ䱸²Ö´¢£¬Ò»°ãÇé¿öÏÂÊÇΪһ¸ö¾ÛºÏ·ÖÅäÒ»¸ö²Ö´¢£¬´ËʱֻҪÉè¼ÆºÃ²Ö´¢µÄ½Ó¿Ú¼´¿É¡£

£¨7£©ÞÛ˳ʵ¼ÊÒµÎñÓ¦Óó¡¾°£¬È·¶¨ÎÒÃÇÉè¼ÆµÄÁìÓòÄ£ÐÍÄܹ»ÓÐЧ½â¾öÒµÎñÐèÇó¡£

£¨8£©¿¼ÂÇÈçºÎ´´½¨ÁìÓòʵÌå»òÖµ¶ÔÏó£¬Ã÷È·ÊÇͨ¹ý¹¤³§»¹ÊÇÖ±½Óͨ¹ý¹¹Ô캯ÊýʵÏÖ¡£

ËäÈ»ÉÏÃæ½éÉÜÁËÉè¼ÆÁìÓòÄ£Ð͵IJ½Ö裬µ«ÊÇÁìÓò½¨Ä£ÊÇÒ»¸ö²»¶ÏÖØ¹¹¡¢³ÖÐøÍêÉÆÄ£Ð͵Ĺý³Ì¡£´ó¼Ò»áÔÚÌÖÂÛÖн«±ä»¯µÄ²¿·Ö·´Ó³µ½Ä£ÐÍÖУ¬´Ó¶øÊ¹Ä£ÐͲ»¶Ïϸ»¯²¢³¯ÕýÈ·µÄ·½Ïò×ß¡£ÁìÓò½¨Ä£ÊÇÁìÓòר¼Ò¡¢Éè¼ÆÈËÔ±¡¢¿ª·¢ÈËÔ±Ö®¼ä¹µÍ¨½»Á÷µÄ¹ý³Ì£¬ÊÇ´ó¼Ò¹¤×÷ºÍ˼¿¼ÎÊÌâµÄ»ù´¡¡£

2.11¡¢ÁìÓòÇý¶¯¿ò¼ÜÏÖ×´

×Ô´ÓEric EvanÌá³öDDDÁìÓòÇý¶¯Éè¼ÆÒÔÀ´ÒѾ­¹ýÁ˺ܶàÄêÁË£¬ÏÖÔÚÒѾ­ÓкܶàÈËÔÚѧϰ»òʵ¼ùDDD¡£µ«ÊÇĿǰÀ´¿´Äܹ»Ö§³ÖDDD¿ª·¢µÄ¿ò¼Ü²¢²»¶à£¬ÖÁÉÙÔÚ¹úÄڱȽϺ±¼û¡£ÔÚJavaƽ̨ÉÏ£¬¹úÍâ±È½ÏÊÜ»¶Ó­µÄÁìÓòÇý¶¯¿ò¼ÜÊÇAxon Framework£¬¸Ã¿ò¼Ü·¢Õ¹ÖÁ½ñÏà¶ÔÀ´Ëµ±È½Ï»îÔ¾£¬Ä¿Ç°GithubÉÏÐDZêÒѾ­³¬¹ý1000¡£»¹ÓоÍÊÇbanqµÄJdon framework£¬ÕâÊÇ»ùÓÚDDD+CQRS+EventSourcingµÄ¿ª·¢£¬Ò²ÊÇ»ùÓÚJavaƽ̨µÄ¡£

ÉϱíÖÐÁоٵÄÁìÓòÇý¶¯¿ò¼Ü¸÷ÓÐÓŵãºÍȱµã¡£Èç¹û¾ÍJavaƽ̨À´½²£¬¿ÉÒÔ³¢ÊÔʹÓÃAxon Framework£¬Ä¿Ç°ÒѾ­Ö§³ÖSpring Cloud¡£µ«ÊÇËü²»ÊÇĿǰ×îºÃµÄÁìÓòÇý¶¯¿ò¼Ü£¬ÏÂÃæ½«½éÉܵÄHalo¿ò¼Ü»á¸üÓÐÓÅÊÆ¡£

3¡¢Halo¿ò¼Ü¸ÅÊö

Halo¿ò¼ÜÊÇ»ùÓÚÁìÓòÇý¶¯+CQRS+À©Õ¹µã+Á÷³Ì±àÅŵÄÓ¦Óÿò¼Ü£¬ÖÂÁ¦ÓÚ²ÉÓÃÁìÓòÇý¶¯µÄÉè¼ÆË¼Ï룬¹æ·¶¿ØÖƳÌÐòÔ±µÄËæÐÄËùÓû£¬´Ó¶ø½â¾öÈí¼þµÄ¸´ÔÓÐÔÎÊÌâ¡£¼Ü¹¹Éè¼ÆÔ­Ôò·Ç³£¼òµ¥£¬¼´ÔÚ¸ßÄÚ¾Û¡¢µÍñîºÏ¡¢¿ÉÀ©Õ¹¡¢Ò×Àí½âµÄ´óµÄÖ¸µ¼Ë¼ÏëÏ£¬¾¡¿ÉÄÜ¹á³¹ÃæÏò¶ÔÏóµÄÉè¼ÆË¼ÏëºÍÔ­Ôò¡£

Halo¿ò¼Ü¼Ü¹¹Í¼ÈçÏ£º

·Ö²ãÉè¼ÆÈçÏ£º

CQRS¼Ü¹¹ÈçÏ£º

   
1432 ´Îä¯ÀÀ       32
Ïà¹ØÎÄÕÂ

ΪʲôҪ×ö³ÖÐø²¿Êð£¿
ÆÊÎö¡°³ÖÐø½»¸¶¡±£ºÎå¸öºËÐÄʵ¼ù
¼¯³ÉÓë¹¹½¨Ö¸ÄÏ
³ÖÐø¼¯³É¹¤¾ßµÄÑ¡Ôñ-×°ÔØ
 
Ïà¹ØÎĵµ

³ÖÐø¼¯³É½éÉÜ
ʹÓÃHudson³ÖÐø¼¯³É
³ÖÐø¼¯³ÉÖ®-ÒÀÀµ¹ÜÀí
IPD¼¯³É²úÆ·¿ª·¢¹ÜÀí
Ïà¹Ø¿Î³Ì

ÅäÖùÜÀí¡¢ÈÕ¹¹½¨Óë³ÖÐø¼¯³É
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
»ùÓÚAndroidµÄµ¥Ôª¡¢ÐÔÄܲâÊÔ