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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓƵ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
΢·þÎñ¼Ü¹¹ÏµIJâÊÔÖ®µÀ
 
×÷ÕߣºÍò»ÊÖ®»Ê
  3018  次浏览      25
 2020-2-3
 
±à¼­ÍƼö:
±¾ÎĽ«´Ó¿ª·¢²âÊÔµÄÊÓ½ÇÀ´Ì½ÌÖÈçºÎÔÚ΢·þÎñ¼Ü¹¹ÏÂͨ¹ý²»Ò»ÑùµÄ²âÊÔ²ßÂÔÀ´¾¡¿ÉÄܵı£Ö¤ÏµÍ³µÄÖÊÁ¿,Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚsjyuan.cc £¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­¡¢ÍƼö¡£

1.ϵͳ¼Ü¹¹µÄÑݱä

°éËæ×Å»¥ÁªÍøµÄ¿ìËÙ·¢Õ¹£¬WebÓ¦ÓÃϵͳ´ÓÃæÏòÆóÒµÄÚ²¿·¢Õ¹µ½ÃæÏòÊг¡Óû§£¬ÒµÎñµÄÈÕÇ÷¸´ÔÓÒÔ¼°Óû§Á¿µÄÉÏÉý£¬ÄÇЩÔø¾­¹¤×÷Á¼ºÃµÄµ¥ÌåÓ¦ÓÿªÊ¼Óöµ½¿ª·¢¡¢²âÊÔ¡¢²¿Êð¡¢·¢²¼¸÷¸ö·½ÃæµÄÆ¿¾±£¬ÖîÈçÀ©Õ¹ÐÂÔö¹¦ÄܼèÄÑ¡¢ÏµÍ³ÅÓ´óÄÑÒÔά»¤¡¢±àÒëÌ«ºÄʱ£¬·¢²¼Á÷³ÌÌ«ÂýµÈÎÊÌâÀ§ÈÅ×Å¿ª·¢ÍŶӡ£

SOAµÄÎÊÊÀ´Ùʹϵͳ¼Ü¹¹·¢ÉúÁË¿çԽʽµÄÑݱ䣬ËüÌá³öÁËÃæÏò·þÎñµÄ¼Ü¹¹Ë¼Ï룬½«ÏµÍ³²ð·Ö³É¶à¸ö·þÎñ×é¼þ£¬²¢Í¨¹ýESB£¨ÆóÒµ·þÎñ×ÜÏߣ©¶Ô·þÎñ×é¼þ½øÐÐͳһ¹ÜÀí£¬µ«ÖØÁ¿¼¶µÄESBʹµÃ×ÔÉíÓÖ³ÉΪÁËÒ»¸öÆ¿¾±¡£ËæÖ®¶øÀ´µÄÊǽüÀ´Òµ½çÁ÷ÐеÄ΢·þÎñ¼Ü¹¹£¬Ëü½«SOAµÄ˼Ïë½øÒ»²½Éý¼¶£¬½«ÏµÍ³×é¼þ»¯¡¢·þÎñ»¯ÒÔ¼°È¥ÖÐÐÄ»¯£¬Ç¿µ÷ ÇáÁ¿¼¶¡¢ËÉñîºÏ¡¢·þÎñ×ÔÖΡ¢¶ÀÁ¢²¿Êð¡£

΢·þÎñ¼Ü¹¹½â¾öÁ˵¥ÌåÓ¦ÓõÄÍ´µã£¬´òÆÆÁËSOAµÄÆ¿¾±£¬Í¬Ê±Ò²´øÀ´Á˺ܶàµÄ¸´ÔÓÐÔ¡£²¿ÊðÔËά·½Ã棬·þÎñµÄ²¿Êð¡¢¹ÜÀí¡¢¼à¿Ø¡£¿ª·¢Éè¼Æ·½Ã棬·þÎñµÄ²ð·Ö¡¢Éè¼Æ¡¢±àÂë¡¢²âÊÔ¶¼½«»á±äµÃ¸´ÔÓ¡£ÐÒÔ˵ÄÊÇ£¬ÈÝÆ÷»¯¼¼Êõ£¨±ÈÈçÎÞ±ÈÁ÷ÐеÄDocker£©ÒѾ­ºÜ´ó³Ì¶ÈÉÏ°ïÖúÎÒÃÇ¿Ë·þÁË»·¾³µÄ²îÒìÐÔ£¬¶øһЩÈÝÆ÷±àÅŹ¤¾ßÖîÈçKubernetes, Rancher, Docker-compose ÌṩÁËÈÝÆ÷²¿Êð¹ÜÀíµÄ½â¾ö·½°¸¡£×÷ΪÐÐÒµµÄÁ캽Õߣ¬ThoughtWorksÒ²ÔÚ¼«Á¦³«µ¼ ¿ª·¢¡¢Éè¼Æ¡¢²¿Êð¡¢ÔËάһÌ廯 µÄDEVOPSÎÄ»¯ÀíÄ²¢Í¨¹ý·á¸»µÄ×ÉѯºÍ½»¸¶³É¹ûÀ´°ïÖúÆóÒµÑз¢ÍŶӸüºÃµØʵʩ΢·þÎñ¼Ü¹¹µÄ¿ª·¢¡£

ÄÇôÔÚ±àÂë²âÊÔ·½Ã棬ÓÖÓÐʲôÕÐÀ´±£Ö¤Î¢·þÎñ¼Ü¹¹ÏÂϵͳµÄÖÊÁ¿£¿

2.µ¥ÌåÓ¦ÓòâÊÔʵ¼ù

µ±ÎÒÃǵÄÒâʶÖÐÖ»´æÔÚÒ»Ñù¶«Î÷µÄʱºò£¬ÎÒÃDZã¿ÉÒÔ²»¼Ù˼Ë÷µÄÄÃÀ´¾ÍÓá£

ÔÚµ¥Ìåʱ´ú£¬¶ÔÓÚ¿ª·¢-²âÊÔ-²¿Êð£¬Òµ½çÒѾ­¾ß±¸ÁËÒ»Ì׺ܳÉÊìµÄ½â¾ö·½°¸¡£»ùÓÚÕâÖÖ·½°¸£¬µ±Ò»¸öÃô½Ý¿ª·¢µÄСTeam¿ªÊ¼¹¹½¨Ò»¸öÓ¦ÓÃ֮ǰ£¬CI´î½¨µÄ¹ý³ÌÒ²»á±äµÃ·Ç³£¼òµ¥£ºCIÖ»ÐèÒª´ÓÒ»¸ö´úÂë¿âÖÐÈ¥pull´úÂ룬Ȼºó±àÒë-²âÊÔ-²¿Êð£¬ËüµÄÁ÷³Ì¿ÉÒÔ¼ò»¯³É£º

ÔÚÕâÖÖµ¥ÏßÁ÷Ë®ÏßģʽÏ£¬Èç¹ûÍŶӵÄ×Ô¶¯»¯Êµ¼ù×öµÃºÜºÃ£¬¿ª·¢ÈËÔ±Ö»ÐèÒª¹Ø×¢×Ô¼º±àд´úÂëʱËù±àдµÄ²âÊÔµÄÖÊÁ¿ºÍÊýÁ¿¡£Õû¸öÓ¦ÓõIJâÊÔ²ßÂÔ¼òµ¥Ö±½Ó:

±£Ö¤×ã¹»µÄµ¥Ôª²âÊԵĸ²¸ÇÂÊ£¬±£³ÖÒ»¶¨ÊýÁ¿µÄServcie²âÊÔ£¬Ìí¼ÓһЩÖØÒªÒµÎñÁ÷³ÌµÄE2E²âÊÔ¡£

3.΢·þÎñ²âÊÔµÄÑݱä

΢·þÎñ¼Ü¹¹ÊÇÒ»ÖÖÑݽøʽ¼Ü¹¹£¬¿ª·¢ÍŶӸúÁìÓòר¼ÒÔÚÒ»Æð½øÐÐÒµÎñ·ÖÎö£¨Event Storming£©£¬´Ó¶ø»®·Ö³ö¶ÀÁ¢µÄ·þÎñ£¬ÏµÍ³Ò»¿ªÊ¼È·¶¨Îª¶ÀÁ¢·þÎñµÄÊýÁ¿¿ÉÄÜÊǼ¸¸ö£¬°éËæ×ÅÒµÎñµÄ¸´ÔÓÉîÈ룬»á²»¶ÏµØÑÜÉú³öеķþÎñ¡£ÏÂͼÊÇÒ»¸ö°üº¬ÁËËĸö·þÎñµÄ΢·þÎñ¼Ü¹¹µÄϵͳ£º

΢·þÎñÌåϵÖеÄÖî¶à·þÎñ²»¿É±ÜÃâ¿ç·þÎñµ÷Óã¬ËüÃÇͨ³£Ê¹ÓÃÇáÁ¿¼¶µÄHTTP RESTful API¡£ÄÇôÈçºÎ±£Ö¤¿ç·þÎñµ÷ÓõĿɿ¿ÐÔÒÔ¼°Õû¸öϵͳ¼¯³ÉµÄÖÊÁ¿£¿ÓÈÆäÊǵ±²»Í¬·þÎñÓɲ»Í¬Ð¡ÍŶӸºÔ𿪷¢ºÍ²âÊÔ¡£

4.·þÎñ×ÔÉíµÄUnit²âÊÔ

ϵͳ±»²ð·Ö³É¶ÀÁ¢µÄ·þÎñ£¬Ã¿¸ö·þÎñ¶¼ÊÇÒ»¸öÍêÕûµÄСϵͳ£¬Ê×Òª¹¤×÷ÈÔÈ»ÊDZ£Ö¤·þÎñ×ÔÉíµÄÒµÎñ¹¦ÄܵÄÕýÈ·ÐÔ¡£±ÈÈçÒ»¸öJava WebÓ¦Óã¨Springboot£©£¬API¹¦ÄÜÒÔ¼°¸÷¸öServiceµÄÒµÎñÂß¼­µÄÕýÈ·ÐÔ£¬¿ÉÒÔͨ¹ýµ¥Ôª²âÊÔÀ´±£Ö¤¡£·þÎñϸ·ÖÖ®ºó´ÓijÖÖÒâÒåÉÏÈõ¥Ôª²âÊÔ¸ü¼ÓÒ×ÓÚ±àд£¬¿ÉÒÔ½èÖú²âÊÔÌæÉíÀ´ÆÁ±Îµô¶ÔÆäËû·þÎñÒÀÀµ¡£

5.ϵͳ¼¶µÄ¼¯³É£¨UI£©²âÊÔ

Unit²âÊÔʹµÃ¿ª·¢ÈËÔ±¿ÉÒÔ¿ì»îµØ»îÔÚ×Ô¼ºµÄÊÀ½çÖУ¬Ã¿¸ö¿ª·¢ÍŶӰ´ÕÕͼֽÔì³öϵͳµÄÒ»¸ö²¿¼þ£¬Ö»Óе±ÕâЩС²¿¼þ¼¯³ÉÔÚÒ»ÆðÖ®ºóÄܹ»°´ÕÕÓû§µÄÆÚÍûΪÓû§Ìṩ·þÎñ²ÅÌåÏÖ³öÁËϵͳҵÎñ¼ÛÖµ¡£ËùÒÔÎÒÃÇҪͨ¹ýϵͳ¼¯³É²âÊÔ£¨UI²âÊÔ£©À´±£Ö¤¼¯³ÉµÄÖÊÁ¿¡£

´Ó ²âÊÔ½ð×ÖËþ ÖпÉÒÔ¿´³ö£¬ÔÚÒ»¸öϵͳÖУ¬UI²âÊÔÊÇÊýÁ¿×îÉٵġ£ËäÈ»ËüµÄÒµÎñ¼ÛÖµ×î¸ß£¬µ«Ëü¸ß°ºµÄ³É±¾Ê¹µÃËüÖ»»á¸²¸ÇÒµÎñÁ÷³Ì¸´ÔÓµÄÒµÎñ³¡¾°¡£ÉõÖÁ£¬µ±Ò»¸ö΢·þÎñ¼Ü¹¹ÏµÍ³ÖзþÎñ¸öÊýÁ¿´ïµ½Ò»¶¨Ö®ºó£¬ºÜ¶à¿ª·¢ÍŶӶÔUI²âÊÔ¿ªÊ¼Íû¶øÈ´²½£¬ÒòΪÔÚÒ»¸ö´æÔÚ¶à¸ö·þÎñµÄϵͳÖУ¨¼´±ãµ¥ÌåÓ¦ÓÃϵͳ£©×ö¼¯³É²âÊÔ£¬»áÃæÁÙÖî¶àÍ´µã£º

ÐèҪά»¤ÍêÕûµÄÔËÐл·¾³£¬³É±¾ºÜ¸ß¡£

»·¾³²»Îȶ¨£¨UI²»Îȶ¨£©µ¼Ö²âÊÔËæ»ú¹Ò£¬¹¦ÄÜÔöÇ¿ºÜÈÝÒ×ÆÆ»µ´óÁ¿²âÊÔ¡£

ÎÊÌâÄѶ¨Î»£¬ÐÞ¸´Ê±¼äÌ«³¤£¬Ó°ÏìPipelineµÄÍƽø¡£

ÔËÐÐËÙ¶ÈÂý£¬·´À¡ÖÜÆÚ³¤¡£

´æÔÚÖظ´²âÊÔÒѲâÊԵŦÄÜ¡£

ÕâЩʹµãÔںܴó³Ì¶ÈÉÏ»áÏ÷¼õÒ»¸ö¿ª·¢ÍŶӵÄÉú²úÁ¦£¬Ä³Ð©ÆóÒµ»á¹ÍÒ»¸öQA½øÐÐÖظ´µÄÈ˹¤²âÊÔ´Ó¶ø½â·Å¿ª·¢ÈËÔ±µÄÉú²úÁ¦¡£ÕâÖÖ´ëÊ©ÓÐã£ÓÚ×·Çó׿ԽµÄÀíÄ²¢Ã»Óдӱ¾ÖÊÉϽâ¾öϵͳµÄ¼¯³ÉµÄÖÊÁ¿ÎÊÌâ¡£¼ÈÈ»UI²âÊÔÒѾ­²»ÊÊÓÃÒý½øÁË΢·þÎñ¼Ü¹¹µÄ¿ª·¢ÍŶӣ¬ÒªÈçºÎ±£Ö¤·þÎñ¼¯³ÉµÄÖÊÁ¿£¬ÎÒÃÇ»¹ÐèÒªÔÚ×Ô¶¯»¯²âÊÔµÀ·ÉÏÁí±Ùõ辶¡£

6.Pair¼¯³É²âÊÔ

ϵͳ¼¶±ðµÄ¼¯³É²âÊÔ×è°­ÖØÖØ£¬ÎÒÃDz»·ÁÍËÒ»²½Ë¼¿¼£¬½«¼¯³ÉµÄ·¶Î§ËõС ±£Ö¤·þÎñÁ©Á©µÄ¼¯³ÉµÄ¿É¿¿ÐÔ¡£ÓÐÁËÕâ¸öÏë·¨£¬ÎÒÃÇ¿ªÊ¼¶Ô·þÎñÁ©Á©Åä¶Ô×ö¼¯³É²âÊÔ¡£²âÊԼܹ¹Ñݱä³É£º

ÎÒÃÇÐèÒªÕæʵÔËÐдý²âÊԵķþÎñ£¬²¢ÇÒ¶ÔÆäËû·þÎñʹÓÃÌæÉí¡£²»ÄÑ¿´³öÕâÖÖ·½Ê½´æÔÚÒÔÏÂÎÊÌ⣺

ÐèÒªÔËÐдý¼¯³ÉµÄÕæʵ·þÎñ£¬´æÔÚ»·¾³²»Îȶ¨µ¼ÖÂά»¤³É±¾Ôö¼Ó¡£

ÐèÒªMockµôÆäËû·þÎñ£¬Ôö¼ÓÁ˶îÍâµÄ¹¤×÷Á¿¡£

´æÔÚ´óÁ¿Öظ´²âÊÔÒѾ­²âÊԵŦÄÜ¡£

ËäÈ»Pair¼¯³É²âÊÔûÓдӸù±¾ÉϽâ¾öUI²âÊÔµÄÍ´µã£¬µ«ËüÌá³öÁË »ýС³É¶à µÄÀíÄ¸ÃÀíÄî¸æËßÎÒÃÇ£ºÖ»ÒªÄܹ»±£Ö¤·þÎñÁ©Á©Ö®¼äµÄ¼¯³ÉÊÇ¿É¿¿µÄ£¬ÎÒÃǾͿÉÒÔÏàÐÅϵͳ¼¯³ÉÒ²ÊÇ¿É¿¿µÄ¡£

7.ÒýÈëContract¸ÅÄîµÄ¼¯³É²âÊÔ

¾ÍÔÚÁ½ÄêÇ°£¬ÎÒÔÚÖ麣³ö²îµÄijÏîÄ¿ÉϸúС»ï°éÒ»Æð³¢ÊÔÁËÒ»ÖÖ¼¯³É²âÊÔ·½°¸¡£µ±Ê±ÏîÄ¿²ÉÓõÄÊÇÇ°ºó¶Ë·ÖÀ뿪·¢£¬ºó¶Ë×÷Ϊ·þÎñÌṩÕßÌṩRESTful API£¬Ç°¶Ë×÷ΪÏû·ÑÕßÏû·ÑAPI¡£

ΪÁ˱£Ö¤Ç°ºó¶Ë¿ª·¢ÈËÔ±²¢ÐпªÕ¹¹¤×÷£¬ÎÒÃÇÒýÈëÁËContarct¸ÅÄǰºó¶Ë¿ª·¢ÈËÔ±»ùÓÚÒµÎñ¹²Í¬¶¨ÒåAPIЭÒ飨Contract£©£¬¸ÃЭÒéÒÔJSONÎļþ´æÔÚÓÚ´úÂë¿âµÄ²âÊÔ×ÊԴĿ¼ÖУ¬Ç°¶ËÔÚ¿ª·¢¹ý³ÌÖÐÒÔJSONÎļþ×÷Ϊ²âÊԵĶÏÑÔÒÀ¾Ý¡£¶øºó¶Ë¿ª·¢ÈËÔ±Ôò²ÎÕÕ¸ÃЭÒéÄÚÈÝÀ´ÊµÏÖAPI¡£

»ùÓÚÕâÖÖ·½°¸£¬Ç°ºó¶Ë¿ª·¢ÈËÔ±Èç¹û¶¼×ñÊØÁËЭÒ飬Áªµ÷µÄ¹ý³Ì¾Í»á·Ç³£Ë³Àû¡£¶øËüµÄÓÅÊÆÒ²ºÜÃ÷ÏÔµÄÌåÏÖ³öÀ´£º

²»ÐèÒªÔËÐÐÆäËû·þÎñ£¬»·¾³¼òµ¥£¬ÔËÐп졣

²âÊÔ¿É¿Ø·¶Î§ËõСµ½µ¥¸ö·þÎñÄÚ²¿¡£

°´ÕÕContract£¬¸÷×Ô±àд´úÂë²¢²âÊÔ¡£

Ç°ºó¶Ë±¾ÖÊÉϵȼÛÓÚ·þÎñÌṩ·½ºÍ·þÎñÏû·Ñ·½£¬ËùÒÔ¸ÃÀíÄîÔËÓÃÔÚ΢·þÎñÖ®¼äµÄ¼¯³É²âÊÔÖУ¬ÏµÍ³µÄ²âÊԼܹ¹»áµÃµ½½øÒ»²½Ñݽø£º

ÎÒôÔÚÏíÊÜ×ÅËü´øÀ´µÄºÃ´¦µÄͬʱ£¬ÎÊÌâҲ͵͵µØDZÈëϵͳÖС£²»¾Ãºó£¬CI¾Í±¨¾¯ÁË£ºUI²âÊÔ²âÊÔ¹ÒÁË

½øÐÐÒ»·¬debugÖ®ºóÎÒÃǶ¨Î»µ½ÁËÎÊÌ⣬½â¿ªÁË °´ÕÕContractµ¥¶ÀÔËÐвâÊÔÒ»ÇÐOK£¬ÎªÊ²Ã´Éϼ¯³É»·¾³¾ÍĪÃûÆäÃî¹Òµô£¡ µÄÒÉ»ó£º

// Á½ÌìÇ°request {
method 'POST'
url '/users'
body([
name: $(regex('[a-z]{6, 20}')),
email: 'sjyuan@thoughtworks.com',
homePage: 'http://sjyuan.cc'
])
headers {
contentType('application/json')
}}
// Á½Ììºórequest {
method 'POST'
url '/users'
body([
name: $(regex('[a-z]{6, 20}')),
email: 'sjyuan@thoughtworks.com',
homePage: 'http://sjyuan.cc',
gender: 'M'
])
headers {
contentType('application/json')
}}

ͨ¹ýGitÀúÊ·¼Ç¼·¢ÏÖ·þÎñÏû·Ñ·½£¨Ç°¶Ë£©½«APIЭÒé¸üÐÂÁË£¬¶ø·þÎñÌṩ·½£¨ºó¶Ë£©Ã»ÓÐͬ²½ÐÞ¸ÄʵÏÖ¡£

»Ø¹ËÒ»ÏÂÒýÈëContract¸ÅÄîµÄ¼¯³É²âÊÔ£¬Ö®ËùÒÔ»á³öÏÖЭÒéµÄÐÞ¸ÄÖ±µ½¼¯³É»·¾³Öвű©Â¶³öÀ´£¬ÊÇÒòΪȱ·¦×Ô¶¯»¯¼à¿Ø»úÖÆÀ´ÌáÇ°·¢ÏÖÎÊÌâ²¢Ô¤¾¯¡£ÈÃÎÒÃÇ×ö½øÒ»²½ÉîÈë˼¿¼£º°Ñͬһ·ÝAPIÆõÔ¼×÷Ϊ·þÎñÌṩ·½ºÍ·þÎñÏû·Ñ·½µÄ²âÊÔ¶ÏÑÔÒÀ¾Ý£¬Ò»µ©ÆõÔ¼±»Ò»·½¸Ä¶¯£¬ÔòÁíÒ»·½µÄ²âÊÔ±ã»áʧ°Ü¡£

¹é¸ù½áµ×£¬ÎÒÃÇȱ·¦Ò»ÖÖÓÐЧµÄÇ¿ÖÆÔ¼ÊøÀ´Ô¼ÊøË«·½£¬ÂíÉÏÒª½ÒÏþµÄÏû·ÑÕßÇý¶¯ÆõÔ¼²âÊÔ¿ÉÒÔÌṩÕâÖÖÔ¼Êø¡£

8.CDCT(Ïû·ÑÕßÇý¶¯ÆõÔ¼²âÊÔ)

Ïû·ÑÕßÇý¶¯ÆõÔ¼²âÊÔµÄÁ÷³ÌÊÇ£¬Ïû·ÑÕ߶¨ÒåËûÃÇÆÚÍûµÄAPI»òÏûÏ¢ÊÇʲôÑù×Ó£¬ÕâЩÆÚÍû¼´ÎªÆõÔ¼£¬´ÓÕâЩÆõÔ¼¿ÉÒÔÉú³É´æ¸ù£¬´ËºóÏû·ÑÕßÍŶӿÉÒÔÔÚ¹¹½¨¹ý³ÌÖÐÖظ´Ê¹ÓÃËüÃÇ¡£Ïû·ÑÕߺÍÉú²úÕ߶¼ÐèÒªÑéÖ¤ÆõÔ¼¡£

CDCTÇ¿µ÷ÆõÔ¼ÓÉÏû·ÑÕßÀ´Çý¶¯£¬²¢ÓÉË«·½¹²Í¬×ñÊØ£¬ºËÐÄÊǹ²Í¬×ñÊØ¡£

ÄÇôÈçºÎ±£Ö¤¹²Í¬×ñÊØÄØ£¿

Ãô½ÝÐûÑÔÖÐÌáµ½ ¿É¹¤×÷µÄÈí¼þ ÓÅÓÚ ÃæÃæ¾ãµ½µÄÎĵµ¡£ÒýÈëContract¸ÅÄîµÄ²âÊԻᶨÒåÒ»¸öContractÎĵµ£¨JSONЭÒéÎļþ£©¡£¶ÔÓÚÏû·Ñ·½£¬¸ÃÎĵµ±»ÓÃ×÷²âÊÔ¶ÏÑÔÒÀ¾Ý£¬Îĵµ±»×ª»»³ÉÒ»¸ö¿É¹¤×÷µÄÈí¼þ£¨¿ÉÖ´ÐеIJâÊÔÌ×¼þ£ºÐÞ¸ÄÎĵµ»áµ¼Ö²âÊÔʧ°Ü£©¡£¶ø¶ÔÓÚ·þÎñÌṩ·½£¬ÒòΪ²âÊԵĶÏÑÔÓëContractÎĵµÃ»ÓÐÇ¿ÖƹØÁª£¬Ëü×î¶àÖ»ÄÜÊÇÒ»¸öÃæÃæ¾ãµ½µÄÎĵµ¡£

ËùÒÔ£¬Ö»Óе±Ë«·½¶¼½«Îĵµ×ª»»³É¿É¹¤×÷µÄÈí¼þʱ£¬ÎĵµµÄÐ޸ıã»áµ¼ÖÂÈÎÒâÒ»·½²âÊÔʧ°Ü£¬Îĵµ²ÅÕæÕý³ÉΪ˫·½¹²Í¬×ñÊصÄÆõÔ¼£¨¿É¹¤×÷µÄÈí¼þ×ÜÊÇ¿É¿¿µÄ£¬ÎĵµÈ´ÓпÉÄÜÒѾ­¹ýÆÚ£©¡£

Ïû·ÑÕßÇý¶¯ÆõÔ¼²âÊÔÖдæÔÚÒ»¸öÆõÔ¼£¬Ë«·½»ùÓÚÆõÔ¼Éú³É¿É¹¤×÷µÄ²âÊÔÌ×¼þ£º

CDCT¾ß±¸ÁËÒýÈëContract¸ÅÄ³É²âÊÔµÄÖî¶àÓŵ㣬²¢ÇÒͨ¹ý¿É¹¤×÷µÄ²âÊÔÌ×¼þ±£Ö¤ÁËÆõÔ¼µÄÒ»ÖÂÐÔºÍʵʱÐÔ¡£

9.¼¼Êõʵ¼ù

Ô˳ïá¡á¢Ö®ÖУ¬¾öʤǧÀïÖ®Íâ¡£

Èý¹úÃ÷ÐÇÖî¸ðÁÁ¸ºÔðÔ˳ïá¡á¢£¬¹Ø¡¢ÕÅ¡¢ÕÔµÈÎ佫¸ºÔð³å·æÏÝÕ󣬴Ӷø¾öʤǧÀïÖ®ÍâµÄÏõÑÌÕ½³¡¡£ÍŶÓÈ·¶¨Á˲âÊÔ²ßÂÔÖ®ºó£¬Ó¦µ±½»ÓÉÓÅÐ㹤¾ßÀ´ÊµÊ©Ö´ÐС£

¹ØÓÚµ¥Ôª²âÊÔ£¬Òµ½çÒѾ­Óзdz£ÓÅÐãµÄ²âÊÔ¹¤¾ßºÍ¿ò¼Ü£¬±ÈÈçÎÒÃÇÕýÔÚ×öµÄSpringbootÓ¦Óã¬JUnit, Mockito, JMock, HamcrestµÈ¶¼ÊDzâÊÔ¹¤¾ßÏäÀïµÄÃ÷ÐÇ¡£¶ÔÓÚCDCT£¬Ä¿Ç°±È½ÏÁ÷ÐеÄÓÐJVM¿ò¼Ü Spring cloud Contract£¬ÒÔ¼°Ö§³Ö¶àÓïÑ﵀ Pact¡£

Èç¹ûÍŶÓÕýÔÚ¿ª·¢Ò»¸öSpringbootÓ¦Óã¬Spring cloud Contract ÊÇÒ»¸ö²»´íµÄÑ¡Ôñ¡£ËüʹÓÃGroovy DSL¶¨Òå²âÊÔÆõÔ¼²¢Éú³É²âÊÔÌ×¼þ£¬²âÊÔÌ×¼þÈ¥ÑéÖ¤·þÎñÌṩ·½ÊÇ·ñÂú×ãÆõÔ¼£¬²âÊÔͨ¹ýÖ®ºó»áÉú³ÉÒ»¸öjarÎļþ£¬¸ÃjarÎļþËæºó»á×÷Ϊһ¸ö¿ÉÔËÐеÄStub server£¬Ïû·Ñ·½»ùÓÚStub server±àд²âÊÔ£¬´Ó¶øÑéÖ¤¹¦ÄÜÊÇ·ñÂú×ãÆõÔ¼£º

ÔÚCDCTÖУ¬²»¹ÜÊDzâÊÔÉú²úÕß»¹ÊDzâÊÔÏû·ÑÕߣ¬¶¼ÐèÒªÒýÈëÒ»ÖÖ¿ìËÙʧ°Ü·½·¨¡£¼´Èç¹ûÈκÎÒ»·½Î¥·´ÁËÆõÔ¼£¬×îºÃÔÚ¹¹½¨µÄµÚÒ»·ÖÖÓ¾Íʧ°Ü£¬¶ø²»Êǵȵ½2Сʱ֮ºóµÄ¼¯³É²âÊÔÖÐʧ°Ü¡£ËùÒÔ£¬ÎÒÃÇÐèÒª½«CDCT×÷Ϊ¹¹½¨PipelineÖеÄÒ»¸öStage¼¯³Éµ½CIÖС£

10.ºÎÈ¥ºÎ´Ó

´ú¼Û¸ß°ºµÄUI²âÊÔʹµÃ¿ª·¢ÍŶÓÖ𽥶ÔËüʧȥÁËÐÅÐÄ£¬ÓÈÆäÒýÈëÁË΢·þÎñ¼Ü¹¹£¬ËüËù´øÀ´µÄ¸´ÔÓÐÔʹµÃÒµ½çÞðÆúUI²âÊԵĺôÉù¸ßÕÇ¡£ÔçÔÚ2009Ä꣬ÖøÃûµÄÃô½ÝºÍTDDר¼ÒJ.B. RainsbergerÔÚInfoQÉÏÌá³ö Integration Tests Are a Scam¡£

¼¯³É²âÊÔÊÇÒ»¸öÆ­¾Ö£¬Äã¿ÉÄÜÐèÒª±àд2-5%¼¯³É²âÊÔÀ´×öÒ»¸öE2EµÄ²âÊÔ£¬µ«ËüÃÇ¿ÉÄܵ½´¦ÔÚÖظ´µ¥Ôª²â£¬ÁíÍ⼯³É²âÊÔ´æÔڱ˴ËÖظ´¡£¸üÔã¸âµÄÊÇ£¬µ±¼¯³É²âÊÔʧ°Üʱ£¬Äã²»ÖªµÀÄÄÀï³öÁËÎÊÌ⣬²»Äܼ°Ê±×¼È·¶¨Î»ÎÊÌâ¡£

J.B. RainsbergerºóÀ´»¹ÔÚ²©¿ÍÉÏ·¢±íÁË ¡¶Integration Tests Are a Scam¡·£¬ÎÄÕ½èÓÃÇ¿ÓÐÁ¦µÄÊý¾Ý·ÖÎöÀ´Ö¤Êµ×Ô¼ºµÄ¹Ûµã¡£ËûÌá³öµÄ×î¼Ñʵ¼ùÊÇ£ºÓÃÆõÔ¼²âÊÔ»òЭÒé²âÊÔÀ´×ö¼¯³É²âÊÔ£¡

Martin Fowller ÔÚ2012ÄêµÄ ²âÊÔ½ð×ÖËþÀíÂÛ ÖÐÒ²Ö¸³ö£º

Ó¦¸ÃÒýÈëÃæÏòÓ¦ÓóÌÐò·þÎñ²ãµÄÖмä²ã²âÊÔ£¬ÕâЩ²âÊԼȱ£³ÖÁ˶˵½¶Ë²âÊÔµÄÖî¶àÓÅÊÆ£¬ÓÖ±ÜÃâÁËÐí¶àÓëUI¿ò¼ÜÏà¹ØµÄ¸´ÔÓÐÔ¡£ÔÚWebÓ¦ÓóÌÐòÖУ¬Öмä²ã²âÊÔÏ൱ÓÚAPI²ã²âÊÔ£¬¶øλÓÚ½ð×ÖËþ¶¥²ãµÄUI²âÊÔÔòÏ൱ÓÚSelenium²âÊÔ¡£

ThoughtWorks¼¼ÊõÀ×´ï ÓÚ2016ÄêÒѾ­Õýʽ²ÉÄÉÏû·ÑÕßÇý¶¯ÆõÔ¼²âÊÔ¡£

We¡¯ve decided to bring consumer-driven contract testing back from the archive for this edition even though we had allowed it to fade in the past.

΢·þÎñ¼Ü¹¹µÄÊ¢ÐдÙʹԽÀ´Ô½¶àµÄ¿ª·¢ÍŶӿªÊ¼ÒýÈëCDCT£¬Öð½¥µ­»¯UI²âÊÔ¡£ÍŶӵIJâÊÔ²ßÂÔÕýÔÚ·¢Éú²»Í¬µÄÑݱ䣺

ÒýÈëÁËCDCT²¢°Ú³öÁËÕýÈ·µÄ×ËÊÆ£¬±ã¿É´ó´óÈõ»¯UI²âÊÔ£¬ÉõÖÁ¿ÉÒÔʹÓÃÉÙÁ¿µÄÈ˹¤²âÊÔÀ´´úÌæ×Ô¶¯»¯UI²âÊÔ¡£CDCT°ïÖúÎÒÃÇ»º½âÁËUI²âÊÔµÄÍ´µã£¬µ«Ò²Òªµ±ÐÄ×ß¼«¶Ë£¬Æ©ÈçÓÐЩÍŶӵIJâÊÔ²ßÂÔ·¢ÉúÁËÏÂÃæµÄ¼«¶ËÇé¿ö£º

Èí¼þ¹¤³ÌÔø¾­´Óδ²ú³öÒøµ¯£¬ÏàÐÅδÀ´Ò²²»»á£¬Ò»ÖÖеķ½°¸µÄµ®ÉúÖ»Êǽâ¾öÁËÒÑÓз½°¸µÄÍ´µã£¬ºÃ±È΢·þÎñ¼Ü¹¹½â¾öÁ˵¥ÌåµÄÄÇЩʹµãÖ®ºó£¬È´ÓÖ´øÀ´ÁË×ã¹»µÄ¸´ÔÓÐÔ£¬´Ó¶ø¶ÔÍŶÓ×ÔÉíµÄÄÜÁ¦Ìá³öÁËÌôÕ½¡£ÔÚÑ¡Ôñ²âÊÔ²ßÂÔµÄʱºò¿ÉÒԲο¼ÒÔϼ¸ÌõÔ­Ôò£º

µ¥Ôª²âÊԳɱ¾µÍ£¬ÔËÐÐЧÂʸߣ¬ÐԼ۱ȷdz£¸ß£¬Ê¼ÖÕ°ÚÔÚµÚһλ¡£

¸ß²ã²âÊÔÖ»ÊDzâÊÔ·À»¤ÌåϵµÄµÚ¶þ·ÀÏß¡£

Èí¼þ¿ª·¢ÊÇÒ»Ïî³É±¾ÓëÊÕÒæµÄ²©ÞĻ£¬ÐԼ۱ȸߵķ½°¸Ó¦¸Ã¸ü¼ÓÊܵ½Çàíù¡£

ûÓоø¶ÔµÄ¶ÔÓë´í£¬¸ù¾Ý×ÔÉíÏîÄ¿¹¤³ÌºÍ¼¼ÊõÄÜÁ¦Ñ¡ÔñÊʺÏÍŶӵIJßÂÔ¡£

ÆäÖеڶþÌõÔ­ÔòÇ¿µ÷£ºÈç¹ûÒ»¸ö¸ß²ã²âÊÔʧ°ÜÁË£¬²»½ö½ö±íÃ÷¹¦ÄÜ´úÂëÖдæÔÚbug£¬»¹Òâζ×ŵ¥Ôª²âÊÔµÄǷȱ¡£Òò´Ë£¬ÎÞÂÛºÎʱÐÞ¸´Ê§°ÜµÄ¶Ëµ½¶Ë²âÊÔ£¬¶¼Ó¦¸ÃͬʱÌí¼ÓÏàÓ¦µÄµ¥Ôª²âÊÔ¡£

11.дÔÚ×îºó

΢·þÎñ¼Ü¹¹µÄ¸´ÔӶȲ»½öÌåÏÖÔÚ¼¼ÊõÉÏ£¬ÓëÖ®ÏศÏà³ÉµÄÊÇϵͳµÄÒµÎñ¼Ü¹¹£¬¶ø¼¼Êõ¼Ü¹¹×ÜÊÇ·þÎñÓÚÒµÎñ¼Ü¹¹¡£ÓÅÐãµÄ²âÊÔ²ßÂԺ͹¤³Ì¼¼Êõʵ¼ùÈÃÎÒÃǸüºÃµØ¹¹½¨¸´Ôӵļܹ¹Ìåϵ²¢¿Ë·þËüËù´øÀ´µÄÌôÕ½£¬¶ø×îÖÕ¾ö¶¨Ò»¸öϵͳ³É¹¦Óë·ñÔÚÓÚÈË¡£ËùÒÔ£¬ÍŶÓÖÐÿһ¸öÈËÓ¦¸Ã±£³ÖOpenµÄÐÄ̬£¬³ÖÐøѧϰ£¬ÌáÉý×Ô¼ºµÄ¸ß¶È£¨¼¼ÄܺÍÒµÎñ£©£¬ÕÆÎÕʵʩ΢·þÎñµÄÏà¹Ø¼¼ÄÜ£¬±ÈÈçÀûÓÃDDDÈ¥×ö·þÎñµÄ»®·Ö£¬´Ó¶øÄܹ»¸üºÃµÄ¼ÝԦ΢·þÎñ¼Ü¹¹¡£

 
   
3018 ´Îä¯ÀÀ       25
Ïà¹ØÎÄÕÂ

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù