交换排序 冒泡 和快速 的实现

深入理解 Linux 物理内存分配全链路实现

前文回顾 在上篇文章 《深入理解 Linux 物理内存管理》中,笔者详细的为大家介绍了 Linux 内核如何对物理内存进行管理以及相关的一些内核数据结构。 在介绍物理内存管理之前,笔者先从 CPU 的角度开始,介绍了三种 Linux 物理内存模型:FLATMEM 平坦内存模型,DISCONTIGME ......
链路 物理 内存 Linux

jenkins+git+.net core实现自动发布

一、前言 继上篇介绍jenkins过去2年多了,最近整理了一下,希望这篇能介绍到一些更实用的方法和知识。 本次使用的jenkins版本是2.375.1、jdk 17、WinRAR、git;发布时,可以选择生产、测试并替换相应的配置文件,并做站点目录的切换。 二、搭建发布环境 安装jenkins及所需 ......
jenkins core git net

Ventoy制作启动盘和使用VMware测试启动盘(论文版)

Ventoy是可用于制作启动U盘的开源工具,在占用少量引导分区容量后,其他空间依旧可以正常当一般的U盘读写文件。它的最大特点是只要将iso、win、img、efi等之类的镜像文件和引导文件移动到U盘中。比如导出微PE、杏雨梨云的可启动iso镜像文件,移动到U盘中,在启动时选择微PE、杏雨梨云任意一个... ......
Ventoy VMware 论文

5个接口性能提升的通用技巧

前言 作为后端开发人员,我们总是在编写各种API,无论是为前端web提供数据支持的HTTP REST API ,还是提供内部使用的RPC API。这些API在服务初期可能表现不错,但随着用户数量的增长,一开始响应很快的API越来越慢,直到用户抱怨:“你的系统太糟糕了。” 我只是浏览网页。为什么这么慢 ......
接口 性能 技巧

模型驱动设计的构造块(下)——DDD

3. 领域对象的生命周期 每个对象都有生命周期,如下图所示。对象自创建后,可能会经历各种不同的状态,直至最终消亡——要么存档,要么删除。当然很多对象是简单的临时对象,仅通过调用构造函数来创建,用来做一些计算,然后由垃圾收集器回收。这类对象没必要搞得那么复杂。但有些对象具有更长的生命周期,其中一部分时 ......
模型 DDD

【架构设计】你的应用该如何分层呢?

前言 最近review公司的代码,发现现在整个代码层级十分混乱,一个service类的长度甚至达到了5000多行。而且各种分层模型DTO、VO乱用, 最终出现逻辑不清晰、各模块相互依赖、代码扩展性差、改动一处就牵一发而动全身等问题。 我们在吸取了阿里巴巴的分层规范以及网上的一些经验后,重新梳理总结了 ......
架构

Proxyless Mesh 在 Dubbo 中的实践

背景 随着 Dubbo 3.1 的 release,Dubbo 在云原生的路上又迈出了重要的一步。在这个版本中添加了 Proxyless Mesh 的新特性,Dubbo Proxyless Mesh 直接实现 xDS 协议解析, 实现 Dubbo 与 Control Plane 的直接通信,进而实现 ......
Proxyless Dubbo Mesh

90%的Java开发人员都会犯的5个错误

前言 作为一名java开发程序员,不知道大家有没有遇到过一些匪夷所思的bug。这些错误通常需要您几个小时才能解决。当你找到它们的时候,你可能会默默地骂自己是个傻瓜。是的,这些可笑的bug基本上都是你忽略了一些基础知识造成的。其实都是很低级的错误。今天,我总结一些常见的编码错误,然后给出解决方案。希望 ......
错误 人员 Java 90%

【架构设计】如何让你的应用做到高内聚、低耦合?

前言 最近review公司的代码,发现代码耦合程度特别高,修改一处,不知不觉就把其他地方影响到了,这就让我思考该如何让我们写的代码足够内聚,减少耦合呢? "高内聚、松耦合"是一个非常重要的设计思想,能够有效地提高代码的可读性和可维护性,缩小功能改动导致的代码改动范围。它可以用来指导不同粒度代码的设计 ......
架构

【架构设计】保持简单轻量设计的三个原则——DRY,KISS, YAGNI

前言 一个软件轻量简单的软件架构是非常重要的,它可以让我们花最小的代价就能满足业务上的需求。那如何保证轻量简单呢?那今天就和大家分享下这其中的秘密,也就是3个重要的指导原则,KISS原则,YAGNI原则和DRY原则,你们都知道并且理解吗? 欢迎关注微信公众号「JAVA旭阳」交流和学习 KISS原则 ......
轻量 架构 原则 三个 YAGNI

vue3+TS 自定义指令:长按触发绑定的函数

#vue3+TS 自定义指令:长按触发绑定的函数 偶然间看到一个在vue2中写的长按触发事件的自定义指定,想着能不能把他copy到我的vue3项目中呢。 ##编写自定义指令时遇到的几个难点 ###1.自定义指令的类型 在ts中写任何东西都要考虑到类型的问题,自定义指令的类型问题依然存在 ###2.在 ......
指令 函数 vue3 vue TS

关于 MySQL 嵌套子查询中,无法关联主表字段问题的折中解决方法

今天在工作中写项目的时候,遇到了一个让我感到几乎无解的问题,在转换了思路后,想出了一个折中的解决方案,记录如下。 其实,问题的场景,非常简单: 就是需要查询出上图的数据,红框是从 项目产品表 中查询的2个字段,绿框是从与项目产品表关联的 文章表 中查询出的1个字段。我希望实现的效果是,获取到项目产品 ......
套子 字段 方法 问题 MySQL

实现简单的csv文件上传和bootstrap表格的下载

一、写一个简单的页面并发送文件 引入bootstrap.js,jQuery.js等,具体的网页就不细写了,很简单。 加入input框,button控件,进度条。如下: <li class="list-group-item" id="input-file-group"> <div class="inp ......
bootstrap 表格 文件 csv

有向图的拓扑排序——DFS

在有向图的拓扑排序——BFS这篇文章中,介绍了有向图的拓扑排序的定义以及使用广度优先搜索(BFS)对有向图进行拓扑排序的方法,这里再介绍另一种方法:深度优先搜索(DFS)。 算法 考虑下面这张图: 首先,我们需要维护一个栈,用来存放DFS到的节点。另外规定每个节点有两个状态:已访问(这里用蓝绿色表示 ......
有向图 拓扑 DFS

基于云基础设施快速部署 RocketMQ 5.0 集群

如何解决在云基础设施上部署 RocketMQ 时面临多节点部署带来的高操作成本等诸多挑战?快来了解 RocketMQ Operator 是怎样支撑 RocketMQ 集群在云基础设施上的自动化运维与管理吧! ......
集群 基础设施 RocketMQ 设施 基础

RocketMQ Compaction Topic的设计与实现

Compaction Topic 是一种基于 key 的数据过期机制,即对于相同 key 的数据只保留最新值。该特性的应用场景主要为维护状态信息,或者在需要用到 KV 结构时,可以通过 Compaction Topic 将 key-value 信息直接保存到 MQ,从而解除对外部数据库的依赖。快来... ......
Compaction RocketMQ Topic

Git和Maven的学习笔记

Git 1、Git简介 Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目。 Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作 流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCas ......
笔记 Maven Git

一种将C++函数模板定义和声明分开的方法

在 C++ 中为了操作简洁引入了函数模板。所谓的函数模板实际上是建立一个通用函数,其函数类型或形参类型不具体指定,用一个虚拟的类型来表达,这个通用函数就称为函数模板。 1、通用的写法 函数模板不是一个具体的函数,编译器不能为其生成可执行代码。定义函数模板后只是一个对函数功能框架的描述,当它具体执行时 ......
函数 模板 方法

我希望来年,更多是靠关系和模式挣钱——2022年我的总结与思考

我记得是2017年开始在博客园写博客,那年我儿子出生,并与当年年底写了17年的年度总结。 n年前,我没钱但年轻,我怕n年后我老时,还是一无所成——2017我的收获和反思,在随后的几年的年末,写总结文也已经成为了我的惯例,后面几年的总结文链接如下。 2018我跳出了舒适区,发现自己缺的不仅是技术,另外 ......
模式 更多 2022

.NET 云原生架构师训练营(基于 OP Storming 和 Actor 的大型分布式架构二)--学习笔记

目录 为什么我们用 Orleans Dapr VS Orleans Actor 模型 Orleans 的核心概念 结合 OP Storming 的实践 结合 OP Storming 的实践 业务模型 设计模型 代码实现 业务模型 我们可以把关键对象(职位、客户行为记录、线索)参考为 actor 猎头 ......
架构 分布式 Storming 笔记 Actor

47.DRF实现分页

分页Pagination 当我们在PC 或者 App 有大量数据需要展示时,可以对数据进行分页展示。这时就用到了分页功能,分页使得数据更好的展示给用户 比如我们有1W+数据要返回给前端,数据量大一次性返回可能会比较慢,前端一次性展示1W+数据也会比较慢,用分页返回数据效果较好 前端分页和后端分页的区 ......
DRF 47

.Net 6 使用 Consul 实现服务注册与发现 看这篇就够了

前言 在这几年的工作中,也经历过几个微服务项目,大多数都上了k8s,基本上都看不到Consul的身影,所以在工作之余折腾了下Consul,作为个人来讲还是得学习下,所以也就顺便通过文章来记录下学习过程。还有就是现在基本上只要提到微服务,其中涉及到的知识点就会很繁多,遇到的问题也会很多,建议阅读本文前 ......
Consul Net

什么是Rabbitmq消息队列? (安装Rabbitmq,通过Rabbitmq实现RPC全面了解,从入门到精通)

Rabbitmq 一: 消息队列介绍 1.介绍 消息队列就是基础数据结构中的 "先进先出" 的一种数据机构。想一下,生活中买东西需要排队,先排队的人先买消费,就是典型的 "先进先出"。 # 扩展 redis: 可以作为简单的消息队列 celery: 本事就是基于消息队列进行的封装。 2.MQ解决了什 ......
Rabbitmq 队列 消息 RPC

一文教会你mock(Mockito和PowerMock双剑合璧)

Mock有模仿、伪造的含义。Mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。 ......
教会 PowerMock Mockito mock

就聊聊不少小IT公司的技术总监

本文想告诉大家如下两个观点。 1 很多IT小公司的技术总监,论能力其实也就是相当于大公司的高级程序员。 2 程序员在职业发展过程中,绝对应该优先考虑进大厂或好公司。如果仅仅停留在小公司,由于小公司可能无法接触到值钱的技术,所以哪怕做到小公司的技术总监,依然可能会遇到大龄危机。 我见过不少小公司,比如 ......
总监 技术 公司

IdentityServer4 - v4.x .Net中的实践应用

IdentityServer4、 IClientStore、IResourceStore、IProfileService、IResourceOwnerPasswordValidator 在.NET中的实现。 ......
IdentityServer4 IdentityServer Net v4

一文学会浏览器插件(加入光荣的进化吧)(一文晋级璀璨钻石)(本文不含知识诅咒)

都2023年了,你还不会开发浏览器插件? 注意:此教程针对chrome和chromium内核的浏览器制定的,且仅适用于前端开发者 在chrome地址栏输入chrome://extensions/,就进入了谷歌浏览器扩展程序控制面板,在这里可以装载一些插件,来扩展浏览器的功能,或者做一些自动化处理,由 ......
插件 钻石 浏览器 知识

MongoDB从入门到实战之Docker快速安装MongoDB

前言 在上一篇文章中带领带同学们快速入门MongoDB这个文档型的NoSQL数据库,让大家快速的了解了MongoDB的基本概念。这一章开始我们就开始实战篇教程,为了快速把MongoDB使用起来我将会把MongoDB在Docker容器中安装起来作为开发环境使用。然后我这边MongoDB的可视化工具用的 ......
MongoDB 实战 Docker

BST查找结构与折半查找方法的实现与实验比较

简介 作业:查找结构与排序方法 作业题目: BST 查找结构与折半查找方法的实现与实验比较 要求编写程序实现 BST 存储结构的建立(插入)、删除、查找和排序算法; 实现折半查找算法;比较 BST 查找与折半查找方法的时间性能。 作业要求: 1. 设计 BST 的左右链存储结构,并实现 BST 插入 ......
结构 方法 BST

golang在win10安装、环境配置 和 goland开发工具golang配置 及Terminal的git配置

前言 本人在使用goland软件开发go时,对于goland软件配置网上资料少,为了方便自己遗忘、也为了希望和我一样的小白能够更好的使用,所以就写下这篇博客,废话不多说开搞。 一、查看自己电脑系统版本 (1)这里本人放一种查看,如果不适用还请大家自行百度 如何查看win系统版本 (2)处理器 上图中 ......
golang 开发工具 Terminal 环境 工具