ÈôºÎ¶¨Òå¼Ü¹¹?Ó¦Óüܹ¹µÄÒªËØÓÐÄÄЩ?ʲôÊÇÓ¦Óüܹ¹ÖеķÖÀà˼ά?¿ªÔ´Ó¦Óüܹ¹COLAµÄ×÷ÕßÕŽ¨·É½éÉÜËûÔÚCOLA¼Ü¹¹Éè¼ÆÖеÄһЩ˼Ω¾Ñ飬·ÖÏíËûµÄÓ¦Óüܹ¹Ö®µÀ¡£
Ä£¿é(Module)¡¢×é¼þ(Component)¡¢°ü(Package)£¬ÕâЩ¸ÅÄî¶ÔÓÚÎÒÃǼ¼ÇÉͬ´°²¢²»Ä°Éú£¬µ«²¢²»ÊÇËùÓÐÈ˶¼Äܶ®µÃÆäÒªÒå¡£
Éî¿Ì¶®µÃÖ®ºó£¬ÎҲŷ¢Ã÷£¬Æä±³ºóµÄÉîÒâÊÇ·ÖÀà˼ά¡£¶øÕâÖÖ·ÖÀàÒ²ÊÇÓ¦Óüܹ¹µÄºËÐij¦µã£¬¾Óɹý³Ì²»ºÏÁ£¶È¡¢²»ºÏ²ã´ÎµÄ·ÖÀ࣬°Ñ¸´ÔÓµÄÈí¼þÌåϵʵÏÖ¿ØÖÆÔÚ¿ÉÒÔ±»¶®µÃ¡¢±»±£»¤µÄ³Ì¶È¡£²»È»£¬¶ÔÓÚ¶¯ÔòÉÏ100ÍòÐдúÂëµÄÈí¼þ£¬ÈËÀà¸ù±¾Ã»Óа취¶®µÃºÍ±£»¤¡£
ÊÔÏëÒ»¸ö¼«¶ËÇé¿ö£¬¼ÙÈçûÓÐÕâЩ¸ÅÄîÐÖúÎÒÃÇ·ÖÀ࣬ÎÒÃÇ°ÑËùÓÐÓªÒµÂß¼¶¼Ð´ÔÚÒ»¸öÀàÀïÃ棬»áÊÇʲôÑùµÄ³É¹ûÄØ?ÎÒÃǺܶàµÄ¡°·ÇÈËÀࡱÌåϵ£¬Ç¡ÊÇÒòΪûÓнøÐкÏÀíµÄ·ÖÀàÔì³ÉµÄ¡£
ÔçÆÚ£¬ÎÒ²»°®ºÃJavaScriptµÄÒ»¸öÖØÒªÔÒò£¬Ç¡ÊÇÒòΪÆäȱ·¦ÏñJavaÖÐpackageºÍjarµÄ¸ÅÄµ¼Ö´úÂëµÄ×éÖ¯ÇéÊƱȽÏËÉÉ¢¡¢Ëæ±ã¡£Õâ¸öÎÊÌâÖ±µ½ES6¡¢React²Å»ñµÃ±È½ÏºÃµÄ½â¾ö£¬ÔÚ´Ë֮ǰ£¬Ç°¶Ë¹¤³Ìʦ²»µÃ²»ÒÀ¸½seaJS£¬requireJSÕâЩ¿ò¼ÜÀ´×öÄ£¿é»¯¡¢×é¼þ»¯µÄ¹¤×÷¡£
ÖÁ´Ë£¬Äã¿ÉÄÜÓÐÒÉÎÊ£¬·ÖÀàÓÐʲôħÁ¦?Ôõô¾Í³ÉÁËÓ¦Óüܹ¹µÄºËÐÄÁËÄØ?¿Í³¤±ð½¹¼±£¬ÓÉÎÒϸϸµÀÀ´¡£
·ÖÀàµÄÖØÒªÐÔ
Ëùν·ÖÀ࣬¾ÍÊǸù¾Ý±Ø¶¨µÄ±ê×¼¶Ô¸ø¶¨µÄÊÂÎï½øÐÐ×éÆäÓà»®·Ö¡£ÎÒÃÇÈËÀàÉú³É¾ÍÓзÖÀàµÄ±¾ÄÜ£¬ÀýÈ磬µ±ÎÒÃDz»ÑŲìÏÂÃæÕâÕÅͼµÄʱ¿Ì¡£
ÎÞÂÛÊÇË£¬Õ§Ò»¿´µ½ÉÏÃæµÄÁù¸öºÚµã£¬¶¼ÒØÈÏΪ¹²ÓÐÁ½×éÄ«µã£¬Ã¿×éÈý¸ö¡£Ôì³ÉÕâÖÖÓ¡ÏóµÄÔÒòÖ÷Èç¹û£¬ÈËÀà´óÄêÒ¹ÄÔ»áÖ÷¶¯½«·¢Ã÷µÄËùÓÐÊÂÎïÒÔijÖÖ³ÖÐø×éÖ¯ÆðÀ´¡£¸ù±¾ÉÏ£¬´óÄêÒ¹ÄÔ»áÈÏΪͬʱ²úÉúµÄÈκÎÊÂÎïÖ®¼ä¶¼´æÔÚijÖÖ½ÓÇ¢¹Øϵ£¬²¢ÇһὫÕâЩÊÂÎﰴijÖÖÂ߼ģʽ×éÖ¯ÆðÀ´¡£
Ö®ËùÒÔÎÒÃÇ´óÄêÒ¹ÄÔÓÐÈçÐíµÄ±¾ÄÜ£¬ÊÇÒòΪÈËÒ»´Î¿ÉÒÔ»òÐí¶®µÃµÄ˼Ω»ò¸ÅÄîµÄÊýÁ¿ÊÇÓÐÏ޵ġ£ÕýÈçÇÇÖÎÃ×ÀÕÔÚËûµÄÂÛÎÄ¡¶°ÂÃîµÄÊý×Ö7¡·ÖÐÌá³öµÄ¡£ÈËÀà´óÄêÒ¹ÄԵĶÌÆÚ¼ÇÒäÎÞ·¨Ò»´ÎÈÝÄÉ7¸öÒÔÉϵļÇÒäÏîÄ¿¡£ËùÒÔ£¬µ±ÐÅÏ¢Á¿¹ý´óÄêҹʱ£¬Î¨ÓйéÀà·Ö×é²ÅÄÜÔÞÖúÎÒÃÇÈ¥¶®µÃºÍ´¦ÀíÎÊÌâ¡£
Æäʵ£¬×Թż°½ñ£¬ÈËÀàÒ»ÏòÔÚ×ö׏éÀà/·ÖÀ࣬ÔçÔÚ´ºÇïʱ´ú£¬¡¶Õ½¹ú²ß¡·ÖоÍÌá³ö¹ý¡°ÎïÒÔÀà¾Û£¬ÈËÒÔȺ·Ö¡±µÄ¸ÅÄî¡£
ÔÚ»¥ÁªÍøÐÐÒµ£¬ÎÒÃÇ»á¶Ô¿Í»§½øÐзÖÀ࣬ȻºóÕë¶Ô²»ºÏµÄ¿Í»§½øÐзֲãÔËÓª£¬Ò²ÊÇÕâ¸öÊÂÀí¡£
ƽ³£ÎÒÃÇËù˵µÄ·ÖÎöºÍ×ۺϵı³ºó£¬Æäʵ¾ÍÊÇ·ÖÀà²ÅÄÜ¡£·ÖÎöÊÇÔÚÒ»¸öÀàÀïÃæÕÒ²î±ðÐÔ£¬×ÛºÏÊÇÔÚ²»ºÏÊÂÎïÖÐÕÒ½ÓÇ¢¡¢ÕÒºÏÓªÐÔ£¬¶øÕâ¸öºÏÓªÐÔÏ൱ÓÚ·ÖÀàµÄά¶È¡£
·ÖÀà˼άµÄ²ÅÄÜ£¬Ö±½Ó±íÏֵľÍÊÇ¿´ÆÆÊÂÎï±¾ÖʵIJÅÄÜ¡£
Ó¦Óüܹ¹ÖеķÖÀà˼ά
¸ÅÄÒå
ÔÚÆÀÂÛ±çÂۼܹ¹Ö®Ç°£¬ÎÒÃÇÏÈÀ´Ã÷°×Ò»ÏÂ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¡£
ÊÇÒÔ£¬ÔÚ½øÒ»²½ÉÌÁ¿Ö®Ç°£¬ÎÒÌØÒâ¶ÔÕâЩ¸ÅÄî×öÈç϶¨Ò壺
- Ó¦ÓÃ(Application)£ºÓ¦ÓÃÌåϵ£¬Óжà¸öModule¹¹³É£¬Ó÷½¿ò±íʾ¡£
- Ä£¿é(Module)£ºÒ»¸öModuleÊÇÓÐÒ»×éComponent¹¹³É£¬ÓÃÕý·½Ìå±íʾ¡£
- ×é¼þ(Component)£º±íʾһ¸ö¿ÉÒÔ×ÔÁ¦¹©¸øij·½Ã湦ÄܵÄÎï¼þ£¬ÓÃUMLµÄ×é¼þͼ±íʾ¡£
- °ü(Package)£ºPackage±ÈÄâ½Ï½Ïtricky£¬ËüÊÇÒ»ÖÖ×éÖ¯ÇéÊÆ£¬ºÍÁ£¶È²»ÊÇÒ»¸öά¶ÈµÄ£¬Ò²¾ÍÊÇ˵£¬Ò»¸öComponent¿ÉÒÔ°üº¬¶à¸öPackage£¬Ò»¸öPackageÒ²¿ÉÒÔ°üº¬¶à¸öComponent¡£
»ùÓÚÉÏÃæµÄ¶¨Ò壬ËûÃǵıíʾ·¨(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)µÄÖ°Ôð¡£
·Ö°ü²ßÂÔµ÷¼Á
·Ö²ãÊÇÒ»ÖÖÔÚ¹¦ÄÜά¶ÈÉϵĺáÏòÇз֣¬¼´Ã¿Ò»²ã¶¼Óб¾ÉíµÄÖ°Ôð¡£
- Adapter²ã£ºÂ·ÓÉÓû§request + ÊÊÅäresponse¡£
- App²ã£º½ÓÊÕÇëÇ󣬽áºÏdomain²ãһ·×öÓªÒµ´¦Àí¡£
- Domain²ã£º·¶³ëÄ£ÐÍ + ·¶³ë²ÅÄÜ¡£
- Infrastructure²ã£º¼¼ÇÉϸ½Ú(DB£¬Search£¬RPC..) + ·À¸¯(Anti-corruption)¡£
·Ö²ã´¦ÀíûÓÐÎÊÌ⣬ֻÊÇÕâÖÖ¹¦ÄÜ»®·Ö£¬»á´øÀ´Ò»¸öÎÊÌ⣬¼´·¶³ëά¶ÈµÄÄÚ¾ÛÐÔ»áÊÕµ½Ó°Ïì¡£µ±Ò»¸öapplicationÖ»¸ºÔðÒ»¸ö·¶³ëµÄʱ¿ÌûÓÐÎÊÌ⡣Ȼ¶ø£¬µ±Ò»¸öapplication°üº¬¶à¸öÓªÒµ·¶³ëµÄʱ¿Ì£¬ÕâÖÖÄÚ¾ÛÐÔȱµôµÄ±×²¡¾Í±È½ÏÃ÷ÏÔÁË¡£
¸üºÃµÄ·Ö°ü²ßÂÔÊÇ°´·¶³ë»®·Ö£¬¶ø²»ÊÇ°´¹¦ÄÜ¡£ÒòΪ£¬·¶³ë¸üÄÚ¾Û£¬¹¦ÄÜÊÇΪ·¶³ë°ìʵģ¬Ó¦µ±¹éÊôÓÚ·¶³ë¡£
È»¶ø£¬²»ÇɵÄÊÇ£¬ÔÚCOLAÓ¦Óüܹ¹ÀïÃ棬ÎÒÃÇÒª×ۺϺáÏò¹¦ÄÜά¶ÈµÄ»®·Ö£¬ºÍ×ÝÏò·¶³ëά¶ÈµÄ»®·Ö£¬Á½¸ö¶¼ºÜºÃ£¬Á½¸ö¶¼ÏëÒª¡£Ôõô°ì?ÎÒÃÇ¿ÉÒÔ²ÉÈ¡ÎïÀí»®·ÖºÍÂß¼»®·ÖÏà½áºÏµÄ°ì·¨¡£
ºáÏòÉÏ£¬ÎÒÃÇÓÃModule×öÓвã´Î»®·Ö£¬ÊôÓÚÎïÀí»®·Ö¡£×ÝÏòÉÏ£¬¾Óɹý³ÌPackageÀ´½øÐÐÂß¼»®·Ö¡£×îºó£¬ÐγÉÒ»¸öÈçÏµĹ¹Ô죺
°´ÕÕÕâ¸ö˼Ωȥ·Ö°ü£¬ÔÚ¹¤³ÌÖУ¬ModuleϵĶ¥²ãpackage²»ÔÙÊǹ¦ÄÜ£¬¶øÊÇ·¶³ë£º
°´ÕÕ·¶³ëµÄ·Ö°ü²ßÂÔÖÁÉÙ»á´øÀ´Á½¸öºÃ´¦£º
- ÌåϵµÄ¿É¶®µÃÐԺͿɱ£»¤ÐÔ¸üºÃ£¬Óð׻°Ëµ£¬¾ÍÊÇÕÒÆ÷е¸üºÃÕÒÁË¡£
- ±ãÀû½ñºóµÄ²ð·Ö£¬±ÈÈçϵ¥Óò(Order)±äµÃÔ½À´Ô½¸´ÔÓ£¬ÐëÒª²ð³öÈ¥£¬ÎÒÃÇÖ»ÐëÒª°ÑOrderÏÂÃæµÄÆ÷еǨáãµ½Ò»¸öÐÂÓ¦ÓþͺÃÁË¡£
ÓÃAdatper´úÌæController
ControllerÕâ¸öÃû×ÖÖ÷Èç¹ûÀ´×ÔÓÚ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.1
COLA×é¼þ¹Øϵͼ£º
¸ü¶à¹ØÓÚ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»ÑŲìÊÂÎïµÄÊӽDz»ºÏ£¬¶ÔÎÊÌâµÄÈÏÖª³Ì¶È²»ºÏ£¬µÃ³öÀ´µÄ·ÖÀàÒ²»á²»ºÏ¡£¾ÍÄÃCOLAÀ´Ëµ£¬Ö±µ½Èç½ñµÄ3.1°æ±¾£¬ÎÒСÎÒÈÏΪÆä·Ö²ãºÍ·Ö°üµÄ·½·¨²Å±ÈÄâ½Ï½ÏºÏÀí¡£È»¶ø£¬ºÜÓпÉÄÜÔÚºóÆڵĵü´úÖУ¬·ÖÀà·½·¨ÓÖ»á¸Ä±ä¡£
×éÖ¯¼Ü¹¹µÄ·ÖÀà·½·¨Ò²ÊÇÒ»Ñù£¬°´ÕÕÓªÒµºÍ±¾ÄÜ»úÄÜ»®·Ö£¬¶¼¿ÉÒÔ¡£¹Ø¼ü¿´Æä·ÖÀàÊÇ·ñÆ¥ÅäÄã×éÖ¯µÄÌص㣬ûÓÐ×îºÃµÄ·ÖÀֻ࣬ÓÐ×îºÏÊʵġ£
³ýÁ˱¾ÎÄ·ÖÏíµÄ·ÖÀà˼ά£¬¸ü¶àµÄ˼ά²ÅÄÜ»¹¿ÉÒԲο´×÷ÕßµÄÐÂÊ飺¡¶´úÂ뾫½ø֮·£º´ÓÂëÅ©µ½¹¤½³¡·¡£ÕâÊÇÒ»±¾Îª×¨Òµ·¨¶È°ñÑùÔ±¶øдµÄÊ飬ÖØÒª·ÖΪÉíÊÖ¡¢Ë¼Î©ºÍʵ¼ùÈý¸ö²¿·Ö£¬¾ßÌå½éÉÜÁ˱à³Ì¼¼ÄܺͰ취ÂÛ¡¢³éÏó²ÅÄÜ¡¢·ÖÖÎ˼Ω¡¢³£¼ûµÄÓ¦Óüܹ¹Ä£Ê½£¬ÒÔ¼°COLA¼Ü¹¹µÄÉè¼ÆµÀÀí¡£ÓûÍû¿ÉÒÔ»òÐíÔÞÖú¹ã´óÄêÒ¹·¨¶È°ñÑùÔ±ÅàÑøÓÅʤµÄ±à³ÌÏ°¹ßºÍ˼ά¡£