ASP.Net Core 3.1 中使用 JWT 认证
https://www.cnblogs.com/liuww/p/12177272.html
JWT 认证简单介绍
关于 JWT 的介绍网上很多,此处不再赘述,我们主要看看 JWT 的结构。
JWT 主要由三部分组成,如下:
1HEADER.PAYLOAD.SIGNATURE
HEADER:包含 token 的元数据,主要是加密算法,和签名的类型。
如下面的信息,说明了加密的对象类型是 JWT,加密算法是 HMAC SHA-256。
1{"alg":"HS256","typ":"JWT"}
然后需要通过 BASE64 编码后存入 token 中:
1eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Payload:主要包含一些声明信息(claim),这些声明是 key-value 对 的数据结构。
通常如用户名,角色等信息,过期日期等,因为是未加密的,所以不建议存放敏感信息。
1{"http://schema ...
T-SQL 语言基础
https://www.cnblogs.com/edisonchou/p/6106176.html
一:SQL Server 的体系结构
二:查询
三:表表达式
四:集合运算
https://www.cnblogs.com/edisonchou/p/6106755.html
五:透视、逆透视及分组
六:数据修改
八:可编程对象
https://www.cnblogs.com/edisonchou/p/6129717.html
七:事务和并发
SQL Server 体系结构
数据库的物理布局
数据库在物理上由数据文件和事务日志文件组成,每个数据库必须至少有一个数据文件和一个日志文件。
(1)数据文件用于保存数据库对象数据。数据库必须至少有一个主文件组(Primary),而用户定义的文件组则是可选的。Primary 文件组包括 主数据文件(.mdf),以及数据库的系统目录(catalog)。可以选择性地为 Primary 增加多个辅助数据文件(.ndf)。用户定义的文件组只能包含辅助数据文件。
(2)日志文件则用于保存 SQL Server 为了维护事务而需要的 ...
一文学会链表解题
https://mp.weixin.qq.com/s/moQMi2Zd93EDr8NwdpPDnQ
前言
如果说数据结构是算法的基础,那么数组和链表就是数据结构的基础。因为像堆、栈、队列、树、图等比较复杂的数组结基本上都可以由数组和链表来表示,所以掌握数组和链表的基本操作十分重要。
今天就来看看链表的基本操作及其在面试中的常见解题思路,本文将从以下几个点来讲解链表的核心知识:
什么是链表,链表的优缺点
链表的表示及基本操作
链表常见解题思路 —— 翻转
链表常见解题思路 —— 快慢指针
什么是链表
相信大家已经开始迫不及待地想用链表解题了,不过在开始之前我们还是要先来温习下链表的定义,以及它的优势与劣势,磨刀不误砍柴功!
链表的定义
链表是物理存储单元上非连续、非顺序的存储结构,它是由一个个结点,通过指针来联系起来的,其中每个结点包括数据和指针。
链表的非连续、非顺序,对应数组的连续、顺序,我们来看看整型数组 1,2,3,4 在内存中是如何表示的:
可以看到数组的每个元素都是连续紧邻分配的,这叫连续性,同时由于数组的元素占用的大小是一样的,在 Ja ...
.NET 单元测试的艺术
入门:https://www.cnblogs.com/edisonchou/p/5437205.html
核心技术:https://www.cnblogs.com/edisonchou/p/5447812.html
测试代码:https://www.cnblogs.com/edisonchou/p/5467573.html
入门
本篇作为入门,介绍了单元测试的基础知识,例如:如何使用一个测试框架,基本的自动化测试属性等等,还有对应的三种测试类型。
单元测试基础
什么是单元测试
一个单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行检验。
单元测试几乎都是用单元测试框架编写的。单元测试容易编写,能够快速运行。单元测试可靠、可读,并且可维护。
只要产品代码不发生变化,单元测试的结果是稳定的。
与集成测试的区别
集成测试是对一个工作单元进行的测试,这个测试对被测试的工作单元没有完全的控制,并使用该单元的一个或多个真实依赖物,例如时间、网络、数据库、线程或随机数产生器等。
总的来说,集成测试会使用真实依赖物, ...
正则表达式教程
https://github.com/dunwu/blog/blob/master/source/_posts/tools/regex.md
简介
为了理解下面章节的内容,你需要先了解一些基本概念。
正则表达式 - 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
元字符 - 元字符(metacharacters)就是正则表达式中具有特殊意义的专用字符。
普通字符 - 普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。
基本元字符
正则表达式的元字符难以记忆,很大程度上是因为有很多为了简化表达而出现的等价字符。
而实际上最基本的元字符,并没有那么多。对于大部分的场景,基本元字符都可以搞定。
让我们从一个个实例出发,由浅入深的去体会正则的奥妙。
多选 - |
例 匹配一个确定的字符串
1checkMatches("abc", "abc");
如果要 ...
UML 教程
https://github.com/dunwu/blog/blob/master/source/_posts/tools/uml.md
关键词:部署图, 组件图, 包图, 类图, 复合结构图, 对象图, 活动图, 状态机图, 用例图, 通信图, 交互概述图, 时序图, 时间图
简介
UML 图类型
UML 图类型如下图所示:
结构式建模图
结构式建模图(Structure diagrams)强调的是系统式的建模。结构图定义了一个模型的静态架构。它们通常被用来对那些构成模型的‘要素’建模,诸如:类,对象,接口和物理组件。另外,它们也被用来对元素间关联和依赖关系进行建模。
类图
对象图
包图
组件图
部署图
复合结构图
行为式建模图
行为式建模图(Behavior diagrams)强调系统模型中触发的事。行为图用来记录在一个模型内部,随时间的变化,模型执行的交互变化和瞬间的状态;并跟踪系统在真实环境下如何表现,以及观察系统对一个操作或事件的反应,以及它的结果。
活动图
状态图
用例图
通信图
交互概述图
时序图
时间图
UML 概念
UML 从来源中使用相当 ...
Git 从入门到精通
https://github.com/dunwu/blog/blob/master/source/_posts/tools/git.md
简介
Git 是什么
Git 是一个开源的分布式版本控制系统。
什么是版本控制
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
什么是分布式版本控制系统
介绍分布式版本控制系统前,有必要先了解一下传统的集中式版本控制系统。
集中化的版本控制系统,诸如 CVS,Subversion 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
这么做最显而易见的缺点是中央服务器的单点故障。如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。要是中央服务器的磁盘发生故障,碰巧没做备份,或者备份不够及时,就会有丢失数据的风险。最坏的情况是彻底丢失整个项目的所有历史更改记录。
分布式版本控制系统的客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像 ...
.NET Core 3.1 中的 Json 互操作最全解读
https://mp.weixin.qq.com/s/OSPxIGiJ1rRw1Sz-kZqgvQ
前言
本文将会全面介绍 System.Text.Json 和 Newtonsoft.Json 的相同和异同之处,方便需要的同学做迁移使用。
文档比较
几个重要的对象
在 System.Text.Json 中,有几个重量级的对象,所有的 JSON 互操作,都是围绕这几个对象进行,只要理解了他们各自的用途用法,就基本上掌握了 JSON 和实体对象的互操作。
JsonDocument
提供用于检查 JSON 值的结构内容,而不自动实例化数据值的机制。JsonDocument 有一个属性 RootElement,提供对JSON文档根元素的访问,RootElement 是一个 JsonElement 对象。
JsonElement
提供对 JSON 值的访问,在 System.Text.Json 中,大到一个对象、数组,小到一个属性、值,都可以通过 JsonElement 进行互操作。
JsonProperty
JSON 中最小的单元,提供对属性、值的访问。
JsonSe ...
浅谈消息队列及常见的消息中间件
https://juejin.im/post/5b41fe36e51d45191252e79e
前言
消息队列 已经逐渐成为企业应用系统 内部通信 的核心手段。它具有 低耦合、可靠投递、广播、流量控制、最终一致性 等一系列功能。
当前使用较多的 消息队列 有 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ 等,而部分 数据库 如 Redis、MySQL 以及 phxsql 也可实现消息队列的功能。
正文
消息队列概述
消息队列 是指利用 高效可靠 的 消息传递机制 进行与平台无关的 数据交流,并基于 数据通信 来进行分布式系统的集成。
通过提供 消息传递 和 消息排队 模型,它可以在 分布式环境 下提供 应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步 等等功能,其作为 分布式系统架构 中的一个重要组件,有着举足轻重的地位。
消息队列的特点
采用异步处理模式
消息发送者 可以发送一个消息而无须等待响应。消息发送者 将消息发送到一条 虚拟的通道(主题 或 队列)上,消息接收者 则 订阅 或是 监听 该通 ...
深入剖析 Redis
Windows 环境搭建:https://www.cnblogs.com/igeekfan/p/12115033.html
CSRedis 使用:https://www.cnblogs.com/igeekfan/p/12115048.html
入门简介与主从搭建:https://juejin.im/post/5b76e732f265da4376203849
哨兵模式与高可用集群:https://juejin.im/post/5b7d226a6fb9a01a1e01ff64
集群模式搭建与原理详解:https://juejin.im/post/5b8fc5536fb9a05d2d01fb11
数据结构与全局命令概述:https://juejin.im/post/5bb01064e51d453eb93d8028
数据结构之字符串:https://juejin.im/post/5bbc9d03f265da0ab915e3b5
数据结构之哈希:https://juejin.im/post/5bc359ff5188255c7b16ab72
数据结构之列表:https://juejin.im ...