“ 阅读本文大约需要 3.47 分钟。”
21 世纪了,还信这些?
请务必保持理性,我们不猜测,依易理,重逻辑。我相信绝对有人能看懂,收获颇丰。
看文之前,先默念一遍天干地支,有基础的可以略过。
十天干:
甲乙丙丁戊己庚辛壬癸
十二地支:
子丑寅卯辰巳午未申酉戌亥
这是个女命,初学的看到甲乙丙丁,子丑寅卯肯定不知道从哪下手。
乙☐己甲
☐午亥子
“ 阅读本文大约需要 3.47 分钟。”
21 世纪了,还信这些?
请务必保持理性,我们不猜测,依易理,重逻辑。我相信绝对有人能看懂,收获颇丰。
看文之前,先默念一遍天干地支,有基础的可以略过。
十天干:
甲乙丙丁戊己庚辛壬癸
十二地支:
子丑寅卯辰巳午未申酉戌亥
这是个女命,初学的看到甲乙丙丁,子丑寅卯肯定不知道从哪下手。
乙☐己甲
☐午亥子
“ 阅读本文大约需要 3.13 分钟。”
01
—
点进来的朋友,有多少人跟我一样,盼望着春节 A 股开市的大红包呢?期望有多大,失望就有多大。
如果你点开文章是冲着代码来的,还真没有,我不荐股,文中出现的字眼均不构成投资意见。
回顾节后的两个交易日,我深刻反思,终究是定力不足,管不住手,检讨一下。
“你永远赚不到超出自己认知范围外的钱,除非靠运气。靠运气赚的钱往往靠实力亏掉。”
对于大多数 Gopher 来说,编写 Go 程序会直接在目录建立 main.go,xxx.go,yyy.go……
不是说不好,对于小型工程来说,简单反而简洁明了,我也提倡小工程没必要整一些花里胡哨的东西。
毕竟 Go 语言作为现代微服务的开发新宠,各个方面都比较自由,没有很多约束。我想,这也是它充满活力的原因。
对于大型工程而言,或者团队协作中,没有明确的规范,只会使得项目越来越凌乱……
因为每个人的心中对代码的管理、组织,对业务的理解不完全是一致的。
我参考了 非官网社区的规范 以及公司的规范,谈谈平时是怎么组织的,希望我的理解,对大家有所帮助。
.
├── api 路由与服务挂接
├── cmd 程序入口,可以有多个程序
│ └── server
│ ├── inject 自动生成依赖注入代码
│ └── main.go
├── config 配置相关文件夹
├── internal 程序内部逻辑
│ ├── database
│ │ ├── redis.go
│ │ └── mysql.go
│ ├── dao 数据库操作接口/实现
│ │ ├── dao_impls
│ │ │ └── user_impls.go
│ │ └── user.go 用户 DAO 接口
│ ├── svc_impls 服务接口实现
│ │ ├── svc_auth
│ │ └── svc_user
│ └── sdks 外部 SDK 依赖
└── service 服务接口定义
├── auth.go 认证服务定义
└── user.go 用户服务定义
正如你所看到的,我的目录结构将接口和实现分开存放了。
根据依赖倒置原则(Dependence Inversion Principle),对象应依赖接口,而不是依赖实现。
今天在业务上云的时候,遇到了些问题。最终发现问题的根源不好排查,于是——
把生产环境的全量配置文件,还有日志全量打包下载到开发机器分析!
刚入职不是很久的整个运维团队,也不是很熟悉生产环境(有时候觉得自己就是个运维哈哈哈哈),于是把机器下线后,一顿 tar 压缩,就准备 scp 发送了。
生产和开发机内网不通,都是走公网传输。很容易想到:10+G,非 80 端口,ssh 协议(自己公司约定好的),肯定特别慢,之前用的时候每秒也就 2 兆。
某同事:“我有办法让你更快点。”
我:“请教下?”
于是,他就教了我:)
nc -l 80 > all.tar.gz
nc 1.1.1.1 80 < all.tar.gz
md5sum all.tar.gz
时间多久就真的忘记了,确实比 scp 快很多!
真的很喜欢 phpmyadmin 这个 PHP 程序。
虽然工作上基本都用 Navicat,但是很多东西都是习惯了,就很难改变!
比如建表,执行 SQL 语句,界面操作肯定是 phpmyadmin 更胜一筹:
当然,phpmyadmin 也有不好的地方,比如导入/导出就没有 Navicat 那么强大,大表操作还是 Navicat 好使。
开发环境上,我还是离不开 phpmyadmin,搭建环境很容易,电脑需要安装 docker,找个终端执行以下命令即可:
docker run -d --name phpmyadmin -e PMA_HOST=10.43.3.13 -e PMA_PORT=3306 -p 8081:80 phpmyadmin/phpmyadmin
注:PMA_HOST
和 PMA_PORT
请根据实际情况填写!网上很多教程带了 MySQL,我这边不需要本地数据库,公司提供了测试数据库。
如果你都想自己搭,那也很简单,我一直都是用 MySQL 5.7,实际上 MariaDB 10.2 也可以,后者有 arm 版本,我用 M1 跑起来会舒服些。
docker run -itd --name mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mariadb:10.2-bionic
docker run -d --name phpmyadmin-mariadb --link mariadb -e PMA_HOST="mariadb" -p 8082:80 phpmyadmin/phpmyadmin