每个程序员都需要知道的概念和术语 - codeburst


这些概念术语包括:概念完整性、内聚性、抽象数据类型、耦合、信息隐藏、最小惊讶规则等。
如果您读过一本技术书籍(我想您应该是一名软件工程师),您可能会发现一个您不熟悉的术语或概念。也许你在大学的某个时候学习过它,但你对它的记忆已经淡化了,或者它是一个你以前从未接触过的新东西。通常,这取决于您正在阅读的书籍的先进程度,以及您需要什么样的经验才能充分利用您的阅读。
 
抽象
在面向对象的编程中,抽象是将现实世界的实体简化为其在软件目的上下文中的基本和最需要的属性和行为的行为。因此,在政府应用程序的上下文中,用户对象需要具有 (firstName, lastName, nationalIdNumber ); 然而,在电子商务环境中,用户对象不需要属性“ nationalIdNumber ”。
 
属性
对象属性是根据对象状态保存不同值的属性(变量)。例如,假设有两个用户对象,一个可以具有属性/属性 firstName=”Mohamad”,而第二个具有 firstName=”John”。
 
行为
对象行为是对象可以执行的动作。例如,用户对象可能具有获取用户全名的行为。
 
封装
封装涉及将必要的属性和行为捆绑在一个类中。它只公开其他对象需要的功能并隐藏其余的功能。在用户对象中,保存用户的购物车没有任何意义。不过,可以保存他们的名字。将 getFullName() 设为公共方法而将 generatePasswordSalt() 设为私有方法也是有意义的。
 
信息隐藏
这涉及设计类,以便其他类不需要的属性和方法对它们隐藏。
 
分解
分解是将一个大的或整个实体分解成更简单和更小的部分,在这些部分很容易集成在一起并形成更大的实体。例如,在电子商务环境中,用户可以有一个账单地址和送货地址,或者可能有多个送货地址(家庭、办公室、湖边小屋等)。在这种情况下,您需要使地址成为具有自己的属性和行为的单独对象。
 
多态性
这是以相同方式与不同对象类型交互的能力。通常是因为它们都继承了相同的超类或应用了相同的接口。假设您有一个名为“DataStore”的接口,它有两个方法签名“query() 和 save()”,现在您可以有多个对象来实现这个接口“FileSystemStorage、DBStroage 等”。因此,虽然它们是不同类型的对象,但它们都有两个方法“query() 和 save()”。
 
概括
这涉及在单独的类中重构公共属性和方法,以便更频繁地重用。它将确保您的系统更少耦合。
 
耦合
这是软件工程中的一个术语,它描述系统的两个部分何时相互依赖,以至于它们中的每一个都不能在另一个上下文中单独重用。这被认为是不好的做法,因为这两个部分是“耦合的”。还记得我们之前创建的地址对象吗?您可以将它与用户地址或商店地址等一起使用,因此它不再与用户对象耦合。
 
灵活性
灵活性是指在不破坏系统的情况下应用更改或向系统添加功能的容易程度。
 
维护
这是指在系统交付后修复、改进或更改功能。
 
抽象数据类型:
这是一种由其行为定义且没有实现的数据类型。您可以将抽象数据类型视为软件设计中使用的理论概念。抽象数据类型的一个例子是堆栈、队列或列表。堆栈必须具有“Push and Pop”操作,这些操作如何实现由开发人员决定,而不是编程语言。队列数据类型也是如此;它必须具有“入队和出队”操作。现在假设您是一名开发人员,正在构建一个列表。列表是一种抽象数据类型,其接口由编程语言提供,由开发人员完成。开发人员可以创建链接列表或数组列表或任何其他列表。

执行
这是从设计中创建工作系统的过程。简单来说,就是写代码的过程。
 
凝聚
Cohesion 描述了一个模块或一个类的目的是多么简单。高内聚模块意味着它的目的是明确的,并且不会比它需要的更复杂。另一方面,低内聚意味着它非常复杂,其目的不明确。
 
概念完整性
当软件具有概念完整性时,这意味着它具有如此强烈的统一主题或感觉,以至于看起来好像是一位开发人员对其进行了编程。实际上,整个团队可能已经开发了该软件,但是因为他们遵循相同的指导方针和结构,所以一切看起来都是统一的。
 
关注
这是指系统部分的角色或动作。您可能还会听到术语“关注点分离”,它可以帮助您解耦系统组件。
 
最小惊讶法则
这一原则指出,组件的行为应该符合人们期望的行为。例如,作为开发人员,如果我想禁用一个用户帐户,那么我希望这在用户模块中而不是在融资模块中。