左耳听风-Go编程模式:委托和反转控制前言控制反转(Inversion of Control,loC)是一种软件设计的方法,它的主要思想是把控制逻辑与业务逻辑分开,不要在业务逻辑里写控制逻辑,因为这样会让控制逻辑依赖于业务逻辑,而是反过来,让业务逻辑依赖控制逻辑。 举一个开关和电灯的例子。其实,这里的开关就是控制逻辑,电器是业务逻辑。我们不要在电器中实现开关,而是要把开关抽象成一种协议,让电器都依赖它。这样的编程方式可以有效降低程序复 2021-10-15 笔记 #笔记 #go #左耳听风
左耳听风-Go语言编程模式:Functional Options前言我们来讨论一下 Functional Options 这个编程模式。这是一个函数式编程的应用案例,编程技巧也很好,是目前 Go 语言中最流行的一种编程模式。 但是,在正式讨论这个模式之前,我们先来看看要解决什么样的问题。 2021-10-15 笔记 #笔记 #go #左耳听风
左耳听风-故障处理的最佳实践前言线上故障是我们技术人员成长中必须要经历的事。从故障中我们可以吸取到很多教训,也能让我们学到很多书本上学不到的知识。坑踩多了,我们会变得越来越有经验,也就成为老司机了。 2021-10-13 笔记 #笔记 #左耳听风
Go语言核心36讲-工作区和GOPATH我们学习 Go 语言时,要做的第一件事,都是根据自己电脑的计算架构(比如,是 32 位的计算机还是 64 位的计算机)以及操作系统(比如,是 Windows 还是 Linux),从Go 语言官网下载对应的二进制包,也就是可以拿来即用的安装包。 2021-10-09 笔记 #笔记 #go #Go语言核心36讲
左耳听风-程序中的错误处理前言最近在看左耳听风的课程,看到了程序中的错误处理就摘录部分出来。 处理错误的代码并不难写。但你想过没有,要把错误处理写好,并不是件容易的事情。另外,任何一个稳定的程序中都会有大量的代码在处理错误,所以说,处理错误是程序中一件比较重要的事情。 2021-10-09 笔记 #笔记 #左耳听风
.Net Core 创建项目模板文件前言公司新架构是根据不同模块分成一个个独立项目,然后生成nuget包,最后在webHost项目中统一注入。为了避免新建项目的麻烦,于是就有了创建项目模板包的想法,直接生成对应基础的项目目录和文件。后续的步骤都是建立在你已经把需要设置为模板的项目文件准备好以后才进行。 2021-09-27 .Net Core #.Net Core #项目模板
.Net Core Mock MediatR前言最近公司新架构开始逐步投入使用了,里面用到了Mediator。Mdeiator 是一款进程内的消息订阅、发布框架。支持在进程内以单程或多播的形式进行消息传递。使用Mdeiator,可以实现消息的发送和处理充分解耦。 2021-09-22 .Net Core #.Net Core #MediatR
最大余额法最大余额法起因最近刚好在和同事这么计算一组数值的百分比,谈论到单纯的计算出百分比,然后相加,经常会出现结果不是刚好等于100%的情况。然后我就说出了我比较粗暴的解决方法,就是最后一个百分数直接通过100%减去前面的计算出的百分比总和得出,这样就可以保证100%了。然后想到了Echarts也是有类似的计算百分比的功能的。就好奇Echarts是怎么实现的,就研究了一下,发现它是通过最大余额法实现的。 2021-09-17 算法 #算法
.Net Core nuget包版本自动升级实现前言因为公司有自己的私有包服务,但是在发包的过程中,时常会出现忘记升级包版本的情况,导致需要重新发包,就显得比较麻烦,于是就有了实现自动升级包版本的想法。鉴于服务是区分为四个环境的(dev,test,staging和master),所以对应的包版本标识也应该有四个。 2021-08-22 C# #C# #nuget