🧘♂️
我谈技术管理(2):我的经验
前言
承接上一篇“技术管理是什么”,这一篇讲讲在技术管理者的职责内,我的一些思考。
系列指北
我的经验
统一并优化宏观和微观上的技术栈
无论是宏观还是微观上的技术栈,都需要技术管理者去负责管理,而管理技术栈的根本目的,是通过技术实现经营者的目标。
优化宏观的技术栈比较好理解,对技术管理者来说,就是在组织架构内统一并迭代基础设施,技术组件,开发语言和开发框架等等。一个技术团队,选择合适的基础设施和技术组件,能够降低运维和人才培养的成本,提高团队的效率,更高效的实现经营者的目标。类似的话题有很多,这里就不详细聊了。
而优化微观的工程实践和业务实践,往往容易被忽视。对Code Review的忽视和误解,就是现象之一。Code Review 不仅需要发现代码错误,检查代码风格,更需要统一开发中常见的实践方式。
如果不统一开发中一些常用的代码实践,每个团队成员都会花费时间和精力,去实现一个自己认为比较合适的实践。这不仅仅花费了个人的时间,降低了个人的工作效率,如果长此以往,团队内的代码风格差异会越来越大,甚至团队成员的研发能力的差别也会越来越大。这样不利于团队快速且稳定的发展,也不利于新人的融入。
工程实践和业务实践,我举例说明一下:
工程实践:Json序列化的统一(只说Json库,Java中常见的就有Gson,Jackson,fastjson等)、打印日志(日志库就有Logback,Log4j,slf4j等,甚至使用lombok来简化)、网络请求(举例HTTP就有Apache HttpComponents,OkHttp等)、构建脚本等等;
业务实践:返回码的定义(每个服务都不同,不利于快速定位问题)、返回结构的定义、工程目录结构的设计(不利于其他人快速Review代码)、业务相关的类设计、业务相关的命名等等。