前言
控制反转(Inversion of Control,loC)是一种软件设计的方法,它的主要思想是把控制逻辑与业务逻辑分开,不要在业务逻辑里写控制逻辑,因为这样会让控制逻辑依赖于业务逻辑,而是反过来,让业务逻辑依赖控制逻辑。
举一个开关和电灯的例子。其实,这里的开关就是控制逻辑,电器是业务逻辑。我们不要在电器中实现开关,而是要把开关抽象成一种协议,让电器都依赖它。这样的编程方式可以有效降低程序复杂度,并提升代码重用度。
前言
我们来学习一下函数式编程中非常重要的 Map、Reduce、Filter 这三种操作。这三种操作可以让我们轻松灵活地进行一些数据处理,毕竟,我们的程序大多数情况下都在倒腾数据。尤其是对于一些需要统计的业务场景来说,Map、Reduce、Filter 是非常通用的玩法。
前言
我们来讨论一下 Functional Options 这个编程模式。这是一个函数式编程的应用案例,编程技巧也很好,是目前 Go 语言中最流行的一种编程模式。
但是,在正式讨论这个模式之前,我们先来看看要解决什么样的问题。
前言
主要包括数组切片的一些小坑、接口编程,以及时间和程序运行性能相关的内容。
前言
线上故障是我们技术人员成长中必须要经历的事。从故障中我们可以吸取到很多教训,也能让我们学到很多书本上学不到的知识。坑踩多了,我们会变得越来越有经验,也就成为老司机了。
前言
老天很公平,给了所有人同样多的时间,而有的人能够把时间用好,有的人则没有把时间用好。日积月累,人和人的差距就越来越大了。
我们学习 Go 语言时,要做的第一件事,都是根据自己电脑的计算架构(比如,是 32 位的计算机还是 64 位的计算机)以及操作系统(比如,是 Windows 还是 Linux),从Go 语言官网下载对应的二进制包,也就是可以拿来即用的安装包。
前言
最近在看左耳听风的课程,看到了程序中的错误处理就摘录部分出来。
处理错误的代码并不难写。但你想过没有,要把错误处理写好,并不是件容易的事情。另外,任何一个稳定的程序中都会有大量的代码在处理错误,所以说,处理错误是程序中一件比较重要的事情。
前言
公司新架构是根据不同模块分成一个个独立项目,然后生成nuget包,最后在webHost项目中统一注入。为了避免新建项目的麻烦,于是就有了创建项目模板包的想法,直接生成对应基础的项目目录和文件。
后续的步骤都是建立在你已经把需要设置为模板的项目文件准备好以后才进行。
前言
最近公司新架构开始逐步投入使用了,里面用到了Mediator。Mdeiator 是一款进程内的消息订阅、发布框架。支持在进程内以单程或多播的形式进行消息传递。使用Mdeiator,可以实现消息的发送和处理充分解耦。
最大余额法
起因
最近刚好在和同事这么计算一组数值的百分比,谈论到单纯的计算出百分比,然后相加,经常会出现结果不是刚好等于100%的情况。然后我就说出了我比较粗暴的解决方法,就是最后一个百分数直接通过100%减去前面的计算出的百分比总和得出,这样就可以保证100%了。然后想到了Echarts也是有类似的计算百分比的功能的。就好奇Echarts是怎么实现的,就研究了一下,发现它是通过最大余额法实现的。
博弈论不是“三十六计”
计谋和战略
《三十六计》里的计谋,本质上都是骗术——自己要做A,就让对手以为自己要做B;不希望对手做C,就吸引对手去做D。