GithubHelp home page GithubHelp logo

aics's Introduction

aics

##配合 code-depot.cc 代码仓库使用的代码包管理工具

###安装aics-cli

AICS的命令行工具依赖nodejs 目前测试 0.10.x 及 4.x版本可以正常运行

$npm install aics -g

###aics常用命令

$aics -v  

当前aics版本

$aics -h

帮助文档-会列出所有支持命令

$aics -u

当前帐户信息

$aics init

初始化当前目录为aics项目。

aics项目下会包含一些文件结构

PROJECT_ROOT/
.aics-project.json             项目配置文件,管理代码包依赖关系 
./aics                         代码包配置列表及相关文件存放
./aics/tmp                     临时目录
./aics/example.depot.json      代码包配置例子文件,可以包含多个
./aics/packages.json           已倒入的所有代码包及版本信息
$aics add package:name

为当前项目添加一个代码包。代码包的名称可以在 http://code-depot.cc (暂未上线,临时访问:http://123.56.120.32:8805/)。

$aics update [package-config|-all]

根据配置文件更新代码包。没有参数的情况下是更新项目的依赖,当前目录下的aics-project.json。指定文件名称或-all参数会在.aics目录下寻找对应的.depot.json后缀文件进行更新

$aics adduser username

设置当前的aics帐号,只有在需要使用代码仓库时使用。

$aics publish [package-config]

将代码包发布到code-depot。未指定参数将发布项目下的全部代码包。

###AICS的配置文件

PROJECT_ROOT/aics-project.json
{
    //*!所有名称请使用小写字母
    //项目名称
    "name": "{{name}}",
    //在这这里填写试用的原型组名称。可以在http://code-depot.com查询或根据需要新建
    "prototype": "dora",
    //版本号
    "version": "0.0.1",
    //对于项目的简单功能描述
    "summary": "description your project",
   	//项目的GIT地址
    "git":"https://github.com/fami2u/aics",
    //代码包的依赖关系
    "dependencies": {

    }
}

PROJECT_ROOT/.aics/example-package.json

{
    //*!所有名称请使用小写字母
    //在这这里填写试用的原型组名称。可以在http://code-depot.com查询或根据需要新建
    "prototype": "dora",
    //代码包命名规则“用户名:代码包"
    "name": "fami2u:account-base",
    //版本号
    "version": "0.0.1",
    //对于代码包的简单功能描述
    "summary": "description your package",
   	//代码包的GIT地址
    "git":"https://github.com/fami2u/aics",
    //说明文件地址
    "documentation": "README.md",
    //代码包的依赖关系
    "dependencies": {

    },
    //可供下载的文件,未下载files中的文件不会被下载
    "files": [
        "abc.css",
        "bbb.css"
    ],
    //数据库切片
    "database":{
    	//表或集合名称
    	"users":{
    		//字段名及类型
    		"uid":"int32",
    		"createAt":"date",
    		"nickname":"string"
    	}
    }
}

###CODE_DEPOT的说明 目前codedepot存在很多问题,aics只是尝试解决这些问题迈出的第一布,还需要很多很多的帮助参与到这个项目。 通过几个aics的关键词解释aics-codedepot这个系统的原理

数据库:使用aics的第一步,选择项目使用的数据库,所有完整项目抽象为最基础的就是数据模型。提供了基本的三种数据库方式MONGODB、mysql、leancloud 原型:在depot中可以根据使用的语言版本建立不同的原型可以理解成:数据库+编程语言+使用框架 ,或者说就是使用的开发环境。 代码包:就是在不同原型(开发环境)下的代码集合。

这个版本的aics-codedepot的结构就是这样简单,为了在最大程度上开发的自由支持。 当然为了能够进一步优化和我们的目标,我们对这个体系加入了一些简单的规则:

文件唯一:在同个原型下文件名称是不能重复的,publish时会提示。 版本号:depot里虽然没有版本控制的功能,但是对于版本号是有管理的,会保存每个版本的副本,在项目中引用可以指定版本号,每次的发布要求版本号必须要更新。

当然,为了要实现更好的管理代码及最大程度复用的目标,还需要更多的参与者能够贡献好的解决方法。可以持续关注FAMI2U的最新动向和BLOG,参与AICS项目的方式参考FAMI2U的开源项目流程。

###AICS项目的成员 目前为AICS项目提供建议和指导的开发者近200人,项目组成员10人左右,主要负责统筹和规划的为@qintengfei@sunhannan。感谢参与此项目的大牛们~

###AICS的前世今生 AICS项目启动大概已经一年左右了,受到很多人的关注,包括和创家、北大孵化器、葡萄园等一些组织的支持。为我们提供了大量的项目来验证整个系统。目前这个版本还没有版本号,也希望大家来提建议(我们都是魔兽死忠FANS~其他产品都用里面的命名,哈哈哈)。在这之前AICS共有两个版本:alpha/dora。这个两个版本实现了两个aics体系里比较重要的功能点:alpha-自动化部署、同步维护/dora-数据库切片式管理,但是这两个版本只能支持PHP+mysql的开发环境,后边会根据当前版本的实际使用情况将这些重要功能并入AICS。

###AICS和其他代码管理项目 AICS的alpha于2014年2月份开始投入使用,由数十个项目实际应用。在最初阶段,系统设计本身是很复杂的,我们大概写了60页的WORD说明书给项目方,但是主要的方式结构基本已经在这个阶段定型。15年初我们开始接触js全栈的项目,参考了很多NPM项目,7月份左右开始接触METEOR/DOCKER,在这个过程中能够感觉到AICS的设计,并不是偶然的事情,只是一个趋势,会有这样的一些项目。 与NPM/METEOR/DOCKER的不同方向 AICS未来应该不会限定某一种开发语言。FAMI2U这个组织的目标是IT无边界化,更关注的是技术的项目转化和开发者的职业规划,我们会在如何辅助这个目标上进行探索:提高开发者的个人能力/让开发者不依赖于企业或工作。

//AICS的发展方向
Workflow工作流管理
Devops工程自动化
CI 持续集成

###AICS的说明 AICS的主要功能不是版本控制,所以没有提供更多关于更多文件版本管理的功能,可以结合GIT或SVN使用。后期我们做一些案例来说明AICS的主要特性。

###更新记录

####0.0.5更新内容 增加了aicsd 命令用于调试开发 设置 env.DEBUG = 1

####0.0.4更新内容 更新保存代码包 使用阿里云的OSS服务 更新数据库使用方式 使用阿里云MONGODDB服务

======================================================================

###关于 @ FAMI2U FAMI2U 是FAMI发起的一个开发者组织,目标是为实现IT无边界化而努力,解放和发展开发者的生产力,从而促进开发者对于其他行业的贡献,使开发者成为推动变革的中坚力量。 FAMI2U的更多项目可关注 :https://github.com/fami2u

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.