摘要: 本文是《Clean C#》一书译文的序言,阅读译文请移步至:《Clean C#》译文。 《Clean C#》的副标题是Readable,Maintainable,Pleasurable,本书旨在提供一些编写具有良好可读性与可维护性代码的建议。虽然书名中带有C#字眼,但书中提供的经验绝不仅限于C#,也 阅读全文
posted @ 2018-10-27 17:35 雪飞鸿 阅读(574) 评论(0) 推荐(1) 编辑
摘要: 这是个人学习笔记,非教程,内容会有些混乱 极简教程 数据类型 我们可以使用type()函数类获取对象的类型,Python3中内置数据类型包括:None,int,float,complex,str,list,dict,tuple,set,frozenset,range等,Python2中还有long类 阅读全文
posted @ 2018-09-03 17:47 雪飞鸿 阅读(965) 评论(0) 推荐(1) 编辑
摘要: 问题描述 EFCore cannot get new value in docker, if use rsync replace sqlite file 基于.NET6开发一个查询SQLite的API,使用Docker进行部署,通过挂载的方式来访问数据库文件:docker run -d --name 阅读全文
posted @ 2022-10-17 09:45 雪飞鸿 阅读(16) 评论(0) 推荐(0) 编辑
摘要: SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed 在测试环境部署服务后,调用API会抛出以下异常: Microsoft.Data.SqlClient.SqlException (0x80131904): A connecti 阅读全文
posted @ 2022-08-17 14:24 雪飞鸿 阅读(362) 评论(0) 推荐(0) 编辑
摘要: ASP.NET Core通过IInputFormatter来解析输入的数据,并进行模型绑定(Model Binding);通过IOutputFormatter来解析输出的数据,来格式化响应(format response)。 两个Nuget包 谷歌提供了Google.Protobuf包用于解析Pro 阅读全文
posted @ 2022-08-08 10:40 雪飞鸿 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 本文用于演示如何在本地使用Docker搭建RabbitMQ集群。 erlang cookie erlang节点间通讯需要具有相同的erlang cookie值,erlang cookie的值在.erlang.cookie文件中,位置在家目录下, 通常是/var/lib/rabbitmq。这里通过Do 阅读全文
posted @ 2022-05-04 21:48 雪飞鸿 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 在生产环境中,通常有DBA同事对数据库进行监控,在发现如慢查询等问题时反馈给开发团队进行解决。 .NET平台提供了诊断机制,借助该机制可以实现EFCore记录慢查询日志功能,这样开发团队就可以通过日志告警发现慢查询问题而无需被动依赖DBA同事的反馈。 记录慢查询日志 基于.NET6创建API项目,安 阅读全文
posted @ 2022-02-04 21:20 雪飞鸿 阅读(154) 评论(0) 推荐(0) 编辑
摘要: Python中的装饰器是一个用于修改类或者函数功能的可调用对象(callable),函数或者实现了__call__方法的类都可以看作是可调用对象。Python中装饰器分为两大类: 函数装饰器 类装饰器 函数装饰器 最简单的装饰器 Python中最简单的装饰器是一个嵌套函数。举例,使用装饰器函数ela 阅读全文
posted @ 2021-12-05 17:54 雪飞鸿 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 在分布式系统中,全局唯一id算是一个基本需求,对于全局唯一id通常要求: 全局唯一 趋势递增 id的值递增但可以不连续 单调递增 后面产生的id值一定大于前面的id值 信息安全 id值不能暴露出业务数据信息 ⚠️ 许多餐馆中的订单号通常是当天唯一且连续递增,通过订单号就可以知道这家餐馆卖出了多少单 阅读全文
posted @ 2021-09-04 22:14 雪飞鸿 阅读(575) 评论(0) 推荐(0) 编辑
摘要: 常用限流算法有漏桶算法和令牌桶算法,本文借助Redis的redis_cell模块来实现令牌桶算法限流。 构建镜像并启动容器 FROM redis:latest ARG cell_dir=/lib/redis_modules/redis_cell RUN mkdir -p ${cell_dir} WO 阅读全文
posted @ 2021-08-05 16:08 雪飞鸿 阅读(903) 评论(0) 推荐(0) 编辑
摘要: 前段时间有同事问了一个问题:JavaScript是单线程运行代码,那么如下代码片段中,同样是执行func1和func2,为什么只用 Promise.all 相比于直接执行 await func1();await func2(); 速度更快: async function func1() { awai 阅读全文
posted @ 2021-07-17 20:32 雪飞鸿 阅读(717) 评论(0) 推荐(2) 编辑
摘要: 使用TypeScript或者ES2015+标准中的extends关键字是很容易实现继承的,但这不是本文的重点。JS使用了基于原型(prototype-based)的继承方式,extends只是语法糖,本文重点在于不使用extends来自己实现继承,以进一步理解JS中的继承,实际工作中肯定还是要优先考 阅读全文
posted @ 2020-12-27 12:21 雪飞鸿 阅读(289) 评论(0) 推荐(0) 编辑