架构整洁之道一(编程范式)

简介: # 前言 一个不想做架构师的程序员不是一个好程序员。 所以最近在看一本《架构整洁之道》觉得还不错,这里把看过的一些笔记和心得汇总一下。 以便后面自己可以温故知新,也方便小伙伴们可以快速的认识到架构的真谛。扯远了,进入正题。 # 编程范式 先从编程范式开始讲起。目前常见的有3种编程范式:结构化编程、面向对象编程、函数式编程。每种范式的出现,都具有重大意义。 前两种我们比较熟悉。后面一

前言

一个不想做架构师的程序员不是一个好程序员。
所以最近在看一本《架构整洁之道》觉得还不错,这里把看过的一些笔记和心得汇总一下。
以便后面自己可以温故知新,也方便小伙伴们可以快速的认识到架构的真谛。扯远了,进入正题。

编程范式

先从编程范式开始讲起。目前常见的有3种编程范式:结构化编程、面向对象编程、函数式编程。每种范式的出现,都具有重大意义。
前两种我们比较熟悉。后面一种其实出现的更早,只是作为Java开发来说,是最近才慢慢开始接触。
下面针对上面3种范式,进行一个简单的说明解释。

结构化编程

什么是结构化编程,其实我们不知不觉都在使用,且听我娓娓道来。一般机器的运行是按命令来执行的。
例如,在汇编时代,我们编排好一堆命令,让机器去逐条执行,以操控各种硬件。当我们需要控制某些
流程时,就会用到类似goto的语句,让机器执行完本条命令后,跳转到另一条命令执行(这两条命令并不是
按编排好的顺序排放的)。这样就能很灵活的控制程序的流程走向。但人类的思维是连续的,这种goto的
连续跳跃,使人类无法很好的理解程序的意向。于是我们打算做一些约束,同时发现了一套结构化定理:

任何程序都可以用顺序、选择和循环三种基本控制结构来表示。

即在Java的世界里,我们的代码是顺序执行的,使用if-else来代表执行的选择,使用for和while来控制循环。
这样我们就可以很好的屏蔽类似goto语句的使用,使整个程序阅读更加流畅,更加接近人类的理解,
有了以上的铺垫,结构化编程可以总结到一句话:

结构化编程对程序控制权的直接转移进行了限制和规范

面向对象编程

结构化编程思维,还是比较靠近机器运行的思维。那么面向对象编程,就比较靠近人类的思维去编程了。
我们发现,简单靠结构化思维编程,很难构建起一个庞大的应用。在编码过程中,我们也会不知不觉的
把一些逻辑和数据封妆起来。形成一个可复用的组件。也许这就是人性思维。慢慢的,有人把这些习惯
总结成了一套方法论。并扩展了一些概念,让这套理论更加贴切人类的客观世界。对于面向对象编程有很多种说法
一种常见回答是:

面向对象是数据和函数的组合

还有一种回答是:

是一种对真实世界的建模

上面的总结都有道理,但也都不够概全。这里讲一下其中有3个概念是面向对象的核心,即:

封装、继承、多态

封装

在我看来,封装就是把数据和函数组合到一起。类似Java的类,有变量和方法组成。同时,由于封装的特性,
我们可以把一些内部使用的数据和函数隐藏起来。类似Java的权限控制,privite、protect、public等。

继承

简单点讲,就是在封装的基础上,我们可以定义一个所谓的子类,去继承父类的数据和函数。并根据需要,覆盖
其中的一些数据和函数形成子类特有的行为。这点,和现实中人类的DNA继承极为相似。

多态

上面讲继承时,说到了,子类可以覆盖父类的函数,当多个子类都去继承这个父类并覆盖这个函数时,多态其实
已经就开始形成了。此时我们可以使用父类的引用,使用不同子类的实例,调用这个被覆盖的方法,不同的子类实例
就会有不同的表现。所以多态可以用一句话来解释即:

同一个操作(方法或者函数)作用于不同的对象时,可以有不同的解释。

多态是非常有用的,我们可以使用依赖反转把实例化子类的操作剥离出去时,我们的程序设计就天然的变
成了插件式架构,这个后面会细讲,这里先点到为止。

函数式编程

这种编程思想主要是把运算过程尽量写成一系列嵌套的函数调用。我自己简单粗暴的理解是,把函数当作变量看待。且这些
函数有一些限定条件。即只要函数的入参是确定的,出参就是确定。函数不会改变任何变量状态。存粹的函数式编程语言编写
的函数没有变量。在JDK1.8中,已经开始有函数式编程的影子了。

架构师会比较关心变量的可变性。因为所有的并发问题,都是由于变量的可变性导致的。所以,在设计程序的时候,
我们往往需要把不会涉及到变量变更的逻辑,和需要操作变量变更的逻辑分离开来。前者就可以用函数式编程范式构建
函数。分成两个独立组件。前者因为没有对变量的操作,所以绝对线程安全。而且对单元测试也更加的友好。

总结

对于上面的编程范式,我们来总结一下:

结构化编程是对程序控制权的直接转移的限制
面向对象编程是对程序控制权的间接转移的限制
函数式编程是对程序中赋值操作的限制

总的来说,范式是限制编写程序的灵活性,以达到人类友好阅读的目的。所以业务架构从某种意义上来讲
也是在某种领域中限制程序员的一些行为,让他往我们所希望的规范方向编码。从而达到整个系统的简洁。

相关推荐

架构整洁之道一(编程范式)
架构整洁之道二(设计原则)

相关文章
|
9天前
|
API 数据库 开发者
构建高效可靠的微服务架构:后端开发的新范式
【4月更文挑战第8天】 随着现代软件开发的复杂性日益增加,传统的单体应用架构面临着可扩展性、维护性和敏捷性的挑战。为了解决这些问题,微服务架构应运而生,并迅速成为后端开发领域的一股清流。本文将深入探讨微服务架构的设计原则、实施策略及其带来的优势与挑战,为后端开发者提供一种全新视角,以实现更加灵活、高效和稳定的系统构建。
16 0
|
1月前
|
Kubernetes API 开发者
构建高效微服务架构:后端开发的新范式
【2月更文挑战第14天】在数字化转型的浪潮中,微服务架构已成为许多企业追求敏捷开发、持续交付和系统可维护性的关键解决方案。本文将深入探讨微服务架构的设计原则、技术选型以及实践案例,为后端开发者提供一套构建和维护微服务系统的实用指南。
|
19天前
|
监控 Java 开发者
构建高效微服务架构:后端开发的新范式
在数字化转型的浪潮中,微服务架构以其灵活性、可扩展性和容错性成为企业技术战略的关键组成部分。本文深入探讨了微服务的核心概念,包括其设计原则、技术栈选择以及与容器化和编排技术的融合。通过实际案例分析,展示了如何利用微服务架构提升系统性能,实现快速迭代部署,并通过服务的解耦来提高整体系统的可靠性。
|
24天前
|
API 持续交付 开发者
构建高效微服务架构:后端开发的新范式
在数字化转型和技术迭代的浪潮中,微服务架构以其灵活性、可扩展性和独立性成为现代后端开发的重要趋势。本文深入探讨了构建高效微服务架构的关键要素,包括服务划分策略、容器化部署、API网关设计以及持续集成与持续部署(CI/CD)的实践。通过分析这些组件和流程,我们旨在为后端开发者提供一套实用的指南,帮助他们构建和维护一个高性能、可靠的微服务系统。
24 5
|
28天前
|
监控 数据管理 持续交付
构建高效微服务架构:后端开发的新范式
【2月更文挑战第30天】在现代软件开发领域,微服务架构已成为设计灵活、可扩展且易于维护系统的关键方案。本文将深入探讨如何通过一系列最佳实践和策略来构建一个高效的微服务后端,涵盖服务划分、通信机制、数据管理以及持续集成与部署等方面。我们的目标是为后端开发者提供一套综合性指南,以帮助他们在不断变化的技术环境中保持竞争力。
|
28天前
|
敏捷开发 API 开发者
构建高效微服务架构:后端开发的新范式
【2月更文挑战第30天】 在当今软件开发的快速演变中,微服务架构以其灵活性、可扩展性和技术异构性的优势,成为企业追求敏捷开发和部署的首选模型。本文将深入探讨如何在后端开发中实现高效的微服务架构,包括关键设计原则、技术选型以及实践案例分析。通过阐述如何利用容器化、服务网格、API网关等现代技术手段,我们旨在为开发者提供一套全面的指导方针,以帮助他们构建出既健壮又易于维护的微服务系统。
12 1
|
编解码 算法 计算机视觉
轻松掌握FFmpeg编程:从架构到实践
轻松掌握FFmpeg编程:从架构到实践
142 1
|
1月前
|
监控 API 开发者
构建高效微服务架构:后端开发的新范式
【2月更文挑战第22天】在现代软件开发领域,微服务架构已经成为一种流行的设计模式,它通过解耦大型单体应用,促进敏捷开发和部署。本文将深入探讨微服务的核心概念、实施策略以及面临的挑战,为后端开发者提供构建和维护高效微服务系统的实用指南。我们将从微服务的设计理念出发,逐步分析如何在实际项目中进行模块化分解、服务间通信、数据一致性处理以及容器化部署。文章还将讨论微服务架构下的安全性考虑、监控和故障恢复策略。
14 0
|
1月前
|
存储 监控 开发者
构建高效微服务架构:后端开发的新范式
【2月更文挑战第20天】在现代软件开发的浪潮中,微服务架构以其灵活性和可扩展性成为了企业技术选型的热门话题。本文将深入探讨微服务的核心概念、设计原则以及如何在后端开发中实现一个高效的微服务架构。通过实践案例分析,我们将讨论微服务带来的优势和潜在挑战,并分享最佳实践以帮助开发者克服这些挑战,最终实现业务的快速迭代和稳定运行。
|
1月前
|
开发者 微服务
构建高效微服务架构:后端开发的新范式
【2月更文挑战第19天】 在数字化转型的浪潮中,微服务架构已经成为企业追求敏捷、可扩展和容错性的关键解决方案。本文将深入探讨如何构建一个高效的微服务架构,涵盖设计原则、技术栈选择、部署策略以及维护实践。通过分析微服务的优势与挑战,我们旨在为后端开发者提供一份全面的技术指南,帮助他们在构建现代化应用时做出明智的决策。

热门文章

最新文章