Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
fulan.zjf committed Jul 2, 2020
1 parent b68c232 commit 35d2707
Showing 1 changed file with 27 additions and 26 deletions.
53 changes: 27 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,39 @@

![qrcode_60.jpg](https://ata2-img.cn-hangzhou.oss-pub.aliyun-inc.com/9434d30a2db4c6036e1ba37be55b2c6e.jpg)

也可以购买我的新书[《代码精进之路:从码农到工匠》](https://detail.tmall.com/item.htm?id=610042416451),里面有关于COLA比较详细的描述和使用。
如果你有技术热情,对阿里有兴趣,可以email:fulan.zjf@alibaba-inc.com

# 项目说明
**COLA既是框架,也是架构。创建COLA的主要目的是为应用架构提供一套简单的可以复制、可以理解、可以落地、可以控制复杂性的”指导和约束"。**
- 框架部分主要是以二方库的形式被应用依赖和使用。
- 架构部分主要是提供了创建符合COLA要求的应用Archetype。
- 框架部分主要是以二方库的形式被应用依赖和使用。

## COLA架构
COLA首先是作为架构的存在,是一种应用架构思想,主要是制定了一套指导和约束,并将这套规范沉淀成Archetype。以便通过Archetype可以快速的生成符合COLA规范的应用。满足COLA的应用是一个有清晰的依赖关系的分层架构,如下图所示:

![image.png](https://ata2-img.cn-hangzhou.oss-pub.aliyun-inc.com/a33b80bcac5ec73d0d1358d6b49a119c.png)

我们提供了两个Archetype,分别是cola-archetype-service和cola-archetype-web

### cola-archetype-service
用来生成纯后端应用(没有Controller),生成应用的命令为:
```
mvn archetype:generate -DgroupId=com.alibaba.demo -DartifactId=demo -Dversion=1.0.0-SNAPSHOT -Dpackage=com.alibaba.demo -DarchetypeArtifactId=cola-framework-archetype-service -DarchetypeGroupId=com.alibaba.cola -DarchetypeVersion=3.0.0
```

### cola-archetype-web
用来生成Web后端应用(有Controller),生成应用的命令为:
```
mvn archetype:generate -DgroupId=com.alibaba.demo -DartifactId=demo -Dversion=1.0.0-SNAPSHOT -Dpackage=com.alibaba.demo -DarchetypeArtifactId=cola-framework-archetype-web -DarchetypeGroupId=com.alibaba.cola -DarchetypeVersion=3.0.0
```

## COLA框架
COLA作为框架主要是提供应用和架构需要的通用组件支撑,比如对CQRS和扩展点功能的支持。COLA框架主要由cola-framework这个项目来实现。
在这个项目里面包含3个Module:cola-core, cola-common和cola-test。
其次,COLA也是一个框架,提供了扩展点功能组件和一般API定义规范组件。如果你打算使用COLA提供的扩展点功能。
你需要在项目里面依赖两个组件:[cola-core](https://oss.sonatype.org/#nexus-search;quick~cola-core), [cola-common](https://oss.sonatype.org/#nexus-search;quick~cola-common)

关于组件引用方式,你可以下载源码在本地生成,也可以从nexus的中央仓库获取。下面简单介绍一下这两个组件:

### cola-core
### cola-framework-core
该Module是整个框架的核心,里面的主要功能和Package如下:
```
com
Expand All @@ -30,30 +51,10 @@ com
├── extension \\负责扩展机制中的重要概念-扩展(Extension)的定义和执行
├── logger \\提供DIP的日志接口
```
### cola-common
### cola-framework-common
该Module提供了框架中Client Object, Entity Object和Data Object的定义,二方库会依赖该Module。

### cola-test
该Module主要是提供一些开发测试的工具,可以使用TDD来进行开发。

## COLA架构
COLA作为架构,组要是制定了一套指导和约束,并将这套规范沉淀成Archetype。以便通过Archetype可以快速的生成符合COLA规范的应用。满足COLA的应用是一个有清晰的依赖关系的分层架构,如下图所示:

![image.png](https://ata2-img.cn-hangzhou.oss-pub.aliyun-inc.com/a33b80bcac5ec73d0d1358d6b49a119c.png)

我们提供了两个Archetype,分别是cola-archetype-service和cola-archetype-web

### cola-archetype-service
用来生成纯后端应用(没有Controller),生成应用的命令为:
```
mvn archetype:generate -DgroupId=com.alibaba.demo -DartifactId=demo -Dversion=1.0.0-SNAPSHOT -Dpackage=com.alibaba.demo -DarchetypeArtifactId=cola-framework-archetype-service -DarchetypeGroupId=com.alibaba.cola -DarchetypeVersion=3.0.0
```

### cola-archetype-web
用来生成Web后端应用(有Controller),生成应用的命令为:
```
mvn archetype:generate -DgroupId=com.alibaba.demo -DartifactId=demo -Dversion=1.0.0-SNAPSHOT -Dpackage=com.alibaba.demo -DarchetypeArtifactId=cola-framework-archetype-web -DarchetypeGroupId=com.alibaba.cola -DarchetypeVersion=3.0.0
```

# 如何使用COLA

Expand Down

0 comments on commit 35d2707

Please sign in to comment.