09月
Jenkins Agent Scaling And Distributed Tunning

With Increasing jobs on compiling task with Jenkins, we are facing agent scaling issues.

09月
2019 Book List

这是我2019年(截止到9月)读过的书,每本书配部分简介,本文会更新到2019年底。

08月
实施项目细化方法记录

最近我参与了一个公司内部的startup项目,领队专家能力很强,我个人也学到了很多,特此记录。

07月
如何读书与学习在线课程

网上已经有很多如何读书的专业书籍了,但是很多书籍写的比较抽象,没法量化为流程。本文在这些专业指导的基础上,定制一套可行的制度方法。

04月
高强度工作下的自我时间管理

近日996非常火爆,本文介绍一下如何在高强度加班下管理出空余时间。

03月
再谈敏捷开发与延期风控

说起敏捷(Agile, /'ædʒl/)开发,有很多组织把它看作能够管控项目,实现将人转变为可替换零件的银弹;王垠认为它与软件工程一样是扯淡,是浪费资源的祸根,提出者应该被开除

02月
秋葉原女仆咖啡厅(メイドカフェ)体验

秋葉原是Tokyo必去的街区之一,甚至可以逛好几天。除了被大巴送过来爆買走马观花的大陆游客,也有各种电器店与其它特色店铺。本文记录的当然是Maid Coffee啦。

01月
Mac下安装与使用Wine4最全指导

Wine/CrossOver最近终于释出了4.0正式版,支持了Vulkan等新功能。作为折腾党,第一时间试用了下Wine4.0在Mac下的表现,愿意折腾的可以试试。

01月
SonarQube是如何工作的

SonarQube是代码检查工具的技术标杆之一,除了用来检查项目,它本身也是开源的,源码(代码结构/技术文档等)也必然是值得一读。

12月
RISC-V处理器读书笔记

本书主要介绍了一款开源CPU的前端设计,对Silicon领域或者计算机组成有兴趣的可以看一看。它是一本非常有价值的书,建议投入一定时间去精读。

12月
2018 Book List

2018年度书单汇总,我读过…

12月
如何推动团队持续改进

随着经验与能力的提高,作为码农要开始承担团队的责任,推动团队发展。在团队中承担管理责任的主要有PL(Project Leader,非技术管理,本文不介绍)与SE(System Engineer,本文重点介绍),本文将介绍如何完善这个角色。

11月
PlantUML for GitBook plugin released

Yet another offline puml rendering plugin for gitbook.

10月
Use GitHub trending filter to block spamming repositories

As I noticed there are full of spamming or Chinese-only repositories in Github Trending. It wastes my time on find a TRUE interesting project.

09月
个人Feedly地址分享

随着知识爆炸增长,面对海量信息我们总是无法适从。我个人更推荐使用RSS作为自己的技术等信息源,下文分享的主要是技术类博客为主。

08月
如何解决项目历史债务与保持后续质量

在每个项目中,可能由于种种历史原因导致项目渐渐腐化陈旧,后续接手时很难维护,作为码农除了进行代码整改,还要主动推动开发流程的优化。

07月
Mermaid for GitBook plugin released

Since a lot of plugins for mermaid diagrams are no longer maintained, I just released a new Gitbook plugin with compatibility for GitBook 3.

06月
Mask senseitive data with custom jackson annotations

In this article, we’ll see how to use custom jackson annotations to mask senseitive data with asterisk.

06月
JS静态分析工具ClosureCompiler介绍

Closure Compiler是谷歌推出的一款Javascript压缩工具,在业界有广泛的使用。与传统压缩工具不同的地方在于,它将对代码的AST进行静态分析,而不是简单的正则表达式压缩。

06月
端到端拉通实现Web首屏优化

随着业务的增加,客户对IT系统的前端速度不太满意,希望通过改造提高速度。

06月
简书迁移到Hexo

简书虽然为你搭建好了各种平台,但是明显的问题就是定制性特别弱,没有“层次结构”,导致知识管理不好做。同时,在国内任何社区很难做大做强,做大之后很难留住精英用户(比如某乎)。而我本身对「SEO」与「个人品牌」没有太大的需求,因此与其他码农一样,走上了折腾Page的道路。

05月
Generating Excel in declarative language with Java8

This article describes how to use a third library to generate Excel and profile the performance problems of POI Excel generation with JVisualVM.

05月
Scanning i18n properties without hard coding

This guide will give you an introduce on how to auto scan properties files into MessageSource without hard coding file names in Java.

03月
Migrating from SpringMVC&Struts mixed webapp to SpringBoot

After weeks of work, I have succeeded in migrating from a Struts/SpringMVC mixed webapp to SpringBoot.

01月
2017编程与人文类书单

最近文章写的不多了,源码分析也少了,第一个是由于加班比较多,第二个是因为文章多为读书总结性质,因此没写的价值。

12月
AngularJS双向绑定的实现

本文将分析第一代AngularJS的主流程,结合笔者最近改造与培训的实践,将快速帮助Java后端开发掌握原理,写出前端界面,早点下班回家。

12月
各种语言中Promise的源码实现

在NodeJS/Netty/Java/AngularJS等框架中,均有Promise的异步API设计,本文将结合多个框架,分析Promise的设计思路。

11月
Quartz任务与日志的持久化

定时任务在企业IT与互联网系统中使用非常广泛,一般用于去做耗时的分析、统计、报表、对账等任务. 现实开发中,一般采用Quartz作为Job实现。但是直接基于内存使用有如下痛点

11月
如何技术招聘--兼谈识别简历造假

本文是将招聘工作流程化自动化,降低招聘时间成本的一些持续改进的过程记录。

09月
通过GitBook打造自己的知识体系

在如何自学与提问的文章中,曾介绍了自学方法论与学习能力的四种程度,其中第四种人能够“通过识别自己的不足,并列出一个提纲,把它涉及到的领域依次搞定”。本文将通过GitBook提供此要求的实现类。

08月
过程改进

网上软件工程相关的书籍与文档已经有很多了,但是一般都存在一定的幸存者偏差,比如《人月神话》作者叙述如何在IBM带团队,而现实中反而大部分遇到的项目是领导拍脑袋决定几天搞定业务;或者给你一堆不是你面试的外包/新员工;或者临时给你交接一个锅

08月
Serverless开源项目分享-Spring-Cloud-Function

Spring Cloud Function实现了类似于AWS Lambda的云函数调用,属于Serverless架构。它是基于SpringBoot开发的FAAS项目,目前Star只有100多,可以说是玩具级别。但是功能还是很全的。它基于Reactor进行设计,类似于Akka中的Actor或者RxJava中的Lift管道操作符

08月
如何自学与提问

对加班与带外包的一个AAR。

07月
华为微服务框架ServiceComb的简要介绍

话说菊花厂真的对开源不是很上心,很多时候都仅仅是受限于GPL而开源。不过今天介绍的项目不同,此项目由2012架构部专家亲自编写,并已经在内部商用,质量很好,值得一读。

07月
动态规划与Groovy的记忆化

本文主要来自如下章节的心得,文章很短

06月
JMX的一些简要知识点

JMX在实际开发中很多人都用过,鼠标点一下就可以执行Java代码。本文适用于已经会在JConsole等工具中调用JMX,但希望进一步了解JMX的人。

06月
如何在两周内培训一个小团队?

本文标题党了,但是适用于有一定技术能力,又打算兼任项目进度的读者。主要讲了如何从培训到干活的流程,并讨论了项目风险控制,自动化工具使用等方法论。

04月
规则引擎的介绍与Drools的流程分析

规则引擎(RuleEngine)是一个有限状态机,通过入参实现状态转移,在Java中定义为JSR94规范。规则引擎目前的开源实现主要是JBoss家族的Drools,采用友好的Apache协议(意味着可以作为商业产品)。以及据说非常贵的ILOG引擎,还有一些国内引擎。

04月
《大型网站技术架构》读书笔记

最近有一个月没有写文,主要是9106加班与看书比较多。今天写下最近买的一本书的读书笔记。

02月
《Groovy程序设计》读书笔记

其实这本书早就买了,本来是作为字典查知识点的,现在又读了一遍。使用Groovy已经有了接近一年的时间,再读一遍。本文就是一些总结。

12月
我的2016

又到了年底,去年年底还懒散地打联机游戏,并抱怨着PM2.5,现在却在深圳关外当加班狗,过着906的生活。多的不说,总结下今年有什么收获吧。

12月
Shell快速入门心得与自动化脚本

本文结合博主这两个月(实际使用肯定有6~7年了)的Shell系统化学习经历,介绍如何在已有Shell的基础上开始解决业务问题。

10月
DSL编程技术的介绍

本文先介绍了元编程的概念,接着举了几个DSL的例子,最后总结了DSL开发的前景。

10月
谈胶片与价值呈现

PPT(胶片)相比于Word,使用图形化、低密度的表达方法,将作者的意图展现给观众。相对于写长篇大论的Word,胶片需要做减法,表达的内容需要更精确化,因此比文章更加难写。本文以常见的工作总结为例,通过将此问题分解并逐步解决,讲解胶片是如何完成的。

10月
集合类工具Guava与惰性求值

在Java中,各种大厂的集合类工具如下

10月
代码规范最佳实践

代码规范是一个老生常谈的问题,涉及到一个码农的软技能。网上有很多类似的文章,但是有些文章比较落后了,因此需要补充新鲜的文章

09月
Zookeeper-内部树的实现

本文首先介绍了Zookeeper的应用、接着叙述了zk的端到端流程,最后讲解了Zookeeper中数据结构DataTree的实现方法。

09月
探究Android的冷启动优化

Cold Startup Perfermance Improvement in Android

09月
Android的实时Blur渲染---BlurDrawable

目前有很多厂家/APP都在做Blur,比如魅族高端机(mx4以后的机器)提供了实时模糊选项,并给第三方相应的sdk。有的第三方app(比如最美壁纸,雅虎天气,开眼等)看似使用了实时模糊,实际上只是两张截图的alpha变换而已,网上大多数开源项目亦是如此;还有的第三方库,比如14年非常火的GlassActionbar,的确可以实现动态模糊,可是fps不太满意,而且内部使用了AsyncTask作为异步处理,考虑到线程池中创建,销毁,上下文切换的损失,也不太敢用。

09月
Android下的基于NFC的金融业务开发

随着物联网与O2O业务的发展,NFC在小额支付领域的前景越来越广阔。本文结合多个公开文档,简要介绍了NFC的工作场景,同时使用RxAndroid实现了对NFC字节流的读取与异常捕捉;使用了MVP(好吧,其实是一个简单的静态代理)转移了Activity下的代码量;介绍了卡模拟过程中与Android底层的交互原理与简单示例。

09月
Picasso源代码走读

A brief source code review of Picasso

09月
打造高仿iOS的BlurDialog

Github上有许多仿iOS的dialog,但是都没有让背景模糊,第三方的view太坑,不如自己对着iOS模拟器的图与动画做出来。耗费了很久时间终于搞定了,如下图,左边是仿iOS的dialog,右边是SupportV7的dialog。

09月
关于Null、Empty与Exception的思考

本文首先讲了如何对null等场景写防御代码,接着介绍了多种返回异常数据的表示方法。

08月
使用5WS方法解决问题

本文不是鸡汤文,也不是《我如何自学编程》的励志成功学,更不是技术文章,主要是分享下如何高效的解决问题—— 如何把遇到的问题具体化解决。

08月
2016 编程类书单

最近感觉读书太少,没有文化,于是买了书与Kindle。

08月
Spring下的控制反转(IOC)

控制反转是一种简化开发的方法,可以轻易地获取对象而不用考虑如何构建,实现了高效解藕与测试。在Java后端、Android端、PHP等领域均很常见,比如Server端的Autowired、Android中的getSystemService都是控制反转的例子。

07月
高效学习正则表达式Regex

还在用C语言的方法进行for循环处理字符串吗?是时候使用Regex了。

07月
如何写一个Parser

解释器(Parser),顾名思义,就是对数据处理的实现。是一个能够输入一个命令或者描述后,内部进行运算,并输出数据的工具。

07月
强迫症的Windows效率APP指南

最近由于工作原因,暂时离开了自己喜爱的Mac平台,而用上了所谓的云桌面,即Windows,虽然分到的E5虚拟机的配置吓人,但是简单的环境并不能让你的效率更高,今天讲一下如何使用开源免费软件提高效率,下面基本上都是跨平台软件。

01月
Retrofit2源码分析[动态代理]

Retrofit2 目前已经越来越主流稳定了,它终于完全抛弃了其它的网络库而是使用了OkHttp3作为依赖,功能也更加插件化了。经常听到动态代理这个词而不知所云,现在知识水平高了,分析一下,以飨(xiǎng)读者。

11月
在Mac终端下配置Proxy

Gradle下载jar包慢到飞起?Github同步一半断了?Docker下载频繁报错?是时候为你的终端统一设置一个代理了。本文以Mac(Unix平台)与HTTP_PROXY为例,讲解如何在终端下进行配置代理。

09月
函数式编程RxJava操作实例

通过几个实际的例子,加深对RxJava的理解

03月
我是如何使用Android反编译软件的?

反编译大法好,偷布局动画感觉太爽!

02月
Android-HTTP的几种抓包方法
12月
Mac下最好的Gif转换软件

MD都是支持Gif的,为了找到最好的Gif转换软件试了很多,最后找到了这一款软件GifBrewery