新闻资讯

新闻中心

当前位置: 首页 > 新闻中心 > 软件开发定制

软件开发要遵循的那些个原则,你了解几个?

2023-02-16 14:30:58

在做软件开发的时候,有这么几个问题是一定要掌握的先后顺序的,其实也就是原则问题,只有在这些节点上掌控好软件开发的细节,才能做出更为完善的系统,接下来,云南来可云小编给大家来分享一下这几个原则。

1、剔除无效状态

我把这一点排第—,是因为我认为它是比较重要、又比较强大的原则之一。

你可能在定义类型时听到过这个词,但其实这个原则适用于所有与表示数据相关的地方——例如数据库设计。

它不仅可以减少系统的状态数量(从而变得更简单),还能减少无效状态的数量!你的系统不需要处理这些无效状态,因为它们在你的程序中实际上是不可表示的。

这不只是一个小技巧,它可以极大简化你的系统,并防止出现各种类型的 bug。这有一些例子。

2、数据一致性让系统更简单

对数据施加一致性规则,减少了系统需要处理的状态数量。这是从上一个原则派生而来的。

定义

这里说的是一致性的普遍含义:即数据遵循某些规则,并且在任意时刻都始终遵循这些规则。这一定义与 ACID 有关,但不要与 CAP 混淆起来了。

规则可以是任何东西,例如,你的信用永远不能变成负数,或者私密的帖子不应该被其他人看到。它不限于外键或惟一索引,尽管它们也是有效的规则。

和数据库一样,应用程序也可以通过使用 ACID 事务来加强一致性。如果能在数据库级别强制保持一致性是比较好的,但在实际中,对稍微复杂一点的东西来说,这样做并不常见。

实用建议

任何限制或损害一致性的行为都会导致复杂性。这就引出了以下这些实用的建议:

让系统更简单:

更少的数据库 (理想情况下是一个)

规范化,减少冗余数据

一个“好的”数据库设计

ACID 事务

更多的数据约束

让系统更复杂:

多个数据库

冗余或非正规化数据

糟糕的数据库设计

较少(或没有)数据约束

当然,有时候让系统变复杂也是有正当理由的,我并不想让复杂性变成一个“肮脏的”词。请参阅后面的一个原则“杀鸡不要用牛刀”。

我认为这个原则是当今软件工程中被低估的原则之一。一致性问题经常被忽视。很多问题,我敢说大多数问题,基本上都是一致性问题——数据不符合某些期望。

参见附录,了解不一致性是如何导致复杂性的。

3、数据设计先行

这个问题,“代码还是数据?”,哪一个在 10 年后更有可能继续存在。

代码可以被丢掉重写,但数据很少会这样。

数据比代码更重要。代码的唯目的是转换数据。

在设计新系统时,尽量先从数据库和数据结构开始,并在此基础上开发代码。要考虑可以在数据上施加的约束并实施它们,理想情况下是通过表示数据的方式进行的。

代码设计是数据设计的下一步。数据模型越简单、越一致,代码就会越简单。

4、杀鸡不要用牛刀

这是软件开发人员比较常犯的错误。

这个原则是说,当你在做需要付出复杂性代价的权衡时,要确保权衡的必要性得到经验证据的支持。

常见错误:

试图构建一个复杂的“可伸缩”系统,可以伸缩到你可能永远都不需要的规模。

在不考虑需求或成本的情况下,让服务尽可能地小。

在非性能瓶颈的地方优化性能,增加不一致性或复杂性。

建议:

尽可能从比较简单、正确的系统开始

对性能进行度量

如果不能解决实际问题,就不要付出复杂性代价或违反其他原则。

有些优化可以不进行度量,因为它们的成本非常低或为零。例如,为了保证你想要执行的操作具有你想要的性能,使用正确的数据结构。

的确,有时候经验本身就能告诉你是否做出了正确的权衡。但如果你能证明,那就更好了。

当你必须做出选择时,请选择正确性和简单性,而不是性能。

在某些情况下,正确而简单的代码是性能较好的代码!

避免为了局部简单性而增加全局复杂性

也就是避免为了让系统的一部分变得更简单,而导致整个系统变得更复杂。

这种交换通常是不平等的。追求局部的简单性会导致全局复杂性的增加,而且是数量级的。

例如,使用较小的服务可以让这些服务变得更简单,但一致性的降低和对更多进程间通信的需求让系统变得更加复杂。

6、识别内在的复杂性

有时候事情本身就很复杂,你不能把问题简单化。

任何这样的尝试都只会让系统变得更加复杂。

7、使用的技术越少,系统就越简单

深入理解一小部分技术要比只是表面理解很多技术好。

更少的技术意味着更少的东西要学习和更少的运维复杂性。

8、集中精力学习概念,而不是技术

不要太关心技术的复杂细节,因为你可以随时查阅它们。你要学习底层的基本概念。

技术会变化,概念却是永恒的。你学到的概念将被用在更新的技术中,你就可以更快地学会新技术。

例如,不要太关注 React、Kubernetes、Haskell、Rust 的表面细节。

9、代码一致性很重要

有时候,具有一致性的代码比“正确”的代码更重要。如果你想要改变代码库中某些代码的行为,就要修改它所有的实例。否则的话,就只能忍受。

代码的可读性更多地与一致性(而不是简单性)有关。人们通过模式识别来理解代码,所以请重复 (和记录) 模式!

10、分享原则很重要

如果你和队友之间的共同原则越多,就能越好地在一起工作,而且你会越喜欢和他们在一起工作。


近期浏览:

相关产品

相关新闻

Copyright © 云南来可云信息技术有限公司 All rights reserved 备案号:滇ICP备2021007612号-2