------<!--action-->------ 开场show:前不生“不犹豫”,后半生“不后悔”.今天又逃课,我不后悔 素材:推特公司的前端框架bootstrap(下称bt),解读源码(当然你也可以在官网分分钟下载一个源码包应用学习) 介绍:不介绍,著名的流行的框架,总有一大推的介绍 思考(或许会打自己脸):bt给我的感觉就像是人家写好的模板,虽然是顶级公司写的,但总感觉很别扭,就像厨师使用的是大师配置好,现成的高汤,料汁,只是在应用层.优秀的前端不应该自己配置调料吗,最好的办法,就是偷学…
本文纯属自己研究所写笔记,如果有错误还请多多指教提出 版心(container) 版心:class名为.container的容器,其版心的宽度在各个屏幕设备下是不一样的值,版心两边就是留白. 各尺寸下版心宽度如下表: 屏幕设备 版心宽度 max-width:768px xs 继承父元素宽度(即width:100%) min-width:768px sm 750px min-width:992px md 970px min-width:1200px lg 1170px .container { p…
本文主要说明Webpack懒加载构建和加载的原理,对构建后的源码进行分析. 一 说明 本文以一个简单的示例,通过对构建好的bundle.js源码进行分析,说明Webpack懒加载构建原理. 本文使用的Webpack版本是4.32.2版本. 注意:之前也分析过Webpack3.10.0版本构建出来的bundle.js,通过和这次的Webpack 4.32.2版本对比,核心的构建原理基本一致,只是将模块索引id改为文件路径和名字.模块代码改为了eval(moduleString)执行的方式等一些优化…
本文主要说明Webpack模块构建和加载的原理,对构建后的源码进行分析. 一 说明 本文以一个简单的示例,通过对构建好的bundle.js源码进行分析,说明Webpack的基础构建原理. 本文使用的Webpack版本是4.32.2版本. 注意:之前也分析过Webpack3.10.0版本构建出来的bundle.js,通过和这次的Webpack 4.32.2版本对比,核心的构建原理基本一致,只是将模块索引id改为文件路径和名字.模块代码改为了eval(moduleString)执行的方式等一些优化改…
Abp 审计模块源码解读 Abp 框架为我们自带了审计日志功能,审计日志可以方便地查看每次请求接口所耗的时间,能够帮助我们快速定位到某些性能有问题的接口.除此之外,审计日志信息还包含有每次调用接口时客户端请求的参数信息,客户端的 IP 与客户端使用的浏览器.有了这些数据之后,我们就可以很方便地复现接口产生 BUG 时的一些环境信息. 源码地址Abp版本:5.1.3 初探 我通过abp脚手架创建了一个Acme.BookStore项目在BookStoreWebModule类使用了app.UseAud…
开始 Normalize.css 是一个可定制的 CSS 文件,使浏览器呈现的所有元素,更一致和符合现代标准;是在现代浏览器环境下对于CSS reset的替代. 它正是针对只需要统一的元素样式.该项目依赖于研究浏览器默认元素风格之间的差异,精确定位需要重置的样式. 这是一个现代的,HTML5-ready 的 CSS 重置样式集.著名的bootstrap就使用了它,github的地址为:https://github.com/necolas/normalize.css/, 据作者描述,Normali…
etcd中raft实现源码解读 前言 raft实现 看下etcd中的raftexample newRaftNode startRaft serveChannels 领导者选举 启动并初始化node节点 发送心跳包 作为leader 作为follower 作为candidate leader选举 1.接收leader的心跳 2.发起竞选 3.其他节点收到信息,进行投票 4.candidate节点统计投票的结果 日志同步 WAL日志 leader同步follower日志 总结 参考 etcd中raf…
特殊说明 由于文章篇幅限制,所以将 Vue 源码解读(8)-- 编译器 之 解析 拆成了上下两篇,所以在阅读本篇文章时请同时打开 Vue 源码解读(8)-- 编译器 之 解析(下)一起阅读. 前言 Vue 源码解读(4)-- 异步更新 最后说到刷新 watcher 队列,执行每个 watcher.run 方法,由 watcher.run 调用 watcher.get,从而执行 watcher.getter 方法,进入实际的更新阶段.这个流程如果不熟悉,建议大家再去读一下这篇文章. 当更新一个渲染…
第七篇 前言 本篇文章主要讲解下载操作的相关知识,SDWebImageDownloaderOperation的主要任务是把一张图片从服务器下载到内存中.下载数据并不难,如何对下载这一系列的任务进行设计,就很难了.接下来我们一步一步的分析作者在开发中的思路和使用到的技术细节. NSOperation NSOperation想必大家都知道,为了让程序执行的更快,我们用多线程异步的方式解决这个问题,GCD与NSOperation都能实现多线程,我们这里只介绍NSOperation.如果大家想了解更多N…
做ios开发,AFNetworking 这个网络框架肯定都非常熟悉,也许我们平时只使用了它的部分功能,而且我们对它的实现原理并不是很清楚,就好像总是有一团迷雾在眼前一样. 接下来我们就非常详细的来读一读这个框架的代码,我们的目标就是理解了它的思想之后,能够明白我们的请求是如何实现的,我们的代码哪里还需要进行改进,如果能够更进一步,我们能够总结出一套适合大部分应用的网络架构思想. 能够让一些人从中受益. 我们先来看看整个框架的文件系统,我们先不对每个文件的作用进行说明,在整个源码解读最后的一篇中我…