分布式通信:发布订阅什么是发布订阅?远程调用的核心是在网络服务层封装了通信协议、序列化、传输等操作,让用户调用远程服务如同进行本地调用一样。这种通信方式虽然也是设置成异步的,但是因为进程之间是直接交互的,所以当进程比较多时,会导致进程维护通信的复杂度非常高,且一个进程通信接口改变,与其通信的进程都会受到影响。为了解决这个问题,我们需要设计专门的异步通信模式,包括消息发布订阅和消息队列两种方式。发布订阅的三要素:生产者,负责产生数据放到消息中心。消费者,向消息中心订阅自己感兴趣的消息。消息中心,当发布者推送数据到消息中心后,消息中心根据消费者订阅情况将数据推送给对应的订阅者。两种消息系统模式消息
函数是基于功能或者逻辑进行聚合的可复用的代码块。将一些复杂的、冗长的代码抽离封装成多个代码片段,即函数,有助于提高代码逻辑的可读性和可维护性。不同于Python,由于Golang是编译型语言,编译之后再运行,所以函数的定义顺序无关痛痒。函数声明在Golang里,函数声明语法如下:funcfunction_name(parameter_list)(result_list){//函数逻辑}这里使用function的简写形式func关键词,后面依次接function_name(函数名),parameter_list(参数列表),result_list(返回值列表)以及函数体。parameter_li
函数是基于功能或者逻辑进行聚合的可复用的代码块。将一些复杂的、冗长的代码抽离封装成多个代码片段,即函数,有助于提高代码逻辑的可读性和可维护性。不同于Python,由于Golang是编译型语言,编译之后再运行,所以函数的定义顺序无关痛痒。函数声明在Golang里,函数声明语法如下:funcfunction_name(parameter_list)(result_list){//函数逻辑}这里使用function的简写形式func关键词,后面依次接function_name(函数名),parameter_list(参数列表),result_list(返回值列表)以及函数体。parameter_li
1. 回收1.1. 找到不使用的对象1.2. 释放它们的内存1.3. 压缩堆1.4. 合在一起称为回收2. Throughput回收器2.1. 工作细节比较简单2.1.1. 可以在同一个GC周期内完成回收2.1.2. 在单次操作过程中回收新生代或老年代2.2. MinorGC2.2.1. 当Eden空间被填满时,新生代回收就会发生2.2.2. 新生代回收会将所有的对象移出Eden空间2.2.2.1. Eden空间一般是空的2.2.2.2. 不认为它被压缩了2.2.3. 另一些被移到老年代2.2.4. 还有大量对象因不再使用而被丢弃2.3. FullGC2.3.1. 老年代回收会将新生代中的所有
1. 回收1.1. 找到不使用的对象1.2. 释放它们的内存1.3. 压缩堆1.4. 合在一起称为回收2. Throughput回收器2.1. 工作细节比较简单2.1.1. 可以在同一个GC周期内完成回收2.1.2. 在单次操作过程中回收新生代或老年代2.2. MinorGC2.2.1. 当Eden空间被填满时,新生代回收就会发生2.2.2. 新生代回收会将所有的对象移出Eden空间2.2.2.1. Eden空间一般是空的2.2.2.2. 不认为它被压缩了2.2.3. 另一些被移到老年代2.2.4. 还有大量对象因不再使用而被丢弃2.3. FullGC2.3.1. 老年代回收会将新生代中的所有
导读:对于软件测试来说,怎么样才算测够了?如何评价测试的有效性?那么多测试用例,以后怎么删?在软件测试中会遇到非常多的问题,阿里研究员郑子颖分享了18个他总结出的难题以及相关看法,希望对同学们有所启发。十多年前我在上一家公司的时候看到过内部有个网站有一个HardProblemsinTest的列表,上面大概有三四十个问题的样子,是各个部门的测试同学提供的。但可惜后来那个list失传了,我很后悔自己当时没有保存一份。后来很多次我都想要找到那份list,因为上面列的那些问题指出了测试专业在自身专业性上的巨大发展空间。那份list上的问题让当时的我相信,软件测试这件事情本身的难度一点都不亚于软件开
导读:对于软件测试来说,怎么样才算测够了?如何评价测试的有效性?那么多测试用例,以后怎么删?在软件测试中会遇到非常多的问题,阿里研究员郑子颖分享了18个他总结出的难题以及相关看法,希望对同学们有所启发。十多年前我在上一家公司的时候看到过内部有个网站有一个HardProblemsinTest的列表,上面大概有三四十个问题的样子,是各个部门的测试同学提供的。但可惜后来那个list失传了,我很后悔自己当时没有保存一份。后来很多次我都想要找到那份list,因为上面列的那些问题指出了测试专业在自身专业性上的巨大发展空间。那份list上的问题让当时的我相信,软件测试这件事情本身的难度一点都不亚于软件开
目录DS18B20数字温度计(一)电气特性,寄生供电模式和远距离接线DS18B20数字温度计(二)测温,ROM和CRC算法DS18B20数字温度计(三)1-WIRE总线ROM搜索算法和实际测试DS18B20DS18B20是一个常见的数字温度计芯片,因为测温准确,廉价且接线简单,实际应用广泛,在各种教学实验套装中出镜率也很高.在做FwLib_STC8GPIO示例的时候写了一下DS18B20,这个型号看似简单,但是使用机制比较有意思,一个篇幅写不下,所以把内容抽出来单独介绍.参数1-WireBus总线结构,允许一根总线上挂接多个DS18B20并分别通信在普通温度下,可以直接从数据口取电,这时候只需
目录DS18B20数字温度计(一)电气特性,寄生供电模式和远距离接线DS18B20数字温度计(二)测温,ROM和CRC算法DS18B20数字温度计(三)1-WIRE总线ROM搜索算法和实际测试DS18B20DS18B20是一个常见的数字温度计芯片,因为测温准确,廉价且接线简单,实际应用广泛,在各种教学实验套装中出镜率也很高.在做FwLib_STC8GPIO示例的时候写了一下DS18B20,这个型号看似简单,但是使用机制比较有意思,一个篇幅写不下,所以把内容抽出来单独介绍.参数1-WireBus总线结构,允许一根总线上挂接多个DS18B20并分别通信在普通温度下,可以直接从数据口取电,这时候只需
目录STC8H开发(一):在Keil5中配置和使用FwLib_STC8封装库(图文详解)STC8H开发(二):在LinuxVSCode中配置和使用FwLib_STC8封装库(图文详解)STC8H开发(三):基于FwLib_STC8的模数转换ADC介绍和演示用例说明STC8H开发(四):FwLib_STC8封装库的介绍和使用注意事项STC8H开发(五):SPI驱动nRF24L01无线模块STC8H开发(六):SPI驱动ADXL345三轴加速度检测模块STC8H开发(七):I2C驱动MPU6050三轴加速度+三轴角速度检测模块STC8H开发(八):NRF24L01无线传输音频(对讲机原型)STC8