软件工程
文章平均质量分 94
shinelord明
北方待了10多年,北京六年多工作时间。先后在北京大唐电信,爱奇艺,京东等企业从事java开发、软件开发、与大数据开发、设计等相关工作。18年回重庆,在一家互联网金融公司,从事后端开发与大数据相关工作。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【软件系统架构】事件驱动架构
事件驱动架构是一种软件架构模式,它基于事件的产生、传递和处理来构建系统。在这种架构中,事件被定义为系统内发生的有意义的状态变化或者动作。组件之间通过异步地发送和接收事件进行通信,而不是通过传统的直接调用方法。事件生产者(Event Producers)产生事件并将其发布到事件总线(Event Bus)或者事件通道(Event Channel),事件消费者(Event Consumers)订阅这些事件并对其进行相应的处理。首先,我们定义一个事件类,这个类包含事件的类型和相关数据。原创 2025-04-17 08:56:25 · 2159 阅读 · 11 评论 -
【软件系统架构】分布式架构
典型的分布式系统包括Hadoop(大数据处理)、Kubernetes(容器编排)和Cassandra(分布式数据库)等。:CAP定理(一致性、可用性、分区容错性)和BASE理论(基本可用、软状态、最终一致性)的提出,为分布式系统设计提供了理论支撑。:多节点并行处理任务,需解决资源竞争(如分布式锁)和数据一致性(如Paxos算法)问题。是指将系统的组件(如计算、存储、服务等)部署在多个独立的物理或虚拟节点上,通过。:Eureka(服务发现)、Zuul(API网关)、Hystrix(熔断)。原创 2025-04-07 00:15:16 · 1771 阅读 · 19 评论 -
【软件系统架构】微服务架构
微服务架构(Microservices Architecture)是一种将单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,并使用轻量级机制(通常是HTTP资源API)进行通信。这些服务围绕业务能力构建,并且可以独立部署、扩展和更新。Spring Cloud Alibaba 是 Spring Cloud 的一个子项目,它提供了一系列分布式系统解决方案,旨在帮助开发者更轻松地构建微服务应用。Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。原创 2025-03-31 23:48:17 · 1814 阅读 · 22 评论 -
【软件系统架构】分层架构
分层架构,简单来说,是将软件系统依据功能的不同,划分为多个层次。每一个层次都承载着独特的职责,这些职责紧密围绕系统的整体目标,又彼此独立,共同协作实现系统的完整功能。从逻辑视角看,各层如同搭建的积木,层层堆叠,下层为上层提供支撑服务,上层基于下层的能力进行更高级别的业务逻辑处理。层与层之间有着清晰的边界和规范的交互方式,通常上层依赖下层提供的接口来获取所需功能,而下层并不依赖上层的具体实现,这种单向依赖关系保障了系统结构的稳定性与可维护性。。原创 2025-03-24 09:03:52 · 4948 阅读 · 33 评论 -
【软件系统架构】单体架构
单体架构是一种将所有功能模块(如业务逻辑、数据访问、用户界面等)都打包在一个单一的可执行程序中的软件架构。就像是一个大的容器,里面包含了应用程序的所有部分,各个部分紧密耦合,共享代码库、数据库等资源。原创 2025-03-18 23:42:55 · 2276 阅读 · 30 评论 -
【软件设计】23 种设计模式解析与实践指南
掌握多种设计模式,能够让开发者在面对不同的项目需求时,灵活地选择合适的模式,从而提高软件的质量和开发效率。设计模式(Design Pattern)是软件开发中反复出现的问题的解决方案,由 Erich Gamma 等四人组(GoF)在 1994 年系统化提出。文档编辑器(树形结构管理 + 格式装饰 + 保存策略 + 实时预览)。原创 2025-03-10 09:52:33 · 2778 阅读 · 27 评论 -
【再谈设计模式】解释器模式~语法的解析执行者
解释器模式定义了一种语言的语法表示,并定义一个解释器来解释该语言中的句子。它使用类来表示每个语法规则,并且通过递归调用这些类的方法来解释表达式。本质上,它将一个复杂的表达式分解为一系列简单的部分,然后按照特定的语法规则进行解析和执行。原创 2025-03-06 00:27:37 · 991 阅读 · 13 评论 -
【再谈设计模式】备忘录模式~对象状态的守护者
备忘录模式属于行为型设计模式。它的主要目的是在不破坏对象封装性的前提下,捕获并外部化一个对象的内部状态,以便之后可以将该对象恢复到这个状态。原发器(Originator):创建一个备忘录,用于记录当前时刻它的内部状态。原发器还可以使用备忘录来恢复其内部状态。备忘录(Memento):存储原发器对象的内部状态。备忘录应该防止原发器以外的其他对象访问其内部状态。负责人(Caretaker):负责保存备忘录,但不能对备忘录的内容进行操作或检查。原创 2025-03-02 23:06:15 · 1066 阅读 · 7 评论 -
【再谈设计模式】迭代器模式~遍历集合元素的利器
迭代器模式是一种行为设计模式,它提供了一种方法来顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。简单来说,就是将遍历的逻辑从被遍历的对象中分离出来,放入一个专门的迭代器对象中。这样,不同的集合对象可以复用相同的迭代器逻辑,而集合对象本身只需要关注自身的数据存储和管理。原创 2025-02-19 11:19:59 · 1406 阅读 · 41 评论 -
【再谈设计模式】中介者模式 - 协调对象间交互的枢纽
中介者模式定义了一个中介对象来封装一组对象之间的交互方式。中介者使得各对象之间不需要显式地相互引用,从而降低了它们之间的耦合度。它通过将对象之间的交互逻辑集中到中介者对象中,使得系统的结构更加清晰,易于维护和扩展。原创 2025-02-10 16:37:20 · 1318 阅读 · 33 评论 -
【再谈设计模式】状态模式~对象行为的状态驱动者
状态模式属于行为型设计模式。它将对象的行为封装在不同的状态类中,使得对象在不同的状态下表现出不同的行为。上下文(Context):这是一个包含状态对象的类,它定义了客户感兴趣的接口,并维护一个具体状态对象的引用。上下文将操作委托给当前的状态对象来处理。抽象状态(State):这是一个抽象类或者接口,它定义了一个特定状态下的行为接口。所有具体的状态类都实现这个接口。具体状态(Concrete State):这些是实现抽象状态接口的类,每个具体状态类实现了与该状态相关的行为。原创 2025-02-08 17:47:00 · 1152 阅读 · 26 评论 -
【再谈设计模式】命令模式~封装请求的指挥者
命令模式是一种行为设计模式,它将请求封装成独立的对象,使得可以使用不同的请求、队列请求、记录请求历史以及支持可撤销的操作。这种模式在软件工程中被广泛应用,特别是在需要对行为进行记录、撤销/重做或事务处理等场景。原创 2025-02-06 13:17:55 · 1406 阅读 · 7 评论 -
【再谈设计模式】职责链模式~串联请求处理者的链条
职责链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它将请求的发送者和接收者解耦,使多个对象都有机会处理这个请求。在职责链模式中,通常会创建一个由多个处理对象组成的链,每个处理对象都包含对下一个处理对象的引用。当一个请求被发送到链中的第一个处理对象时,这个对象会先检查自己是否能够处理该请求,如果可以则处理,否则将请求转发给链中的下一个处理对象,依此类推,直到请求被处理或者到达链的末尾。原创 2025-01-25 17:49:45 · 1722 阅读 · 17 评论 -
【再谈设计模式】模板方法模式~算法骨架的构建者
模板方法设计模式是一种行为型设计模式。它包含一个抽象类(在Java和C++中)或者一个抽象基类(在Python中可以通过ABC抽象基类实现类似功能,在Go中通过接口和结构体组合来体现),这个抽象类中定义了一个模板方法,这个模板方法包含了算法的骨架,它按照一定的顺序调用其他的抽象方法或具体方法。抽象方法由子类去实现,从而实现不同的行为。原创 2025-01-10 15:18:02 · 2029 阅读 · 25 评论 -
【再谈设计模式】观察者模式~对象间依赖关系的信使
观察者模式定义了对象之间的一种一对多依赖关系。其中有一个被观察的对象(称为主题Subject)和多个观察该对象的观察者(Observer)。主题对象负责维护一组观察者对象,并在自身状态发生改变时通知所有观察者。这种模式使得对象之间的耦合度降低,主题和观察者可以独立地进行扩展和修改。原创 2025-01-06 18:26:46 · 1569 阅读 · 18 评论 -
【再谈设计模式】享元模式~对象共享的优化妙手
享元模式是结构型设计模式,旨在优化对象使用与内存占用。其把对象状态分内部与外部,内部状态可共享且稳定,外部状态随环境改变。核心构成有享元工厂、抽象享元、具体享元及客户端。享元工厂掌控享元对象的创建与调度,依内部状态决定是否复用已有对象。例如,在图形绘制系统中,相同形状的图形对象可共享形状这一内部状态。该模式适用于存在大量相似对象的情境,能有效减少内存压力、提升系统性能,如电商平台众多相同款式但不同规格商品的展示。然而,它也有不足,若状态划分不合理,会让系统复杂难维护,且对共享对象做个性化修改较困难。原创 2024-12-23 01:30:01 · 1600 阅读 · 42 评论 -
【再谈设计模式】外观模式~复杂系统交互的简化大师
外观模式是一种结构型设计模式,它为子系统中的一组接口提供一个统一的高层接口,这个高层接口就像一道屏障,将子系统的复杂性隐藏起来,对外只暴露简单、统一的操作。客户端只需要与这个外观接口交互,而不必深入了解子系统内部各个接口的具体实现和交互关系。原创 2024-12-16 02:19:31 · 2008 阅读 · 48 评论 -
【再谈设计模式】组合模式~层次构建的多面手
组合模式是一种结构型设计模式,它允许将对象组合成树形结构来表示“部分 - 整体”的层次关系。组合模式使得用户对单个对象和组合对象的使用具有一致性。在组合模式中,有两种基本类型的对象:叶节点(Leaf)和组合节点(Composite)。叶节点是没有子节点的对象,而组合节点可以包含叶节点和其他组合节点。原创 2024-12-09 06:00:00 · 1953 阅读 · 61 评论 -
【再谈设计模式】桥接模式~抽象与实现的灵活桥梁
桥接模式的核心思想是将一个类的抽象部分与其实现部分分离,使它们可以独立变化。通过这种方式,桥接模式能够降低系统的复杂性,提高代码的可扩展性和可维护性。原创 2024-12-03 15:35:47 · 1490 阅读 · 0 评论 -
【再谈设计模式】装配器模式~复杂结构构建的巧匠
装配器设计模式是一种创建复杂对象的设计模式,它将对象的构建过程从对象本身分离出来,通过一个装配器(Builder)来逐步构建复杂对象的各个部分,最终组装成完整的对象。这种模式允许我们按照特定的步骤和顺序构建对象,并且可以在构建过程中对各个部分进行定制化操作。例如,在构建一个复杂的汽车对象时,我们可以先构建引擎部分,然后是车身部分,接着是内饰部分,最后将这些部分组装在一起形成完整的汽车。原创 2024-11-28 19:00:00 · 2955 阅读 · 0 评论 -
【再谈设计模式】代理模式~对象访问的幕后管家
代理模式是一种结构型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。在代理模式中,存在一个代理对象和一个真实对象,代理对象和真实对象实现相同的接口,客户端与代理对象进行交互,代理对象在适当的时候调用真实对象的方法。原创 2024-11-25 18:03:31 · 775 阅读 · 0 评论 -
【再谈设计模式】适配器模式~接口兼容的桥梁
适配器设计模式属于结构型设计模式。它的主要作用是将一个类的接口转换为另一个接口,使原本由于接口不兼容而不能一起工作的类能够协同工作。可以把适配器想象成一个中间件,它包裹着一个已有的类,对外提供一个符合目标需求的新接口。原创 2024-11-20 23:22:22 · 1946 阅读 · 0 评论 -
【再谈设计模式】抽象工厂模式~对象创建的统筹者
抽象工厂设计模式是一种创建对象的设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。简单来说,抽象工厂模式就像是一个工厂的抽象层,这个抽象层定义了创建多种不同类型产品的方法,但不涉及具体产品的创建细节。原创 2024-11-13 21:50:23 · 1182 阅读 · 25 评论 -
【再谈设计模式】建造者模式~对象构建的指挥家
建造者设计模式在处理复杂对象创建方面有着独特的优势,通过合理的运用可以提高代码的质量和可维护性,并且在需要定制化创建对象的场景下非常实用。原创 2024-11-10 22:19:29 · 1243 阅读 · 31 评论 -
【再谈设计模式】原型模式~复制的魔法师
原型模式是一个强大的设计模式,适用于需要频繁创建相似对象的场景。通过理解原型模式的基本概念、适用场景、优缺点以及实现方式,开发者可以在实际项目中灵活运用这一模式,提高代码的可维护性和性能。原创 2024-11-02 14:52:20 · 1526 阅读 · 23 评论 -
【再谈设计模式】单例模式~唯一性的守护者
单例模式的核心思想是限制一个类仅能实例化一次,并提供一个全局访问点。这样可以避免重复实例化导致的资源浪费和状态不一致的问题。原创 2024-10-27 18:52:28 · 1491 阅读 · 4 评论 -
【再谈设计模式】工厂模式~制造者的艺术
工厂模式是一种创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪种类。工厂方法使一个类的实例化延迟到子类。原创 2024-10-24 00:55:58 · 1618 阅读 · 13 评论 -
【AI】AIGC浅析
在计算机科学与技术领域、软件开发、大数据、智能网联汽车和车路云一体化行业,AIGC的应用已经成为行业发展的新动力。探讨AIGC对这些领域的影响、对职业技能需求的变化、当前存在的痛点与待解决的问题,以及针对教培工作的改进建议,最后分享我个人的打算与行动计划。作为一名计算机科学与技术专业学者与从业人员,从事软件开发,大数据架构多年相关工作,我意识到分析与整合AIGC在各行业的应用是我未来职业发展的重要方向。AIGC生成的内容无法保证100%的准确率,尤其在涉及专业知识的时候,其生成的结果有可能误导决策。原创 2024-10-13 21:59:30 · 2152 阅读 · 16 评论 -
【网络】HTTPS浅析
HTTPS是保护用户隐私和数据安全的重要工具,随着网络安全威胁的增加,其应用场景和重要性也愈加凸显。原创 2023-04-26 23:30:00 · 927 阅读 · 0 评论 -
【软件工程】公共对象请求代理体系结构CORBA
使用idlj工具将idl描述文件转换成java代码。包含私服本地存根,通信相关。原创 2013-03-08 15:48:08 · 2761 阅读 · 2 评论 -
【架构】浅谈软件架构设计
软件架构基础知识,以及微服务架构浅谈原创 2024-01-05 23:04:04 · 1683 阅读 · 0 评论 -
【软件工程】软件工程师书籍推荐
推荐一些书籍,新年来了,可以卷起来,可以不上学,但是不可以不读书。(其中有几本读过一些)。原创 2024-01-07 23:29:41 · 3287 阅读 · 0 评论
分享