手写Redux-Saga源码
上一篇文章我们分析了Redux-Thunk的源码,可以看到他的代码非常简单,只是让dispatch可以处理函数类型的action,其作者也承认对于复杂场景,Redux-Thunk并不适用,还推荐了Redux-Saga来处理复杂副作用。本文要讲的就是Redux-Saga,这个也是我在实际工作中使用最多的Redux异步解决方案。Redux-Saga比Redux-Thunk复杂得...
2024-01-10源码|解析RedoLog实现方式
柯煜昌 顾问软件工程师目前从事 RadonDB 容器化研发,华中科技大学研究生毕业,有多年的数据库内核开发经验。| 前言提及 Redo Log(重做日志)与 LSN(log sequece number)时,经常被问及以下问题:MySQL 的 InnoDB 为什么要有 Redo Log?LSN 是什么?LSN 与 Redo Log 之间有什么相互关系?Redo Log 如何轮换?...
2024-01-10Redux异步解决方案之Redux-Thunk原理及源码解析
前段时间,我们写了一篇Redux源码分析的文章,也分析了跟React连接的库React-Redux的源码实现。但是在Redux的生态中还有一个很重要的部分没有涉及到,那就是Redux的异步解决方案。本文会讲解Redux官方实现的异步解决方案----Redux-Thunk,我们还是会从基本的用法入手,再到原理解析,然后自己手写一个Redux-T...
2024-01-10Vue源码分析之实现一个简易版的Vue
使用 Typescript 编写简易版的 vue 实现数据的响应式和基本的视图渲染,以及双向绑定功能。参考 https://cn.vuejs.org/v2/guide/reactivity.html测试代码中,编写vue.js是本篇的重点,基本使用方法与常规的Vue一样:<div id='app'> <div>{{ person.name }}</div> <div>{{ count }}</div> <div v-text='person.name'></div> <input t...
2024-01-10Vue源码分析(二) : Vue实例挂载
Vue源码分析(二) : Vue实例挂载author: @TiffanysBear实例挂载主要是 $mount 方法的实现,在 src/platforms/web/entry-runtime-with-compiler.js & src/platforms/web/runtime/index.js 等文件中都有对Vue.prototype.$mount的定义:// vue/platforms/web/entry-runtime-with-compiler.jsVue.prototype.$mount = ...
2024-01-10学习 redux 源码整体架构,深入理解 redux 及其中间件原理
1. 前言学习源码整体架构系列文章如下:其他源码计划中的有:express、vue-rotuer、redux、 react-redux 等源码,不知何时能写完(哭泣),欢迎持续关注我(若川)。源码类文章,一般阅读量不高。已经有能力看懂的,自己就看了。不想看,不敢看的就不会去看源码。所以我的文章,尽量写得让想看源码...
2024-01-10吉尼斯世界纪录天天快报类论坛源码 网站后台dedecms模板(带h5页面)
吉尼斯世界纪录新闻资讯类网站织梦模板(带手机端)+PC+移动端+利于SEO优化模板介绍:织梦最新内核开发的模板,该模板属于博客、新闻类企业使用,自带最新的手机移动端,同一个后台,数据即时同步,简单适用!原创设计、手工书写DIV+CSS,完美兼容IE7+、Firefox、Chrome、360浏览器等;主流浏览器;...
2024-01-10redis5.0.7源码阅读——整数集合intset
redis中整数集合intset相关的文件为:intset.h与intset.cintset的所有操作与操作一个排序整形数组 int a[N]类似,只是根据类型做了内存上的优化。一、数据结构1 typedef struct intset {2 uint32_t encoding;3 uint32_t length;4 int8_t contents[];5 } intset;intset的数据结构比较简单,使用了一个变长结构体,成员length记...
2024-01-10松下冰箱ed说明哪里出了纰漏/松下冰箱ed修补教程
一、松下冰箱冷藏显示ed代码是什么? 故障码"Ed"表示除霜异常,经检查压缩机压缩机不工作。 2、启用强制除霜模式(同时按“冷冻法”、“冰冻”调整按钮3s以上,进入强制融霜模式),再用万用表测量K4、K3输出触点A、B之间的电压AC220V,但发热管不热。 用电阻器测量除霜排水发热器件阻值正常...
2024-01-10Redis高并发防止秒杀超卖实战源码解决方案
目录1:解决思路2:添加 redis 常量3:添加 redis 配置类4:修改业务层1:秒杀业务逻辑层2:添加需要抢购的代金券3:抢购代金券5:postman 测试6:压力测试8:配置Lua9:修改业务层1:抢购代金券10:压力测试1:解决思路将活动写入 redis 中,通过 redis 自减指令扣除库存。2:添加 redis 常量commons/constant/Re...
2024-01-10redis5.0.7源码阅读——跳跃表skiplist
redis中并没有专门给跳跃表两个文件。在5.0.7的版本中,结构体的声明与定义、接口的声明在server.h中,接口的定义在t_zset.c中,所有开头为zsl的函数。一、数据结构单个节点:typedef struct zskiplistNode { //key,唯一 sds ele; //分值,可重复 double score; //后退指针 struct zskiplistNode *backward; ...
2024-01-10面试官:简历上最好不要写Glide,不是问源码那么简单
这次来面试的是一个有着5年工作经验的小伙,截取了一段对话如下:面试官:我看你写到Glide,为什么用Glide,而不选择其它图片加载框架? 小伙:Glide 使用简单,链式调用,很方便,一直用这个。 面试官:有看过它的源码吗?跟其它图片框架相比有哪些优势? 小伙:没有,只是在项目中使用而已~ ...
2024-01-10ShardingSphere源码解析(五)---结果归并
归并引擎看起来还是挺复杂的,ShardingSphere支持的结果归并从功能上分为遍历、排序、分组、分页和聚合5种类型,它们是组合而非互斥的关系。 从结构划分,可分为流式归并、内存归并和装饰者归并。流式归并和内存归并是互斥的,装饰者归并可以在流式归并和内存归并之上做进一步的处理。我们...
2024-01-10redis5.0.7源码阅读——压缩列表ziplist
redis中压缩列表ziplist相关的文件为:ziplist.h与ziplist.c压缩列表是redis专门开发出来为了节约内存的内存编码数据结构。源码中关于压缩列表介绍的注释也写得比较详细。一、数据结构压缩列表的整体结构如下(借用redis源码注释):1 /*2 <zlbytes> <zltail> <zllen> <entry> <entry> ... <entry> <zlend>3 */各个部分的...
2024-01-10openjdk源码编译踩坑
1. 在ubuntu18.04下编译openjdk源码1.1 apt-get 无法安装libx11-dev, 换成了aptitude,结果还是安装不成功。并且发现aptitude使用不习惯,要换回apt-get,问题就出在了这里。由于需要自己下载.deb报,这时在便在搜索引擎中去搜索,导向了一些网址,然后再去下载某些deb.安装之后却发现apt还是有某些兼容问题,提示...
2024-01-10SpringCloudOpenFeign源码解析
0. 入门demo此代码是 OpenFeign 的示例代码,获取一个Github 仓库的所有贡献者,创建一个issue。 建议由此开始 DEBUG 调试阅读源码interface GitHub { @RequestLine("GET /repos/{owner}/{repo}/contributors") List<contributor> contributors(@Param("owner") String owner, @Param("repo") String repo); @RequestL...
2024-01-10ShardingSphere源码解析
根据官网的介绍,SS去连接数据库的时候有2种模式,一种是内存限制模式,一种是连接限制模式内存限制模式:使用此模式的前提是,ShardingSphere对一次操作所耗费的数据库连接数量不做限制。 如果实际执行的SQL需要对某数据库实例中的200张表做操作,则对每张表创建一个新的数据库连接,并通过多...
2024-01-10javathreadLocal源码探究
有些人对使用ThreadLocal的使用不是很理解,这里还要从原理讲起。我们可以在其中找到许多方法,ThreadLocal可以加名称后面加入一些方法,然后结合在一起使用,可以把它看成方法的汇集。下面我们就以ThreadLocalMap使用为例,对ThreadLocal源码进行探索和分析。1.ThreadLocal的内部结构ThreadLocal并不维护ThreadLoca...
2024-01-10FlinkSQL源码阅读schema管理
在Flink SQL中, 元数据的管理分为三层: catalog-> database-> table,我们知道Flink SQL是依托calcite框架来进行SQL执行树生产,校验,优化等等, 所以本文讲介绍FlinkSQL是如何来结合Calcite来进行元数据管理的.calcite开放的接口public interface Schema { Table getTable(String name); Schema getSubSchema(String name); ....}如...
2024-01-10WebRTC源码研究(1)WebRTC架构
@[TOC]WebRTC源码研究(1)WebRTC架构本人最近主要聚焦于音视频领域的学习,学习了很多相关视频和书籍,目前还在学习中,写的这些博客很多内容都是来源于慕课网李超老师的视频,想学习音视频的强烈建议去购买李超老师的视频,讲的很好,价格不贵 ,购买李超老师的视频点击这里。WebRTC 是一个音...
2024-01-10EF Core源码分析
最近在接触DDD+micro service来开发项目,因为EF Core太适合DDD模式需要的ORM设计,所以这篇博客是从代码角度去理解EF core的内部实现,希望大家能从其中学到一些心得体会去更好的写出高质量的代码。从github 上去下载ef core仓库, 本篇代码的版本是基于tag v5.0.3的,如果大家在以后看见这篇博客,可以在...
2024-01-10懂SpringAOP源码
1 主要的接口1.1 Advice 通知本接口定义了切面的增强方式,如:前置增强 BeforeAdvice,后置增强 AfterAdvice,异常增强 ThrowsAdvice 等。下面看两个主要的子接口的源码。public interface MethodBeforeAdvice extends BeforeAdvice { /** * 目标方法 method 开始执行前,AOP 会回调此方法 */ void before(Method method, Object[] a...
2024-01-10SpringIOC容器源码分析
人不学不知道Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器。既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢?阅读本文并不能让你成为 Spring 专家,不过一定有助于大家理解 Spring 的很多概念,帮助大家排查应用中和 Spring 相关的一些问题。本文...
2024-01-10ZooKeeper源码阅读——目录帖
预计2020年5月之前,对于下面这些主题我会学习完毕,并且输出成日志。 Zookeeper源码编译(Zookeeper 3.4.11)并IDEA启动 ZooKeeper客户端:ZooKeeper源码阅读-客户端 先学习zk客户端源码的目的其实很简单,就是以为client相关代码比较少,比较简单。 客户端主要是连接zk服务端、创建session、...
2024-01-10修改jumpserver源码并且实现一个自定义功能模块
在前面已经说了,如何打开jumpserver的管理控制台并且自定义自己的数据模型。接下来实现一个自定义的功能模块。先看效果!一 定义好自己的模型(model) 1.1 这一块儿在前一篇博文已经讲过了二 定义好自己的app(这里注意 一定要自定义app,不要在源码上修改别人的app,因为jumperver的源码不是那么简...
2024-01-10源码分析-react2-根节点渲染
//FiberNode{ alternate : '通过该属性和后面的切片进行比较', child : '改切片的子切片', firstEffect : '当前要加入的切片', stateNode : '当前切片的基本信息'}// Fiber对象...
2024-01-10