CLI 命令行实用程序开发实战 - Agenda

**

CLI 命令行实用程序开发实战 - Agenda

**
1.概述
  命令行实用程序并不是都象 cat、more、grep 是简单命令。go 项目管理程序,类似 java 项目管理 maven、Nodejs 项目管理程序 npm、git 命令行客户端、 docker 与 kubernetes 容器管理工具等等都是采用了较复杂的命令行。即一个实用程序同时支持多个子命令,每个子命令有各自独立的参数,命令之间可能存在共享的代码或逻辑,同时随着产品的发展,这些命令可能发生功能变化、添加新命令等。因此,符合 OCP 原则 的设计是至关重要的编程需求。

任务目标
1.熟悉 go 命令行工具管理项目
2.综合使用 go 的函数、数据结构与接口,编写一个简单命令行应用 agenda
3. 使用面向对象的思想设计程序,使得程序具有良好的结构命令,并能方便修改、扩展新的命令,不会影响其他命令的代码
4.项目部署在 Github 上,合适多人协作,特别是代码归并
5. 支持日志(原则上不使用debug调试程序)

agenda开发 (在虚拟机上完成)
首先下载cobra:
使用命令:go get -v github.com/spf13/cobra/cobra
此时会产生错误,于是在$GOPATH/src/golang.org/x 目录下用 git clone 下载 sys 和 text 项目:

git clone https://github.com/golang/sys.git
git clone https://github.com/golang/text.git

在进行安装即可。

首先使用cobra建立项目:

mkdir $GOPATH/src
cd $GOPATH/src
cobra init --pkg-name=agenda

即在agenda文件夹中有:LICENSE, main.go, cmd文件
其中cmd文件夹里又有root.go文件

使用cobra加入register和login的go文件:

cobra add register
cobra add login

register:
创建User 结构体,方便后面进行使用:
CLI 命令行实用程序开发实战 - Agenda_第1张图片
读文件:
CLI 命令行实用程序开发实战 - Agenda_第2张图片
写文件:
CLI 命令行实用程序开发实战 - Agenda_第3张图片
判断为空:
CLI 命令行实用程序开发实战 - Agenda_第4张图片
通过range遍历判断重复:
CLI 命令行实用程序开发实战 - Agenda_第5张图片
定义flags:
在这里插入图片描述运行结果:
CLI 命令行实用程序开发实战 - Agenda_第6张图片
login:
判断是否为空:
CLI 命令行实用程序开发实战 - Agenda_第7张图片
判断如果username和password同时满足,即可成功登录:
CLI 命令行实用程序开发实战 - Agenda_第8张图片
定义flags:
在这里插入图片描述运行结果:
CLI 命令行实用程序开发实战 - Agenda_第9张图片

Go Online项目地址: http://www.go-online.org.cn:8080/share/bmohbim76kvs669u24j0?secret=false

你可能感兴趣的:(CLI 命令行实用程序开发实战 - Agenda)