使用 PowerShell 和大模型打造中文 Git 自动提交命令
在日常开发中,编写规范的 Git 提交信息是一件简单但重复的工作。 为了减少这部分操作,我制作了一个名为 git-ec 的本地命令。它可以自动读取 Git 变更、调用大模型生成中文 Conventional Commit 信息,并完成代码提交。 生成效果如下: feat: …
在日常开发中,编写规范的 Git 提交信息是一件简单但重复的工作。 为了减少这部分操作,我制作了一个名为 git-ec 的本地命令。它可以自动读取 Git 变更、调用大模型生成中文 Conventional Commit 信息,并完成代码提交。 生成效果如下: feat: …
导读 如果你曾经尝试过让大模型(LLM)帮你查天气、订机票或操作数据库,你多半已经接触过"Function Call"技术。但你是否真正理解它的底层逻辑?当听到 MCP 和 A2A 这些新概念时,你是否感到困惑? 本文将带你深入理解 AI Agent 工具调用的核心技术,从最基础 …
以下是 当前主流的开源 C# AI Agent 框架 / 项目(按成熟度、活跃度排序),涵盖通用 Agent 框架、垂直场景 Agent 实现,以及基于 C# 生态(.NET 6+)的轻量化方案,方便开发者直接复用或二次开发: 一、通用型开源 C# AI Agent 框架(核心推荐) …
引言 提到 WCF(Windows Communication Foundation),很多.NET 开发者并不陌生 —— 它曾是.NET Framework 时代分布式系统通信的 “全能选手”。但如今,REST API、gRPC 等技术早已成为主流,有人疑惑:WCF 是不是已经没有意义了?它真的只 …
数据防篡改实用方案:从原理到落地实现 在后端服务、文件传输、接口通信等场景中,数据完整性是不可忽视的安全底线 —— 无论是网络传输中的字节丢失,还是恶意攻击者篡改核心业务数据(如转账金额、订单信息),都可能引发严重的业务风险。 很多开发者知道用散列算法(如 SHA256)做数据校验,但容易陷入一个误 …
使用LangGraph开发多轮对话应用时,很多人都会疑惑: LangGraph已经提供了Checkpointer,为什么真实项目还要自己保存聊天记录、截取最近几轮,再手动传给大模型? 答案是:保存状态、管理上下文、让模型正确理解历史,是三件不同的事。 LangGraph能帮助我们保存和恢复状态, …
LangChain 和 LangGraph 是两个强大的人工智能开发框架。 一、为什么需要 LangGraph? LangChain 虽然提供了丰富的工具链和 Agent 能力,但在实际企业级应用中面临一些挑战: 复杂状态管理困难: 传统 Chain 难以维护跨多个步骤的状态 循环流程不支持: 无 …
核心区别 LangChain:组件库与线性链。提供模型调用、RAG、工具等基础模块,适合构建线性、确定性的流程(如简单的问答机器人)。 LangGraph:状态机与循环图。基于 LangChain 构建,专为有状态、多步骤、含循环/条件分支的复杂 Agent 设计。它解决了 LangChain 难 …
本文讲解如何利用RAG Assessment框架,完成RAG(检索增强生成)系统的量化评估,覆盖核心指标体系与实操实现路径。 一、RAG系统基础流程 一套标准RAG系统的核心链路为:用户问题经Embedding模型向量化后,通过余弦相似度从向量库中召回Top K个相关文本块;将召回的上下文与问题拼接 …
在大模型相关岗位的面试中,“你平时怎么写提示词?”是一个看似简单、实际很容易拉开候选人差距的问题。 如果只回答“先设置角色,再描述任务,最后加几个示例”,虽然不能算错,但很难体现真实的项目经验。因为在实际的大模型应用中,提示词并不是一段写得比较漂亮的自然语言,而是模型与业务系统之间的一份“任务协 …
赋能企业级开发:ABP vNext 高级实践与核心功能深入解析 如果你认为 ABP vNext 只是一个帮你做 CRUD 的框架,那你就太小看它了。它是一个完整的、基于最佳实践的应用开发平台。本文将带你超越 Hello World,探索其如何在真实企业级项目中大放异彩。 在上一篇入门文章后,我们 …
目录 为什么需要模型蒸馏? 核心概念:教师-学生框架 三大关键公式(面试必考) 蒸馏的完整流程 实战代码:BERT → BiLSTM 新闻标题多分类蒸馏 面试高频考点总结 常见误区与调参技巧 一、为什么需要模型蒸馏? 1.1 一句话总结 模型蒸馏 = 让一个"小学霸"(小 …
在构建 .NET Web API 后台时,为了实现在线人数统计,我们通常会引入 Redis 来存储用户的活跃状态。 这时,一个非常敏锐且直击架构本质的问题往往会浮出水面: “既然为了统计在线人数,每次请求都要去 Redis 读写一次,那 JWT ‘无状态、不查库’ 的核心优势不就没了吗?干脆用一个 …
你是否好奇,当 Transformer 模型读一句话时,是如何动态判断“当前这个词,最该参考前面哪几个词”的?这个过程并非魔法,也不是人工编写的规则,而是由 Q、K、V 三个向量 配合训练完成的一套精妙计算。 可以把整个过程想象成:当前词和前面每一个词进行一次“对话”,然后互相打分,得分高的就重点参 …
面对领域驱动设计(DDD)的火热,很多熟悉面向对象(OOP)的开发者都会有一个疑问:这和我以前学的OOP是什么关系?是全新的东西,还是旧瓶装新酒?本文将带你回顾编程思想的演进历程,理清DDD与OOP的深刻联系,并展望现代编程思想的融合之道。 一、编程思想的演进脉络:一部与“复杂性”的斗争史 编程的 …
你是否好奇,当AI翻译一句话时,它是怎么做到"翻译到哪个词,就重点看哪个词"的?答案就藏在一个叫做 “专属信息包 C” 的东西里。今天,我们用最通俗的语言,一步步拆解它的诞生过程。 一、先搞懂一个问题:为什么需要"专属信息包"? 假 …
在 .NET Core Web API 开发中,过滤器(Filter)是实现横切关注点解耦的核心组件。它能在请求处理的不同阶段拦截逻辑,统一处理权限验证、日志记录、异常捕获等通用需求,避免重复代码。本文将详细拆解 .NET Core Web API 内置的 5 类过滤器,分析其执行机制、核心用途,并 …
在 .NET 开发中,string 类型是我们日常使用最频繁的类型之一。但一个常见的疑问始终困扰着不少开发者:string 到底是值类型还是引用类型?其实答案很明确 ——string 本质是引用类型,但它兼具部分值类型的特性,这种特殊性也让它成为了 .NET 类型系统中极具代表性的存在。本文将从本质 …
在学习循环神经网络(RNN)时,很多初学者在推导数据流时会产生一系列连环疑问: “当前时间步输出的隐藏状态,和传给下一个时间步的信息,是同一份数据吗?” “既然传给下一步了,那当前步的隐藏状态还留着干啥?” “每一个时间步都需要把隐藏状态接上 Softmax 输出预测结果吗?” …
引言 在分布式系统开发中,并发控制是一个永恒的话题。最近在代码评审时,我看到了这样一段代码: // 复杂操作仍需 lock public void ComplexOperation() { lock (_lockObj) { if (_count > 0 && _count …
大家好!今天我们来聊聊深度学习中一个非常有趣且重要的概念——循环神经网络(Recurrent Neural Network,简称RNN)。 如果你之前了解过普通的神经网络(比如用来识别图片的CNN),你可能会发现它们有一个共同的弱点:记性不好。它们处理每一张图片时都是独立的,不会记得上一张图片是什 …
在Web开发领域,CORS(跨源资源共享)是每个前端开发者都会遇到的关键概念。但为什么我们如今使用CORS,而曾经流行的JSONP却逐渐退出历史舞台?本文将带您深入理解跨域解决方案从JSONP到CORS的技术演进历程。 第一部分:理解CORS - 跨域资源共享 什么是CORS? …
PyTorch 作为主流的深度学习框架,在安装时严格区分了 CPU 版本与 GPU 版本。这两个版本对应不同的底层二进制分发包,并非仅通过代码参数进行区分。在实际开发与部署中,准确判断当前环境并进行相应的版本切换是保障模型训练与推理效率的基础。 一、 验证当前 PyTorch 版本类型 确认已安装版 …
DDD领域驱动设计全面解析:.NET核心概念与落地实践指南 领域驱动设计(Domain-Driven Design,简称 DDD)是一种以业务领域为核心的现代化软件架构设计方法论,专注于解决复杂企业级业务系统的设计与开发难题。在当今微服务架构和分布式系统盛行的环境下,DDD已成为构建高内聚、低耦合系 …
1. 天气查询功能介绍 天气查询API在现代Web和移动应用中扮演着重要角色,它可以为用户提供实时天气数据、未来天气预报以及生活指数等关键信息。本文将详细介绍如何实现一个高效、稳定的天气查询服务,涵盖从API选择、异步编程实现到缓存优化的完整开发流程。 2. 天气API服务选择指南 在开发天气查询应 …
在深度学习中,PyTorch 的自动微分(Autograd)机制极大地简化了模型训练过程。在实际的训练代码中,自动微分并不是一个孤立的函数,而是通过一套标准的训练闭环来体现的。结合一段典型的 PyTorch 模型训练代码,自动微分主要体现在以下三个核心步骤: 有的说法是叫“自动梯度”更合理 1. …
很多人入门神经网络,都会卡在“激活函数”这一步。 你可能听过无数遍这句话:加入激活函数,神经网络就能处理非线性问题。但心里大概率藏着一堆问号: 什么是线性?什么是非线性?为什么一条直线就能表示线性问题? 激活函数到底做了什么,凭什么它就能处理非线性? ReLU把负数都归零了,数据不会失真吗?信息不 …
除了之前提到的经典技巧,Windows 11还有很多类似这样好用的“隐藏彩蛋”。我把它们整理成了一份清单,希望能帮你解决问题: 🚀 效率小细节 告别繁琐批处理:一键批量重命名:在文件资源管理器里,一次性选中所有需要改名的文件,然后右键并选择“重命名”,输入一个统一的名称并按回车。比如输入“项目报 …
今天,我们就来扒一扒人工智能与人类认知的底层逻辑,揭开 AI 运转的四大核心真相。 一、 机器学习的本质:真的只是“算概率”吗? 很多人认为“机器学习 = 概率推测”。这个说法抓住了主流,但不够全面。 “概率推测”确实是最核心的思维方式。 比如判断一封邮件是不是垃圾邮件(分类),或者大模型预测下一个 …
不花一分钱,也能给自己的网站加上“小绿锁” 建站初期,很多个人站长都会纠结一个问题:要不要上 HTTPS? 买证书要花钱,免费的又怕不靠谱。其实,今天已经有很多成熟的免费方案,完全可以满足个人博客、小型项目的需求。本文就来聊聊我个人用过的几种方案,并给出最实在的建议。 为什么要折腾 HTTPS? …
每次打开文件资源管理器,Windows 11 都默认跳转到“快速访问”页面,里面堆满了最近使用的文件和文件夹。但对于很多用户来说,他们更希望直接看到完整的硬盘分区和系统文件夹——“此电脑”。其实只需一个简单设置,就能改变这个默认行为。 一、通过文件夹选项设置(官方原生方式,推荐) 这是最简单、最安全 …
很多工程师一看到 导数、偏导、反向传播、自动微分、梯度下降、权重、偏置 这些词,就容易觉得机器学习门槛很高。 其实这些概念放到代码里并不神秘。本文会用一个 广告系统智能出价引擎 的例子,尽量不用复杂公式,把这组核心概念讲清楚。 一、 业务场景引入:智能广告出价引擎 为电商网站开发广告投放系统:根据用 …
Windows 11默认将任务栏图标居中显示,这一设计虽然现代,但很多从Win10升级过来的用户更习惯传统的左对齐布局。其实系统自带了左对齐选项,只需几步就能轻松调整,完全是微软官方的原生功能,安全可靠。 一、通过系统设置调整(官方原生方式,强烈推荐) 这是最简单、最安全的方法,完全不需要接触注册 …
在Java开发中,过滤器和拦截器常被提及,它们与AOP(面向切面编程)的关系容易让开发者困惑。本文将深入解析三者之间的关系、核心区别与适用场景,并回答关键问题: “AOP能否替代过滤器和拦截器?” 通过技术拆解与实战案例,带你理清三者协作的正确姿势。 一、核心结论:三角协作,各司其职 过滤器和拦截 …
在 Spring 开发中,依赖注入(DI)是我们每天都在使用的核心功能。很多开发者习惯直接在字段上加 @Autowired,因为这样写起来最快、最简洁。但你可能不知道,Spring 官方和社区早已将构造器注入(Constructor Injection)列为首选方式。 那么,@Autowired 字 …
告别 string.Join 的局限——用扩展方法轻松添加前缀和后缀 在日常开发中,字符串拼接恐怕是最常见的操作之一。.NET 自带的 string.Join 方法已经非常强大:性能好、支持泛型、能正确处理 null,用它来连接集合中的元素简直不要太方便。 但是,如果你写过 Java, …
在 ASP.NET 项目里,文件上传、导出、日志落盘都离不开“路径”。很多人常见三种写法: Server.MapPath("~/Uploads/...") Server.MapPath("/Uploads/...") …
Windows 11 默认的右键菜单把很多常用功能折叠进了“显示更多选项”,每次都要多点一下,实在烦人。其实系统内置了一条命令,可以一键切换回经典的 Win10 完整菜单,而且随时能恢复。 操作步骤(全程 30 秒搞定) 以管理员身份打开“Windows 终端”(或命令提示符)。 粘贴对应命 …
一个小小的 await 顺序,可能让你的接口总耗时翻倍 在现代前端开发中,axios 搭配 async/await 几乎是请求接口的标配写法。但很多人可能没意识到:同样是写 await,两个接口的完成时间可能相差一倍。 场景复现 假设你有两个接口:接口 A 和接口 B,每个都需要较长时间才能返回数 …
要赋值的input框 <input tabindex="1" type="text" autocomplete="off" placeholder="AppID" name="appId" …
一、安装jmeter jmeter3.3以上要匹配8.0以上jdk,所以安装前需要先安装JDK。 JDK下载地址: https://www.oracle.com/java/technologies/downloads/#java8-windows 安装后在CMD窗口输入java -version,出 …
什么是Nginx? Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。 反向代理 Nginx 根据接收到的请求的端口,域名,url,将请求转发给不同的机器,不同的端口(或直接返回结果),然后将返回的数据返回给客户端。 安 …
目录操作 #当前目录 pwd # 创建目录 mkdir $HOME/testFolder #切换目录 cd $HOME/testFolder #切换到上一级目录 cd ../ # 移动 mv $HOME/testFolder /var/tmp #删除 rm -rf …
新建流水线 选择对应语言,新建流水线 选择代码源 这个代码我托管在云效自带的Codeup 代码结构 设置代码源触发 开启代码源触发,并添加Webhook,Codeup会带动添加,如果是码云、github等其他托管平台,需要手动将下面webhook地址添加到代码托管平台对应的Webhook 配置构建 …
添加节点 这个jenkins是用docker安装的,我们要操作宿主机构建项目,不是这个容器,所以要把这个容器本身的节点停止,添加宿主机节点 断开jenkins容器节点 Master 也可以使用标签限制 新建节点 添加宿主机连接信息 添加宿主机认证用户 生成ssh公钥和私钥 执 …
下载Jenkins镜像 docker pull jenkins/jenkins:lts #最新版 创建映射目录 容器映射此目录以持久化数据 mkdir /data/jenkins_home/ 修改用户组 docker容器中jenkins用户和用户组id为1000, …
不要k8s、不要docker、不要Jenkins,只要一个部署脚本,只是一个小项目单台服务器,实现提交代码自动执行脚本,拉代码构建部署项目。 创建一个web api 项目,作为webhook,实现接收web请求后执行shell脚本 项目代码: using …
1、准备工作与开发板选择 2、选择端口 3、代码: // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN …
什么是gRPC? 在聊聊什么是gRPC前,我们先来聊聊什么是RPC。 RPC,全称Remote Procedure Call,中文译为远程过程调用。通俗地讲,使用RPC进行通信,调用远程函数就像调用本地函数一样,RPC底层会做好数据的序列化与传输,从而能使我们更轻松地创建分布式应用和服务。 请求信 …
Edge浏览器在清理缓存时,如果勾选密码一项,清除的不只是本地密码,同时会删除已同步的云端密码,而且其他登录设备也会同步删除。不过其他设备会有延迟,可以及时导出密码,文件格式是csv表格文件,Edge浏览器不支持直接导入密码,只能从其他浏览器同步数据。好在Google浏览器有导入密码功能,可以先导入 …
JS: var shopVal=""; var shopText = ""; $(function () { $("#tags").autocomplete({ source: function ( request, response ) { …
IL(MSIL): 可以执行的二进制代码(托管代码) CTS: .Net平台通用数据类型(Common Type System) CLS: .Net平台通用语言规范(语法)(Common Language Specification ) CLR: 公共语言运行时( Common Language …
SOA: SOA(Service Oriented Architecture)“面向服务的架构”,他是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在与操作系统进程中。各个服务之间 通过网络调用。 微服务架构: 其实和 SOA 架构类似, …
一、控制反转 正常控制权是由调用方掌握,控制反转将控制权交给了容器,在运行时由容器决定具体的实现。 二、依赖注入 依赖注入是控制反转的一种实现,调用某个类是对这个类(被调用类)的依赖,正常是直接实例化(被调用类),而依赖注入,是通过构造函数等方式由容器注入到调用方 三、控制反转和依赖注入的关系 控 …
所需硬件 ESP8266 开发板(NodeMcu) x1 第三方库 ESP8266WiFi NTP介绍 网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度 …
用温湿度传感器DHT11/DHT22库DHT为例 方法一 【项目】 –》 【加载库】 –》【管理库】 安装 弹出窗口后,搜索、安装即可 查看示例代码 安装之后, 【文件】 –》【示例】 ,就可以查看库带的示例代码,大多数库都有,这个示例代码是很好的教程。 方法二 …
NodeMcu 常见的有两个版本,一般用通讯模块区分 CP2102版 : NodeMcu V1.0 ,作者是amica CH340版 : NodeMcu v3,作者是Lolin v3不是V1.0的升级版,可能是两个分支。 区别: 1、外观上v3比V1.0 大一些。 2、CP2102版 A0附近两 …
所需硬件 ESP8266 开发板(NodeMcu) x1 DHT11温湿度传感器 x1 面包板 x1 杜邦线 若干 第三方库 DHT 可以直接安装 项目–>加载库–>管理库–> 搜索"DHT"安装 或者手动下载 下载地 …
所需硬件 ESP8266 开发板(NodeMcu) x1 红外信号发射管Led x1 按键开关 x2 面包板 x1 杜邦线 若干 第三方库 IRremoteESP8266 下载地址:https://github.com/crankyoldgit/IRremoteESP8266 线路图 红外发射管 长 …
所需硬件 VS1838B 红外接收头 ESP8266 开发板 (NodeMcu) 红外信号遥控器 杜邦线 x3 第三方库 IRremoteESP8266 下载地址:https://github.com/crankyoldgit/IRremoteESP8266 …
示例代码: 通过D5引脚(GPIO14输出高低电平)控制继电器开合 /** 作者: Raikay (raikay.cn) 时间: 2021/01/16 说明: 控制继电器 NodeMcu - 继电器 VU - VCC D5 - OUT GND - GND **/ //定义引脚GPIO14, …
一、Git彻底删除一次提交 这样删除之后,在历史记录中也查不到 git rebase --onto SHA^ SHA SHA是错误的提交。 例如,删除cbe8527这次提交: git rebase --onto cbe8527^ cbe8527 这条记录就从历史记录中消失了 二、git stash …
示例代码: void setup() { //初始化串口设置 Serial.begin(9600); } void loop() { //获取程序开始运行的毫秒数 long time = millis(); //输出调试日志 Serial.println(time); } …
环境安装 下载Arduino-IDE 官网:https://www.arduino.cc/ 下载地址:https://www.arduino.cc/en/software 下载时不是一定要付费,选择JUST DOWNLOAD 免费下载 解压后双击EXE就可以打开了 安装驱动 驱动下载地 …
对于某些提交,我们可以为它打上Tag,表示这次提交很重要, 比如为一些正式发布大版本的 commit,打上TAG,当某个版本出问题了,通过TAG可以快速找到此次提交对应的Hash值, 直接切换到此次版本的代码去查找问题,比起一个个commit找省事多了。 git tag #列出git …
1、查看分支列表 git branch #显示本地分支 git branch -r #显示远程所有分支 2、创建分支和切换分支 git branch branchName # 创建分支 git checkout branchName1 #切换到 branchName1 分支 git checkout …
1、撤销本地(工作区)修改 git checkout fileName #指定文件撤销 git checkout . #点表示撤销所有文件 checkout 只撤销已有(tracked)文件,新增文件(untracked)不会撤销 清除工作区新增(untracked)文件 git clean -df …
1、工作区与缓存区的差异 git diff 2、工作区与某分支的差异 远程分支这样写:remotes/origin/branchNmae git diff branchNmae 3、工作区与HEAD指针指向的内容差异 git diff HEAD 示例: git diff HEAD^ # 工作区与上次 …
git log # 查看所有commit记录(SHA-A校验和,作者名称,邮箱,提交时间,提交说明) git log -p -次数 # 查看最近多少次的提交记录 git log --stat # 简略显示每次提交的内容更改 git log --name-only # 仅显示已修改的文件清单 git …
.gitconfig 配置文件 .giconfig配置文件 共三个 system(系统):C:\Program Files\Git\mingw64\etc\gitconfig,系统中所有用户都会生效 global(全局):C:/Users/当前用户/.gitconfig …
1、克隆项目到本地 git clone https://github.com/raikay/gittest.git 2、拉取最新 git pull 3、添加文件到暂存区 git add 文件名 # 指定文件。 git add . # 将当前工作区的所有文件都加入暂存区 4、将缓存区的内容提交到本地仓 …
规格书/管脚说明/文档 安信可官网 各类ESP8266模组规格书汇总 安信可官网 NodeMcu规格书 安信可官网 ESP8266资源汇总 Wemos官方文档 Arduino-ESP8266官方文档 个人收集 工具/驱动等资源下载 ESP8266 版本对比图 图片来自安信可官网 NodeMcu …
开发程序的时候经常会引用一些第三方的DLL,然后编译生成的exe文件就不能脱离这些DLL独立运行了。 但是,很多时候我们本想开发一款只需要一个exe就能完美运行的小工具。那该怎么办呢? 下文介绍一种超简单的方法,不用写一行代码就可轻松实现。 这里我们需要用到一款名为Fody.Costura的工 …
+++ 打开注册表编辑器,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp位置 把MajorVersion的值改为9之后,就可以安装了,安装完成之后,再把MajorVersion的值改回10,重启一下iis。
介绍: https://support.google.com/webmasters/answer/75712?hl=zh-Hans 实例: http://www.thepaper.cn/sitemap.xml <sitemapindex …
版本 1.10.4 "dom": 'T<"clear">lfrtip', "tableTools": { //"sSwfPath": …
系统自带两个cache类 在.NET运用中经常用到缓存(Cache)对象。有HttpContext.Current.Cache以及HttpRuntime.Cache,HttpRuntime.Cache是应用程序级别的,而HttpContext.Current.Cache是针对当前WEB上下文定义 …
<?xml version="1.0"?> <!--注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的“网站”->“Asp.Net 配置”选项。 …
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。 HTTP状态码的英文为HTTP Status Code。 下面是常见的HTTP状态码: 200 : …
1、标题 部分工具可能只支持到三级标题 示例: # 这是一级标题 ## 这是二级标题 ### 这是三级标题 #### 这是四级标题 ##### 这是五级标题 ###### 这是六级标题 效果: 这是一级标题 这是二级标题 这是三级标题 这是四级标题 这是五级标题 这是六级标题 2、引用内容 示例: …
一、RabbitMQ 简介 RabbitMQ 是基于 AMQP 实现的一个开源消息组件,主要用于在分布式系统中存储转发消息,由因高性能、高可用以及高扩展而出名的 Erlang 语言写成。 其中,AMQP(Advanced Message Queuing Protocol,即高级消息队列协议),是一个 …
今天主要跟大家分享一下什么是 CQRS,以及在项目中如何去使用。 1、先了解什么是CRUD系统 我们平常最熟悉的就是三层架构,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体。然后通过业务层来处理业务逻辑,将处理结果封装成DTO对象返回给控制层,再通过前端渲染。反之亦然。 …
如果某个网站文件、图片上传直接存储到网站目录下,而且没限制文件格式,可上传一个aspx文件,然后直接执行 <%@ Page Language="C#" ContentType="text/html" …