重温软件工程术语集(四)

重温软件工程术语集(四)
最新回答
久梦由你

2026-10-27 23:39:51

重温软件工程术语集(四)错误(Errors)

解释:软件在正常情况下,出现不可控制的问题。

分类:

  • 语法错误(Syntax Errors):

    例子:变量或方法拼写错误。这类错误通常在编译阶段就能被检测到,因为编译器会检查代码的语法结构是否正确。

  • 逻辑错误(Logical Errors):

    例子:内存泄漏(指应用程序无法释放不再使用的内存,最常见的例子就是死循环语句)。这类错误在编译阶段无法被检测到,因为它们涉及到代码的逻辑执行过程,通常需要在运行时通过测试或监控来发现。

异常(Exception)

解释:软件在正常情况下,可能出现可控制的问题。

例子:文件读写操作。在进行文件读写时,可能会遇到文件不存在、权限不足等问题,这些问题可以通过异常处理机制来捕获并处理,从而避免程序崩溃。

软件应用进程类型
  • CPU密集型(CPU Bound):

    解释:软件应用主要依赖CPU计算速度。这类应用在进行大量计算时,会占用大量的CPU资源,导致CPU成为性能瓶颈。

  • I/O密集型(I/O Bound):

    解释:软件应用主要依赖I/O(文件输入流/文件输出流)计算速度。这类应用在进行大量I/O操作时,会占用大量的I/O资源,导致I/O成为性能瓶颈。

注意:以上两种应用进程类型都受内存限制(Memory Bound),即内存也是影响它们性能的重要因素。

通用唯一识别码(Universally Unique Identifier,UUID)

解释:用于计算机体系中以识别信息的一个128位标识符。

UUID如何保证唯一性:UUID通过一系列算法和随机数生成机制来确保每个生成的UUID都是唯一的。具体来说,UUID由五部分组成,包括时间戳、机器ID、进程ID、一个随机数以及一个命名空间标识符。这些组成部分的组合使得UUID在全局范围内具有极高的唯一性。

延伸:NanoId 是一种小巧的、安全的、URL友好的、独特的ID生成器。相对于UUID来讲,NanoId的代码量更小,重复率更低,生成ID的速度更快。NanoId通过一种更高效的算法来生成ID,同时保证了ID的唯一性和安全性。

NanoId的GitHub仓库

控制反转(Inversion of Control,IoC)

解释:是一种软件关注分离的设计概念,将自己的对象与函数(业务逻辑)追加到软件框架中去,由软件框架作为主体去驱动软件,从而反转程序的控制流。即软件框架(库)控制应用程序的流程,而不是应用程序调用软件框架(库)。

优点:

  • 让类与类之间不再相互依赖,降低了类之间的耦合度。
  • 易于维护与测试,因为可以通过配置或注入的方式来管理依赖关系。

缺点:

  • 随着类的增加,有太多的实例和依赖项需要管理,这可能会增加系统的复杂性。

比喻:可以把软件框架比作浏览器,把对象与函数比作浏览器插件。浏览器通过加载不同的插件来实现更多的功能,而无需关心插件的具体实现细节。同样地,软件框架通过控制反转机制来管理不同的对象与函数,而无需关心它们的具体实现细节。

依赖注入(Dependency Injection,DI):

解释:是控制反转原则的实现方式之一,将创建对象的任务转移给其他人并直接使用依赖关系。

方法:

  • 构造函数注入:在创建对象时通过构造函数传递依赖关系。
  • Setter/Getter注入:通过setter方法或getter方法来设置或获取依赖关系。
  • 接口注入:通过接口来定义依赖关系,并在实现类中注入具体的依赖对象。
  • 服务定位器:提供一个全局的服务定位器来查找和获取依赖对象。

延伸:控制反转(IoC)、依赖关系反转原则(DIP)、依赖注入(DI)和IoC容器之间的关系图如下:

软件设计范式

约定优于配置:

解释:目的按照约定的规范编程(约定软件目录结构,代码命名),减少软件开发人员需做决定的数量(大幅度减少配置的工作量),提高开发效率。

缺点:

  • 增加学习成本,因为开发人员需要学习并遵守这些约定的规则。
  • 强迫软件开发人员必须遵守此规则,可能会限制他们的创造力。
  • 同时会让软件开发人员忽略一些软件实现的基本原理,导致代码质量下降。
Web软件结构模式
  • C/S模式(Client/Server):

    解释:客户端与服务器的结构模式。

    特点:需要安装并运行客户端软件才能访问互联网服务,不支持跨平台。客户端维护成本高,但能处理较复杂、专业性高的业务能力,安全性较高,能减轻服务端运行压力。

    例子:QQ、迅雷。

  • B/S模式(Browser/Server):

    解释:浏览器与服务器的结构模式。

    特点:仅使用浏览器就可以访问互联网服务,无需安装软件,即开即用,维护成本低。但安全性较低,服务端压力大。

    例子:微博、百度搜索。

    注意:随着浏览器的升级迭代,B/S模式与C/S模式的技术差距已经逐步缩小了。B/S模式几乎可以完全代替C/S模式,但唯一不足就是无法离线运行。