R070.以godbart写go命令行工具
不等不靠,有囧有料。攻城狮要自己活成一道光,一团火。
godbart一共29个文件,约5600行代码,快到1.0稳定版了。
本期以godbart为话题,聊下用golang写个CLI的过程和体会。
不涉及golang的高级特性和特质功能,仅是一个入门指导而已。
@史荣久 / 2019-01-27 / CC-BY-SA-3.0
观看视频
内容摘要
- 学习一门语言,最好以用治学。
- 为何选择go,不是java,nodejs或rust。
- 头脑中始终要有奥卡姆剃刀,知道不要做什么。
- 写一手好文档,做一个好的开源作者。
- 配置文件为啥用toml,不是yaml,xml。
-
CLI如何优雅的停止和交互。
- golang部分。
- 数据类型,初始化和初始值。
- 字符串连接和格式化,以及正则
- slice,map,基础数据结构。
- goroutine, channel,go的特色。
- 基本的网络编程socket,做个监控室。
if err {}
多了很不爽。- make初始化切片,注意cap和len
- 日期格式化
2006-01-02 15:04:05.000
package
的命名和使用defer
关闭资源,for
循环。if map[T]bool
的小技巧- 会修改的或大结构体传指针,小数据传值。
go test +build
测试及覆盖率
参考资料
- effective_go@墙
- Golang 知识点总结
- go语言的值传递和指针传递
- Golang切片与函数参数“陷阱”
- Go中string转[]byte的陷阱@墙
- Golang中slice与二级指针的陷阱
- 航天飞机风格,不能简化
- Rust的工程配置为何用toml格式?
- go的CLI工具包urfave
- go的toml工具包
欢迎围观
if (you.accept(MoilionCircle.SPIRIT)) {
if(you.haveADL()){
MoilionCircle we = you.search(MoilionCircle.SLOGAN);
we.welcome(you);
}
if(you.share(this)){
We.thank(you);
We.mayFind7Moilion();
}
}
后记
经过一段身心折磨,并与片头的小朋友商量后,我个人决定,
先”暂停”坚持了四年多&月更&随性&即时&技术分享的视频。
题图:golang,大家称其为互联网时代的C,其性能与Java或C++相似,并且十分简单易学。