- 博客(140)
- 收藏
- 关注
原创 C# --- LINQ
LINQ的全称为Language Integrated Query, 为各种查询(包括对象查询,数据库查询,XML查询) 提供了统一模型.LINQ源于SQL,但比SQL更加强大,更加灵活.LINQ可以用类似于SQL的形式对C# Collection中的对象进行查询LINQ可以在代码中对数据库进行查询,编程语言和数据库之间配合上的鸿沟,也就是不用再手动拼接SQL字符串去查询数据库.可读性强:LINQ增加了代码的可读性,因此其他开发人员可以很轻松地理解和维护。
2025-03-15 19:35:29
983
原创 Api架构设计--- HTTP + RESTful
RESTful(Representational State Transfer)是一种基于HTTP协议设计网络应用程序接口(API)的架构风格,由Roy Fielding在2000年的博士论文中提出。其核心思想是以资源为中心,通过统一的接口对资源进行操作,实现客户端与服务器的解耦也就是RESTful是基于http定义了一组接口格式规范,用来规范所有http请求。
2025-03-15 17:32:02
877
原创 关系型数据库主键的选择
主键唯一主键不可修改业务字段不可用于主键自增idUUIDUUID基于某个单表做自增主键基于多个单表+步长做自增主键雪花算法优点:缺点:
2024-12-31 18:21:53
807
原创 Web系统设计 --- 后端消息推送
Web网络通信 --- 后端消息推送轮询长轮询WebSocketSSEExample -- SignalR轮询长轮询WebSocketSSEExample – SignalR
2024-12-17 17:38:21
519
原创 Web身份认证 --- JWT Token
JWT,全称为JSON Web Token,是一种开放标准(RFC 7519),用于在网络应用环境间安全地传输信息。它本质上是一个经过数字签名的JSON对象,能够携带并传递状态信息(如用户身份验证、授权等)JWT由三部分组成, 并经过Base64Url编码之后使用 (注意编码不是加密)HeaderJWT 的头部通常由两部分组成,分别是令牌类型(typ)和加密算法(alg)。一般情况下,头部会采用 Base64 编码。Payload。
2024-12-16 16:20:36
1366
原创 Mongo --- Mongo Pipeline
在MongoDB中,聚合管道(aggregation pipeline)是一种用于处理和转换数据的机制。它允许您按顺序对集合中的文档执行一系列操作,并将结果从一个阶段传递到下一个阶段。聚合管道由多个阶段组成,每个阶段在输入文档上执行特定的操作,并生成转换后的输出,作为下一个阶段的输入。聚合管道中的每个阶段接收输入文档,并应用某种操作,例如过滤、分组、投影或排序,以生成一组修改后的文档。一个阶段的输出成为下一个阶段的输入,形成了一个数据处理的管道流程.
2024-11-24 18:25:56
1227
原创 Web框架 --- C#中的ActionFilter
Action Filter 是一种用于在执行controller方法之前或之后执行自定义逻辑的机制。>* Action Filter 可以用来处理各种任务,包括但 不限于日志记录、身份验证、授权、参数验证,错误处理和其他横切关注点(cross-cutting concerns)C# Net Core 有四种常用的Filter(按照执行顺序排列)attribute.attribute.(最常用)attribute.attribute.ActionFilter有两种方法可以执行。
2024-10-29 18:23:19
800
原创 DevOps --- Pipeline和Yaml文件
在DevOps中pipeline可以按顺序在一台虚拟机上实现一组特定的操作,包括但不限于执行git命令,如拉取代码,push代码等执行任意程序执行python或bash脚本基于以上操作,pipeline通常可以完成以下场景持续集成:拉取代码,运行代码质量检查工具,运行集成测试,部署代码等使用第三方控件对代码进行安全扫描(DAST, Image,SAST等)定时运行E2E测试。
2024-10-28 20:02:18
1335
3
原创 Web框架 --- 解析Web请求 [FromBody] [FromQuery] [FromRoute] [FromHeader]
【代码】Web框架 --- 解析Web请求 [FromBody] [FromQuery] [FromRoute] [FromHeader]
2024-08-19 18:19:49
638
原创 C# --- .Net Framework中的Binding Redirect
为什么需要绑定重定向?在.Net Framework 中, 假设你有一个应用程序 A,它引用了libray B 和 library C, 同时B又引用了D的1.1.1.0版本,而C引用了D的1.1.1.1版本. 现在我们面临一个冲突,因为在运行时无法加载不同版本的同一个程序集一般会报出以下Error Message为了解决这个冲突,你可以使用绑定重定向,通常是指向新版本(但也可以指向旧版本)。
2024-07-21 18:18:38
410
原创 C# --- 在项目中使用Attribute + Reflection
将需要执行的TestCase包装成一个类,并将TestCase分成几个Steps,每个Step是一个方法自定义一个Attribute,修饰每个Step方法//自定义Attributeset;使用反射拿到所有被自定义Attribute “StepMethod” 修饰的方法.使用Invoke方法执行。
2024-07-02 15:42:02
283
原创 C# --- 浮点数类型 float, double, decimal
【代码】C# --- 浮点数类型 float, double, decimal。
2024-05-27 17:17:59
844
原创 计算机网络 --- WebSocket协议
HTTP是基于TCP协议的,同一时间里,客户端和服务器只能有一方主动发数据,是半双工通信。通常,打开某个网页,我们每点击一次网页上的某个选项,前端就会发送一次HTTP请求,网站返回一次HTTP响应。这种由客户端主动请求,服务器响应的方式满足大部分网页的功能场景。但这种情况下,服务器不会主动给客户端发消息。而类似网页游戏这样的场景,是需要客户端和服务器之间互相主动发大量数据的。因此,我们需要一个基于TCP的新协议,即新的应用层协议WebSocket。
2024-04-22 23:33:33
1730
原创 浮点类型(float、double)在内存中如何存储
另外一种简单的计算方法: 十进制的小数采用乘2取整法进行计算,取掉整数部分后,剩下的小数继续乘以2,直到小数部分全为0.
2024-03-19 20:46:50
950
原创 分布式基础 --- Leader election
为什么需要leader electionRing electionBully Algorithm
2024-03-03 21:16:27
896
原创 注册中心 Service Discovery --- Intro
原文链接:https://blog.youkuaiyun.com/weixin_42774617/article/details/131740758。客户端注册(调用方实现)客户端发现(调用方实现)
2024-02-24 20:51:56
1024
原创 MessageQueue --- RabbitMQ
RabbitMQ IntroRabbitMQ 核心概念RabbitMQ 分发类型Dead letter (死信)保证消息的可靠传递
2024-02-16 21:25:07
1562
原创 MessageQueue --- Intro
MQ全称是Message Queue,消息的队列,因为是队列,所以遵循FIFO 先进先出的原则,它是一种跨进程的通信机制,用于上下游传递消息.目前主要有两种MQ协议:AMQP和MQTT。
2024-02-01 23:03:55
1299
原创 Web框架 --- 依赖注入实例的生命周期
通过依赖注入的实例都有一个生命周期, 主要有三种生命周期Singleton整个程序运行过程中, 只产生一个实例, 应用程序结束后会被销毁controller默认为singleton, 大部分情况下service和repository的实例也都为单例当使用 Singleton 生命周期时,一个典型的例子是在一个应用程序中管理全局状态或共享资源,确保整个应用程序只有一个实例。// 全局状态管理服务接口// 具体的全局状态管理服务实现// 在 Startup.cs 中进行注册。
2023-12-28 01:03:09
987
原创 git --- restore, reset, revert
git revertgit restoregit resetgit reset --softgit reset --mixedgit reset -- hard
2023-09-24 22:29:08
523
原创 git --- 基础介绍
git 是什么git --- 工作区, 暂存区, 资源库git --- 文件状态git --- branch 和 HEADgit --- 一次正常的git提交流程
2023-09-18 03:00:17
379
原创 C# --- Null Operator
Null-Coalescing Operator ??Null-Coalescing Assignment Operator ??=Null-Conditional Operator ?.
2023-07-10 18:37:06
379
原创 C# ---Constructor, Object Initializer, Property, Constant, and readonly
Constructor and Object InitializerFields and Property如何设置常量
2023-07-10 17:24:51
568
原创 C# --- Lambda Expression
Intro to Lambda Expressionlambda表达式的参数lambda表达式的返回值如何使用lambda Expression
2023-07-09 18:43:42
767
原创 C# --- cancellation token
如何终止一个Task --- cancellation tokenExample --- Complete Task via return OperatorExample --- Complete Task via ThrowIfCancellationRequested()Example --- Register Operation Cancellation Handler
2023-07-03 00:38:30
476
原创 C# ---委托机制 delegate 和 回调方法 callback
什么是委托机制委托机制的优点C# 中的Action 和 Func委托机制的主要用处 --- 回调 Callback
2023-07-02 22:01:56
2032
原创 C# -- 多线程和Task-based Asynchronous Pattern
异步机制的使用场景TAP --- Task-based Asynchronous PatternExample --- async/await异步方法的返回值异步机制和多线程的关系
2023-06-29 00:09:20
789
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人