°¢ÀïÃõ¼¶Á£ºÈçºÎ¶¨Òå¼Ü¹¹£¿Ó¦Óüܹ¹µÄÒªËØÓÐÄÄЩ£¿Ê²Ã´ÊÇÓ¦Óüܹ¹ÖеķÖÀà˼ά£¿¿ªÔ´Ó¦Óüܹ¹COLAµÄ×÷ÕßÕŽ¨·É½éÉÜËûÔÚCOLA¼Ü¹¹Éè¼ÆÖеÄһЩ˼Ïë¾Ñ飬·ÖÏíËûµÄÓ¦Óüܹ¹Ö®µÀ¡£
ÎÄÄ©¸£Àû£ºÓÐÄÄЩ¸öÐÔÓÐȤµÄÓòÃû£¿
Ä£¿é£¨Module£©¡¢×é¼þ£¨Component£©¡¢°ü£¨Package£©£¬ÕâЩ¸ÅÄî¶ÔÓÚÎÒÃǼ¼Êõͬѧ²¢²»Ä°Éú£¬µ«²¢²»ÊÇËùÓÐÈ˶¼ÄÜÀí½âÆäÒªÒå¡£ÉîÈëÀí½âÖ®ºó£¬ÎҲŷ¢ÏÖ£¬Æä±³ºóµÄÉîÒâÊÇ·ÖÀà˼ά¡£¶øÕâÖÖ·ÖÀàÒ²ÊÇÓ¦Óüܹ¹µÄºËÐÄËùÔÚ£¬Í¨¹ý²»Í¬Á£¶È¡¢²»Í¬²ã´ÎµÄ·ÖÀ࣬°Ñ¸´ÔÓµÄÈí¼þϵͳʵÏÖ¿ØÖÆÔÚ¿ÉÒÔ±»Àí½â¡¢±»Î¬»¤µÄ³Ì¶È¡£·ñÔò£¬¶ÔÓÚ¶¯ÔòÉÏ100ÍòÐдúÂëµÄÈí¼þ£¬ÈËÀà¸ù±¾Ã»Óа취Àí½âºÍά»¤¡£ÊÔÏëÒ»¸ö¼«¶ËÇé¿ö£¬¼ÙÈçûÓÐÕâЩ¸ÅÄîÐÖúÎÒÃÇ·ÖÀ࣬ÎÒÃÇ°ÑËùÓÐÒµÎñÂß¼¶¼Ð´ÔÚÒ»¸öÀàÀïÃ棬»áÊÇʲôÑùµÄ½á¹ûÄØ£¿ÎÒÃǺܶàµÄ¡°·ÇÈËÀࡱϵͳ£¬ÕýÊÇÒòΪûÓнøÐкÏÀíµÄ·ÖÀàÔì³ÉµÄ¡£ÔçÆÚ£¬ÎÒ²»Ï²»¶JavaScriptµÄÒ»¸öÖØÒªÔÒò£¬ÕýÊÇÒòΪÆäȱÉÙÏñJavaÖÐpackageºÍjarµÄ¸ÅÄµ¼Ö´úÂëµÄ×éÖ¯ÐÎʽ±È½ÏËÉÉ¢¡¢ËæÒâ¡£Õâ¸öÎÊÌâÖ±µ½ES6¡¢React²ÅµÃµ½±È½ÏºÃµÄ½â¾ö£¬ÔÚ´Ë֮ǰ£¬Ç°¶Ë¹¤³Ìʦ²»µÃ²»ÒÀ¿¿seaJS£¬requireJSÕâЩ¿ò¼ÜÀ´×öÄ£¿é»¯¡¢×é¼þ»¯µÄÊÂÇé¡£ÖÁ´Ë£¬Äã¿ÉÄÜÓÐÒÉÎÊ£¬·ÖÀàÓÐʲôħÁ¦£¿Ôõô¾Í³ÉÁËÓ¦Óüܹ¹µÄºËÐÄÁËÄØ£¿¿Í¹Ù±ð׿±£¬ÓÉÎÒϸϸµÀÀ´¡£·ÖÀàµÄÖØÒªÐÔËùν·ÖÀ࣬¾ÍÊÇÒÀ¾ÝÒ»¶¨µÄ±ê×¼¶Ô¸ø¶¨µÄÊÂÎï½øÐÐ×é±ðµÄ»®·Ö¡£ÎÒÃÇÈËÀàÌìÉú¾ÍÓзÖÀàµÄ±¾ÄÜ£¬ÀýÈ磬µ±ÎÒÃǹ۲ìÏÂÃæÕâÕÅͼµÄʱºò¡£ÎÞÂÛÊÇË£¬Õ§Ò»¿´µ½ÉÏÃæµÄÁù¸öºÚµã£¬¶¼»áÈÏΪ¹²ÓÐÁ½×éÄ«µã£¬Ã¿×éÈý¸ö¡£Ôì³ÉÕâÖÖÓ¡ÏóµÄÔÒòÖ÷ÒªÊÇ£¬ÈËÀà´óÄÔ»á×Ô¶¯½«·¢ÏÖµÄËùÓÐÊÂÎïÒÔijÖÖ³ÖÐø×éÖ¯ÆðÀ´¡£»ù±¾ÉÏ£¬´óÄÔ»áÈÏΪͬʱ·¢ÉúµÄÈκÎÊÂÎïÖ®¼ä¶¼´æÔÚijÖÖ¹ØÁª£¬²¢ÇһὫÕâЩÊÂÎﰴijÖÖÂ߼ģʽ×éÖ¯ÆðÀ´¡£Ö®ËùÒÔÎÒÃÇ´óÄÔÓÐÕâÑùµÄ±¾ÄÜ£¬ÊÇÒòΪÈËÒ»´ÎÄܹ»Àí½âµÄ˼Ïë»ò¸ÅÄîµÄÊýÁ¿ÊÇÓÐÏ޵ġ£ÕýÈçÇÇÖÎÃ×ÀÕÔÚËûµÄÂÛÎÄ¡¶ÆæÃîµÄÊý×Ö7¡·ÖÐÌá³öµÄ¡£ÈËÀà´óÄԵĶÌÆÚ¼ÇÒäÎÞ·¨Ò»´ÎÈÝÄÉ7¸öÒÔÉϵļÇÒäÏîÄ¿¡£ËùÒÔ£¬µ±ÐÅÏ¢Á¿¹ý´óʱ£¬Î¨ÓйéÀà·Ö×é²ÅÄÜ°ïÖúÎÒÃÇÈ¥Àí½âºÍ´¦ÀíÎÊÌâ¡£Æäʵ£¬×Թż°½ñ£¬ÈËÀàÒ»Ö±ÔÚ×ö׏éÀà/·ÖÀ࣬ÔçÔÚ´ºÇïʱÆÚ£¬¡¶Õ½¹ú²ß¡·ÖоÍÌá³ö¹ý¡°ÎïÒÔÀà¾Û£¬ÈËÒÔȺ·Ö¡±µÄ¸ÅÄî¡£ÔÚ»¥ÁªÍøÐÐÒµ£¬ÎÒÃÇ»á¶Ô¿Í»§½øÐзÖÀ࣬ȻºóÕë¶Ô²»Í¬µÄ¿Í»§½øÐзֲãÔËÓª£¬Ò²ÊÇÕâ¸öµÀÀí¡£Æ½³£ÎÒÃÇËù˵µÄ·ÖÎöºÍ×ۺϵı³ºó£¬Æäʵ¾ÍÊÇ·ÖÀàÄÜÁ¦¡£·ÖÎöÊÇÔÚÒ»¸öÀàÀïÃæÕÒ²îÒìÐÔ£¬×ÛºÏÊÇÔÚ²»Í¬ÊÂÎïÖÐÕÒÁªÏµ¡¢ÕÒ¹²Í¬ÐÔ£¬¶øÕâ¸ö¹²Í¬ÐÔÏ൱ÓÚ·ÖÀàµÄά¶È¡£·ÖÀà˼άµÄÄÜÁ¦£¬Ö±½ÓÌåÏֵľÍÊÇ¿´Í¸ÊÂÎï±¾ÖʵÄÄÜÁ¦¡£Ó¦Óüܹ¹ÖеķÖÀà˼ά¸ÅÄÒåÔÚÌÖÂۼܹ¹Ö®Ç°£¬ÎÒÃÇÏÈÀ´Ã÷È·Ò»ÏÂModule¡¢ComponentºÍPackageÕ⼸¸ö¸ÅÄî¡£ÒòΪÕâЩ¸ÅÄîÒ»Ö±ÒÔÀ´´æÔÚ²»Ð¡µÄÆçÒ塣ͨ¹ýStack OverflowÉϼ¸Ê®ÆªÑ¯ÎÊÕâЩ¸ÅÄî²îÒìµÄÌáÎÊ£¬ÒÔ¼°Î廨°ËÃŵĻشð¾ÍÄܿɼûÒ»°ß¡£ÔÚһƪStack OverflowµÄÌû×Ó[1]ÖУ¬ÎÒÃÇ¿´µ½ÕâÑùµÄ»Ø´ð£ºThe terms are similar. I generally think of a "module" as being larger than a "component". A component is a single part, usually relatively small in scope, possibly general-purpose.È»¶ø£¬ÁíһƪStack OverflowµÄÌû×Ó[2]£¬È´ÓÐ×Ų»Í¬µÄ´ð°¸£ºThere is no criteria to measure which one is greater than the other. One component can contain list of modules, and one module also can contain many components.ÔÚ¡¶ÊµÏÖÁìÓòÇý¶¯Éè¼Æ¡·Ò»ÊéÖУ¬×÷ÕßÓÐÕâÑùµÄÃèÊö£ºIf you are using Java or C#, you are already familiar with Modules, though you know them by another name. Java calls them packages. C# calls them namespaces.È»¶ø£¬ÔÚAngularJSµÄÉè¼ÆÎĵµ[3]ÖУ¬Ëü¶ÔModuleºÍComponentÊÇÕâÑù¶¨ÒåµÄ£ºThe module can be considered as a collection of components, Each component can use other components. One of many modules combines up to make an Application.ͨ¹ý±È½Ï£¬½áºÏÎÒ×Ô¼ºµÄÈÏÖª£¬ÎÒ¸üÔÞͬAngularJSÀïÃæµÄ¶¨Ò壬¼´ModuleÊDZÈComponent¸ü´óµÄ¸ÅÄî¡£±ÈÈçÔÚMavenÖУ¬ModuleÊÇ×é³ÉApplicationµÄµÚÒ»¼¶²ã´Î£¬¶øComponentµÄÁ£¶ÈÒ»°ã±ÈModuleҪС£¬¶à¸öComponent»á×é³ÉÒ»¸öModule¡£Òò´Ë£¬ÔÚ½øÒ»²½Ì½ÌÖ֮ǰ£¬ÎÒÌØÒâ¶ÔÕâЩ¸ÅÄî×öÈç϶¨Ò壺
»ùÓÚÉÏÃæµÄ¶¨Ò壬ËûÃǵıíʾ·¨£¨Notation£©ÊÇÕâÑùµÄ£ºÓ¦Óüܹ¹µÄÒªËعØÓڼܹ¹µÄ¶¨ÒåÓкܶ࣬ÎÒ×îϲ»¶£¬Ò²ÊÇ×î¼ò½àµÄ¶¨ÒåÊÇ£º¼´¼Ü¹¹ÊÇÒ»Öֽṹ£¬ÊÇÓÉÎï¼þ£¨Components£©+ Îï¼þÖ®¼äµÄ¹Øϵ + Ö¸µ¼ÔÔò×é³ÉµÄ¡£Ó¦Óüܹ¹Ò²ÊÇÈç´Ë£¬´Ó´óµÄ²ãÃæÀ´Ëµ£¬ÆóÒµ¼¶Ó¦Óö¼ÌÓ²»¹ýÈçÏÂͼËùʾµÄÈý²ã½á¹¹£¬¼´Ç°¶Ë¡¢ºó¶ËºÍÊý¾Ý¿â¡£¶ÔÓÚºó¶Ë¿ª·¢À´Ëµ£¬Ó¦ÓòãÊÇÎÒÃǵÄÖ÷Õ½³¡£¬Ò²ÊÇÕû¸öϵͳ×ÔӵIJ¿·Ö£¨µ±È»£¬Ç°¶ËÒ²²»¼òµ¥£©£¬ËùÓеÄÒµÎñÂß¼¶¼»ã¾ÛÔÚ´Ë¡£ËùÒÔ£¬¶ÔÓÚÓ¦Óò㣬ÎÒÃÇÐèÒª½øÐнøÒ»²½²ð·Ö£¬¶ø²»½ö½öÊÇÔÚÕâÀïдҵÎñÂß¼¾ÍÍêÊÂÁË¡£¶ÔÓ¦ÓòãµÄ½øÒ»²½·Ö²ã£¬¾ÍÐγÉÁËCOLAËùÌᳫµÄËIJã½á¹¹£¬¶ÔÓ¦µ½MavenÖУ¬¾ÍÊÇÓÐ4¸öModule£¬±àÒë´ò°üÖ®ºó»áÓÐ4¸öJar¡£Ò»¸öµäÐ͵ÄÓ¦Óã¬ÆäModule³ÊÏÖ³öÈçϵĽṹ£º
<modules> <module>cloudstore-adapter</module> <!--Adapter ²ã--> <module>cloudstore-app</module> <!--App ²ã--> <module>cloudstore-domain</module> <!--Domain ²ã--> <module>cloudstore-infrastructure</module> <!--Infra ²ã--> <module>cloudstore-client</module> <!--RPC SDK--> <module>start</module> <!--SpringBootÆô¶¯--> </modules>µ±ÒµÎñ±äµÃ¸´ÔÓʱ£¬ÕâÖÖ·Ö²ã½á¹¹×ÔÈ»±ÈûÓзֲãÒªºÃ¡£ÕâÒ²ÊÇCOLAÒ»Ö±ÖÂÁ¦ÒªÈ¥½â¾öµÄÎÊÌ⡪¡ª¿ØÖƸ´ÔӶȡ£´ÓCOLA 1.0µÄÊÂÎÞ¾Þϸ£¬µ½COLA 3.0µÄ»¯·±Îª¼ò¡£ÎÒ½¥½¥Ã÷°×£¬COLA×÷ΪӦÓüܹ¹£¬ÆäºËÐIJ»ÊÇÈ¥Ìṩ¹¦ÄÜ£¬¶øÊÇÌṩ»ùÄ££¨Archetype£©¡£ÔÚ1.0µÄʱºò£¬COLAÌṩÁËInterceptorÄÜÁ¦£¬ÌṩÁËEvent BusÄÜÁ¦£¬ÌṩÁËÀ©Õ¹µãÄÜÁ¦¡£Ò»¸öÊÇÎÒÈÏΪ´ó¼Ò¡°ÐèÒª¡±ÕâЩ£¬ÁíÒ»¸öÊǸоõNBµÄ¿ò¼Ü¾ÍÓ¦¸ÃÃæÃæ¾ãµ½£¬Ã»Óм¸¸ö¸ß¼¶¹¦Äܶ¼²»ºÃÒâ˼¿ªÔ´¡£ÊÂʵ֤Ã÷£¬ÎÒ·¸ÁËÒ»¸ö¹ßÐÔ´íÎ󡪡ª¹ý¶ÈÉè¼Æ¡£InterceptorÍêÈ«¿ÉÒÔÓÃAOPÌæ´ú£¬ÄÚ²¿Ê¼þºÍÀ©Õ¹µãºÜÉÙ±»Óõ½¡£ËùÒÔÔÚCOLA 3.0µÄʱºò£¬¹û¶ÏµÄÈ¥µôÁËÕâЩ¡°¼¦Àß¡±£¬Ö»±£ÁôÁËÀ©Õ¹µã¹¦ÄÜ¡£»Ø¹éµ½¼Ü¹¹µÄ±¾ÖÊ£¬COLAµÄºËÐÄÓ¦¸ÃÊǹ涨ӦÓõĽṹºÍ¹æ·¶£¬¼´Ó¦Óüܹ¹»ùÄ££¨Archetype£©¡£¶ø²»ÊÇÈ¥¾À½áÄÇЩ½õÉÏÌí»¨µÄ¹¦ÄÜ¡£Éý¼¶µ½COLA 3.1ʵ¼ÊÉÏ£¬ÕâÑùµÄ»Ø¹é¹¤×÷£¬COLA 3.0ÒѾ×öµÄ²î²»¶àÁË¡£ÔÚÕâ´Î3.1µÄÉý¼¶ÖУ¬³ýÁ˽øÒ»²½È¥³ýÁËEvent BusµÄ¹¦ÄÜÖ®Í⣬×îÖØÒªµÄ¾ÍÊÇÖØй淶ÁË·Ö°ü²ßÂÔ£¬ºÍÀ©³äÁËÔÀ´¿ØÖƲ㣨Controller£©µÄÖ°Ôð¡£·Ö°ü²ßÂÔµ÷Õû·Ö²ãÊÇÒ»ÖÖÔÚ¹¦ÄÜά¶ÈÉϵĺáÏòÇз֣¬¼´Ã¿Ò»²ã¶¼ÓÐ×Ô¼ºµÄÖ°Ôð¡£
·Ö²ã´¦ÀíûÓÐÎÊÌ⣬ֻÊÇÕâÖÖ¹¦ÄÜ»®·Ö£¬»á´øÀ´Ò»¸öÎÊÌ⣬¼´ÁìÓòά¶ÈµÄÄÚ¾ÛÐÔ»áÊÕµ½Ó°Ïì¡£µ±Ò»¸öapplicationÖ»¸ºÔðÒ»¸öÁìÓòµÄʱºòûÓÐÎÊÌ⡣Ȼ¶ø£¬µ±Ò»¸öapplication°üº¬¶à¸öÒµÎñÁìÓòµÄʱºò£¬ÕâÖÖÄÚ¾ÛÐÔȱʧµÄ±×¶Ë¾Í±È½ÏÃ÷ÏÔÁË¡£¸üºÃµÄ·Ö°ü²ßÂÔÊÇ°´ÁìÓò»®·Ö£¬¶ø²»ÊÇ°´¹¦ÄÜ¡£ÒòΪ£¬ÁìÓò¸üÄÚ¾Û£¬¹¦ÄÜÊÇΪÁìÓò·þÎñµÄ£¬Ó¦¸Ã¹éÊôÓÚÁìÓò¡£È»¶ø£¬²»ÇɵÄÊÇ£¬ÔÚCOLAÓ¦Óüܹ¹ÀïÃ棬ÎÒÃÇÒª×ۺϺáÏò¹¦ÄÜά¶ÈµÄ»®·Ö£¬ºÍ×ÝÏòÁìÓòά¶ÈµÄ»®·Ö£¬Á½¸ö¶¼ºÜºÃ£¬Á½¸ö¶¼ÏëÒª¡£Ôõô°ì£¿ÎÒÃÇ¿ÉÒÔ²ÉÓÃÎïÀí»®·ÖºÍÂß¼»®·ÖÏà½áºÏµÄ°ì·¨¡£ºáÏòÉÏ£¬ÎÒÃÇÓÃModule×öÓвã´Î»®·Ö£¬ÊôÓÚÎïÀí»®·Ö¡£×ÝÏòÉÏ£¬Í¨¹ýPackageÀ´½øÐÐÂß¼»®·Ö¡£×îºó£¬ÐγÉÒ»¸öÈçϵĽṹ£º°´ÕÕÕâ¸ö˼ÏëÈ¥·Ö°ü£¬ÔÚ¹¤³ÌÖУ¬ModuleϵĶ¥²ãpackage²»ÔÙÊǹ¦ÄÜ£¬¶øÊÇÁìÓò£º°´ÕÕÁìÓòµÄ·Ö°ü²ßÂÔÖÁÉÙ»á´øÀ´Á½¸öºÃ´¦£º
ÓÃAdatper´úÌæControllerControllerÕâ¸öÃû×ÖÖ÷ÒªÊÇÀ´×ÔÓÚMVC£¬ÒòΪÊÇMVC£¬ËùÒÔ×Ô´øÁËWebÓ¦ÓõÄÀÓÓ¡¡£È»¶ø£¬Ëæ×ÅmobileµÄÐËÆð£¬ÏÖÔÚºÜÉÙÓÐÓ¦Óýö½öÖ»Ö§³ÖWeb¶Ë£¬Í¨³£µÄ±êÅäÊÇWeb£¬Mobile£¬WAPÈý¶Ë¶¼ÒªÖ§³Ö¡£ÔÚÕâÑùµÄ±³¾°Ï£¬ÏÁÒåµÄ¿ØÖƲãÒѾ²»ÄÜÂú×ãÐèÇóÁË£¬ÒòΪÔÚÕâÒ»²ã£¬²»½ö½öÒª×ö·ÓÉת·¢£¬»¹Òª×ö¶à¶ËÊÊÅ䣬ÀàËÆÓÚÁù±ßÐμܹ¹ÖеÄDriving AdapterµÄ½ÇÉ«¡£¼øÓÚ´Ë£¬ÎÒÃÇʹÓÃÊÊÅä²ã£¨Adapter£©Ìæ»»µôÁËController£¬Ò»·½Ã棬ÊÇΪÁ˺ôÓ¦Áù±ßÐμܹ¹£»ÁíÒ»·½Ã棬µÄÈ·Ò²ÊÇÐèÒª×ö¶à¶ËÊÊÅä¡£»ùÓÚÕâÑùµÄ±ä»¯£¬ÎÒÖع¹ÁËCOLA Archetype£¬°ÑAdapter×÷Ϊһ¸ö²ã´Î͹ÏÔ³öÀ´¡£Êµ¼ÊÉÏ£¬InfrastructureÒ²ÊÇÊÊÅäÆ÷£¬ÊǶԼ¼ÊõʵÏÖµÄÊÊÅ䣨»òÕ߽нâñ£¬±ÈÈ磬ÎÒÐèÒªÊý¾ÝÀ´°ïÖú¹¹ÔìDomain Entity£¬µ«ÊÇÎÒ²»careÕâ¸öÊý¾ÝÊÇÀ´×ÔÓÚDB¡¢RPC»¹ÊÇSearch£¬»òÕß˵£¬ÎÒ¿ÉÒÔÔÚÕâЩ¼¼ÊõʵÏÖÖнøÐÐ×ÔÓÉÇл»£¬¶ø²»Ó°ÏìÎÒDomain²ãºÍApp²ãµÄÎȶ¨ÐÔ¡£¸ÄÔìºóµÄCOLAÔڼܹ¹·ç¸ñ£¬Ä£¿é¡¢×é¼þÒÔ¼°·Ö°ü²ßÂÔÉ϶¼»áÓÐËùµ÷Õû£¬¾ßÌå±ä»¯Çë²Î¿¼ÏÂÃæÁ½ÕÅͼ¡£COLA¼Ü¹¹Í¼£ºCOLA3.1COLA×é¼þ¹Øϵͼ£º¸ü¶à¹ØÓÚCOLA 3.1.0µÄÐÅÏ¢£¬¿ÉÒÔ·ÃÎÊ£ºhttps://github.com/alibaba/COLA ¡£×éÖ¯¼Ü¹¹ÖеķÖÀà˼άÕâôÖØÒªµÄ˼άÄÜÁ¦£¬ÆäÓ¦Óÿ϶¨²»½ö½ö¾ÖÏÞÓڼܹ¹Éè¼ÆµÄ·¶³ë¡£¿ªÆªÒѾ˵¹ýÁË£¬·ÖÀàÊÇÎÒÃÇÈËÀàµÄ±¾ÄÜ£¬ÊÇ·ÖÎöºÍ×ÛºÏÎÊÌâµÄÖØÒªÊֶΡ£Éú²ú¹Øϵ¾ö¶¨Éú²úÁ¦£¬ºÃµÄ×éÖ¯½á¹¹»áÖúÁ¦ÒµÎñ·¢Õ¹£¬·´Ö®£¬Ôò»áÍÏÒµÎñµÄºóÍË¡£Òò´Ë£¬´ó¹«Ë¾µÄCEOÿÄ궼»á»¨ºÜ¶àʱ¼äÔÚ×éÖ¯Éè¼ÆÉÏ£¬ÕâÒ²ÊÇΪʲô£¬Ôڴ󳧣¬Ã¿ÄêÎÒÃǶ¼»á¿´µ½²»Ð¡µÄ×éÖ¯µ÷Õû¡£¿´µ½Ò»ÆªÎÄÕ¡¶Æ»¹û¹«Ë¾µÄ×éÖ¯¼Ü¹¹ÊÇÔõÑùµÄ¡·[4]£¬ÀïÃæ½éÉÜÁËÆ»¹û³É¹¦ºÍÆäÓÅÐãµÄ×éÖ¯¼Ü¹¹ÓйØϵ¡£ÈçÏÂͼËùʾ£¬´«Í³ÆóҵƫÏòÓÚÒµÎñÐÍ×éÖ¯£¬¶ø¸ß¿Æ¼¼ÆóҵƫÏòÓÚÖ°ÄÜÐÍ×éÖ¯¡£ÓÐûÓиоõÆ»¹ûµÄ×éÖ¯¼Ü¹¹£¬ºÍÎÒÃǵÄCOLA˼ÏëÊÇÒ»ÑùµÄ£º£©£¬ÎïÀíÉÏ£¬°´ÕÕÖ°ÄÜ»®·Ö£»Âß¼ÉÏ£¬°´ÕÕÒµÎñºÍ²úÆ·»®·Ö¡£Æ»¹ûÕâÑùµÄ×éÖ¯Éè¼Æ£¬ÊÇÒòΪËüÊǼ¼ÊõºÍ´´ÐÂÇý¶¯µÄ¹«Ë¾£¬Ð×÷³É±¾²»ÊÇ×î´óµÄÎÊÌ⣬ȱÉÙרҵÐÔ£¨¼¼Êõ²»ÐУ©£¬È±ÉÙ´´Ð²ÅÊÇØü¹ØÉúËÀµÄ´óÎÊÌâ¡£ËùÒÔËûÄþ¿ÏÎþÉüÐͬЧÂÊ£¬Ò²ÒªÈ·±£×¨ÒµÐÔ£¬Ò²¾ÍÊÇ˵£¬×öÉãÏñÍ·µÄÖ»×öÉãÏñÍ·£¬×öiOSµÄÖ»×öiOS£¬¼¼ÊõleaderÖ±½ÓÏòCEO»ã±¨£¬¿ÉÒÔ¾ö¶¨²úÆ·µÄ·¢Õ¹·½Ïò¡£ÒòΪËûÃÇÔÚÕâ¸öÁìÓò¸üרҵ¡£ºÜÔçÒÔÇ°£¬Ê·µÙ·ò¡¤ÇDz¼Ë¹¾ÍÓÐÕâÑùµÄ¹Ûµã£ºÆ»¹û¹«Ë¾µÄ¾ÀíÃÇÓ¦¸ÃÊÇËûÃǹÜÀíÁìÓòµÄר¼Ò¡£ÔÚ 1984 ÄêµÄÒ»´Î²É·ÃÖУ¬Ëû˵£ºÎÒÃÇÔÚÆ»¹û¾ÀúÁËÄǸö½×¶Î£¬µ±Ê±ÎÒÃdzöÈ¥Ï룬Ŷ£¬ÎÒÃÇÒª³ÉΪһ¼Ò´ó¹«Ë¾£¬ÈÃÎÒÃǹÍӶרҵµÄ¹ÜÀíÈËÔ±¡£ÎÒÃdzöÈ¥¹ÍÁËһȺרҵµÄ¹ÜÀíÈËÔ±¡£Ò»µãÒ²²»¹ÜÓá¡ËûÃÇÖªµÀÈçºÎ¹ÜÀí£¬µ«ËûÃÇÔÚרҵ·½Ãæʲô¶¼²»ÖªµÀ¡£Èç¹ûÄãÊÇÒ»¸öΰ´óµÄÈË£¬ÎªÊ²Ã´ÄãÏëΪһ¸öÄãʲô¶¼Ñ§²»µ½µÄÈ˹¤×÷£¿ÄãÖªµÀʲôÊÇÓÐȤµÄÂð£¿ÄãÖªµÀËÊÇ×îºÃµÄ¾ÀíÂð£¿ËûÃÇÊÇΰ´óµÄ¸öÈ˹±Ï×Õߣ¬ËûÃÇ´ÓÀ´¶¼²»Ïë³ÉΪһÃû¹ÜÀíÕߣ¬µ«È´¾ö¶¨×Ô¼º±ØÐë³ÉΪ£¬ÒòΪûÓÐÆäËûÈËÄܹ»³öÉ«µØÍê³É¹¤×÷¡£ËµÊµ»°£¬¿´ÍêÕâƪÎÄÕ£¬ÎҺܸп®£¬Ò»·½ÃæÊÇÅå·þÇDz¼Ë¹µÄ¶´¼ûÄÜÁ¦£¬ÁíÒ»·½ÃæҲΪÎÒÃÇÕâ¸öÐÐÒµ¸Ðµ½ßñÐ꣬ҵÎñ¼¼ÊõÒ²ÊǼ¼Êõ°¡£¬È´Ã»ÓÐÒ»¸öÏñÑùµÄÅàÓý·¢Õ¹¼¼ÊõµÄ»·¾³ºÍÍÁÈÀ¡£Èç½ñ£¬ÒµÎñ¼¼ÊõLeader»¹ÓжàÉÙÊÇרעÔÚ¼¼ÊõÉÏÄØ£¬Ù²È»¶¼±ä³ÉÁËÒµÎñLeader¡£Èç¹û¼¼ÊõLeader¶¼±ä³ÉÁË´¿¹ÜÀíÕߣ¬ÄÇôËÈ¥¹ØÐļ¼Êõ£¬ËÈ¥¹ØÐÄ´úÂ룬ËÈ¥¹ØÐŤ³ÌʦµÄ³É³¤ÄØ£¿·ÖÀàѧÊÇ¿ÆѧҲÊÇÒÕÊõ×îºó£¬ÎÒ»¹ÊÇÒªÖÐӹһϣ¬·ÖÀàºÜÖØÒª£¬µ«Í¬Ê±Ò²ºÜÄÑ£¬´øÓÐÒ»¶¨µÄÖ÷¹ÛÐÔ¡£¾ÍÏñ±È¶û.²¼À³ÉÔÚ¡¶ÍòÎï¼òÊ·¡·Àï˵µÄ£º·ÖÀàѧÓÐʱºò±»ÃèÊö³ÉÒ»ÃÅ¿Æѧ£¬ÓÐʱºò±»ÃèÊö³ÉÒ»ÖÖÒÕÊõ£¬µ«Êµ¼ÊÉÏÄÇÊÇÒ»¸öÕ½³¡¡£¼´Ê¹µ½Á˽ñÌ죬ÄǸöÌåϵ±ÈÐí¶àÈËÈÏΪµÄ»¹Òª»ìÂÒ¡£ÒÔÃèÊöÉúÎï»ù±¾½á¹¹µÄÃŵĻ®·ÖΪÀý¡£Ðí¶àÉúÎïѧ¼Ò¼á³ÖÈÏΪ×ÜÊý30¸öÃÅ£¬µ«ÓеÄÈÏΪ20À´¸öÃÅ£¬¶ø°®µÂ»ªÔÚ¡¶ÉúÃüµÄ¶àÑùÐÔ¡·Ò»ÊéÀïÌá³öµÄÊý×ָߴïÁîÈ˳ԾªµÄ89ÃÅ¡£ÎÒÃǹ۲ìÊÂÎïµÄÊӽDz»Í¬£¬¶ÔÎÊÌâµÄÈÏÖª³Ì¶È²»Í¬£¬µÃ³öÀ´µÄ·ÖÀàÒ²»á²»Í¬¡£¾ÍÄÃCOLAÀ´Ëµ£¬Ö±µ½ÏÖÔÚµÄ3.1°æ±¾£¬ÎÒ¸öÈËÈÏΪÆä·Ö²ãºÍ·Ö°üµÄ·½Ê½²ÅÏà¶Ô±È½ÏºÏÀí¡£È»¶ø£¬ºÜÓпÉÄÜÔÚºóÆڵĵü´úÖУ¬·ÖÀ෽ʽÓÖ»á¸Ä±ä¡£×éÖ¯¼Ü¹¹µÄ·ÖÀ෽ʽҲÊÇÒ»Ñù£¬°´ÕÕÒµÎñºÍÖ°ÄÜ»®·Ö£¬¶¼¿ÉÒÔ¡£¹Ø¼ü¿´Æä·ÖÀàÊÇ·ñÆ¥ÅäÄã×éÖ¯µÄÌØÐÔ£¬Ã»ÓÐ×îºÃµÄ·ÖÀֻ࣬ÓÐ×îºÏÊʵġ£³ýÁ˱¾ÎÄ·ÖÏíµÄ·ÖÀà˼ά£¬¸ü¶àµÄ˼άÄÜÁ¦»¹¿ÉÒԲο´×÷ÕßµÄÐÂÊ飺¡¶´úÂ뾫½ø֮·£º´ÓÂëÅ©µ½¹¤½³¡·¡£ÕâÊÇÒ»±¾Îª×¨Òµ³ÌÐòÔ±¶øдµÄÊ飬Ö÷Òª·ÖΪ¼¼ÒÕ¡¢Ë¼ÏëºÍʵ¼ùÈý¸ö²¿·Ö£¬Ïêϸ½éÉÜÁ˱à³Ì¼¼Çɺͷ½·¨ÂÛ¡¢³éÏóÄÜÁ¦¡¢·ÖÖÎ˼Ïë¡¢³£¼ûµÄÓ¦Óüܹ¹Ä£Ê½£¬ÒÔ¼°COLA¼Ü¹¹µÄÉè¼ÆÔÀí¡£Ï£ÍûÄܹ»°ïÖú¹ã´ó³ÌÐòÔ±ÅàÑøÁ¼ºÃµÄ±à³ÌÏ°¹ßºÍ˼ά¡£Ïà¹ØÁ´½Ó
[1]https://softwareengineering.stackexchange.com/questions/178927/is-there-a-difference-between-a-component-and-a-module
[2]https://stackoverflow.com/questions/2702816/module-vs-component-design
[3]https://medium.com/swlh/angular-component-vs-module-b8c7347c604e
[4]http://www.techweb.com.cn/cloud/2020-10-27/2808376.shtml
¸öÐÔÓÐȤµÄÐÂÓòÃû³¬ÖµÌØ»ÝÖÐ
ÓÐÄÄЩ¸öÐÔÓÐȤµÄÐÂÓòÃû£¿ÕâÀïÓУº.vip£¬×Ô´ø×ð¹ó¡£.ren£¬ÈË£¬ÒÔ.ren¾Û¡£.tech£¬¼¼ÊõרÊô¡£´ËÍ⻹ÓÐ.xyz¡¢.link¡¢.run¡¢.love¡¢.todayµÈ£¬ÏÖÔÚ×¢²á³¬ÖµÌػݣ¬Ê×ÄêÖ»Ðè5Ôª£¡
ʶ±ðÏ·½¶þάÂ룬»òµã»÷ ¡°ÔĶÁÔÎÄ¡± £¬À´×¢²áÒ»¸öÓÐȤµÄÐÂÓòÃû°É~
´ÁÎÒ£¬×¢²áÐÂÓòÃû¡£
¸ÐлÔĶÁ£¬Èç¹û¾õµÃ±¾ÎĶÔÄúÓаïÖú£¬Çë¸øÎÒµã¸öÔÞ£¬»òÕ߰ѱ¾ÎĵÄÍøÖ·¸´ÖÆ·ÖÏíÆäËüºÃÓÑ¡£
±¾ÎÄÍøÖ·£ºhttp://www.nulj.cn/nulj.cn/k/3538.html¸´ÖÆ