一个研发的自我修养
理解软件的目标
软件是为人服务的,这是软件的终极目标。无法帮助人的软件,无论它有多么的智能,都没有任何价值
软件是设计出来的
下面是一些设计参考维度
- SOLID 原则
- 可维护性
- 成本(Infra)
- 性能标准
- 安全性
- 开发效率
设计系统,使其能够尽可能轻松地由开发人员创建和维护,以便它们能够尽可能地有帮助,并持续保持
理解需求
正确的理解需求,是区分开发人员能力的关键指标。
复杂的系统,大都是misunderstanding造成的
控制复杂度
一个暴论,80%的软件都应该是简单实现。炫技是不可取的,控制你的技术冲动
控制复杂性是计算机编程的本质 -- Brian Kernighan
重视可维护性
简单性和复杂性是影响代码维护的两个主要因素。任何软件的易于维护与其单元部分的简单性成正比。维护的工作量与软件的复杂性成正比。
重视任意一个小功能的实现和可维护性,积跬步至千里
优先级
哪些需求的优先级更高呢?
先拿一个公式,感知一下,先列出三个关键指标:
- 需要变更有多值得去做?(D)
- 需求变更的价值是?(V)
- 实现的成本?(E)
需求变更的可取性 D=V/E
任何需求变更的可取性与变更的价值成正比,与实施变更所需的工作量成反比。
回到问题,那些能够带来很大价值且所需成本较小的变更“更为优先”。