Redis 缓存一致性:从“数据不一致”根源到解决方案全梳理
原文链接 前言 如果你开发了一个 Web 网站,前期业务逻辑比较简单,就是查数据库然后呈现到页面上,但是随着业务的发展,用户数量和 qps 越来越多,这时候你会发现网站访问越来越慢,于是你定位到是数据库负载太高,越来越多的查询落到数据库,里面不乏一些慢查询。这时你能想到的优化方法是加个索引,但是随着 ...
接口设计之道: RPC 与 RESTful 的抉择与融合
在现代软件开发中, API 接口设计是系统架构的基石。通过近期关于“统一使用 POST”、“gRPC”、“RESTful”等话题的深入探讨与沟通,我们厘清了不同设计范式的本质、优劣及其适用场景,形成了更清晰的架 构认知。 一、 核心理念:两种设计范式 最根本的区分在于设计理念: RPC (Remot ...
RPC的三大问题:跨语言、跨平台通信的终极解决方案是如何炼成的?
服务间通信的效率与可靠性是系统性能和稳定性的关键。远程过程调用(RPC)作为跨进程、跨机器交互的核心机制,其传输协议的设计至关重要。一个优秀的RPC传输协议需要应对三大挑战:1)跨语言、跨平台的数据表示与解析;2)保障网络传输的完整性、顺序性与效率;3)在服务间建立清晰统一的调用约定。 本文将从 H ...
【译】模型上下文协议(MCP)现已在 Visual Studio 中正式发布
我们很高兴地宣布,MCP 支持现已在 Visual Studio 中正式发布(GA)—— 这将从您的整个开发栈中解锁更丰富、实时的上下文,并以前所未有的方式增强 Agent 模式的功能。 模型上下文协议(MCP)是一种开放标准,它能让人工智能 Agent 轻松连接外部工具和服务 —— 可以把它想象成 ...
理解 SOLID 原则:编写更简洁的 JavaScript 代码
编写简洁、可维护的代码是构建可扩展应用的关键。由罗伯特·C·马丁(Bob 大叔)提出的 SOLID 原则,是五条核心设计准则,能帮助开发者更好地组织代码、减少漏洞,并降低后续修改的难度。 本文将逐一拆解每条原则,用简单的 JavaScript 示例演示,并解释其重要性。 SOLID 分别代表什 ...
Git提交错了,别慌!还有后悔药
大家好,我是晓凡。 引子 写代码就像炒菜,锅铲一抖盐放多了还能加水,Git 提交错了也能“回锅”。 但回锅方法不对,可能把整锅菜都糊掉。 今天咱们就掰开揉碎聊聊:到底有哪些“提交错了”的场景? 每种场景到底该怎么优雅地撤回?全部给你配好命令、画好流程,照着抄就行。 一、先分清“锅”在哪儿 首先我们得 ...
婶可忍叔不可忍的AutoMapper,你还用吗?
AutoMapper是让人又爱又恨的项目 爱它是因为它解决了一些问题,很多项目都有用,下载量很大,受众很广。 恨它是因为它诸多反人类的设计。 为此本人开源项目PocoEmit对标AutoMapper。 1. AutoMapper反人类设计 1.1 AutoMapper注册代码 services.Ad ...
快读快写学习笔记
0x01 前置准备 所有代码依赖以下头文件,建议统一包含: <cstdio>:提供 getchar()、putchar()、fread()、fwrite(); <iostream>:提供 cin、cout; <cctype>:提供 isspace(); 0x02 基础 I/O 优化:基于 cin 和 ...
精选 2 款 .NET 开源、实用的缓存框架,帮助开发者更轻松地处理系统缓存!
前言 缓存技术作为提升应用响应速度、减轻数据库负载的重要手段,在各类应用场景中发挥着不可替代的作用。对于 .NET 开发者而言,选择一款功能强大且易于集成的缓存框架,能够显著提升开发效率和应用性能。今天大姚给大家分享 2 款 .NET 开源、实用的缓存框架,希望可以帮助到有需要的同学。 Fusion ...
.NET周刊【8月第2期 2025-08-10】
国内文章 我最喜欢的 C# 14 新特性 https://www.cnblogs.com/sdcb/p/19024248/my-favorit-csharp-14-feature C# 14 引入了多项新特性,旨在提高编程效率。其中,用户定义的复合赋值运算符特别引人关注。这项新特性允许开发者为 += ...
CMake构建学习笔记20-iconv库的构建
介绍了如何通过vcpkg在Windows下为MSVC环境构建跨平台的iconv库,并结合CMake项目实现UTF-8与GBK编码字符串的转换。 ...
爆肝三周,我终于上线了自己的第一个小程序
三周前,帮朋友拍证件照时差点吵起来 —— 他要白底一寸照,我用修图软件改背景,边缘总留着灰边,最后还是花 30 块去照相馆拍的。看着他吐槽 “拍个照还要跑一趟”,我突然冒了个念头:要不自己做个证件照小程序?当时也就随口一说,转头就打开电脑,真的开始琢磨起来了。 半路出家 选方向没纠结,就定证件照制作 ...
毕昇编译器自动优化实验——docker版
毕昇编译器高级优化实验指导手册 (Docker版) 前言 本手册旨在提供一个完整的、端到端的毕昇编译器高级优化实验方案。记录了从环境搭建到实验完成的全过程,特别是详细描述了在部署过程中遇到的各类问题及其最终解决方案。 通过采用 Docker 技术,我们将一个复杂的 aarch64 架构的 openE ...
老码农教你 Solon Web Context-Path 的两种配置方式
context-path是web应用的路径前缀,可隔离应用。Solon支持两种配置:普通配置(/test-service/)允许原路径访问,强制配置(!/test-service/)则禁止原路径访问。 ...
Rust从入门到精通07-trait
Rust 语言中,trait 是一个非常重要的概念,可以包含:函数、常量、类型等。 通俗一点理解,trait 以一种抽象的方式定义共享的行为,可以被认为是一些语言的接口,但是与接口也有一定区别,下面会介绍。 1、成员方法 trait 中可以定义方法。 trait Shape { fn area(&s ...
如何用labelimg标注yolo数据集,并利用工具自动划分数据集
本文介绍了使用LabelImg工具标注YOLO格式数据集的全流程。首先详细讲解了LabelImg的标注方法,包括创建矩形框、类别命名及标注文件格式说明。然后提供了Python脚本自动划分数据集的方案,支持自定义训练集/验证集/测试集比例,并生成YOLO训练所需的dataset.yaml配置文件。最后... ...
Go语言编码规范:官方标准与最佳实践
专注于 Golang 相关文章和资料的开源项目 go-home ,欢迎关注! Go语言以其简洁性和一致性著称,官方提供了完整的编码规范指导。本文基于Effective Go和Code Review Comments等官方文档,总结Go语言的核心编码标准和最佳实践。 1. 代码格式化 Go语言提供了自 ...
3D Gaussian splatting 08: 部署模型网页展示
制作好的Gaussian 3D模型, 可以通过项目自带的 SIBR Viewer 查看, 但是这个运行对显卡有要求, 另一个选择是 Splatviz, 这个对显卡要求更低, 但是这两个都是需要在本地运行, 只能自己查看模型效果, 如果要将效果展示给别人, 最好的方案就是基于web的viewer, 线... ...
Java测试类、工具类与JavaBean对比解析
Java中测试类的详细分析 测试类主要用于验证代码逻辑的正确性,通常使用测试框架(如JUnit、TestNG)编写。其核心特点是: 命名规范:以Test结尾,如UserServiceTest。 依赖管理:不依赖具体实现,仅针对接口或公共方法进行测试。 方法设计:每个测试方法独立运行,通过断言(ass ...
【渲染流水线】[逐片元阶段]-[混合Blend]以UnityURP为例
本文深入解析Unity URP渲染管线中的Blend和BlendOp指令,对比OpenGL原生实现与Unity内置管线的差异。URP通过优化混合操作,支持加法/减法/Min/Max等运算,在移动端和高性能平台均能高效运行。文章详细介绍了混合因子配置和实际应用,包括透明度混合、加法发光等效果,并提供能... ...