09 2021 档案

摘要:本文将介绍如何通过RxJS+TS实现模块间的松耦合。所谓松耦合是指模块间不能存在显式的引用关系。公司项目中经常看到junior程序员写出如下的代码: var moduleA = { foo: function() { moduleB.doSomeThing(); moduleC.doSomeThin 阅读全文
posted @ 2021-09-24 09:29 老胡Andy 阅读(170) 评论(0) 推荐(0) 编辑
摘要:最近在研究RxJS的编程思想,与OOP不同,RxJS更像是事件驱动+观察者模式,前一篇文章有所介绍。有经验的读者想必会有个疑问:Observable与Promise模式,或者说OOP到底区别在哪里,能带来什么不同呢? 我的理解是(此处为个人理解):Observable更好地实现了解耦。如同我们用消息 阅读全文
posted @ 2021-09-14 20:41 老胡Andy 阅读(186) 评论(0) 推荐(0) 编辑
摘要:如果用一句话阐述对于observable的简单理解,我会这么说:事件流(event stream) + 观察订阅模式(observe/subscribe pattern)。 observable相比promise,可以更好地实现函数式编程、支持取消、可以有多个事件的订阅者,等等。 在以往的项目实践中 阅读全文
posted @ 2021-09-12 20:28 老胡Andy 阅读(1107) 评论(0) 推荐(0) 编辑
摘要:高并发场景下容易出现的超卖问题(一张票卖给两个客户,或是库存卖成负数),一个常用的解决方法就是加锁。对于单机系统,内存级别的锁就足够应付(如c#中的lock);对于分布式系统Redis往往是一个常见的选项。当然,有一点要清楚的是:加锁有可能会影响代码执行效率,不是所有场景都适合加锁。 这里为了简化问 阅读全文
posted @ 2021-09-08 18:30 老胡Andy 阅读(1987) 评论(0) 推荐(0) 编辑
摘要:之前的文章介绍了QueryBus, CommandBus的用法(这里的bus可以翻译为总线:查询总线、命令总线)。使用这些总线(设计模式)的目的在于实现Controller层与Business Logic层(示例中对应的是Commands/Queries下的Handler)的解耦。然而,通常在Bus 阅读全文
posted @ 2021-09-07 14:51 老胡Andy 阅读(352) 评论(0) 推荐(0) 编辑
摘要:继前一篇讲述了NestJS中CQRS的Query部分的实现,本文会在此基础上讲述Command部分的基础实现(高级实现会在下一篇介绍)。 在之前代码的基础上增加: src/comments/commands文件夹,结构如下: add-comment.handler.ts import { Comma 阅读全文
posted @ 2021-09-06 17:36 老胡Andy 阅读(266) 评论(0) 推荐(0) 编辑
摘要:本文旨在介绍NestJS下CQRS(命令查询职责分离)的实现。NestJS的确是个强大的NodeJS框架,支持了绝大多数现在流行的技术栈。至于什么是CQRS模式,请大家自行查阅。废话不多说,直接上代码。 1: 新建项目 nest new cqrs-demo 2: 安装CQRS依赖 npm insta 阅读全文
posted @ 2021-09-05 22:02 老胡Andy 阅读(496) 评论(0) 推荐(0) 编辑
摘要:本文介绍如何使用如何创建一个react项目,并使用expressjs在linux上后台运行。这里假设已经用create-react-app新建了一个CRA项目,并上传至git。 1: 连接Linux(ubuntu)服务器 假设已经有了.pem文件(用户名密码的方式也可以),将.pem文件放置于win 阅读全文
posted @ 2021-09-04 10:32 老胡Andy 阅读(263) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示