
软件设计
文章平均质量分 96
元闰子
这个作者很懒,什么都没留下…
展开
-
【Go实现】实践GoF的23种设计模式:备忘录模式
在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外进行保存,以便在未来将对象恢复到原先保存的状态。原创 2023-11-26 08:33:41 · 1118 阅读 · 0 评论 -
【Go实现】实践GoF的23种设计模式:命令模式
命令模式可将请求转换为一个包含与请求相关的所有信息的对象, 它能将请求参数化、延迟执行、实现 Undo / Redo 操作等原创 2022-12-22 22:21:42 · 791 阅读 · 1 评论 -
【Go实现】实践GoF的23种设计模式:访问者模式
访问者模式的目的是,解耦数据结构和算法,使得系统能够在不改变现有代码结构的基础上,为对象新增一种新的操作。原创 2022-10-06 16:27:37 · 541 阅读 · 1 评论 -
【Go实现】实践GoF的23种设计模式:观察者模式
当你需要监听某个状态的变更,且在状态变更时,通知到监听者,用观察者模式吧。原创 2022-07-23 19:23:42 · 314 阅读 · 0 评论 -
从分层架构到微服务架构(五)之服务化架构
SBA 可以看成是单体架构和微服务架构之间的一个折中方案,它也是按照业务领域进行服务划分,但服务划分的粒度相比微服务要更粗。从单体架构演进到 SBA,会比直接演进到微服务架构更加容易。原创 2022-04-08 22:37:12 · 3225 阅读 · 0 评论 -
【Go实现】实践GoF的23种设计模式:SOLID原则
如果把设计模式类比为武侠世界里的武功招式,那么SOLID原则就是内功内力。通常来说,先把内功练好,再来学习招式,会达到事半功倍的效果。原创 2022-03-14 07:38:04 · 468 阅读 · 0 评论 -
实践GoF的23种设计模式:SOLID原则
如果把设计模式类比为武侠世界里的武功招式,那么SOLID原则就是内功内力。通常来说,先把内功练好,再来学习招式,会达到事半功倍的效果原创 2022-02-26 14:29:38 · 943 阅读 · 0 评论 -
实现DCI架构
前言在面向对象编程的理念里,应用程序是对现实世界的抽象,我们经常会将现实中的事物建模为编程语言中的类/对象(“是什么”),而事物的行为则建模为方法(“做什么”)。面向对象编程有三大基本特性(封装、继承/组合、多态)和五大基本原则(单一职责原则、开放封闭原则、里氏替换原则、依赖倒置原则、接口分离原则),但知道这些还并不足以让我们设计出好的程序,于是很多方法论就涌现了出来。近来最火的当属领域驱动设计(DDD),其中战术建模提出的实体、值对象、聚合等建模方法,能够很好的指导我们设计出符合现实世界的领域模型。但原创 2021-10-10 14:02:55 · 3008 阅读 · 0 评论 -
从分层架构到微服务架构(四)之微内核架构
《从分层架构到微服务架构》是一系列介绍《Fundamentals of Software Architecture》中提到的8种架构模式的文章,这里不会事无巨细地介绍所有的细节,而是会挑选其中关键内容,更多详情请阅读原书。往期精彩:从分层架构到微服务架构(一)从分层架构到微服务架构(二)之分层架构从分层架构到微服务架构(三)之管道架构前言微内核架构(Microkernel Architecture),也被称为插件式架构(plug-in architecture),作为一个在几十年前就被创.原创 2021-04-24 10:32:27 · 640 阅读 · 0 评论 -
从分层架构到微服务架构(三)之管道架构
《从分层架构到微服务架构》是一系列介绍《Fundamentals of Software Architecture》中提到的8种架构模式的文章,这里不会事无巨细地介绍所有的细节,而是会挑选其中关键内容,更多详情请阅读原书。往期精彩:从分层架构到微服务架构(一)从分层架构到微服务架构(二)之分层架构前言管道架构(Pipeline Architecture),通常也被称为管道-过滤器架构(Pipes and Filter Architecture),是最常用的架构模式之一。大部分软件工程师都是.原创 2021-04-06 00:09:13 · 742 阅读 · 0 评论 -
从分层架构到微服务架构(二)之分层架构
《从分层架构到微服务架构》是一系列介绍《Fundamentals of Software Architecture》中提到的8种架构模式的文章,这里不会事无巨细地介绍所有的细节,而是会挑选其中关键内容,更多详情请阅读原书。前言软件刚出现的时候,还是大型计算机的年代,一个软件系统一般都只会运行在一台机器上。随着软硬件技术的革新,计算机体积和成本逐渐变小,此时工程师们发现一个软件系统只运行在单台机器上会存在各种瓶颈。如果将系统按照功能划分成前端和后端,分别部署在两台服务器上,问题得到了缓解,于是便有了C.原创 2021-02-01 00:39:41 · 910 阅读 · 2 评论 -
从分层架构到微服务架构(一)
《从分层架构到微服务架构》是一系列介绍《Fundamentals of Software Architecture》中提到的8种架构模式的文章,这里不会事无巨细地介绍所有的细节,而是会挑选其中关键内容,更多详情请阅读原书。前言谈到软件系统设计的方法论,在代码层面,有我们熟悉的23种设计模式(design pattern),对应到架构层面,则有所谓的架构模式(architecture pattern)。它们分别从微观和宏观的角度指导着我们设计出良好的软件系统,因此,作为一个软件工程师,我们不仅要熟悉设.原创 2021-01-23 12:15:28 · 1212 阅读 · 0 评论 -
人人都可以领域驱动设计(一)
最近几年,领域驱动设计(Domain-Driven Design,DDD)这个术语越来越多地出现在软件工程师的视野里。对DDD不熟悉的人可能会觉得它是软件领域里的一个新的概念,但是实际上,Eric Evans在十几年前就已经提出了这个概念。这个“古老”的概念在之所以能够重焕新生,很大程度上是因为遇上了“微服务”这个浪潮。如果把DDD里面的理念拿去和微服务架构做对比,你会发现它们有着高度的相似性——...原创 2020-03-08 09:23:23 · 313 阅读 · 0 评论 -
代码重构的常用方法(C++实现)
代码重构的常用方法 (C++实现)重构是在软件开发中改善已有代码的一种方法,通过代码重构可以改进软件的设计、使得软件更容易理解、有利于Bug的发现以及提高后续开发效率。Martin Fowler在《重构:改善既有代码的设计》一书中对“重构”提供了两种形式的定义:重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。重构(动词):使用一...原创 2019-11-06 23:29:12 · 13123 阅读 · 2 评论