Non-Designer's Design Book

A reader should never have to try to figure out what is happening on the page—the focus, the organization of material, the purpose, the flow of information, all should be recognized instantly with a single glance. And along the way, it doesn’t hurt to make it beautiful!

一个网络库的封装过程

最近团队调研决定使用 GraphQL 方案替代 RestApi。Android 方面有个 Apollo 社区维护功能相对完整的库,对不同查询与缓存支持的比较完善,但是资源耗费相当严重,尤其是 codegen 对编译时的环境配置要求非常高,决定放弃这个库采用 rawhttp 的方式直接实现 GraphQL 协议。本文来讲讲对 GraphQL 协议支持过程的实现思路。

区块链全景图

即使有泡沫,也会在泡沫上催生新兴产业发展。如何把握时代趋势,去哪里了解社会脉搏?百度、Google、三大门户网站?也许你该去拉钩网看看。

Coding随想录2017

下半年一直没怎么发文,一方面感觉对 “Programming” 有与以往不同的认知,加上不倾向于水一些 tutorial 类的文章,一直没什么启发性的想法也就一拖再拖了;现在正值2017年的尾声,本文将从怎样看待编程技术、怎么看待业务的快速变化与发展、以及对未来的想法三个方面回顾总结一下这一年的变化。

期货市场技术分析 读书摘要

在线图上作趋势线时,应当把它描画在全部价格范围之下或之上。有些图表分桥师更喜欢通过收市价格来作趋势线,这种做法并不标准。虽然收市价格在全天的所有价格中确实可能是最重要的,但它依然只能代表全日价格活动的一个片断。而当日全部价格范围包含了当日的所有价格变化,理应更有意义

网络 Server 模型的演进

程序员圈子的快速发展使得 Web 应用开发人员大多数情况下面对的是一个 Web Framework 如 Python 的 Django、tornado, PHP 的 Laravel 等,但是在这些 framework 之前的 Server 如 Nginx,Apache 的原理却显有了解。本文就网络 Server 模型的原理与演进展开描述,这里的“网络 Server 模型”指的是具有高阻塞、低占用特点的一类应用,不仅仅 HTTP 服务,其他的如 ftp 服务,SQL 数据库链接服务等也都在此列。网络 Server 的发展先后经历了 Process(进程模型),Thread(线程模型),Prefork(进程池),ThreadPool,Event Driven(事件模型)等,本文一一介绍

Selenium浅析

Selenium 设计的目的是为了自动化的操作浏览器,完成自动化 Web 测试任务。当然,Selenium 的能力不止如此,所有浏览器自动化的工作都可以考虑使用 Selenium 完成。Selenium 受大部分浏览器厂家支持如 chrome、firefox,并且在一些平台成为浏览器原生的一部分。Selenium 分为 WebDriver 和 IDE 两部分,如果想创建自动化或测试任务你需要使用 WebDriver,如果目的要记录某个 feature 或者 bug 的重现路径那么需要使用 IDE,本文主要讲述 WebDriver。

高效的构建一个进度图表视图

基于 Android 系统视图绘制原理与事件分发机制我们可以构造出系统组件之外的视图类以满足特定产品需求,这是一个庞大但过程明确的体系,本文从实践出发,通过实现一个圆形进度视图介绍怎样使用 Paint 工具在 View 的 onDraw 阶段绘制出想要的自定义 View 以及这其中的思考方法与最佳实践,最后得到打包后仅8KB但功能强大的 View 库。

Gson源码分析

如今使用 Json 数据格式通信几乎是再平常不过的事情,以至于都忘了去研究 Json 字符串与 Object 之间到底是怎样转换的,只记得简单的调用几个简单的 API。Gson 是 Java 语言的 Json 库,通常也是 Android 平台的首选方案,org.json(Android 内建 json 库) 相比更加底层,适合编写 toJson() 类函数或者对 Java 反射有限制的平台。深入 Gson 代码发现简单的 Json 解析也有如此多的可圈可点之处,Gson 的架构方案非常优美,结构清晰扩展性强,本文对此展开分析。