请稍侯

Java 的动态代理

一、什么是代理模式    在讲动态代理之前,我先梳理一下什么是代理模式。代理模式就是 给委托对象提供一个代理对象,并由代理对象控制对委托对象的引用 简单来说就是客户端 A 想要调用服务提供方 B 的某个服务,但是 A 又不直接调用 B, 而是调用代理方 C, 然后 C 再调用 B,将调用结果返...

过滤器,拦截器,监听器

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

朱光潜:谈写作

   本文是我读朱光潜老先生的一本关于写作的很薄的小册子 -《谈写作》的读书笔记,主要是提炼了书中的主要内容和思想,“思考和延伸”是自己阅读的时候一些个人的观点看法。   买了这本书一个多月了,放在那一直没有翻。最近因为IT技术的研究碰到点困难,没法突破,所以想看看文学类的书,换换脑子。 所...

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

本文我们讨论一下如何使用 php 实现自动化测试。 一、技术选型 php + facebook/webdriver + selenium Selenium是一套完整的Web应用程序测试系统,它提供了一系列的操作浏览器的 API webdriver 是 facebook 开发的一套 sel...

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

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

Puppeteer 入门教程

1、Puppeteer 简介 Puppeteer 是一个node库,他提供了一组用来操纵Chrome的API, 通俗来说就是一个 headless chrome浏览器 (当然你也可以配置成有UI的,默认是没有的)。既然是浏览器,那么我们手工可以在浏览器上做的事情 Puppeteer 都能胜任,...

Javascript Promise 详解

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

XPath 语法

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

SpringBoot dubbo 整合

最近公司在考虑公司的java项目的分布式架构的技术选型问题,初步讨论之后选择了 SpringCloud,但是在对 SpringCloud 进行一些的组件测试之后发现 一个问题,就是 SpringCloud 的eureka分布式服务在调用的时候还是有些不方便的地方,她主要是采用 http 协议实...

react-native 环境搭建遇到坑

最近由于公司需要开发 App, 所以就折腾了一下 facebook 的 react-native,搭建环境的时候遇到一些坑,记录一下。 1. watchman运行错误:ERROR: Unknown option –no-pretty 可能原因:facebook 官方推荐安装由Faceboo...