8000字程序性能优化全能手册

本文聊一个程序员都会关注的问题:性能。当大家谈到“性能”时,你首先想到的会是什么?性能优化是一个复杂且多面的话题,涉及到代码的编写、系统的架构以及硬件的选择与配置。在追求性能的旅途中,我们需要掌握的知识有很多,既有软件方面的,也有硬件方...阅读全文

C#设计模式之观察者模式

前言 观察者(Observer)模式也称发布-订阅(Publish-Subscribe)模式,定义了对象间一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 观察者模式的图解如下所示: Subj...阅读全文

设计模式一

简介 设计模式是一种最佳实践,是长期起来总结的解决一系列问题的一种套路。 一般针对面向对象语言而言,从大型软件架构出发,便于升级和维护的软件设计思想,强调降低依赖耦合 目的:代码重用和工程化 类型 创建型:创建对象的同时隐藏创建的业务逻...阅读全文

Kafka干货之「零拷贝」

一、背景 周所周知,Kafka是一个非常成熟的消息产品,开源社区也已经经历了多年的不断迭代,特性列表更是能装下好几马车,比如:幂等消息、事务支持、多副本高可用、ACL、Auto Rebalance、HW、Leader Epoch、Tim...阅读全文

设计模式(十九)观察者

一、定义 定义对象之间的一种一对多依赖关系,使得当每一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式是一种行为型模式,又称为发布-订阅(Publish-Subscribe)模式、模型-视图(Model-View)...阅读全文

C#设计模式之策略模式

策略模式在设计模式中属于对象行为型模式,它的意图是定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。策略模式使得算法可独立于使用它的客户而变化。 ...阅读全文

微服务开发,这10个点你要知道

微服务架构是一种软件开发模式,它将一个复杂的应用程序拆分为多个个独立的、小型的、可复用的服务,每个服务负责一个特定的业务功能。 微服务架构有许多优点,例如提高系统的可扩展性、可维护性、可测试性和故障容忍性。 但是,微服务架构也有很多问题...阅读全文

设计模式(十八)备忘录

一、定义 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可以在以后将对象恢复到原先保存的状态。备忘录模式是一种对象行为型模式,其别名为标记(Token)模式。 二、描述 备忘录模式的核心在于备忘录类以及...阅读全文

设计模式(十七)中介者

一、定义 义一个对象来封装一系列的对象交互。中介者模式使各对象不需要显示地相互引用,从而使其耦合松散,而且可以让你相对独立地改变它们之间的交互。中介者模式又称为调停模式,它是一种对象说行为型模式。 二、描述 在中介者模式中,引入了用于协...阅读全文

面向对象编程,看这篇就够了

面向对象编程是一种强大而灵活的编程范式,它可以帮助我们更好地组织和管理代码,提高代码的可读性和可维护性,这使得它特别适合用在大型工程项目中。然而,我们也需要注意其可能带来的问题,尤其是在并发和复杂系统中。 ...阅读全文

Pipeline模式应用

本文重点为管道模式的抽象与应用,上述示例仅为个人理解。实际应用中,此案例长于应对各种规则冗杂的业务场景,便于规则编排。 ...阅读全文

设计模式(十六)迭代器

一、定义 提供一种方法顺序访问一个聚合对象中的各个元素,且不用暴露该对象的内部表示。迭代器模式是一种对象行为型模式,又称为游标(Cursor)模式。 二、描述 在软件系统中,聚合对象拥有两个职责:一是存储数据,二是遍历数据。从依赖性来看...阅读全文

Kafka集群调优+能力探底

一、前言 我们需要对4个规格的kafka能力进行探底,即其可以承载的最大吞吐;4个规格对应的单节点的配置如下: 标准版: 2C4G 铂金版: 4C8G 专业版: 8C16G 企业版: 16C32G 另外,一般来讲,在同配置下,kafka...阅读全文

Arcpy使用入门

2.7Python(目前ArcGIS使用)代码转化为3.5Python(目前ArcGIS Pro使用)代码 Analyze Tools For Pro (2to3命令) 基本操作 调用ArcToolbox的两种形式 #arcpy.Too...阅读全文

DDD学习与感悟——总是觉得自己在CRUD怎么办?

我们有时候也会看到一些博客看到或者听到一些同事在说:这个业务有什么难的,不就是CRUD么?在软件生命周期初期,我们通过CRUD这种方式我们可以快速的实现业务规则,交付项目,但随着业务逐渐复杂,通过CRUD这种粗暴方式不可避免地会淹没业务...阅读全文