今天这篇笔记我们来学习Go限流限流是分布式系统中经常需要用到的技术,因为我们让请求没有限制,很容易就出现某个用户开很多线程把我们的服务拉跨,进而影响到别的用户。限流我们来看下Go语言层面可以怎么做到限流,先看一段不限流的代码,typeAPIConnectionstruct{}funcOpen()*APIConnection{ return&APIConnection{}}func(a*APIConnection)ReadFile(ctxcontext.Context)error{//假装我们在这里有运行 returnnil}func(a*APIConnection)ResolveAddress
第一章什么是对象1.1抽象的历程”对象“:问题空间中的元素及其解决方案空间中的具体呈现。理念即是通过添加各种新的对象,可以将程序改编为一种描述问题的语言。对象是具有状态、行为及标识的。对象可以拥有自己的内部数据(用以赋予状态),方法(用以产生行为),对象在内存中都有唯一的地址。1.2对象具有接口关键字class的由来:状态不同但结构相同的对象汇聚在一起而组成的同一类对象。类是描述了一系列具有相同特征(即数据元素)和行为(即功能方法)的对象,也就是说类其实是数据类型。在面向对象领域中,我们将创建的变量称为”对象“或者”实例“,将操作变量称为”发送消息“或者”发送请求“。让一个对象真正的发挥其作用
第一章什么是对象1.1抽象的历程”对象“:问题空间中的元素及其解决方案空间中的具体呈现。理念即是通过添加各种新的对象,可以将程序改编为一种描述问题的语言。对象是具有状态、行为及标识的。对象可以拥有自己的内部数据(用以赋予状态),方法(用以产生行为),对象在内存中都有唯一的地址。1.2对象具有接口关键字class的由来:状态不同但结构相同的对象汇聚在一起而组成的同一类对象。类是描述了一系列具有相同特征(即数据元素)和行为(即功能方法)的对象,也就是说类其实是数据类型。在面向对象领域中,我们将创建的变量称为”对象“或者”实例“,将操作变量称为”发送消息“或者”发送请求“。让一个对象真正的发挥其作用
UnityShader入门精要读书笔记第三章UnityShader基础前言UnityShader的出现就是为了提供一个地方能够让开发者更轻松的管理着色器代码以及渲染设置,而不需要同各种shader文件一样管理多个文件、函数等。3.1UnityShader概述3.1.1材质和UnityShader 在Unity中,我们需要配合使用材质(Material)和UnityShader才能达到需要的效果。UnityShader定义渲染所需的代码、属性和指令,而材质允许我们自己调节这些属性,并赋给相应的模型。3.1.2Unity中的材质 Unity中的材质需要结合一个GameObject的mesh或者
UnityShader入门精要读书笔记第三章UnityShader基础前言UnityShader的出现就是为了提供一个地方能够让开发者更轻松的管理着色器代码以及渲染设置,而不需要同各种shader文件一样管理多个文件、函数等。3.1UnityShader概述3.1.1材质和UnityShader 在Unity中,我们需要配合使用材质(Material)和UnityShader才能达到需要的效果。UnityShader定义渲染所需的代码、属性和指令,而材质允许我们自己调节这些属性,并赋给相应的模型。3.1.2Unity中的材质 Unity中的材质需要结合一个GameObject的mesh或者
本博客将简单摘录并总结复旦大学张军平老师的书籍《高质量读研》中的内容,虽然读研究生这件事对每个人的最优解都是不同的,但也希望通过读这本书听听过来人的意见.下面将参考原书中的章节安排进行摘录,并会附上一些个人的想法,也欢迎大家分享自己的观点.时商本节内容来自原书第1、2小节,以markdown引用格式标注的即为原书语句。⏱️除了智商,一般我们还能想到的还有情商,还有一种经常被忽略的——时商;时商,顾名思义就是对个人可支配时间的管理能力和利用效率.虽然对时间的利用效率很重要,但也不能忽视必要的绝对投入时长.只有投入足够长的时间才有提高利用效率的基础.书中提到,对于科研工作者有三方面工作是需要绝对投
本博客将简单摘录并总结复旦大学张军平老师的书籍《高质量读研》中的内容,虽然读研究生这件事对每个人的最优解都是不同的,但也希望通过读这本书听听过来人的意见.下面将参考原书中的章节安排进行摘录,并会附上一些个人的想法,也欢迎大家分享自己的观点.时商本节内容来自原书第1、2小节,以markdown引用格式标注的即为原书语句。⏱️除了智商,一般我们还能想到的还有情商,还有一种经常被忽略的——时商;时商,顾名思义就是对个人可支配时间的管理能力和利用效率.虽然对时间的利用效率很重要,但也不能忽视必要的绝对投入时长.只有投入足够长的时间才有提高利用效率的基础.书中提到,对于科研工作者有三方面工作是需要绝对投
《TheGoProgrammingLanguage》知识点记载,学习笔记、章节练习与个人思考。前言·Go语言圣经(itsfun.top)标题后标记了小丑符号的表示还没写。Hello,WorldGo语言不需要在语句或者声明的末尾添加分号,除非一行上有多条语句。实际上,编译器会主动把特定符号后的换行符转换为分号,因此换行符添加的位置会影响Go代码的正确解析(译注:比如行末是标识符、整数、浮点数、虚数、字符或字符串文字、关键字break、continue、fallthrough或return中的一个、运算符和分隔符++、--、)、]或}中的一个)。举个例子,函数的左括号{必须和func函数声明在同一
《TheGoProgrammingLanguage》知识点记载,学习笔记、章节练习与个人思考。前言·Go语言圣经(itsfun.top)标题后标记了小丑符号的表示还没写。Hello,WorldGo语言不需要在语句或者声明的末尾添加分号,除非一行上有多条语句。实际上,编译器会主动把特定符号后的换行符转换为分号,因此换行符添加的位置会影响Go代码的正确解析(译注:比如行末是标识符、整数、浮点数、虚数、字符或字符串文字、关键字break、continue、fallthrough或return中的一个、运算符和分隔符++、--、)、]或}中的一个)。举个例子,函数的左括号{必须和func函数声明在同一
在Windows下,颜色的格式有很多,我好奇为什么要设计出R5G6B5这样的格式?通过阅读一些书和官方的文档,似乎了解了为什么,我在本文记录一下颜色的格式上,常用的就是16位和32位的颜色。使用16位的一个优势在于能使用更少的内存占用。另外,对于颜色表示来说,透明度A是可选的,也就是说常用的ARGB中,只使用RGB也是合理的。此时需要将16位分给RGB三个通道,显然16是不能被3整除的。势必需要某个颜色通道和其他通道使用的不相同格式R5G6B5的含义就是红色(R)占5位,绿色(G)占6位,蓝色(B)占5位。那为什么选择让绿色(G)多占呢?为什么不是选择红色或蓝色呢这里绿色多一位是因为人眼对绿光