- 全栈工程师的不足:过度关注技术的数量,忽视了定义问题,互相协作的能力。最终是,花了大价钱,招到读得懂语法,读不懂业务的人,
- 软件开发的核心问题:处理业务复杂度,并有效传递知识,达成更高的协作效率。
- 举个例子:作为一个前端,企业要求我搭建一个埋点平台,在本身埋点 sdk 之外,还涉及到监控平台的自动化部署。从技术上来说,难度并不高。如果让前端去部署,则需要:向运维申请服务器权限,理解现有的服务器目录结构,构建单独的镜像,做完后让运维团队审核。而直接让运维去做,这些成本完全是可以省下来的。 前端学习运维相关知识,并不是为了深挖后去干运维的活,而是在明确这个任务需要运维的协助后,尽早地去申请资源,达成更高的协作效率。
- 业务分析与建模:通过领域驱动设计,进行业务建模,明确上游业务真正要什么。
- 任务分解:统一且合理的架构分层。比如 smart-domian 与微服务。如果一个团队中,5 个开发有 5 种分解方案,那么这个团队的技术负责人就等于没有做任何事情。
- 构造安全网:测试与编码,给下游的测试部门,提供真正可验证的功能,而不是全靠测试点点点。
- 部署与上线:持续集成、持续部署、持续交付