《程序员七问》反思笔记
一直以来只是专心钻研更多的技术,但是工作中大部分时间在写业务代码,感觉在做机械重复劳动,高级的技术却没有在工作中实践,所以也没有长进。发展遇到了瓶颈,感到些许迷茫。
今天看到了公众号“码农翻身”的《程序员七问》一文,对我来讲,确实很有帮助,摘录下来,以用这“七问”来不定时自检。
1、我是否对系统的业务有了整体的了解?
我能不能向其他人(如面试官)描述该系统的业务:
1)系统有哪些角色,这些角色如何跟系统交互。
2) 系统有哪些主要流程、次要流程,都要那些角色参与其中。
能否对现有的业务进行提炼、流程优化,更好的为客户解决问题,让自己的产品处于行业领先。
2、系统的整体架构是什么样子?
系统分为那些模块、组件、如何部署,怎么交互的,用的什么协议?要能够熟练画出系统整体框图、关键流程图、交互图等。
不能够只守着自己的一亩三分地,要放眼整个系统。
3、系统用到了哪些技术和框架,我是不是都已经精通了?
技术和框架选型的场景,解决了什么痛点问题。有没有优化的空间和替代方案。
4、我是不是已经精通了多个模块甚至整个系统的代码?
在精通自己负责模块的代码后,有条件一定要熟悉整个系统代码。对于一bug,能否快速定位到源头,不管是不是自己的模块。
对于“烂代码”,“坑”,我是否有能力,有勇气去重构。或自己私底下写出更好的开源项目。
5、对于系统的非功能需求,我是不是掌握了?
安全、性能测试、高可用、可扩展等是怎么实现的
6、我是不是已经了解、甚至掌握了系统使用的工程实践?
系统怎么做集成构建、测试、部署、监控?用的哪些工具?
现在有什么问题?我能不能改进它?
7、我在团队的地位如何?
同事有技术或业务问题,会不会第一时间想到找我来帮忙?
我能不能再团队讨论中发出自己的声音和见解,并且被别人尊重?
我是不是经常可以给大家做技术分享?
我们要脱离自己的“一亩三分地”,aim higher,慢慢成为一名有影响的Leader