别怕“吃灰”
最近,我做了一件“蓄谋已久”却又“漫不经心”的小事——买了一台Action 4运动相机。 起初,和许多人一样,我带着三分钟热度,拍了些视频,传到社交平台,然后如预想般,石沉大海,波澜不惊。这似乎印证了那个我们耳熟能详的魔咒:“买前生产力,买后爱奇艺”。 但奇妙的是,故事没有在这里结束。新鲜感褪去后,那台小小的相机并没有被我束之高阁。某个午后,一个念头闪过,我带上它,在家附近随意走走;又一...
最近,我做了一件“蓄谋已久”却又“漫不经心”的小事——买了一台Action 4运动相机。 起初,和许多人一样,我带着三分钟热度,拍了些视频,传到社交平台,然后如预想般,石沉大海,波澜不惊。这似乎印证了那个我们耳熟能详的魔咒:“买前生产力,买后爱奇艺”。 但奇妙的是,故事没有在这里结束。新鲜感褪去后,那台小小的相机并没有被我束之高阁。某个午后,一个念头闪过,我带上它,在家附近随意走走;又一...
async/await 已经成为现代编程的标配,它让我们能以近乎同步的写法实现复杂的异步逻辑。但一个看似简单的问题常常困扰着开发者:在一个单线程环境中(如 UI 线程或 Node.js),当一个耗时任务被 await 挂起后,线程是如何在不阻塞的情况下,知道这个任务已经完成的呢? 难道是线程在后台偷偷轮询?答案是否定的。要真正理解异步,我们需要像剥洋葱一样,从我们熟悉的 await 关键字...
eShopOnContainers 是微软官方提供的一个基于微服务架构的参照项目,它全面展示了如何运用领域驱动设计(DDD)原则来构建复杂系统。在本文中,我们将深入探讨 Ordering (订单) 微服务,特别是其如何通过手动管理事务和 MediatR 管道来确保数据一致性,以及领域事件和集成事件在其中扮演的关键角色。 为何需要手动管理事务? 在标准的 ASP.NET Core 应用中,E...
在微服务和领域驱动设计(DDD)的实践中,DomainEvent(领域事件) 与传统的 RPC/HTTP 调用 经常被放在一起讨论。两者本质上代表了不同的通信范式与业务建模思想。下面将结合DDD背景,对它们进行系统梳理、对比,并给出具体场景建议。 1. 通信模式的根本区别 RPC/HTTP 调用 采用请求-响应模式。调用方发起请求并等待被调用方处理结果(同步或异步)。两端必须预先约...
在多线程或异步开发中,经常会遇到作用域(Scope)和运行时上下文(Context)之间的混淆。这篇文章将系统地拆解两者的区别、联系,以及在主流开发语言和框架(如 C++ / C# / ASP.NET)中的实际表现和演化。 1️⃣ 作用域(Scope)与上下文(Context)的根本差异 作用域是编译器的静态分析产物: 作用域由编译器在编译期确定,不会因运行而改变。 决定...
用“消费权模型”重新解读当下、推演未来,并为中国的结构性困境勾勒一条改革与破局路线图 1. 为什么要换一副“镜头”? 传统镜头:看国力——增长率、贸易顺差、外汇储备。 新镜头(消费权模型):看个人——居民能否自由使用财富、享受全球资源。 逻辑起点: 顺差 ≠ 全民受益;逆差 ≠ 国家吃亏。 关键在于 “谁” 真正支配了交换来的价值。 2. 现状剖析...
我们常说中国是“世界工厂”,靠出口赚外汇,是全球化的最大受益者。但在仔细分析贸易结构与财富分配之后,一个更有解释力的模型浮现出来——全球化并非自动惠及人民,顺差也可能掩盖深层的不公。 本文从几个核心经济概念出发,重新审视中美贸易争端、人民币国际化与国内消费能力之间的关系,最终将焦点落在一个容易被忽略的主题上:个体消费者的权利与分配正义。 一、顺差≠国家强大,更非全民受益 长期以来,...
近日流传的一张政治理论类宣传图试图回答“党大还是法大”的问题,宣称“党和法是统一的,不存在谁大谁小的问题”,并进一步强调:党领导依法治国,法律保障党的执政地位,二者相互支撑、不可分割。表面上看,这是一次看似逻辑自洽的权力合法性论述,但深入分析后,我们可以清楚地看到:这类话语本质上并非在回应现实问题,而是在构造一种遮蔽结构,用以回避对权力约束机制的根本性追问。 一、偷换概念的“统一论”:...
CommunityToolkit.Mvvm 的源生成特性详解与实践 在 .NET 生态中,MVVM(Model-View-ViewModel)架构极大地推动了前端与业务逻辑的解耦,增强了代码可维护性和可测试性。虽然 WPF 本身已具备 MVVM 架构的基础设施,但各种 MVVM 辅助包(如 CommunityToolkit.Mvvm)则进一步简化了开发流程,提升了代码的简洁性和可读性。本文...
简单记录一下第一次参与开源项目,提交pr的流程。 fork开源库 clone到本地 根据开源贡献指南,跑通代码,跑通测试 新建分支,通常分支名称是 feature/xxx 或 fix/xxx 修改代码 提交代码,注意要按照指南写好提交信息 push该分支到自己的fork仓库 在原开源库的页面上,点击 New pull request 选择刚才push的分...