DDDΪʲôºÜÄÑʵʩ
ÁìÓòÇý¶¯Éè¼Æ£¨Domain Driven Design£©µÄ¸ÅÄîÒѾ±»·¢Ã÷ÁËÊ®¶àÄ꣬¶øÇÒÒ²²»·¦Ïà¹ØÖø×÷£¬µ«ÊÇÒµ½çÐû³Æ×Ô¼ºÓ¦ÓÃÁËDDDÔÔòµÄÏîÄ¿£¬Èí¼þÈ´ÏÊÓжúÎÅ¡£Ëæ×Å΢·þÎñ¼Ü¹¹µÄÁ÷ÐУ¬DDDÔڱ߽çʶ±ð£¬·þÎñ»®·ÖµÈ·½Ãæ²»¶Ï±»Ìá¼°£¬×÷ΪһÖÖÓ¦¶Ô¸´ÔÓÈí¼þµÄ·½·¨ÂÛ£¬ËƺõÓÖ±»ÖØÊÓÆðÀ´ÁË¡£
ÄÇô£¬ÎªÊ²Ã´Õâ¸öÌýÆðÀ´ºÜ¿¿Æ×µÄ·½·¨ÂÛʵ¼ÊÉϺÜÄÑÊµÊ©ÄØ£¿ÎÒÃÇÒÔDDD´´Ê¼ÈËEric EvansµÄ¾µäÊé¼®¡¶ÁìÓòÇý¶¯Éè¼Æ£ºÈí¼þºËÐĸ´ÔÓÐÔÓ¦¶ÔÖ®µÀ¡·ÎªÀý£¬·ÖÎöһϣ¬¿ÉÄܵÄÔÒòÊÇÕâÑùµÄ£º
иÅÄîÊýÁ¿±È½Ï¶à
Õ½Êõ/Õ½ÂÔ¶¼ÓÐËùÉæ¼°
²»Í¬²ã´ÎµÄ¸ÅÄî»ìÔÓ£¨³ýÁËÉè¼ÆÄ£Ê½Ö®Í⣬»¹Óмܹ¹·ç¸ñµÄÌÖÂÛ£©ÔÚÒ»Æð
·±¸´¶ø»ìÔӵĸÅÄî
ÁìÓò£¬×ÓÓò£¬ºËÐÄ×ÓÓò£¬Í¨ÓÃ×ÓÓò£¬ÊµÌ壬ֵ¶ÔÏó£¬ÁìÓò·þÎñ£¬Ó¦Ó÷þÎñ£¬ÁìÓòʼþ£¬Í³Ò»ÓïÑÔ£¬ÏνÓÉÏÏÂÎÄ£¬×ñÑÕߵȵȡ£DDDÖÐÓÐ×Å´óÁ¿µÄиÅÄ¶øÇÒÕâЩ¸ÅÄîÓÐЩÊǼ¼ÊõÏà¹ØµÄ£¬ÓÐЩÊÇÎÊÌâÏà¹ØµÄ£¬½»Ö¯ÔÚÒ»ÆðÖ®ºó£¬ºÜÄÑÀíÇåÍ·Ð÷¡£

DDDÖеÄģʽÓÖ·ÖΪսÊõµÄºÍÕ½ÂÔµÄÁ½´ó²¿·Ö£¬ÓкܶàÍŶÓÓ¦ÓÃÁËÕ½ÊõÏà¹ØµÄ£¬±ÈÈçʵÌ壬ֵ¶ÔÏó£¬ÁìÓò·þÎñ£¬²Ö¿âµÈģʽ£¬´úÂë¿´ËÆDDD£¬ÊµÔòÓëDDDÇ¿µ÷µÄÒÔÁìÓòΪÖÐÐÄÏàÈ¥ÉõÔ¶£¬ÏÝÈëÁË¿ª·¢ÕßÌ«¹ýÓÚ¹Ø×¢¼¼Êõ±¾ÉíµÄÀÏ·ÉÏ£¬ÕâÖÖÏÖÏó»¹ÓиöרÃŵÄÃû´Ê£¬½ÐDDD-Lite¡£
²»Í¬µÄ˼ά·½Ê½ÒªÇó
DDDÒªÇó¶ÁÕß¼ÈÓоßÌåCodingµÄ¼¼ÄÜ£¬ÓÐÐèÒªÌø³öȦÍ⣬ÒԼܹ¹Ê¦µÄ½Ç¶ÈÀ´ÉóÊÓÕû¸öϵͳ¡£DDDÐèÒª¿ª·¢ÕßÒÔÒ»¸öȫеÄÊÓ½ÇÈ¥ÈÏʶÈí¼þ¿ª·¢£¬Ç¿µ÷¶ÔÒµÎñÁ÷³ÌµÄÊìϤ£¬Ç¿µ÷ÓëÁìÓòר¼ÒÒ»ÆðÐ×÷£¬Ç¿µ÷Èí¼þµÄ±í´ïÄÜÁ¦ºÍ½ø»¯ÄÜÁ¦¡£¶øÕâЩ˼ά·½Ê½µÄת±ä£¬¶¼Óкܴó×èÁ¦µÄ£¨ÏëÏë´ÓÃæÏò¶ÔÏóÊÀ½çÇл»µ½º¯Êýʽ±à³Ì£¬ÔÙµ½ÏìӦʽº¯Êý±à³ÌµÄÇл»£©¡£
It should be noted that no ethically-trained software
engineer would ever consent to write a DestroyBaghdad
procedure. Basic professional ethics would instead require
him to write a DestroyCity procedure, to which Baghdad
could be given as a parameter. ¨C Nathaniel Borenstein
ÎÒ×Ô¼ºÔÚ¹¤×÷µÄǰ4Ä꣬·Ç³£·´¸ÐÒµÎñ£¬ÈÏΪcase by caseµÄÒµÎñÁ÷³Ì»áÑÏÖØÓ°ÏìÎҵĴúÂëµÄͨÓÃÐÔ¡£È»¶øÊÂʵÊÇ£¬´¿´âͨÓõĴúÂëÊDz»´æÔڵġ£±Ï¾¹£¬ÖîÈçIoCÈÝÆ÷£¬WebµÈ»ù´¡ÉèÊ©ÒѾÏ൱ÍêÉÆ£¬ÍêÈ«ÎÞÐèÎÒÃÇÖØ¸´·¢Ã÷ÂÖ×Ó¡£¶ø×÷ΪӦÓÿª·¢ÈËÔ±£¬¸üÖØÒªµÄÊÇÔÚ³ä·ÖÀí½âÒµÎñµÄǰÌáÏ£¬Ð´³öÒ×ÓÚά»¤£¬Ò×ÓÚÀ©Õ¹£¬¿ÉÒÔ¸ü¿ìËÙÏìÓ¦ÒµÎñ±ä»¯µÄ´úÂë¡£
ÕýÒòΪÈç´Ë£¬DDDÔÚÒ»¶¨³Ì¶ÈÉÏ»áÈóÌÐòÔ±¸Ðµ½²»ÊÊ£¬Ëü̫ǿµ÷ÁìÓòÁË£¬¶øÁìÓòÓÖÊǶÀÒ»ÎÞ¶þµÄ£¬Ã¿¸ö¹«Ë¾µÄÿ¸öϵͳ¶¼ÓÐÆä¶ÀÁ¢ÐÔ£¬Õâ¾ÍÒªÇóÄãµÄ´úÂë¿ÉÄÜû·¨×öµ½´¿´â¡£
ÕýÈ·×ËÊÆ
Òª½â¾öÉÏÃæÌáµ½µÄÕâЩÎÊÌ⣬ÕýÈ·µÄʵʩDDDÀ´Ö¸µ¼Êµ¼ÊµÄ¿ª·¢¹¤×÷£¬ÐèÒªÖÁÉÙ×öµ½ÕâÑù¼¸¸öÊÂÇé¡£Ê×ÏÈ£¬Ã÷È··ÖÇåÎÊÌâºÍ·½°¸£¨ÕâÊdzõѧDDDÕß×îÈÝÒ×·¸µÄ´íÎ󣩣»Æä´Î£¬×ª±ä˼ά·½Ê½£¬½«Èí¼þ¿ª·¢µÄÖØÐÄ·ÅÔÚÊáÀí²¢Ã÷È·ÒµÎñÐèÇóÉÏ£¬¶ø²»ÊÇ´úÂëÂß¼ÉÏ£»×îºó£¬ÐèÒªÓ¦ÓÃһЩºÏÀíµÄ¹¤³Ìʵ¼ùÀ´´Ù³ÉDDD-LiteµÄÂ䵨¡£
·ÖÇåÎÊÌâºÍ½â¾ö·½°¸
ÎÒÃÇ˵ÁìÓò£¨×ÓÓò£¬Í¨ÓÃ×ÓÓò£¬Ö§³Å×ÓÓòµÈ£©µÄʱºò£¬ÊÇÔÚÌÖÂÛÎÊÌâÓò£¬¼´¶¨ÒåÎÒÃÇÒª½â¾öµÄÎÊÌâÊÇʲô¡£¶øËµµ½ÏÞ½çÉÏÏÂÎÄ£¬¾ÛºÏ£¬ÊµÌ壬²Ö¿âÔòÊÇÔÚÌÖÂÛ½â¾ö·½°¸²¿·Ö£¬ÈËÃǺÜÈÝÒ×½«Á½Õ߸ã»ì¡£
ÔÚµçÉ̵ÄÁìÓòÖУ¬Ò»Ð©µäÐ͵ÄÎÊÌâÊÇ£º
ÈçºÎ»ñµÃ¸ü¶àµÄ¿Í»§
ÈçºÎÈÿͻ§¸ü¿ìËÙµÄÕÒµ½×Ô¼ºÏëÒªµÄÉÌÆ·
ÈçºÎ׼ȷµÄÍÆ¼öÏà¹Ø²úÆ·¸ø¿Í»§
Óû§ÈçºÎ¸¶·Ñ
Òª½â¾öÕâЩÎÊÌ⣬ÈËÃÇ¿ÉÄܻῪ·¢³öÀ´Ò»¸öÈí¼þϵͳ£¬Ò²¿ÉÄÜ»áÓÃÊÖ¹¤µÄÁ÷³Ì£¬Ò²¿ÉÄÜÊÇ»ìºÏģʽ¡£Í¬Ñù£¬Ò»Ð©¾ßÌåµÄ½â¾ö·½°¸µÄÀý×ÓÊÇ£º
ÉÌÆ·´ÙÏú×Óϵͳ
È«ÎÄËÑË÷ϵͳ
ÍÆ¼ö×Óϵͳ
Ö§¸¶Æ½Ì¨
ÏÔÈ»£¬½â¾ö·½°¸ÊÇÔÚÎÊÌⶨÒåÖ®ºó²Å²úÉúµÄ£¬¶ø¶¨ÒåÎÊÌâ±¾ÉíÊÇÒ»¼þ¿ª·¢ÈËÔ±²»Éó¤µÄ¹¤×÷£¬ÕâÒ²ÊÇΪʲôDDDÌØ±ðÇ¿µ÷ÁìÓòר¼ÒµÄÔÒò¡£ÊµÊ©DDDÐèÒª´ÓÁìÓòר¼Ò£¬¼¼Êõר¼ÒµÄÉîÈëºÏ×÷ÖУ¬µÃ³öÒ»¸öÄ£ÐÍ¡£Æäʵ£¬DDDµÄºËÐľÍÊÇÒª½â¾öÒ»¸öÎÊÌ⣺½¨Á¢ÁìÓòÎÊÌâµÄÈí¼þÄ£ÐÍ£¬Õâ¸öÄ£ÐÍÐèÒªÂú×ãÕâÑù¼¸¸öÌõ¼þ£º
ÄÜ׼ȷ±í´ïÁìÓò¸ÅÄҵÎñÁ÷³ÌµÈ£¨ÎÞÐè¾¹ý·Ò룩
ÈÝÒ×Ñݽø
ÿ¸öÁìÓòÓÐ×Ô¼ºµÄ½â¾ö·½°¸
DDDÕ½ÂÔģʽ

ÕâÊÇVaughn VernonµÄÖø×÷¡¶Implement Domain Driven Design¡·ÖеÄÒ»ÕÅͼ£¬Õû¸öÍâ±ßµÄ´óȦÊÇÒµÎñ¶ÔÓ¦µÄÁìÓò£¨ÎÊÌâÓò£©£¬Õâ¸ö´óµÄȦ±»ÐéÏß»®·Ö³ÉÁ˺ܶàСµÄ×ÓÓò£¨ÒÀÈ»ÊÇÎÊÌâÓò£¬²»¹ýÿ¸ö×ÓÓòÒª½â¾öµÄÎÊÌâ¶¼²»Ïàͬ£©£¬×ÓÓòÓкܶàÀàÐÍ£¬±ÈÈçºËÐÄ×ÓÓò£¬Ö§³Å×ÓÓò£¬Í¨ÓÃ×ÓÓòµÈ¡£¶ÔÓ¦µÄ£¬Ã¿¸öÓò¶¼¿ÉÄÜÓÐ×Ô¼ºµÄÏÞ½çÉÏÏÂÎÄ£¬ÉÏÏÂÎÄÖ®¼äÓв»Í¬ÀàÐ͵ÄÉÏÏÂÎÄÓ³Éäģʽ¡£
×ÓÓòµÄ±ß½çÓÉͨÓÃÓïÑÔÀ´»®·Ö£¬Ò²¾ÍÊÇ˵£¬Ã¿¸ö×ÓÓòÓÐ×Ô¼ºÇø±ðÓÚÆäËû×ÓÓòµÄÓïÑÔ£¨Ò²¾ÍÊÇ×Ô¼ºµÄÒµÎñ¸ÅÄҵÎñ¹æÔò£©¡£±ÈÈç²ÆÎñϵͳÖУ¬Ìá¼°µÄ¸ÅÄîÈçëÀû£¬¾»ÀûÂÊ£¬Í¶Èë»Ø±¨±È£¬·¢Æ±£¬±¨ÏúµÈµÈ£¬ÓëÕÐÆ¸ÏµÍ³ÖеĺòÑ¡ÈË£¬ÃæÊÔ£¬Ðû½²£¬Ð£Õеȵȶ¼´ó²»Ïàͬ¡£
ÕýÈ·µÄÓ¦ÓÃDDDµÄÕ½ÂÔģʽÀ´°ïÖúÎÊÌâµÄʶ±ðºÍÀí½â£¬±Èµ¥´¿µÄÓ¦ÓÃDDD-LiteÒªÖØÒªµÃ¶à¡£
ͨÓÃÓïÑÔ
ÏÞ½çÉÏÏÂÎÄ
ÉÏÏÂÎÄÓ³Éä
˼ά·½Ê½×ª±ä
¿ª·¢ÕßÒª½«Ë¼Î¬·½Ê½×ª±ä³ÉÒÔÒµÎñ¹æÔòÓÅÏÈÊÇÒ»¼þ·Ç³£À§ÄѵÄʶù¡£±Ï¾¹¾¹ýÁ˶àÄêµÄѵÁ·£¬ÌرðÊdzéÏó˼άµÄѵÁ·£¬¿ª·¢ÕߺÜϲ»¶Í¨Óõļ¼ÇÉ£¬±ÈÈç¹ÜµÀ-¹ýÂËÆ÷£¬Ï̳߳أ¬½âÎöÆ÷µÈµÈ¡£È»¶øÒµÎñ¹æÔòÍùÍùÊǾßÌåµÄ£¬¶øÇҺܶàʱºò£¬ÐèÇó±ä»¯µÄ·½Ïò»áÆÆ»µµô¿ª·¢Õß¾«ÐĹ¹ÖþµÄ³éÏóÌåϵ¡£
È»¶ø¸ö˼ά·½Ê½µÄת±äÕýÊdzɹ¦ÊµÊ©DDD¹Ø¼üËùÔÚ£ºÔ¸ÒâºÍÒµÎñÈËÔ±Ò»ÆðÀí½â¹µÍ¨£¬Àí½âÒµÎñÊÇʵʩDDDµÄµÚÒ»²½¡£Æäʵÿ¸öÐÐÒµµÄÒµÎñ¶¼ÓкܶàÓÐÒâ˼µÄµØ·½£¬ÎÒÔÚThoughtWorks£¬ÓÉÓÚ¹¤×÷ÐÔÖʵÄÔÒò£¬¿ÉÒÔ½Ó´¥µ½ºÜ¶à²»Í¬µÄ¿Í»§£¬²»Í¬µÄÒµÎñ¡£Ã¿¸öÏîÄ¿ÉÏ£¬ÎÒ¶¼ºÜÀÖÓÚÈ¥ÏòÒµÎñÈËԱѧϰ£¬ÒµÎñÔÚÏÖʵÊÀ½çÖÐÊÇÈçºÎÔË×÷µÄ£º·¿²úÖнéÈçºÎ´ò¹ã¸æ£¬·¿¶«ÈçºÎ¸¶·Ñ£¬·¿µØ²ú¹ã¸æÆ½Ì¨ÈçºÎ´ÓÖÐÓ¯Àû£»ÎÞÏß»ùÕ¾ÈçºÎ½¨É裬¹¤ÈËÈçºÎȥʩ¹¤£¬ÉõÖÁ»ùÕ¾ÌúËþÈçºÎ±ÜÀ×£¬ÈçºÎ·ÀÓꣻ±£µ¥µÄÀàÐÍ£¬¸¶·ÑÄêÏÞ£¬ÈçºÎ·ÖºìµÈµÈ¡£
ÿ¸ö²»Í¬µÄÒµÎñ¶¼¿ÉÒÔѧµ½ºÜ¶àÈËÃÇÔÚ½â¾öÎÊÌâʱ·¢Ã÷³öÀ´µÄÐÂ˼·£¬Ð·½·¨¡£ÕâЩ˼·ºÍ·½·¨Î´³¢²»¿ÉÒÔ·´¹ýÀ´Ó¦ÓÃÔÚÈí¼þ¿ª·¢ÉÏ¡£
¹¤³Ìʵ¼ù
Ãô½Ý·½·¨
×Ô¶¯»¯²âÊÔ
Ãô½Ý·½·¨
ÆäʵÔçÔÚÃô½ÝÐûÑÔ²úÉúµÄʱ´ú£¬ÈËÃǾÍÒѾ·¢ÏÖÁ˿ͻ§ºÏ×÷ʤ¹ýºÏ̸ͬÅС£Óë¿Í»§±£³Ö¸ß¶ÈµÄºÏ×÷£¨×îºÃÊÇÒµÎñÈËÔ±¾Í×øÔÚ¿ª·¢ÈËÔ±ÅԱߣ©£¬ÊµÊ±µÄ·´À¡ÊÕ¼¯²¢¸ù¾Ý·´À¡½øÐз½Ïòµ÷Õû¶¼ÊÇÃô½Ý·½·¨Öг«µ¼µÄ¡£¶øDDD¸ü½øÒ»²½£¬ÐèÒªºÍÒµÎñÈËÔ±Ò»Æð£¬¶¨Òå³öÁìÓòÄ£Ð͵ÄÔÐÍ£¬°üÀ¨Ò»Ð©°×°åÉϵÄͼºÍ´úÂëÔÐÍ£¬²¢¸ù¾ÝÃô½Ý·½·¨½øÐгÖÐøµÄÑݽø¡£
±ÈÈçÕâÀïÌá³öµÄһЩʵ¼ù¿ÉÒԱȽϺõİïÖúÄãÀ´ÊµÊ©DDD:
ÐèÇóµÄKickoff£¨BA£¬¿ª·¢£¬QAÒ»ÆðÀ´Ã÷È·ÐèÇóµÄº¬Ò壩
½á¶Ô±à³Ì£¨²»ÏÞÓÚ¿ª·¢Ö®¼äµÄ½á¶Ô£¬Ò²¿ÉÄÜÊDz»Í¬½ÇÉ«¼äµÄ½á¶Ô£©
´úÂëÉóÊÓ
´úÂëÖØ¹¹
Mini Showcase
»Ø¹Ë»áÒé
ͨ¹ýÃô½Ýʵ¼ù£¬ÎÒÃÇ¿ÉÒÔ½¨Á¢Æð¿ìËٵķ´À¡»úÖÆ£¬ºÍ¶Ô±ä»¯µÄÏìÓ¦ÄÜÁ¦£¬Èß³¤µÄÁ÷³ÌºÍ²»Í¸Ã÷µÄ¼ÛÖµÁ÷Ïò»áµ¼ÖºܶàÎÊÌâ¡£
Èç¹ûÎÒÃdzÐÈÏ×Ô¼º²»ÊÇȫ֪ȫÄܵģ¬ÐèÒª²»¶ÏµØÍ¨¹ýѧϰÀ´²»¶ÏµÄÀí½âÒµÎñ£¬ÄÇÃ´ÖØ¹¹¾Í±à³ÌÁËÒ»¼þ×ÔÈ»¶øÑԵء¢±ØÐë×öµÄÊÂÇéÁË¡£Í¨¹ýÖØ¹¹£¬ÎÒÃǽ«Ö®Ç°Ä£ºýµÄÒµÎñ¸ÅÄîÇåÎúÆðÀ´£¬½«È±Ê§µÄ¸ÅÄî²¹Æë£¬½«´úÂëÖеĻªÎªµ½Ïû³ý¡£
Mini ShowcaseÇ¿µ÷¿ª·¢ÕßÔÚÍê³ÉÐèÇóµÄ¹ý³ÌÖУ¬²»¶¨ÆÚµÄÓëBA£¬QAµÈ½ÇÉ«½»Á÷¡¢È·ÈÏ¡£Èç¹ûÓÐÀí½â²»ÕýÈ·µÄµØ·½£¬¿ÉÒÔ¾¡¿ì·¢ÏÖ£¬È»ºó½â¾ö¡£
×Ô¶¯»¯²âÊÔ
ÁíÒ»·½Ã棬Ҫ±£Ö¤Ä£Ð͵ĿÉÀí½âÐÔ£¬³ýÁËClean CodeµÄһЩÔÔòÖ®Í⣬×Ô¶¯»¯²âÊÔÒ²ÊÇÒ»¸ö±Ø²»¿ÉÉٵŤ³Ìʵ¼ù¡£ÁìÓòÄ£ÐÍÔÚÒâͼ±íÏÖÉÏÐèÒª×öµ½¼«Ö£¬¶øµ¥Ôª²âÊÔ/¹¦ÄܲâÊÔÔòÒÔÓÃÀýµÄ·½Ê½½«Ä£ÐÍÓÃÆðÀ´¡£ÕâÒªÇ󿪷¢ÕßʹÓÃʵÀý»¯ÐèÇó£¬ÐÐΪÇý¶¯¿ª·¢µÈ·½·¨±àдʵ¼ù×÷Ö§³Å¡£
²âÊÔ²»ÊÇΪÁ˸²¸ÇÂÊ£¬Ò²²»Äܽö½öÖ»ÊÇΪÁË×Ô¶¯»¯Ò»Ð©ÊÖ¹¤µÄ¹¤×÷¡£ÔÚDDDµÄÉÏÏÂÎÄÖУ¬×Ô¶¯»¯²âÊÔ¸ü¶àµÄÊÇÍêÕû±í´ïÒµÎñÒâͼµÄÓÃÀý¡£
ʵÀý»¯ÐèÇó
²âÊÔÐèÒªÒÔʵ¼ÊÓû§µÄ½Ç¶ÈÀ´±àд£¬²¢ÒÔʵÀýµÄ·½Ê½ÃèÊö¡£ÕâÑù¼´Ê¹×Ô¶¯»¯×ö²»ÁË£¬Õâ¸öʵÀýÒÀÈ»ÊÇÒ»¸öºÜºÃµÄÎĵµ¡£µ±È»£¬ÎªÁ˱£Ö¤Õâ¸öÎĵµ²»¹ýÆÚ£¨ºÍ´úÂëʵÏÖ²»Æ¥Å䣩£¬»¹ÊÇÇ¿ÁÒ½¨Òé¿ÉÒÔ½«Æä×Ô¶¯»¯ÆðÀ´¡£
±ÈÈçÕâÀïÓиöÀý×Ó£¬ÈËʾÀíÏëÒªÕÒһЩ¿ª·¢ÈËÔ±À´·ÖÅäµ½ÏîÄ¿ÉÏ£¬Õâ¸öÕÒÈ˵Ĺý³ÌÓÐÁ½ÌõºÜ¼òµ¥µÄ¹æÔò£º
¿ª·¢ÈËÔ±µÄ¼¼ÄÜÒªºÍÏîÄ¿µÄÒªÇóÆ¥Åä
¿ª·¢ÈËÔ±µ±Ç°²»ÔÚÏîÄ¿ÉÏ£¨±ÈÈ統ǰÏîĿΪBeach¼´Îª¿ÕÏÐ״̬£©
ÓÃCucumberдµÄ²âÊÔ¿´ÆðÀ´ÊÇÕâÑùµÄ£º
Feature: Find employee by skills As a staffing manager I want to find employee by skills So that I know whether we have the staff or we need to hire new ones
Background: persona
Given we have the following employees:
| name | currentProject | role | skills |
| Juntao | Consulting | Dev | Java,Ruby |
| Yanyu | Beach | Dev | Ruby |
| Jiawei | Beach | Dev | Java,Ruby |
| Momo | Beach | Dev | Python |
Scenario: Search by skills
Given I have a project which require "Ruby"
as language
When I search staff by skill
Then I should get the following names:
| Yanyu |
| Jiawei | |
µü´ú¿ª·¢
Èí¼þ¿ª·¢±¾Éí¾Í¾ßÓкܸߵĸ´ÔÓ¶È£¬ÕýÈçÎÒÔÚÉÏһƪ²©¿ÍÀïÌáµ½µÄ£¬ÔÚÏîÄ¿Æô¶¯Ö®³õ£¬ÎÞÂÛÊÇÒµÎñר¼Ò»¹ÊÇ¿ª·¢Õߣ¬¶ÔÈí¼þϵͳµÄ֪ʶ¶¼ÊǷdz£ÓÐÏ޵ġ£µü´úʽµÄ¿ª·¢·½Ê½¸ü¼ÓÆõºÏÕâÖÖ¸´ÔӶȺܸߵĻ¡£ÒµÎñÈËÔ±ºÍ¿ª·¢Ò»Æð£¬ÔÚ½¨Ä£¡¢ÊµÏֵĹý³ÌÖлá¶ÔÁìÓò½øÐÐÉîÈëµÄѧϰ£¬²¢²úÉúеÄ֪ʶ¡£·´¹ýÀ´ÕâЩеÄ֪ʶÓÖ»áÓ°ÏìÄ£Ð͵ĽøÒ»²½½ø»¯¡£

µü´ú¿ª·¢µÄ·½Ê½¿ÉÒÔ°ïÖúÎÒÃǽ«Õâ¸ö¸´ÔӶȺܸߵĹý³Ì±äµÃƽ»ºÒ»Ð©£¬¶øÇÒ´ÓÒ»¸ö¸öСµÄµü´úÖÐѧϰ£¬²¢¸ù¾Ý·´À¡À´Ö¸µ¼Ðµķ½Ïò£¬¿ÉÒÔ¿ìËٵİïÖúÍŶӽ¨Á¢ÐÅÐÄ£¬Í¬Ê±¶ÔÒµÎñµÄÀí½â¸üΪÉîÈ룬ʹµÃÕû¸ö¿ª·¢¹ý³ÌÔ½À´Ô½Æ½Ë³¡£
С½á
¼ò¶øÑÔÖ®£¬ÒªË³ÀûʵʩDDD£¬ÐèÒªÖÁÉÙ×öµ½£º
Ã÷È·¸ÅÄ·ÖÇåÎÊÌâÓòºÍ½â¾ö·½°¸Óò£¬Ó¦ÓÃDDDµÄÕ½ÂÔģʽ
ת±ä˼ά·½Ê½£¬ÎªÒµÎñÊáÀíºÍÀí½â¸³Óè×î¸ßµÄÓÅÏȼ¶
ͨ¹ý¹¤³Ìʵ¼ùÀ´È·±£Â䵨
|