开发者工具matters!
导言
很多同学对于开发工具的理解是这样的。开发工具仅仅是一个帮助开发人员进行简化工作流程的工具,如果好用当然好了,但是也不是必须的。
真的是这样吗?在本文和后续的文章中,我将为大家答疑解惑,为什么说开发工具非常重要,甚至对于产品和业务也是如此。
开发者工具v.s.研效工具
开发工具是研效工具吗? 这个问题是我最经常听到的一个问题。从大的概念上看,开发工具当然是研效工具。任何提高开发者效率的工具都是研效工具。从我们现在已经非常熟悉的CICD平台,可观测工具,开发脚手架,甚至IDE都可以算做研效工具。但是,我这里讨论的开发者工具主要讨论的是与开发过程中的innerloop,即编码-运行-调试这个与开发者更直接相关的开发者工具。
因为开发人员每天都会使用这些开发者工具,所以一个开发者工具是否能够真正解决开发过程中的问题很大程度上影响了开发效率和产品质量。
开发者工具能给我们带来什么
首先,在讨论开发者工具的价值之前,我想先聊聊开发者最关注的问题。一个开发团队中有多种角色,可能一个人同时戴了多顶帽子,但是我们讨论的基础是角色。
Developer(开发)
开发同学最关注的是我怎么能够清晰明确的开始我的业务逻辑的开发。 其他跟业务逻辑无关的代码最好能够帮我自动生成,我不需要关注。我想这是绝大多数开发同学的心声。 那么, 如何明确的解决这个问题,在云原生和微服务架构的时代里变成了很多开发者工具解决的问题,我相信大家也发现开源社区有大量的这类工具,针对不同的使用场景来配合我们的工作。
Technical Lead(技术负责人)
技术负责人关注的是我们的产品如何实现,通过合理的架构设计来完成特定的产品功能的同时,保证系统和业务的稳定性和可靠性。在云原生时代,我们可以通过开发者工具来具体实现技术负责人的要求。举一个简单的例子,如果技术负责人希望实现外部依赖的版本管理,可以通过Monorepo,即大仓来实现对外部依赖的管理。开发者工具可以通过实现对Monorepo的支持,在开发团队内形成一个完善的第三方工具和library的管理,对于技术负责任的工作也是一个非常好的支持。
SRE(系统可靠性工程师)
随着云原生应用的渗透,越来越多的团队有专职或者兼职的SRE来负责系统的稳定性和安全性。开发者工具可以通过内建常见的系统稳定性的设计,例如流量管理、服务降级、名字服务集成等,可以大幅度标准化系统的维护流程,帮助SRE通过自动化的手段实现系统的自运维,提高系统的可靠性。一个高可靠性的系统可以让开发人员更多的关注业务逻辑,减少团队的工作负载(workload),对整个团队的交付效率和士气都有很大的帮助。
Security Analyst(安全工程师)
安全工程对于一个团队来说非常容易忽略,尤其是在团队的业务刚刚开始起步的时候。但是如果出现安全性事件,对于业务,乃至整个公司都会有非常大的影响。开发者工具可以通过内建安全性的支持,例如内部集成密钥管理(KMS)、配置管理、数据安全管理的能力,对于整个开发团队来说可以在项目的开始阶段就默认引入基本的安全机制,减少安全工程师的工作量,让安全工程师专注于更加专业的安全架构设计。
Skemaloop云原生服务开发套件
Skemaloop云原生开发套件就是通过通过API的协议管理、代码脚手架等能力,将以上提及的服务代码模板、Monorepo原生支持、集成可观测、北极星服务和APM、七彩石配置集成等各方面,满足开发、运行和调试这个innerloop中遇到的各种开发问题。
Skemaloop的详细信息,您可以通过以下网址查看。
https://skemaloop.dev