源码

golang http server源码解析

删除回忆录丶 提交于 2019-12-10 15:23:36
golang 版本:1.12.9 简单的HTTP服务器代码: package main import ( "net/http" ) type TestHandler struct { str string } func (th *TestHandler)ServeHTTP(w http.ResponseWriter, r *http.Request){ w.Write([]byte(string(th.str+",welcome"))) } func main(){ http.Handle("/", &TestHandler{"Hi,Stranger"}) http.HandleFunc("/test",func(w http.ResponseWriter,r *http.Request){ w.Write([]byte("Hi,Tester")) }) http.ListenAndServe(":8000",nil)} 在浏览器输入“http://127.0.0.1:8000”得到输出“Hi,Stranger,welcome”;输入“http://127.0.0.1:8000/test”得到输出“Hi,Tester” handler的注册 handler的相关方法如下: func NewServeMux() *ServeMux func (mux *ServeMux)

【读fastclick源码有感】彻底解决tap“点透”,提升移动端点击响应速度

谁说胖子不能爱 提交于 2019-12-10 15:01:38
申明!!!最后发现判断有误,各位读读就好,正在研究中.....尼玛水太深了 前言 近期使用tap事件为老夫带来了这样那样的问题,其中一个问题是解决了点透还需要将原来一个个click变为tap,这样的话我们就抛弃了ie用户 当然可以做兼容,但是没人想动老代码的,于是今天拿出了fastclick这个东西, 这是最近第四次发文说tap的点透事件,我们一直对解决“点透”的蒙版耿耿于怀,于是今天老大提出了一个库fastclick,最后证明解决了我们的问题 而且click不必替换为tap了,于是我们老大就语重心长的对我说了一句,你们就误我吧,我邮件都发出去了...... 于是我下午就在看fastclick这个库,看看是不是能解决我们的问题,于是我们开始吧 读fastclick源码 尼玛使用太简单了,直接一句: FastClick.attach(document.body); 于是所有的click响应速度直接提升,刚刚的!什么input获取焦点的问题也解决了!!!尼玛如果真的可以的话,原来改页面的同事肯定会啃了我 一步步来,我们跟进去,入口就是attach方法: 1 FastClick.attach = function(layer) { 2 'use strict'; 3 return new FastClick(layer); 4 }; 这个兄弟不过实例化了下代码

通过哪吒动漫豆瓣影评,带你分析python爬虫与BeautifulSoup快速入门【华为云技术分享】

空扰寡人 提交于 2019-12-10 14:51:14
久旱逢甘霖 西安连着几天温度排行全国三甲,也许是《哪吒之魔童降世》的剧组买通了老天,从踩着风火轮的小朋友首映开始,就全国性的持续高温,还好今天凌晨的一场暴雨,算是将大家从中暑边缘拯救回来了。不知道有多少人看了这部国产动漫,但5天破9亿的票房已然不错,可惜忙碌的我只能在朋友圈看看好友的观影评价+晒门票。 爬虫解析 最近更新爬虫的文章较多,对于这种投入量小,回报率高且装13效果好的python方向,大家都比较喜欢。其实单纯的爬虫很简单,麻烦的是网站的接口分析与数据解析。通常我们大量的时间,用在了对网站数据流的分析,最终得到数据接口的过程。这部分的内容,针对不同网站需要单独分析,没有一个可以套的公式,所以讲起来也没有太好的效果。那么,除去了网站分析,刚才提到的数据解析是否有可复用的地方呢?当然… 网站数据解析 说到网站的数据解析,那么我们首先得找一个供我们爬虫的网站,既然刚才提到了哪吒,我们就拿豆瓣评分来举例子吧: 点击网页短评的全部xxx条链接,即可进入该动画的全部影评网页: 之后我们来看看短评界面的数据结构: 我们可以看到,所有的评论都包裹在一个class=”mod-bd”和id=”comments”的div中,这里注意个html的常识,绝大多数的情况下,如果一个标签存在id和class,那么你请优先选择id作为你的定位游标,因为它具备唯一性。当然你也可以使用class定位

源码编译搭建LNMP环境

我只是一个虾纸丫 提交于 2019-12-10 14:50:53
LNMP源码编译 1.LNMP介绍 LNMP=Linux Nginx Mysql PHP Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器。Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度BWS、新浪、网易、腾讯等 2.LNMP软件所需要的软件包(准备条件) MySQL=http://dev.mysql.com/downloads/mysql/ mysql主程序包 PHP=http://php.net/downloads.php php主程序包 Nginx=http://nginx.org/en

LLVM每日谈之十 LLVM Test简介

女生的网名这么多〃 提交于 2019-12-10 14:13:56
作者: snsn1984 就像很多优秀的软件都有自己的测试框架一样,LLVM也有自己的测试框架。LLVM的测试主要分为两 部分:regression tests 和 whole programs。其中, regression tests 主要位于LLVM源码/test目录下,主要是 用来测试LLVM的一些特性或者是用来测试一些bug的。我们在平时的工作中,一般使用的就是这个类型的test。 whole programs这个类型的测试,不在LLVM的源码中,在SVN库上有自己的单独目录,一般称之为test-suit, 它的测试范围要广的多,因为我们目前这里不涉及,所以这里不做过多介绍。 运行regression tests的方法比较简单,但是必须有已经编译好的LLVM源码。在build目录下,运行make check, 这样就可以运行所有的LLVM源码/test目录下的regression tests。如果已经编译好的LLVM源码下还包含了Clang,也 就是说在编译LLVM之前,已经将Clang的远方放置到LLVM源码/tools目录下了,那么在编译成功之后,就可以使用 make check-all,这样可以运行LLVM和Clang的所有的regression tests。 如果需要运行单个的测试用例,可以使用llvm-lit工具。直接使用llvm-lit工具

Config层源码解析

孤者浪人 提交于 2019-12-10 13:11:01
通过上一遍文章 整体架构 中已经详细了描述了Dubbo框架的整体设计结构和调用流程,接下来,我还是深入源码,详细分析各个层的实现原理,这一篇主要讲述Config层。 由整体的设计可以知道,Config层抽象了外部配置,各个模块的配置都会在Config层来体现。先看一下它的核心实现为org.apache.dubbo.config.AbstractConfig和org.apache.dubbo.config.ArgumentConfig。 AbstractConfig结构图如下: 从上图可以看到,核心的模块配置都会继承AbstractConfig 。但是既然是配置,那么怎么读取这些配置呢? Dubbo基于Java注解的配置原理 @EnableDubbo是Dubbo使用注解初始化的核心注解,先看一下源码: /** * Enables Dubbo components as Spring Beans, equals * {@link DubboComponentScan} and {@link EnableDubboConfig} combination. * <p> * Note : {@link EnableDubbo} must base on Spring Framework 4.2 and above * * @author zhaodongchao * @see

linux下获取软件源码包 centos/redhat, debian/ubuntu

回眸只為那壹抹淺笑 提交于 2019-12-10 11:22:18
linux下获取软件源码包 centos/redhat, debian/ubuntu centos下: 1. yum install yum-utils 主要为了获取yumdownloader 2. 将 /etc/yum.repos.d/CentOS-Sources.repo 里面的enabled打开: [base-source] name=CentOS-$releasever - Base Sources baseurl=http://vault.centos.org/centos/$releasever/os/Source/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 3. yumdownloader --source systemd 要查询文件属于哪个rpm包可以用rpm 命令查询 rpm -qf /usr/bin/ls coreutils-8.22-24.el7.x86_64 debian/ubuntu下获取软件包源码 1. 打开/etc/apt/sources.list 里面deb-src 注释,然后 apt-get update 2. apt-get install dpkg-dev 3. apt-get source systemd 这样我们可以畅快的阅读源码了。

mobx 源码解读(四):讲讲 autorun 和 reaction

大城市里の小女人 提交于 2019-12-10 11:20:46
原文地址: mobx autorun 文本是 mobx 源码解读系列 第四篇 本系列文章全部采用 mobx 较新版本: v5.13.0 mobx 源码解读 issue,欢迎讨论 技术前提 在阅读之前,希望你对以下技术有所 了解或实践 ,不然可能会影响你对本文的理解 ES6 装饰器:decorator ES6 代理:proxy ES6 反射:reflect 定义对象属性:Object.defineProperty 实现简易版 观察者模式 实现简易版 MVVM(可选) 准备 这篇文章和 mobx 源码解读系列(三) 有很强的关联,建议先看懂再看文本 上篇讲的 mobx 中的依赖收集 可以浓缩为一个函数: schedule ,这篇我们讨论该函数是如何使用的 说明: mobx 对于依赖收集的优化是非常多的,其中包括 computedValue 的 POSSIBLY_STALE 状态和 shouldComputed 判断等等,喜欢的自行 dive in 吧 上源码 一、Reaction Reaction 最重要的两个函数:onInvalidate 和 track 前者作用是对变化作出反应,为构造函数参数,后者作用是收集依赖 试想,将两者结合到一起:根据变化自动收集依赖,然后作出反应。这不就是 autorun 吗 那 schedule 函数又是啥呢,其实它最终调的就是 track +

Android RxJava源码解析

醉酒当歌 提交于 2019-12-10 10:36:13
文章目录 1 Single.just() 2 Single.map() 3 AtomicReference 4 delay() 6 Schedulers线程切换 6.1 subscribeOn(schedulers) 6.2 observeOn(schedulers) 在RxJava源码分析之前,先说一下需要关注的两个方法: onSubscribe() 和 onSuccess() 。 1 Single.just() 我们会从RxJava使用的用例来切入源码的分析。首先看一下最基本最简单的一个RxJava使用例子 Single : Single . just ( "1" ) . subscribe ( new SingleObserver < String > ( ) { @Override public void onSubscribe ( Disposable d ) { } @Override public void onSuccess ( String s ) { } @Override public void onError ( Throwable e ) { } } ) ; 我们首先从 subscribe() 进入源码分析: Single . java @SchedulerSupport ( SchedulerSupport . NONE ) @Override

SpringMvc实现的图书管理系统

风流意气都作罢 提交于 2019-12-10 10:20:38
1、项目目录截图 2、导入项目需要修改的数据库配置文件 3、运行截图 源码下载地址:https://pan.baidu.com/s/1dMCtJcVwzozhwzwvSO6K6A 需要密码的私我(qq 2439644676 注明来意) 来源: CSDN 作者: 不知道改啥名 链接: https://blog.csdn.net/qq_40985788/article/details/103468923