如何成为优秀的技术主管?你要做到这三点
如何成为优秀的技术主管?你要做到这三点
技术主管(Tech Leader,简称TL)是开发团队中的关键角色,既要负责软件系统的最终交付,又要像程序员一样参与具体开发工作。本文将从开发规范、开发流程、技术规划与管理三个方面,分享如何成为一名优秀的技术主管。
开发规范
开发规范是确保代码质量和系统稳定性的基础。以下是一些关键规范:
命名规范
命名规范对于项目结构的清晰性至关重要。具体包括包命名、类的命名、接口命名、方法命名、变量命名和常量命名。
统一IDE代码模板
统一IDE代码模板可以避免不同开发人员使用不同模板带来的差异化以及代码merge成本。使用IDEA的同学可以安装Eclipse Code Formatter插件,和Eclipse统一代码模板。
Maven使用规范
所有二方库、三方库的版本统一定义到parent pom里,这样所有业务应用工程统一继承parent pom里所指定的二方库、三方库的版本,统一框架与工具的版本。同时要求生产环境禁用SNAPSHOT版本。
代码Commit规范
基于Angular Commit Message规范生成统一的ChangeLog,清晰的commit信息生成的release tag,对于生产环境的故障回滚业非常关键。
统一API规范
统一Rpc服务接口的返回值ResultDTO,把ResultDTO定义到common-api顶层二方库,这样以来各个应用不需要来回转换返回结果。
异常处理规范
异常处理不仅仅是狭义上遇到了Exception怎么去处理,还有各种业务逻辑遇到错误的时候我们怎么去处理。service服务层捕获的异常主要包括BusinessException(业务异常)、RetriableException (可重试异常) 到 common-api,定义一个公共异常拦截器,对业务异常、重试异常进行统一处理。
分支开发规范
针对分支开发规范,需要指定如下标准:
- 分支的定义(master、develop、release、hotfix、feature)
- 分支命名规范
- checkout、merge request流程
- 提测流程
- 上线流程
- Hotfix流程
统一日志规范
日志是产品必不可少的一个功能,具备可回溯性、能够抓取问题现场信息是其独一无二的优点。这里着重强调一下针对异常的日志规范:
- WARN和ERROR的选择需要好好考虑
- 记录哪些信息,最好打印一定的上下文
- 记录了上下文信息,是否要考虑日志脱敏问题?
统一MYSQL开发规范
表的设计和 API 的定义类似,属于那种开头没有开好,以后改变需要花10x代价的,需要有一个好的标准。
统一工具与框架
对开发过程中所用到的公共组件进行了统一抽象与封装,包括 DAO 层框架mybatis、cache 组件 jetcache、httpclient组件、common-tools (公共工具),同时抽取出全局唯一ID、分布式锁、幂等等公共组件,把以上公共组件进行集成到各个应用,进行统一升级、维护。
开发流程
目前团队的开发模式还是基于传统的瀑布开发模式,整体开发流程涉及需求评审、测试用例评审、技术架构评审、开发与测试、验收与上线,这里主要基于TL的角度从需求管理、技术架构评审、代码评审、发布计划评审几个关键重点环节进行探讨。
需求管理
需求管理的第一步就是要梳理不同来源的需求,主要包括从产品定位出发、外部用户反馈、竞争对手情况、市场变化以及内部运营人员、客服人员、开发人员的反馈。技术TL对产品有足够认知和把控,简单来说就是我的产品是为了满足哪些人的哪些需求而做,产品需求一定要根植于客户的需求、根植于客户的环境。
技术架构评审
基于架构评审,我们的目标核心是要满足以下几点:
- 设计把关,确保方案合格,各方面都考虑到了,避免缺陷和遗漏,不求方案多牛,至少不犯错。
- 保证架构设计合理和基本一致,符合整体原则。
- 维持对系统架构的全局认知,避免黑盒效应。
- 通过评审发掘创新亮点,推广最佳实践。
架构评审需要以下几点:
- 技术选型
- 高性能
- 高可用
- 可扩展性
- 可伸缩性
- 弹性处理
- 兼容性
- 安全性
- 可测性
- 可运维性
- 监控与报警
代码评审
CodeReview 是保证代码质量非常重要的一个环节,建立良好的 CodeReview 规范与习惯,对于一个技术团队是一件非常重要核心的事情。CodeReview 重点关注如下事情:
- 确认代码功能
- 编码规范
- 潜在的BUG
- 文档和注释
- 重复代码
- 复杂度
- 监控与报警
- 测试覆盖率
发布计划评审
涉及到10人日以上的项目,必须有明确的发布计划,并组织项目成员统一参加项目发布计划review,发布计划主要包含如下几点:
- 明确是否有外部依赖接口
- 发布前配置确认
- 二方库发布顺序
- 应用发布顺序
- 数据库是否有数据变更和订正
- 回滚计划
- 生产环境回归测试重点Case。
技术规划与管理
系统健康度巡检
系统巡检重点要关注如下几点:
- 系统指标
- 慢接口
- 慢查询
- 错误日志
技术规划
技术规划通常由团队的TL负责,每个财年TL需要从大局的角度去思考每个季度的技术优化规划,去偿还技术债。这里的技术规划包括如下几点:
- 架构优化
- 性能优化
- 弹性与可靠性
- 可伸缩
总结
技术TL需要具备如下素养:
- 技术视野良好,解决问题能力与架构设计能力出色。
- 动手能力要强,学习能力出色。
- 同时也需要具备良好的沟通和管理能力。