此文章是这个专题的开篇,由于初入 C++ 的大门,所以想着拿个项目来看看,凑巧有点基础,又想学习一下在unix上的编程,所以就找了 aria2 这个库来看看源码,希望能学到一些东西. 言归正传,今天把源码下载下来,直接检出了它的第一版源码,我打算从头看起.检出源码之后,我将它的代码性质大致分为 6 个模块,如下图所示. 这六个模块分别是: Commad 目前来看,应该是命令行接口,因为 aria2 是一个命令行应用程序,所以需要这个东西 Exception 这个是它自己实现的异常类 Logger…
首先声明 Exception 部分的几个异常类的继承关系,如下: 这一版的 Exception 部分只有头文件,没有源文件,所以涉及到的更多的只是定义而已,没有太多实现,所以这一部分也简单说说每个类的作用,其他的按下不表. 另外,DlRetryEx 以及 DlAbortEx 涉及到网络的重新开始以及停止异常,顾名思义. Class Exception 作为整个模块的基类,它的结构其实也很简单,以下是它的成员列表 其中,只有 setMsg() 值得特殊说明以下,其他的没必要,而且也没给定义. vo…
写在前面 一个好的架构需要经过血与火的历练,一个好的工程师需要经过无数项目的摧残. vuejs是一个优秀的前端mvvm框架,它的易用性和渐进式的理念可以使每一个前端开发人员感到舒服,感到easy.它内部的实现机制值得让我们深究,比如obServer的实现原理,为什么vue能够实现组件化等等,我们需要理解它内部的运行机制,代码结构,这样才能更深入的理解vue的优秀之处,能更好的贴合业务实际写出更恰当的代码. 说明: 在展开本章之前,博主需要对自己看的源码文件进行一个简短的说明: 博主最终选择首先阅…
这几天学习了MapReduce,我参照资料,自己又画了两张MapReduce的架构图. 这里我根据架构图以及对应的源码,来解释一次分布式MapReduce的计算到底是怎么工作的. ​话不多说,开始! 首先,结合我画的架构图来进行解释. 上图是MapReduce的基本运行逻辑.把图从中间切分,左边为Map任务,右边为Reduce任务.Map的输出是Reduce的输入.因此Map执行完毕Reduce才能执行,两者的执行顺序是一个线性关系,即输入输出的关系为:HDFS->Map->Reduce-&g…
一 前言 最近在尝试学习一些视频相关的知识,随便一搜才知道原来国内有雷神这么一个真正神级的人物存在,尤其是在这里(传送门)看到他的感言更是对他膜拜不已,雷神这种无私奉献的精神应当被我辈发扬光大.那写这篇随笔的理由是在看他写的AAC音频码流解析文章时(传送门)遇到一些问题,因为雷神毕竟等级与初学者不同,一些在他看来很基础的东西菜鸟(比如我)一看就懵逼了,看得是云里雾里,而且我在评论中也看到有人提问相同的问题,但是并没有人给出解答,我自己花了将近三个小时仔细看了AAC码流的介绍才明白,这里也献丑讲解…
概述 Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建.简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架.   spring的整体架构 Spring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块,如下图所示: 从上图spring framework整…
一.Producer整体架构 Kafka Producer端的架构整体也是一个生产者-消费者模式 Producer线程调用send时,只是将数据序列化后放入对应TopicPartition的Deque尾部的ProducerBatch数据结构中 Sender线程每次扫描所有Deque的尾部,得到需要发送的readyNodes,并确认所有的readyNodes都已建立好连接. 遍历readyNodes,再遍历每个Node上所有partition的Deque的队头,直到凑齐max.request.si…
欢迎来我的 Star Followers 后期后继续更新Dubbo别的文章 Dubbo 源码分析系列之一环境搭建 博客园 Dubbo 入门之二 --- 项目结构解析 博客园 Dubbo 源码分析系列之三 -- 架构原理 博客园 Dubbo 源码解析四 -- 负载均衡LoadBalance 博客园 下面是个人博客地址,页面比博客园美观一些其他都是一样的 Dubbo 源码分析系列之一环境搭建" Dubbo 源码分析系列之一环境搭建 个人博客地址" Dubbo 入门之二 --- 项目结构解析…
写在前面 一个好的架构需要经过血与火的历练,一个好的工程师需要经过无数项目的摧残. 昨天博主分析了一下在vue中,最为基础核心的api,parse函数,它的作用是将vue的模板字符串转换成ast,从而构建vnode,构建指令,实现virtual dom,然后在这基础之上实现双向绑定等.[vuejs深入二]vue源码解析之一,基础源码结构和htmlParse解析器 今天博主就来详细的实现一个拥有核心功能的htmlParse函数,看看它内部的实现逻辑,了解它是怎么样去解析一个vue模板的. 小目标…
前言 虽然标题是dubbo源码解析,但是本篇并不会出现dubbo的源码,本篇和之前的dubbo源码解析-简单原理.与spring融合一样,为dubbo源码解析专题的知识预热篇. 插播面试题 你是否了解spi,讲一讲什么是spi,为什么要使用spi? 对类加载机制了解吗,说一下什么是双亲委托模式,他有什么弊端,这个弊端有没有什么我们熟悉的案例,解决这个弊端的原理又是怎么样的? spi的简单介绍 如果提到api相信大家都知道,spi的话,知道的人就相对少一些. 简单的说,api是给使用者使用的,sp…