Coder Social home page Coder Social logo

cmd's Introduction

离线脚本框架

1、框架的作用

1.1 统一离线脚本的代码

将离线脚本工程化,避免出现存在各种语言离线脚本不好维护的局面,同时将分散在各个脚本的配置收拢管理起来,便于后续配置的管理。

1.2 解决重复的初始化工作

日志模块、redis模块、db模块在开发脚本时都是一些常用的模块,将这部分功能的初始化工作收敛在整个项目的初始化中。使得开发离线脚本时,避免这部分重复工作,同时保障核心模块的初始化统一,便于后续核心模块的维护。

1.3 业务功能复用

将代码逻辑拆分成具体的业务逻辑(service/page)和通用功能(service/data),pageService处理具体的业务需求,dataService编写通用的能力,期望达到后续开发时的能力复用。

2、特点

2.1 根据传入不同的参数,执行不同的命令

支持在命令行中传入不同的命令行参数执行不同逻辑。

2.2 根据运行环境不同支持加载不同的配置

项目启动时可以指定运行的环境,默认为开发环境。

2.3 日志文件隔离

不同命令生成的日志文件如同单独的脚本一样单独记录。

2.4 全局变量

db、redis连接池存放在全局变量中,用时直接通过名称获取对应连接。

3、目录

application 离线脚本全局变量,内部包含了redis、mysql连接池,log对象、命令行参数。
cmd 里面包含了在router注册的命令行入口
config 离线脚本的全局配置
models - dao 直接与数据库进行交互
models - errors 自定义错误对象
models - protocol 内部协议
router 命令行参数注册配置
service - page 针对具体业务的逻辑
service - data 可被不同page复用的业务处理能力
utils - 比较独立的跟业务相关性不大的工具类能力

4、快速启动

1、在cmd目录下新建一个用于处理具体命令的目录。
2、在新目录中创建一个base.go文件,编写一个实现Cmd接口的路由注册函数。
3、将这个函数写入router的map中进行命令注册。
4、将具体业务写入Cmd接口的Run方法中。

cmd's People

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

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.