工作方面的总结
时序图和流程图
这两个是相辅相成的东西,体现了程序员开发的专业性。不画图的程序员普遍不会很优秀。
- 做什么事情之前都要花时间去思考流程,理清业务,输出就是流程图和时序图
- 流程图适合于某个特定的单点交互,或者是用户操作在系统中运转
- 时序图适合复杂交互,尤其是代码服务之间的复杂交互
用什么技术
关系型数据库?Redis?Kafka?
为了追求速度我可以不用 Redis 而用关系型数据库 MySQL,为什么?业务现成的 MySQL,加了索引效率倍增,为什么需要 Redis?
Redis 的消息队列和 Kafka 的消息队列有什么不同?如果不知道有什么不同最好还是不要乱用。
如何重构
- 首先搞清楚之前需求
- 然后搞清楚现有需求
- 其次基本理清楚业务逻辑,注意是基本理清,完全理清不可能
- 重构第一次
- 重构完成,检查代码,再重构第二次,重构的点尽可能划分的小,好写单元测试验证结果
一次性成功基本不可能
为什么要用资源池
- 为了方便管理资源