个人进阶

The most frequent question for a coder is, How to grow and be stronger! — By Caukie.

  • 时刻进行记录,适时归纳、整理、复盘;

  • 开发工具、排查指令、文档操作等工具的使用,并且能够尽量使用快捷键;

  • 培养良好的开发习惯,减少无效操作;

  • 保持头脑清醒,多思考,少走弯路;

  • 关注并跟进暴露的问题,不留死角;

  • 目标清晰

  • 及时沟通

  • 主动学习

  • ownership意识

  • 追求极致

  • 刨根问底

  • 站在更高层次看问题

  • 向上管理

  • 适时总结

  • 知行合一

方法论浅谈

In the world of programming, everything is complex and try to be chaos! — By Caukie.

  • 设计的复杂性(需求变更,理解误差,描述不清)
  • 开发的复杂性(技术选型,代码实现,测试)
  • 运维的复杂性(打包发布,线上监控)
  • 使用的复杂性

  整体项目的复杂性不会变化,只是将复杂性分拆转移到哪个阶段,并做好边界控制,以将不可控的复杂度转变为可控的复杂度!
  比如DevOps期望通过将“开发+运维”生命周期的流程标准化,引入一系列工具以降低复杂度(实际这里的复杂度只是实际落到“开发+运维”这两个阶段的复杂度);而实际上,工具的使用和维护则额外引入了新的复杂度。当然由于工具的引入,虽然无法降低整体复杂度,但是却能够实际降低“开发+运维”的阶段中,人为操作的复杂度,提升工作效率。   团队越大,分工越细致,也就是一个复杂度分拆的过程,将复杂度尽量控制在各个子节点进行控制,但是额外增加了节点之间协调的复杂度。类似的,开发中引入框架,平台也是希望降低开发复杂度,提升开发效率,极端的,使用低代码平台,可以直接降低开发门槛,交由非专业人员操作。而这一系列动作也是基于框架,平台自身复杂度被内聚约束,一旦这部分复杂度被泄露,则反而会放大开发的复杂度。

聚焦:
如何高效的解决问题!—— 开发角度即研发效能

趋势:
整体复杂度不变的情况下,

  • 1,分工会越来越细致,每个节点复杂度被不断稀释,而协调各个节点的复杂度则随之上升;
  • 2,封装层级会越来越深,复杂度不断被内聚到平台内部,开发复杂度下降,门槛越来越低,但是平台自身的复杂度则越来越高!编程语言的演进是如此,Spring是如此,Mybatis是如此,DevOps亦是如此。