在本文中,我将解释这些优点中的每一个的含义,并引用其中涉及的一些众所周知的良好做法。
要生成高质量,可靠和可扩展的软件,必须学习并遵循许多良好的实践,设计模式,代码检查等。
但是他们每个人都为这七个黄金美德中的一个或几个服务:
- 效力
- 鲁棒性/安全性/可靠性
- 可维护性
- 灵活性
- 可重用性/可移植性
- 可扩展性
- 效率
在本文中,我将解释这些优点中的每一个的含义,并引用其中涉及的一些众所周知的良好做法。
为什么这个命令很重要?
我已经写下了这七个美德,根据需要对它们进行了排序,这是更必要的。但我将以向后的顺序进行说明。
假设我(一个客户)请求一个程序,并且给了我一个软件,该软件被认为在技术上是完美的。
哦,好的:据说这是完美的,但是我知道在现实世界中没有什么是完美的。因此,如果它必须失败,我宁愿它以效率失败,原因有两个:
- 如果程序拥有其他六个优点,那么开发最终的优化将容易得多。
- 尽管效率失败,但如果程序仍可扩展,我将有机会增加基础平台的功能以获得所需的吞吐量。
如果可伸缩性失败,但是程序具有可重用的部分,则我可以识别代码中的瓶颈,并用更好的组件替换它们,同时仍然重用其余部分。
如果该程序不可重用,但它很灵活,那么我可以调整我的数据,以便只要足够灵活,现有例程就可以对其进行处理。
如果程序既不灵活,我希望它至少是可维护的,因为这样我就可以对其进行探索,发现问题并进行必要的更改并构建另一个固定版本。
如果程序是一堆乱七八糟的代码行,没有可读性,组织或文档,那么我希望它至少是健壮的,因此几乎没有需要修复的可能性。
如果它既不健壮,我希望它至少是有效的,因为一个有效的程序将运行一段时间,直到发现一些弱点。并且,即使在这种情况下,程序的其他部分仍可能起作用。
最后,如果该程序甚至没有效果,那么除了从头开始编写另一个新程序之外,别无他法。而这次,确保它实现了设计的七个优点。
计划
从规划的角度来看,有一些略有不同的方法:
- 如果您只是设计一个无法确定其未来的原型,那么请着