请稍侯

2017年终总结

  2017年已经接近了尾声了,回想一下过去的一年,我总觉还没有过去,因为我感觉自己还有好多的事情没有完成,肚子上没有减掉肥肉, 书架上买了但是还没翻过的书…… 但是时间始终是过去了,元旦也即将来临。元旦其实是一个很有趣的时刻,新的一页日历翻过去, 你会突然有一种脱离过去一年的轻松感,以及新的一年被交付的强大感,尽管这个交付并不是你满意的。    英语中的“一月”January,来自罗...

《区块链技术指南》读书笔记(一)

最近在看一本书《区块链技术指南》,写下一点读书笔记,12月底就要离开现在的公司去深圳跟朋友合伙创业, 主要就是做区块链的底层和应用开发,但是目前对区块链还是一无所知,也算提前补充一点区块链的知识。 区块链的定义   区块链,顾名思义,就是区块的链,区块是指“交易数据块”。简单来说区块链就类似 P2P 网络账本, 交易的数据都是通过 “私钥+交易对象的公钥” 生成一条交易记录,然后数据存...

Java 的动态代理

今天这一篇文章我们来说下 Java 的动态代理。 在讲动态代理之前,我先梳理一下什么是代理模式。代理模式就是 给委托对象提供一个代理对象,并由代理对象控制对委托对象的引用 简单来说就是客户端 A 想要调用服务提供方 B 的某个服务,但是 A 又不直接调用 B, 而是调用代理方 C, 然后 C 再调用 B,将调用结果返回给 A。 说的比较绕,我们先分析一下代理模式中涉及到的几个对象: ...

过滤器,拦截器,监听器

学习 Java Web 编程之后,一直对过滤器,拦截器,监听器这三个概念很纠结,感觉他们很显然是有区别的,但是又说不出有多明显的区别, 尤其是过滤器和拦截器,在很多时候几乎可以相互替代的解决方案。花了几个时间查找资料和思考,得出一些理解,记录下来。 过滤器(Filter)    过滤是 Servlet 容器中的一个组件,主要负责处理请求和响应,具体来说是负责对请求(HttpServle...

《谈写作》读书笔记

本文是我读朱光潜老先生的一本关于写作的很薄的小册子 -《谈写作》的读书笔记,主要是提炼了书中的主要内容和思想,“思考和延伸”是自己阅读的时候一些个人的观点看法。 买了这本书一个多月了,放在那一直没有翻。最近因为IT技术的研究碰到点困难,没法突破,所以想看看文学类的书,换换脑子。 所以就顺手拿起了这本《谈写作》翻翻,没想到立刻被吸引了,根本停不下来,花了两周的时间,一口气把这本书细细读了两遍...

使用 php-webdriver 实现自动化测试

本文我们讨论一下如何使用 php 实现自动化测试。 一、技术选型 php + facebook/webdriver + selenium Selenium是一套完整的Web应用程序测试系统,它提供了一系列的操作浏览器的 API webdriver 是 facebook 开发的一套 selenium API 的客户端组件,使用 composer 作为依赖管理工具。 二、环境搭建 ...

Async/Await 更好的异步编程解决方案

今天介绍一种更好的 Javascript 的异步编程的方案。 一、异步编程的终极解决方案 前几天写过关于 javascript 异步操作的文章《Javascript Promise 详解》. 最近在学习 Puppeteer 的时候又发现另一种异步编程解决方案:Async/Await. 异步操作是 JavaScript 编程的麻烦事,麻烦到一直有人提出各种各样的方案,试图解决这个问...

Puppeteer 入门教程

1、Puppeteer 简介 Puppeteer 是一个node库,他提供了一组用来操纵Chrome的API, 通俗来说就是一个 headless chrome浏览器 (当然你也可以配置成有UI的,默认是没有的)。既然是浏览器,那么我们手工可以在浏览器上做的事情 Puppeteer 都能胜任, 另外,Puppeteer 翻译成中文是”木偶”意思,所以听名字就知道,操纵起来很方便,你可以很方便...

Javascript Promise 详解

本文介绍 javascript Promise 对象。 1、约定 本文的 demo 代码有些是伪代码,不可以直接执行。 没有特殊说明,本文所有 demo 都是基于 ES6 规范。 Object.method 代表是静态方法, Object#method 代表的是实例方法。如 Promise#then 代表的是 Promise 的实例方法, Promise.resolv...

XPath 语法

XPath 是一套节点选取规则,使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。 我们将在下面的例子中使用这个 XML 文档。 <?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book> <titl...