网页书签【正在整理】
链接
网址
描述
tao-lol
https://tao-lol.top/
此网站
.NET API 浏览器
https://docs.microsoft.com/zh-cn/dotnet/api/index
搜索 Microsoft 提供的所有基于 .NET 的 API
.NET API 浏览器
【搜索 Microsoft 提供的所有基于 .NET 的 API】
.NET Source Browser
【搜索 .NET 的源码】
Nuget Gallery
【.NET 包管理器】
BaGet
【轻量化 .NET 包管理器】
try.dot.net
【.NET 网页在线(控制台程序)代码编辑器】
.NET Fiddle
【.NET 网页在线(控制台程序)代码编辑器】
.NET Platform - GitHub
【.NET 平台 Github 主页】
Learn .NET
【.NET 微软官方教程】
.NET 文档
【】
.NET documentation
【.NET 文档】
.NET Framework
【.NET Framework 文档】
C#
【 ...
C# 实践设计模式原则 SOLID
https://www.cnblogs.com/tiger-wang/p/13525841.html
通常讲到设计模式,一个最通用的原则是 SOLID:
S - Single Responsibility Principle,单一责任原则
O - Open Closed Principle,开闭原则
L - Liskov Substitution Principle,里氏替换原则
I - Interface Segregation Principle,接口隔离原则
D - Dependency Inversion Principle,依赖倒置原则
嗯,这就是五大原则。
后来又加入了一个:Law of Demeter,迪米特法则。于是,就变成了六大原则。
原则好理解。怎么用在实践中?
一、单一责任原则
单一责任原则,简单来说就是一个类或一个模块,只负责一种或一类职责。
看代码:
123456789public interface IUser{ void AddUser(); void RemoveUser(); void UpdateUser(); ...
计算机底层知识
https://www.cnblogs.com/cxuanBlog/p/12195745.html
我们每个程序员或许都有一个梦,那就是成为大牛,我们或许都沉浸在各种框架中,以为框架就是一切,以为应用层才是最重要的,你错了。在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远,而计算机基础知识又是重中之重。下面,跟随我的脚步,为你介绍一下计算机底层知识。
CPU
还不了解 CPU 吗?现在就带你了解一下 CPU 是什么。
CPU 的全称是 Central Processing Unit,它是你的电脑中最硬核的组件,这种说法一点不为过。CPU 是能够让你的计算机叫计算机的核心组件,但是它却不能代表你的电脑,CPU 与计算机的关系就相当于大脑和人的关系。CPU 的核心是从程序或应用程序获取指令并执行计算。此过程可以分为三个关键阶段:提取,解码和执行。CPU 从系统的主存中提取指令,然后解码该指令的实际内容,然后再由 CPU 的相关部分执行该指令。
CPU 内部处理过程
下图展示了一般程序的运行流程(以 C 语言为例),可以说了解程序的运行流程是掌握程序运行机制 ...
什么时候该使用 MQ、Redis 和 配置中心
究竟什么时候该使用 MQ? https://mp.weixin.qq.com/s/_kXoRBAotb4GXoDTqTObYQ
架构选型,究竟啥时候选 Redis? https://mp.weixin.qq.com/s/aX60hdFeuOTW8i3KG_CrtA
互联网架构,究竟为什么需要配置中心? https://mp.weixin.qq.com/s/k1IVjya7qtIf8jwWqTumjA
究竟什么时候该使用 MQ?
**任何脱离业务的组件引入都是耍流氓。**引入一个组件,最先该解答的问题是,此组件解决什么问题。
MQ,互联网技术体系中一个常见组件,究竟什么时候不使用 MQ,究竟什么时候使用 MQ,MQ 究竟适合什么场景,是今天要分享的内容。
MQ 是什么?
消息总线(Message Queue),后文称 MQ,是一种跨进程的通信机制,用于上下游传递消息。
画外音:这两个进程,一般不在同一台服务器上。
在互联网架构中,MQ 经常用做“上下游解耦”:
(1)消息发送方只依赖 MQ,不关注消费方是谁;
(2)消息消费方也只依赖 MQ,不关注发送 ...
什么是 高可用 和 高并发
高可用:https://mp.weixin.qq.com/s/p0LsxT-JUS7zYg23M7nupQ
高并发:https://mp.weixin.qq.com/s/bEkd2lcuK59Gpncuvyj1Ww
高可用
一、什么是高可用
高可用 HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。
假设系统一直能够提供服务,我们说系统的可用性是 100% 。如果系统每运行 100 个时间单位,会有 1 个时间单位无法提供服务,我们说系统的可用性是 99% 。
很多公司的高可用目标是 4 个 9,也就是 99.99% ,这就意味着,系统的年停机时间为 8.76 个小时。
百度的搜索首页,是业内公认高可用保障非常出色的系统,甚至人们会通过 www.baidu.com 能不能访问来判断“网络的连通性”,百度高可用的服务让人留下了“网络通畅,百度就能访问”,“百度打不开,应该是网络连不上”的印象,这其实是对百度 HA 最高的褒奖。
二、如何保障系统的高可用
我们都知道,单点是系统高可用 ...
微服务下如何保证事务的一致性
https://segmentfault.com/a/1190000021574402
从本地事务到分布式事务的演变
什么是事务?回答这个问题之前,我们先来看一个经典的场景:支付宝等交易平台的转账。假设小明需要用支付宝给小红转账 100000 元,此时,小明帐号会少 100000 元,而小红帐号会多 100000 元。如果在转账过程中系统崩溃了,小明帐号少 100000 元,而小红帐号金额不变,就会出大问题,因此这个时候我们就需要使用事务了。
这里,体现了事务一个很重要的特性:原子性。事实上,事务有四个基本特性:原子性、一致性、隔离性、持久性。其中,
原子性,即事务内的操作要么全部成功,要么全部失败,不会在中间的某个环节结束。
一致性,即数据库在一个事务执行之前和执行之后,数据库都必须处于一致性状态。如果事务执行失败,那么需要自动回滚到原始状态,换句话说,事务一旦提交,其他事务查看到的结果一致,事务一旦回滚,其他事务也只能看到回滚前的状态。
隔离性,即在并发环境中,不同的事务同时修改相同的数据时,一个未完成事务不会影响另外一个未完成事务。
持久性,即事务一旦提交,其修 ...
为什么我使用了索引,查询还是慢?
https://www.cnblogs.com/jackyfei/p/12122767.html
经常有同学问我,我的一个 SQL 语句使用了索引,为什么还是会进入到慢查询之中呢?今天我们就从这个问题开始来聊一聊索引和慢查询。
另外插入一个题外话,个人认为团队要合理的使用 ORM,可以参考我的另外一篇 ORM 的权衡和抉择。合理利用的是 ORM 在面向对象和写操作方面的优势,避免联合查询上可能产生的坑(当然如果你的 Linq 查询能力很强另当别论),因为 ORM 屏蔽了太多的 DB 底层的知识内容,对程序员不是件好事,对性能有极致追求,但是 ORM 理解不透彻的团队更加要谨慎。
案例剖析
言归正传,为了实验,我创建了如下表:
123456CREATE TABLE `T`(`id` int(11) NOT NULL,`a` int(11) DEFAUT NULL,PRIMARY KEY(`id`),KEY `a`(`a`)) ENGINE=InnoDB;
该表有三个字段,其中用 id 是主键索引,a 是普通索引。
首先 SQL 判断一个语句是不是慢查询语句,用 ...
C# 中 ConfigureAwait 相关答疑 FAQ
译文:https://www.cnblogs.com/ms27946/p/ConfigureAwait-FAQs-In-CSharp.html
原文:https://devblogs.microsoft.com/dotnet/configureawait-faq/
.NET 加入 async/await 特性已经有 7 年了。这段时间,它蔓延的非常快,广泛;不只在 .NET 生态系统,也出现在其他语言和框架中。在 .NET 中,他见证了许多了改进,利用异步在其他语言结构(additional language constructs)方面,提供了支持异步的 API,在基础设施中标记 async/await 作为最基本的优化(特别是在 .NET Core 的性能和分析能力上)。
然而,async/await 另一方面也带来了一个问题,那就是 ConfigureAwait 。在这片文章中,我会解答它们。我尝试在这篇文章从头到尾变得更好读,能作为一个友好的答疑清单,能为以后提供参考。
什么是 SynchronizationContext
System.Threading.Sy ...
在 ASP.NET Core 3.0 中使用 Serilog.AspNetCore
译文:
使用 Serilog RequestLogging 减少日志详细程度:https://www.cnblogs.com/yilezhu/p/12215934.html
使用 Serilog 记录所选的终结点属性:https://www.cnblogs.com/yilezhu/p/12227271.html
使用 Serilog.AspNetCore 记录 MVC 属性:https://www.cnblogs.com/yilezhu/p/12243984.html
从 Serilog 请求日志记录中排除健康检查端点:https://www.cnblogs.com/yilezhu/p/12253361.html
原文:
Reducing log verbosity with Serilog RequestLogging
Logging the selected Endpoint Name with Serilog
Logging MVC properties with Serilog.AspNetCore
Excluding health che ...
使用 OAS(OpenAPI 标准)来描述 Web API
https://www.cnblogs.com/cgzl/p/12217617.html
无论哪种类型的 Web API 都可能需要给其他开发者使用,所以 API 的开发者体验是很重要的。API 的开发者体验,简写为 API DX(Developer Experience),它包含很多东西。例如如何使用 API、文档、技术支持等等,但是最重要的还是 API 的设计。如果 API 设计的不好,那么使用该 API 构建的软件就需要增加在时间、人力、金钱等方面的投入。有时候 API 会被错用,甚至带来毁灭性后果。最后抱怨该 API 的用户越来越多,慢慢地,客户就会停止使用该 API。
API 的目的是让人们可以简单的使用它来达到自己的目的。目前行业内有很多 API 风格,例如:REST、gRPC、GraphQL、SOAP、RPC 等等。但是每个风格都遵循一些基本的设计原则。
用户就是上帝,为用户设计 API
和构建任何东西一样,你需要一个计划,你需要在真正做之前来决定你想要的是什么。API 设计也是一样的。
API 并不是用来盲目地暴露一些数据或业务处理能力。它就像我们 ...