随笔分类 - [20]DesignAnalysis设计分析
-
开发架构
摘要:架构实战 所谓架构,意即系统架构,广义上它涵盖业务架构、运维架构、组织架构等所有系统构建场景,本文特指一般开发人员主要关注的开发架构。 关于架构的理论有很多,每个人也都有各自的理解,笔者相信很多人在实际运用中也会遇到各种各样的问题和困惑,本文抛开教条,从一个实际项目的演化看何为架构。 项目背景 开始 阅读全文
-
基于.NET开源、免费的跨平台物联网网关:IoTGateway
摘要:一个.NET开源、免费的跨平台物联网网关 前言 今天大姚给大家分享一个基于.NET开源、免费的跨平台物联网网关:IoTGateway。 项目介绍 IoTGateway是一个基于.NET6的跨平台物联网网关。通过可视化配置,轻松的连接到你的任何设备和系统(如PLC、扫码枪、CNC、数据库、串口设备、上 阅读全文
-
接口设计的18条
摘要:接口设计的18条军规 前言 之前写过一篇文章《表设计的18条军规》,发表之前,在全网广受好评。 今天延续设计的话题,给大家总结了接口设计的18条军规,希望对你会有所帮助。 1. 签名 为了防止API接口中的数据被篡改,很多时候我们需要对API接口做签名。 接口请求方将请求参数 + 时间戳 + 密钥拼 阅读全文
-
CAP 构建微服务事件总线架构
摘要:CAP 构建微服务事件总线架构 快速开始¶ 了解如何使用 CAP 构建微服务事件总线架构,它比直接集成消息队列提供了哪些优势,它提供了哪些开箱即用的功能。 安装¶ PM> Install-Package DotNetCore.CAP 在 Asp.Net Core 中集成¶ 以便于快速启动,我们使用基 阅读全文
-
领域、子域、核心域、通用域和支撑域:傻傻分不清?
摘要:https://zq99299.github.io/note-book2/ddd/01/02.html DDD 的知识体系提出了很多的名词,像:领域、子域、核心域、通用域、支撑域、限界上下文、聚合、聚合根、实体、值对象等等,非常多。这些名词,都是关键概念,但它们实在有些晦涩难懂,可能导致你还没开始实 阅读全文
-
.NET Core Web API下基于Keycloak的多租户用户授权的实现
摘要:ASP.NET Core Web API下基于Keycloak的多租户用户授权的实现 在上文《Keycloak中授权的实现》中,以一个实际案例介绍了Keycloak中用户授权的设置方法。现在回顾一下这个案例: 服务供应商(Service Provider)发布/WeatherForecast API 阅读全文
-
MQ和线程池
摘要:盘一盘这个没资格出现在面试环节的场景题。 你好呀,我是歪歪。 前两天在一个技术群里看到有人抛出一张图片,提出了这样的一个问题: 请教一下,线程池可以做到根据任务的类型,来指定特定线程执行吗? 了解了一下背景,是批量任务触发,从订单表中查询出“处理中”状态的订单,订单可能属于不同的通道,所以需要调用不 阅读全文
-
如何保证接口的安全性?
摘要:保证接口安全的11个小技巧 前言 最近知识星球中有位小伙伴问了我一个问题:如何保证接口的安全性? 根据我多年的工作经验,这篇文章从11个方面给大家介绍一下保证接口安全的一些小技巧,希望对你会有所帮助 1 参数校验 保证接口安全的第一步,也是最重要的一步,需要对接口的请求参数做校验。 如果我们把接口请 阅读全文
-
.Net Core WebAPI 缓存
摘要:Asp.Net Core WebAPI 缓存 一、缓存 缓存指在中间层中存储数据的行为,该行为可使后续数据检索更快。 从概念上讲,缓存是一种性能优化策略和设计考虑因素。 缓存可以显著提高应用性能,方法是提高不常更改(或检索成本高)的数据的就绪性。 二、RFC9111 在最新的缓存控制规范文件RFC9 阅读全文
-
分布式事务方案
摘要:分布式事务模型与常见解决方案 1. 背景 首先抛出一个问题,如果在一台机器上,数据库是如何解决事务问题的?很容易想到,数据库的ACID四个特性来保证的,原子性、一致性、隔离性和持久性。 原子性(Atomicity):一个事务内的所有操作看成一个原子操作,要么全部执行,要么都不执行。 一致性(Cons 阅读全文
-
接口设计
摘要:如何把一个接口设计好? 如何设计一个接口?是在我们日常开发或者面试时经常问及的一个话题。 很多人觉得这不就是CRUD,能实现不就行了。单纯实现来说,并非难事,但要做到易用、易扩展、易维护并不是一件简单的事。这里并不强调一些个接口设计的原则或者设计方法,仅从如何设计一个好的接口出发,简单讨论。 1、命 阅读全文
-
单例模式
摘要:某酒管集团-单例模式对性能的影响及思考 摘要: 大概一年前开始在思考 构造函数中 依赖注入较多,这对系统性能及硬件资源消耗产生一些优化想法。 一般较多公司的项目都使用Autofac 依赖注入(Scoped 作用域),但是发现过多的对象产生 会消耗 CPU , 内存 并给GC(垃圾回收)造成一定的压力 阅读全文
-
超卖
摘要:聊聊超卖 聊聊超卖 焦点: 这篇文章,主要是想聊一聊 “超卖” 这个场景,并且借此,串一下整个电商的交易流程,加深对电商交易的认真。 电商交易流程 我们先看下电商的交易流程: 不管是同城外卖场景,还是异城的的传统电商购物,主要流程都不会有太多区别。 商品筛选 交易的实体是商品,而商品筛选是最先经历的 阅读全文
-
一套接口多实现
摘要:.Net 一套接口多实现 .Net 一套接口多实现 接口(interface)可理解为规范、标准、协议。接口是用来约束各方都在同一组规范下工作。 电脑外设USB接口,各个品牌商家生产的U盘、鼠标都能够被电脑主板识别并工作,这是因为个生产商都遵循实现了USB接口协议。 在编程中接口应用非常广泛,例如I 阅读全文
-
定义+UML类图+应用
摘要:一文掌握设计模式(定义+UML类图+应用)doing... 一、引子 从学编程一开始就被告知,要想做一名优秀的程序员两大必要技能:1.源码阅读(JDK、C等底层语言封装) 2.设计模式(使用某种语言优雅的落地典型场景功能)。一般随着工作年限的增长,被迫对底层语言/框架源码阅读的越来愈多,但是设计模式 阅读全文
-
架构设计?
摘要:如何做架构设计? 也许您对软件设计存在一些疑惑,或者缺乏明确思路,那么本文将非常适合您。 1、设计很重要 我们可以看一下周边的事物,那些好的东西,他们并不会天然存在,都是被设计出来的,因此设计就是创造和改善事物的重要过程。设计的重要之处在于,最初的设计往往决定最终的结果,甚至决定着事物的长期的发展。 阅读全文
-
商品领域基础表
摘要:商品领域十二张基础表设计思路与实现 1 文章概述 商品在电商领域中是一个非常重要的领域,交易行为前提是有商品信息存在。本文我们分析商品表基本设计,其它复杂场景可以在此基础上进行扩展。需要说明第一本文所用数据是测试数据,可能与真实数据有偏差,仅供演示。第二本文展示商品核心字段,一些通用字段不展示。 2 阅读全文
-
渠道的设计与实现
摘要:渠道的设计与实现 有多久,没有发过短信了? 一、背景简介 在常规的分布式架构下,「消息中心」的服务里通常会集成「短信」的渠道,作为信息触达的重要手段,其他常用的手段还包括:「某微」、「某钉」、「邮件」等方式; 对于《消息中心》的设计和实现来说,在前面已经详细的总结过,本文重点来聊聊消息中心的短信渠道 阅读全文
-
重试操作的幂等性
摘要:服务不稳定是一类常态,面对此类场景恰当的应对策略应该是什么?退一步说,即使我们能够确保第一方服务的稳定性,我们又应该如何面对网络延迟以及掌控以外的不确定性?这都是本篇文章会谈到的内容 本文是团队内部分享的文字版,敏感信息已经抹去或者重写。我们通过三个实际的线上问题来看看在今后的开发过程中可以如何避免 阅读全文
-
系统设计在考察什么?
摘要:4招教你搞定系统设计 经常在面试的时候,会被问到系统设计类的题目,比如如何设计微信朋友圈、如何设计12306系统、如何设计一个抢票系统等等。如果是没有准备过,一般都会不知所措,难以找到切入点。今天这里码老思会介绍一个解决系统设计类问题的通用框架,无论什么问题,朝这几步走,一定能找到解决办法。 系统设 阅读全文