IOC和DI的理解
IOC与DI的理解 1.1、IoC是什么 Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什 ...阅读全文
IOC与DI的理解 1.1、IoC是什么 Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什 ...阅读全文
@目录1.launch文件有哪些标签2.node标签2.1 必选属性2.2 可选属性2.3 可选子级标签3.include标签3.1 必选属性3.2 可选属性3.3 可选子级标签4.remap标签4.1 必选属性5.param标签5.1 必选属性5.2 可选属性6.rosparam标签6.1 必选属 ...阅读全文
@目录1.工作空间目录2.加载环境变量3.打开CLion4.配置CLion5.编译和调试软件包 1.工作空间目录 我们的一个工作空间目录应该是这样的 2.加载环境变量 先进入工作空间再加载 source ./devel/setup.bash 3.打开CLion 一定要在第二步的同一个终端下 clio ...阅读全文
@目录1.流程2.自定义请求和响应的数据2.1 std_msgs内置类型2.2 编写.srv文件2.3 修改package.xml文件2.4 修改CMakeLists.txt文件2.4.1 修改find_package指令2.4.2 添加add_message_files指令2.4.3 添加gene ...阅读全文
所谓架构,意即系统架构,广义上它涵盖业务架构、运维架构、组织架构等所有系统构建场景,本文特指一般开发人员主要关注的开发架构。 关于架构的理论有很多,每个人也都有各自的理解,笔者相信很多人在实际运用中也会遇到各种各样的问题和困惑,本文抛开教条,从一个实际项目的演化看何为架构。 项目背景 开始之前,先了 ...阅读全文
@目录1.配置Softerware & Updates2.添加软件源3.设置key4.更新并安装4.1 更新4.2 安装(ros-noetic-desktop-full)4.2.1 安装aptitude4.2.2 安装ROS软件包5.添加环境变量6.安装构建依赖7.初始化和更新7.1 初始化7.1. ...阅读全文
UML类图 UML类图 是一种静态的结构图,描述了系统的类的集合,类的属性和类之间的关系,可以简化了人们对系统的理解。UML类图 是系统分析和设计阶段的重要产物,是系统编码和测试的重要模型。 图示 类 解析 圆角矩形框,它就代表一个类(Class) 类图分为三层: 第一层显示类的名称,如果是抽象类, ...阅读全文
@目录1.工作空间目录1.1 package.xml2.启动节点的方式2.1 一次启动一个2.2 一次启动多个3.ROS常用命令3.1 增3.2 查3.3 执行3.3.1 加载环境变量3.3.2 运行节点3.4 查看计算图4.创建功能包4.1 选择工作目录4.2 创建功能包目录4.3 建立功能包 1 ...阅读全文
@目录1.rosnode1.1 rosnode ping1.1.1 测试所有节点的连接状态1.1.2 测试到某个节点的连接状态1.2 rosnode list1.3 rosnode info1.4 rosnode machine1.4.1 列出所有设备1.4.2 查看指定设备上的运行节点1.5 ro ...阅读全文
@目录1.节点初始化2.话题通信2.1 创建发布者对象2.2 消息发布2.3 创建订阅者对象3.服务通信3.1 创建服务对象3.2 创建客户对象3.3 客户发送请求3.4 客户对象等待服务4. 回旋函数4.1 spin4.2 spinOnce5.时间5.1 时刻5.1.1 获取当前时刻5.1.2 设 ...阅读全文
日志处理logging 一、日志输出 日志默认的输出等级为:waring级别及以上的等级 修改日志的默认输出等级通过logging.basicConfig(level='INFO') 记录日志打印时间:logging.basicConfig(format=console_fmt) console_f ...阅读全文
一、 六大设计原则 1. 单一职责原则:应该有且仅有一个原因引起类的变更 2. 里氏替换原则:子类可替换父类。 a) 子类必须完全实现父类的方法 b) 子类可以有自己的个性 c) 子类实现父类方法时,入参可放大 d) 子类实现父类方法时,输出参数可缩小 3. 依赖倒置原则:高层模块不应该依赖底层模块 ...阅读全文
事件总线(在有些框架中也称时间聚合器,如Prism的EventAggregater)是订阅-发布模式的一种实现,类似观察者模式,相对于观察者模式,事件总线更灵活,它是一种集中处理事件的模式,允许不同组件之间通信,降低耦合度。 事件总线的三要素:事件源(事件的定义)、发布事件(触发事件)、订阅事件(事 ...阅读全文
IT统一运维平台案例统一运维平台的架构图,划分为三个主要部分:统一运维门户、报告与决策中心、运维服务调度中心。以下是对每个部分的解析:1. 统一运维门户这是用户的统一入口,提供了一系列运维相关的服务和功能,包括:综合信息发布:发布运维相关的信息,如公告、通知等。 自助服务台:用户可以通过自助服务台提 ...阅读全文
SCS(- )架构介绍SCS(- )架构定义与特性自主Web应用:SCS是一个自主的Web应用程序,包含Web UI、逻辑和持久化层。这种完整性确保了一个用户故事通常可以通过修改一个SCS来实现。 API的可选性:SCS可以有一个服务API,但这并非必需。如果SCS内的逻辑仅由SCS内的UI使用,则 ...阅读全文
过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。 双龙物流 概要 意图 用于将对象的筛选过 ...阅读全文
责任链模式 责任链模式 双龙物流 亦称: 职责链模式、命令链、CoR、Chain of Command、Chain of Responsibility 意图 责任链模式是一种行为设计模式, 允许你将请求沿着处理者链进行发送。 收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者 ...阅读全文
分布式事务的两阶段提交(2PC)和三阶段提交(3PC)是分布式系统中常用的事务管理协议,它们各自有优缺点。 两阶段提交(2PC) 流程: 准备阶段(Prepare Phase): 协调者向所有参与者发送请求,询问是否可以提交事务。 每个参与者执行本地事务操作,但不提交(仅预提交),并返回成功或失败的 ...阅读全文
简介 发布订阅模式是一种常用的用于解耦的模式。 它和观察者模式的区别在于: 观察者模式:被观察者需要维护一个观察者的集合; 发布订阅模式:通信双方互相不知道对方的存在,通过第三方事件总线进行通信。 发布订阅模式在前端领域很常见,例如: Vue 框架中组件的$on和$emit方法; Node.js 中 ...阅读全文
如果你是一名业务开发,你可能要说,我整天就是做CRUD(增删改查),哪里需要了解什么应用架构设计? 经常有人说,程序员 35 岁之后很容易陷入瓶颈,被行业淘汰,我觉得原因其实就在此。 有些朋友在写代码的时候,可能没有太多考虑非功能性的需求、扩展性,只是完成功能,觉得能用就好。做事情的时候,也没有长远 ...阅读全文