自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一线码农的专栏

阴沉的黑夜都是白天的前奏

  • 博客(10)
  • 收藏
  • 关注

原创 快醒醒,C# 9 中又来了一堆关键词 init,record,with

一:背景1. 讲故事.NET5 终于在 2020-08-25 也就是前天发布了第八个预览版,这么多的预览版搞得我都麻木了,接踵而来的就是更多的新特性加入到了 C# 9 中,既然还想呆在这条船上,得继续硬着头皮学习哈,这一篇跟大家聊聊新增的几个关键词。二:新增关键词1. init出来一个新语法糖,首先要做的就是去揭它的老底,这样可以方便推测它的应用场景,为了方便表述,我先上一个例子: public class Person { public string Name

2020-08-28 07:15:01 1388

原创 await,async 我要把它翻个底朝天,这回你总该明白了吧

一:背景1. 讲故事await,async 这玩意的知识点已经被人说的烂的不能再烂了,看似没什么好说的,但我发现有不少文章还是从理论上讲述了这两个语法糖的用法,懂得还是懂,不懂的看似懂了过几天又不懂了,人生如戏全靠记是不行的哈????????????,其实本质上来说 await, async 只是编译器层面上的语法糖,在 IL 层面都会被打成原型的,所以在这个层面上认识这两个语法糖是非常有必要的。二:从 IL 层面认识1. 使用 WebClient 下载为了方便打回原型,我先上一个例子,使用 we

2020-08-25 09:46:44 1326 2

原创 内存不够用还要速度快,终于找到可以基于 File 的 Cache 了

一:背景1. 讲故事18年的时候在做纯内存项目的过程中遇到了这么一个问题,因为一些核心数据都是飘在内存中,所以内存空间对我们来说额外宝贵,但偏偏项目中有些数据需要缓存,比如说需要下钻的报表上的点,基于性能的考虑,不希望采用独立的缓存中间件,比如 redis, mongodb,毕竟再怎么滴还是要走网络io,但直接放在本机内存中也不现实,那有没有均衡于 native cache 和 cache server 之间的方案呢? 对的,就是 disk cache,毕竟 磁盘IO 的读写要远大于网络IO,更何况配的

2020-08-23 10:39:09 768

原创 如何校验内存数据的一致性,DynamicExpresso 算是帮上大忙了

一:背景1. 讲故事记的在上一家公司做全内存项目的时候,因为一些关键表会在程序 startup 的时候全量灌入到内存中,但随着时间的推移,内存和数据库的同步偶尔会出现数据差异的情况,伴随着就是运营那边报过来的 bug,检查数据库的数据完整性很简单,直接写一些 sql 验证一下就好了,但校验内存中的数据就非常麻烦了,因为你不能像写 sql 一样直接去查生产中的内存集合,那怎么办呢? 为了方便演示问题,先上一段演示代码: class Program { static voi

2020-08-19 09:53:56 682

原创 用过 mongodb 吧, 这三个大坑踩过吗?

一:背景1. 讲故事前段时间有位朋友在微信群问,在向 mongodb 中插入的时间为啥取出来的时候少了 8 个小时,8 在时间处理上是一个非常敏感的数字,又吉利又是一个普适的话题,后来我想想初次使用 mongodb 的朋友一定还会遇到各种新坑,比如说: 插入的数据取不出来,看不爽的 ObjectID,时区不对等等,这篇就和大家一起聊一聊。二: 1号坑 插进去的数据取不出来1. 案例展示这个问题是使用强类型操作 mongodb 你一定会遇到的问题,案例代码如下: class Program

2020-08-16 17:24:11 1118

原创 Enumerable 下又有新的扩展方法啦,快来一起一睹为快吧

一:背景1. 讲故事前段时间将公司的一个项目从 4.5 升级到了 framework 4.8 ,编码的时候发现 Enumerable 中多了三个扩展方法: Append, Prepend, ToHashSet,想必玩过jquery的朋友一眼就能看出这三个方法的用途,这篇就和大家一起来聊聊这三个方法的底层源码实现,看有没有什么新东西可以挖出来。二:Enumerable 下的新扩展方法1. Append看到这个我的第一印象就是 Add 方法, 可惜在 Enumerable 中并没有类似的方法,可能后来

2020-08-14 09:35:00 572

原创 配置文件中的数据库连接串加密了,你以为我就挖不出来吗?

一:背景1. 讲故事前几天在调试物联柜终端上的一个bug时发现 app.config 中的数据库连接串是加密的,因为调试中要切换数据库,我需要将密文放到专门的小工具上解密,改完连接串上的数据库名,还得再加密贴到 app.config 中,烦的要死,内容如下: <appSettings> <!-- 数据库连接字符串 --> <add key="OLEDBConnStr" value="XfES27am6Muw48iB1GlM

2020-08-12 09:57:16 828

原创 工作十余年,还是一直被问 委托和事件 有什么区别? 真是够了

一:背景1. 讲故事前几天公司一个妹子问我,事件和委托有什么区别? 先由衷感叹一下,编码十余年,年轻的时候常被面试官问起,现在年长了,却被后辈们时常问候,看样子逃离编码生涯之前是跑不掉了,不过奇怪的是,这个问题被问起的时候,我发现有很多人用: 事件是一种特殊的委托 来进行总结,是不是挺有意思,我想这句话可能来自于网络上的面试题答案吧,这篇我就试着彻底总结一下。二:事件真的是特殊的委托吗?1. 猫和老鼠 经典案例要想知道两者到底什么关系? 先得有一些基础代码,这里就用大家初学事件时用到的 猫和老鼠

2020-08-10 09:16:31 557 1

原创 用了Dapper之后通篇还是SqlConnection,真的看不下去了

一:背景1. 讲故事前几天看公司一个新项目的底层使用了dapper,大家都知道dapper是一个非常强大的半自动化orm,帮程序员解决了繁琐的mapping问题,用起来非常爽,但我还是遇到了一件非常不爽的事情,如下代码所示: public class UserDAL : BaseDAL { public List<UserModel> GetList() { using (SqlConnection conn = ne

2020-08-05 12:15:53 669

原创 api接口返回动态的json格式?我太难了,尝试一下 linq to json

一:背景1. 讲故事前段时间和一家公司联调api接口的时候,发现一个奇葩的问题,它的api返回的json会动态改变,简化如下:{"Code":101,"Items":[{"OrderTitle":"订单1"}]}{"Code":102,"Items":[{"ProductTitle":"商品1"}]}逻辑是这样的: Items 中的内

2020-08-03 09:34:09 742

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除