第 41 期:责任越大,越要谨小慎微
最后更新于
最后更新于
@Author : Lewis Tian (taseikyo@gmail.com)
@Link : github.com/taseikyo
@Range : 2021-08-08 - 2021-08-14
本文总字数 1575 个,阅读时长约:3 分 5 秒,统计数据来自:算筹字数统计。
*Photo by Derek Lee on Unsplash
惆怅旧欢何处,后约难凭,看看春又老。 —— 柳永《留客住・林钟商》
go-advice: List of advice and tricks for Go(GitHub)
JetBrains 编程语言调查(Golang & Python)
责任越大,越要谨小慎微
1、Go 箴言
错误是值
不要只检查错误,还要优雅地处理它们
设计架构,命名组件,文档记录细节
不要在生产环境使用 panic()
2、Go 之禅
每个 package 实现单一的目的
显式处理错误
尽早返回,而不是使用深嵌套
在启动一个 goroutine 时,需要知道何时它会停止
3、代码风格
使用 go fmt
格式化
多个 if 语句可以折叠成 switch
30 * time.Second
比 time.Duration(30) * time.Second
更好
按类型分组 const 声明,按逻辑和/或类型分组 var
检查 defer 中的错误
如果你想省略返回参数,你最好表示出来:_ = f()
比 f()
更好
用 range 循环来进行数组或 slice 的迭代
多行字符串用反引号`
用 _
来跳过不用的参数
使用 time.Before 或 time.After 比较时间戳
一个 slice 的零值是 nil
注意空结构 struct{}
,两个同结构体并不相同
在 Go 里面要小心使用 range
for i := range a
和 for i, v := range &a
,都不是 a 的副本
但是 for i, v := range a
里面的就是 a 的副本
不要依赖于计算顺序,特别是在 return 语句中
防止结构体字段用纯值方式初始化,添加 _ struct {}
字段:
对于 Point {X:1, Y:1}
都可以,但是对于 Point {1, 1}
则会出现编译错误
为了防止结构比较,添加 func
类型的空字段
移动 defer
到顶部
JavaScript 解析整数为浮点数并且你的 int64 可能溢出,用 json:"id,string"
代替
还有其他部分我没列出来,具体可以去看 >> 剩余部分
并不是说只有 go 和 python,我只是更关注这俩罢了,对于每项调查,我只列出前几位
1、golang
使用 go 的用途:工作、个人项目、兴趣
是否同时使用多个版本:no
是否使用同一个 GOPATH
:yes
是否同时编辑多个项目:yes
包管理器:Go Module、dep、govender
IDE:GoLang、VS Code、IDEA、VIM、VS、Atom
测试框架:内置测试、testify、gomock
编译系统:Go build、Makefile、Graddle
2、python
Python 3 使用的占比变化(2017-2021):53%,75%,87%,93%,97%
使用场景:web 开发、数据分析、机器学习、爬虫
最常用的 web 框架:Flask(46%)、Django(45%)、FastAPI(14%)
数据科学框架:Numpy、Pandas、Matplotlib、TensorFlow、SciPy
IDE:PyCharm PE、VS Code、PyCharm CE、Jupyter Notebook、Vim、IDEA、Sublime
当仅仅只是一个学生时,只需要负责好自己的学习任务就行了
但是当成为打工人之后,你的工作面向了消费者/客户,你的责任就变大了;
往小了说,你得对自己、对部门、对公司负责;
往大了说,你的对使用你的产品的全国、全球消费者/客户负责。
用户使用体验不佳可能会导致用户流失,从而对公司对你自己产生影响;
严重一点,如果因为自己的疏忽出现事故,那就问题大了。
所以啊,责任越大,越要谨小慎微,小心小心再小心,努力成为一个细心的人,让出现问题的概率最小化。