Ϊʲô˵ӦÓüܹ¹ÐèÒª·ÖÀà˼ά£¿

ÈôºÎ¶¨Òå¼Ü¹¹?Ó¦Óüܹ¹µÄÒªËØÓÐÄÄЩ?ʲôÊÇÓ¦Óüܹ¹ÖеķÖÀà˼ά?¿ªÔ´Ó¦Óüܹ¹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³öÏÖ³öÈçÏµĹ¹Ô죺

  1. <modules>
  2. <module>cloudstore-adapter</module> <!--Adapter ²ã-->
  3. <module>cloudstore-app</module> <!--App ²ã-->
  4. <module>cloudstore-domain</module> <!--Domain ²ã-->
  5. <module>cloudstore-infrastructure</module> <!--Infra ²ã-->
  6. <module>cloudstore-client</module> <!--RPC SDK-->
  7. <module>start</module> <!--SpringBootÆô¶¯-->
  8. </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¼Ü¹¹µÄÉè¼ÆµÀÀí¡£ÓûÍû¿ÉÒÔ»òÐíÔÞÖú¹ã´óÄêÒ¹·¨¶È°ñÑùÔ±ÅàÑøÓÅʤµÄ±à³ÌÏ°¹ßºÍ˼ά¡£