H8

agenda 开发项目

需求描述

业务需求:design.md
功能需求: 设计一组命令完成 agenda 的管理,例如:
agenda help :列出命令说明
agenda register -uUserName –password pass –email=a@xxx.com :注册用户
agenda help register :列出 register 命令的描述
agenda cm … : 创建一个会议
原则上一个命令对应一个业务功能
持久化要求:
使用 json 存储 User 和 Meeting 实体
当前用户信息存储在 curUser.txt 中

开发需求

团队:2-4人,一人作为 master 创建程序框架,其他人 fork 该项目,所有人同时开发。团队 不能少于 2 人
时间:两周完成
项目目录
cmd :存放命令实现代码
entity :存放 User 和 Meeting 对象读写与处理逻辑
其他目录 : 自由添加
日志服务
使用 log 包记录命令执行情况

第一周任务

按 3.3 安装 cobra 并完成小案例
按需求设计 agenda 的命令与参数(制品 cmd-design.md)
master 创建项目,提交到 github, 其他人 fork 该项目
每人分别创建属于自己的命令(命令实现 Print 读取的参数即可),提交并归并。确保不同人管理不同文件,以便于协作
如时间富余,请完成 User 和 Meeting 实体 json 文件读写
思考

假设你要建立项目 testcobra,你必须建立在 $GOPATH\src$your_git_account$repo\testcobra 目录下,才能正常实现协作。采用 golang 术语,$GOPATH\src$your_git_account$repo\ 是你当前的 工作区 。

问题:如果你的项目不能公开代码,甚至不能使用 github,如何实现多人协作呢?
第一周任务博客

第二周任务

添加 log 服务,记录用户的操作过程,以及关键的输出
约定 entity 和 cmd 之间的接口服务,实现 agenda,并在 README.md 文件中给出简要使用说明和测试结果
(可选)在项目中添加 .travis.yml 文件,并添加测试程序。让你的项目“持续集成” – “CI” 了!
思考

为什么 cobra 的设计,让我们构建命令行程序变的如此简单?如何持续提升我们的设计能力。

可选任务(博客)

由于课程 golang 部分非常快,项目涉及许多知识点,需要您分享经验和英文资料翻译,以帮助您的同学入门。主要包括:

运用面向对象的设计思想,仅使用 pflag 包,实现一个简版 pcobra 库取代 cobra(不需要 fork cobra)。并使得你的 agenda 项目能正常运行
git 和 travis 在项目中的使用经验
log 的使用与 debug 技术
go 语言的一些较难理解的知识
分数,就是你贡献的回报! 请在课程群博客收集提交博客 url

评价标准

提交与贡献均衡性与持续性(使用 Github Insights 分析)
Readme 的质量
部分代码检视

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值