visop
Version:
A simple CLI for scaffolding visible operation projects.
81 lines (56 loc) • 4.7 kB
Markdown
# visop [](https://circleci.com/gh/zhenyuan2015/visop) [](https://www.npmjs.com/package/vue-cli)
`Vis`ible `Op`erate。一个可视化管理代码或其他资源的工具,通过 `界面<=>json文件<=>钩子代码<=>代码(资源)` 的方式来实现.
### 工具的术语
- `要素`:代码里的最小功能模块,比如后端的一个接口,前端的一个页面,一个组件,一个数据库表等等,是软件管理的基本单位。一个代码可能有多种类型要素。要素之间没有直接关联。
- `配置文件`:管理要素的json文件,在代码根目录下的visop里,一个代码可能有多个配置文件组成,每个配置文件管理某一类型的要素。
- `钩子文件`:每个配置文件都有一个钩子文件,内容是一些nodejs代码,用于在增删该查某个配置文件时,触发某些对实际资源操作(比如从模板文件拷贝到代码目录里,修改代码的配置,修改数据库配置等等)。在使用本工具管理资源之前,需要先编写`钩子文件`来**接入**。
- `要素模板`:钩子文件里的代码使用模板来创建要素。
### 工具解决的问题
- `降低软件复杂度`。通过可视化管理代码的方式,80%复杂的代码不需要大部分人了解,一般开发人员只需要关注业务部分即可。
- `降低使用软件或框架的难度`。将软件或框架20%关键业务抽象成要素,在界面增删改查,新增加功能和业务,只需要简单的在界面点击即可,不需要一开始就面对复杂的代码逻辑。
- `经验复用`。将开发过程中的精华经验固化到要素模板里,其他人可以直接使用,而不是在去重新读开发文档或者过多的沟通交流。
- `提高开发和维护的效率`。通过积累要素和模板,使得后续开发可以直接复用已有的要素和模板,提高开发效率。要素化代码本质上类似于微服务的概念,新增要素不影响已有要素的功能,结合每个要素后续会实现自动化测试,保证修改的要素功能正常,从而使得代码维护起来更加方便。
- `降低软件开发成本`。由于软件开发和维护的效率太低,导致现在开发一个软件的成本很高,另外很多软件在升级时比较困难。希望后面能够通过积累不同的要素、组件、系统和框架,来快速开发一个可以方便维护的软件。
- `创造更美好的软件世界`。这个有点虚,也许最终能够实现。重新梳理现有软件,要素化和重新编织组合,将开发者从重复繁琐的码农工作中解放出来,这些重复性工作通过界面点击就可以完成,让程序员去研究和探索新的技术,去发挥自己的创造性价值。让软件对于普通人不再神秘,普通人也可以像使用视频软件一样去编辑一个软件,通过软件去解决现实问题。
### 工具的原则
- `简单方便`。使用简单,接入方便,扩展改造方便。
- `开放开源`。可以与任何技术和系统对接。
- `解决问题`。不是为了做而做,而是为了解决软件开发过程中的问题。
### 安装
Prerequisites: [Node.js](https://nodejs.org/en/) (>=6.x, 8.x preferred), npm version 4+ and [Git](https://git-scm.com/).
``` bash
$ npm install -g visop
```
### Usage
``` bash
$ visop start -p /home/codepath
```
Example:
``` bash
$ cd /home/codepath
$ visop start
```
### visop目录结构
### 管理界面操作指导
- 打开管理界面,默认为[http://localhost:8050](http://localhost:8050)
- 默认进入配置管理界面,管理当前项目所有配置文件,每个配置文件管理项目的某一类`要素`
- 每个配置文件对应侧边栏的一个子菜单项。每个配置文件的管理界面由三部分组成:数据管理,字段管理,配置管理。数据管理页面中的表格,每一行对应项目的一个`要素`。
### visop使用案例
- express后端接口管理,待完成
- [vue前端路由管理](https://github.com/zhenyuan2015/visop-vue)
### visop接入指南
- 待补充
### 后续开发计划
- 账户管理
- 权限管理
- 管理多个项目
- 管理mysql数据库的模板
- 管理docker部署的模板
- 自动化测试
- 自动化接口文档
- 微服务
- 前端组件积累和管理
- 拖拽开发前端组件和页面
- 管理端除了表格外其他呈现方式
### License
[MIT](http://opensource.org/licenses/MIT)