一个研发的自我修养

理解软件的目标

软件是为人服务的,这是软件的终极目标。无法帮助人的软件,无论它有多么的智能,都没有任何价值

软件是设计出来的

下面是一些设计参考维度
  1. SOLID 原则
  2. 可维护性
  3. 成本(Infra)
  4. 性能标准
  5. 安全性
  6. 开发效率

设计系统,使其能够尽可能轻松地由开发人员创建和维护,以便它们能够尽可能地有帮助,并持续保持

理解需求

正确的理解需求,是区分开发人员能力的关键指标。

复杂的系统,大都是misunderstanding造成的

控制复杂度

一个暴论,80%的软件都应该是简单实现。炫技是不可取的,控制你的技术冲动

控制复杂性是计算机编程的本质 -- Brian Kernighan

重视可维护性

简单性和复杂性是影响代码维护的两个主要因素。任何软件的易于维护与其单元部分的简单性成正比。维护的工作量与软件的复杂性成正比。

重视任意一个小功能的实现和可维护性,积跬步至千里

优先级

哪些需求的优先级更高呢?

先拿一个公式,感知一下,先列出三个关键指标:

  • 需要变更有多值得去做?(D)
  • 需求变更的价值是?(V)
  • 实现的成本?(E)

需求变更的可取性 D=V/E

任何需求变更的可取性与变更的价值成正比,与实施变更所需的工作量成反比。

回到问题,那些能够带来很大价值且所需成本较小的变更“更为优先”。