五诫
楔子
随着团队的扩大,任务的越来越多,我Review代码的时间越来越少。 偶尔发现我反复强调的事情,团队里面还是有人犯这样那样的错误❎。 虽然在站会上我每次遇到问题就会说,可是由于项目压力大,大家开发的时候难免会不注意。 一个小的问题,可能不算什么事情,积累多了,有可能就会变成大问题。 为了减少这种可能的发生,我写下这篇文章,希望大家好好读读。
一、工欲善其事,必先利其器
我们开发代码会用到各种工具,这些就是我们手里的武器。
IDE
go语言的IDE推荐LiteIDE、VS code、goland。
文档工具
推荐使用Markdown书写文档,一般把文档放在工程的Document目录下,我们team的人要养成写文档的习惯。 随时写文档可以把当时的想法记录下来,一般过了一段时间就会忘记自己当时是怎么想的。 工具我推荐使用Remarkable,免费的,我现在写的这个文章就是使用的这个工具。这个工具可以很方便的把你的Markdown文档转换为html和pdf,便于和其他团队的交流。 还要学习一下GFM语法(https://www.zybuluo.com/techird/note/46064)
-画脑图 推荐百度脑图(http://naotu.baidu.com)
画流程图工具
推荐使用draw.io网站,好处是图片资源丰富,操作简便,大家合作修改方便,随时可以修改(只要有网络和浏览器)。
json解析成struct工具 推荐两个网站 https://transform.now.sh/json-to-go/ 这个网站比较强,javascript的json转换也包含。 http://json2struct.mervine.net/
代码检测工具
推荐使用刘浩开发的工具arthummer (https://github.com/sunnyregion/artHammer)
代码生成工具
这个一个是使用beego自带的bee api apiproject 一个是吕晓晶开发的工具
勿在浮沙建高塔
go语言语法比较简单只有25个关键词,是我使用过的语言里面关键词最少的。甚至比SQL的关键词都少。 但是go对程序员的素质要求是比较高的。目前全球使用什么编程语言开发需求最高——Golang。(https://www.oschina.net/news/104951/state-of-software-engineers-2019) go语言需要有多年的编程经验理解起来才会顺畅。尤其是要有面向对象的思想,虽然go是没有继承的,但是是使用组合实现了继承。 设计模式,我建议大家有时间都要好好读读,以后有时间我们甚至可以组织专题活动来讲这个。我现在越来越觉着设计模式很重要。
我们的项目都是基于beego开发,不过我们在这个框架上面做了拓展,从某种意义上,我们使用是我们自己的框架。 这个框架主要有两部分基石,一个是BaseController,这个是系统使用的基础函数,包括权限判断、日志、消息结构。 另一个是https://github.com/sunnyregion/util 里面有很多基础的函数,包括字符串拼接、json处理、时间处理等。
谨慎能捕千秋蝉,小心驶得万年船
- 我们所有写的日志都要使用统一的函数实(doWritLogFile)
- 使用统一的返回格式:SunnyMsgStruct
- 使用统一的返回函数:SmsReturn
- 记住不论是在函数里面还是在数据库里面,都不要使用0,1来代表true,false,要使用bool型,在SQL里面使用enum('true','false');
- 函数声明要有意义
- 函数一定要写注解
- 尽量使用github.com/sunnyregion/util/sunnyjson 来处理json字符串(这个我会持续关注最新的json技术,保持最快的json解析速度),最低程度也是使用ffjson,一定不要使用encode/json.
- json转换的struct一定要最小颗粒话,不要struct里面嵌套struct。
- 在controller里面尽量不要使用this. c. 这个是不推荐的写法,要使用缩写,比如BaseController---> bc.
- 一定注意struct里面的注释,这个非常强调,希望大家反复读一下这篇文章(go_lang_base/09.1.3.md)
- 代码一定高内聚,低耦合。
纸上得来终觉浅,绝知此事要躬行
写了这些最后还是要落在实际的使用中,要敢于大胆尝试。各种技术都可以尝试,要勇于做前人没做过的事情。 我们现在搞的人工智能本身就是前沿中的前沿。 只有自己尝试过了才知道其中的滋味。
黄沙百战穿金甲,不破楼兰誓不还
我们的口号是:2025家庭保姆。这个口号最后的和客户交互部分是我们team实现的,我们在这个伟大的事业中贡献我们自己的力量。 不积跬步无以至千里,我们就是那是翅膀的蝴蝶曆,希望刮起龙卷风。 只有对工作有着饱满的热情才可以开发出有质量的代码。
版本 | 时间 | 书写人 |
---|---|---|
V0.1 | 2019-03-16 | Sunny |