软件开发人员易忽视的三条重要原则
三条软件开发原则,可能大家已经知道或只知道其中一条。看似很简单,实施却会很难。这些原则提供了一个管理复杂软件公司开发项目的强大的途径。当涉及到软件开发时,你会发现这些原则都是非常有用的。
一、不要重复自己
这个原则非常重要,不要写重复的代码。当你在构建一个大型的软件开发项目时,通常会被整体复杂性弄得不知所措。解决复杂性的最基本的策略是将系统分成若干个容易处理的部分。起初,可能想将系统按组件划分,每个组件代表了一个子系统,其中包含了完成特定功能所需的一切。
组件还可以往下再分,这样复杂性将被降低到单一职责,每个职责可以使用一个类来实现,类包含了方法和属性。方法实现算法,这些算法和算法的子部分是构成软件业务逻辑的最小知识块。只需要保证这些块不重复即可。整个系统中,每一个小的知识块只可能发生一次,每个知识块必须有一个单一、明确、权威的表征。 完美的应用程序中,每一小块业务逻辑将被封装在一个表征中,是一个变量或一个类。变量被封装在一个能够被描述为一个职责表征的类中,类被封装在一个能被描述为功能表征的组件中。这种方式称为模块化架构,是其一个重要的部分。你可以按照以下方式降低软件开发项目的复杂度,以便更容易地发现潜在的重复问题:
绘制软件架构图,并映射主要的组件,复杂的项目可能需要为每个组件绘制一个专门的架构图。如果你到达了连接职责的层级,你可能需要转换到UML图。在写代码块之前,根据它在项目中的层级命名。定义代表什么,你知道它在组件中的作用。定义表征应该展示的内容以及应该隐藏的内容。确保表征不依赖于另一个复杂层级的表征。当发现正写的代码与之前写过的代码类似或相同,就需要花时间来考虑正在做什么,并确保不重复。
二、尽量简单、一目了然
最简单的解释通常是最正确的。做到简单的同时,还要做到一目了然。也可以这样理解,将一个软件做得连菜鸟都会用。这就是用户体验的最高境界了。这样才能做到简单且一目了然呢?归结于软件开发的可维护性和可理解性。体现在需求设计阶段,考虑如何将客户的需求转变成一个可实现组件时,尝试确认以下部分:
收益和努力不调的功能高度依赖其他功能的功能可能变得复杂的功能如果一个任务看起来很复杂,试想一种创造性、独特的方式。花点时间去讨论关键点,看是否有其他更合适的方案。
三、适可而止
在软件开发项目中,往往80%的时间花费在20%的功能上。准备列出一个项目清单时,考虑以下问题:
通过降低抽象的层级,来实现低复杂度,根据特性将功能独立出来,适度接受非功能性需求,识别耗时的任务,解决问题。这些原则看似简单,但在软件开发中,会有各种各样的问题出现。一旦强迫开发人员应用这些原则,会发现创造出一个完美的软件已经很近了。