编程规范

语言

https://time.geekbang.org/column/article/8700

Scala

http://twitter.github.io/effectivescala/index-cn.html

JavaScript

http://airbnb.io/javascript/
https://github.com/airbnb/javascript

Java

《阿里巴巴Java开发手册》
https://www.infoq.cn/article/2014/02/google-java-coding-standards
Java项目目录用-分割单词。

Python

https://www.python.org/dev/peps/pep-0008/
https://google.github.io/styleguide/pyguide.html

Bash Shell

https://google.github.io/styleguide/shell.xml
if 使用双方括号[[
https://stackoverflow.com/questions/669452/is-double-square-brackets-preferable-over-single-square-brackets-in-ba

数据库

日志别存在数据库里,存到文件里,要不然抽出来拿去分析费劲。传统关系型数据库很难同步出来。
关系表分三大类:实体、关系、运营流水
info(实体):user_info、app_info
opt(关系):user_app_opt
flow(运营流水):login_flow

Redis

https://www.infoq.cn/article/K7dB5AFKI9mr5Ugbs_px
https://developer.aliyun.com/article/531067

MySQL

《阿里巴巴Java开发手册》
https://mp.weixin.qq.com/s?__biz=MzUzMTA2NTU2Ng==&mid=2247486484&idx=1&sn=ffa69b0c446ecb969c82076c41a111ad&chksm=fa4973a5cd3efab3413da52abfe43b1ebc55f2e44dfd94c86623f2f3b532cb420c65f7b7a7de&scene=27#wechat_redirect
表必备三字段:id, created,updated。 说明:其中 id 必为主键,类型为 bigint unsigned(有争议)、单表时自增、步长为 1。

HBase

RowKey不宜过长,会影响性能。

通用

脱离语言的字段命名

字段尽量不用起名type,Scala中是关键字。
JSON字段用下划线命名。
Hive中库名、表名、列名用下划线命名。所有名字与业务库保持一致,但如果业务库用的驼峰我们要转成下划线。
Redis用:分割命名空间。
C/C++/Rust/Python用下划线命名变量其他语言都是小驼峰。