Java 8 Stream API 和函数式编程

流式操作我们在很多地方都使用过,比如 Shell 操作时经常用到的 ps aux | grep xxx、Python 中的 mapreduce 方法。Java 8 也引入了 Stream API,并且加入 Lambda 表达式,...

扔掉鼠标,开始键盘流编程

之前曾和朋友讨论,为什么很多程序员舍得买千元价位的键盘,却很少愿意买个同级别的鼠标……最后一致认为原因在于代码是键盘敲出来的,不是鼠标点出来...

Spring AOP 那些事儿

AOP 即 Aspect-Oriented Programming,面向切面编程,是对 OOP 编程思想的补充。OOP 核心是继承、封装、多态,是实现 OOP 模块化的基础。当 OOP 达到一定规模后,对...

Thrift 学习笔记:RPC Server 和 Client

在了解 Thrift IDL 后,就能开始编写自己的 RPC 服务端和客户端了。对 Thrift 的安装过程和命令操作略过不表,主要还是关注如何利用 Thrift 实现 Java 的 RPC 服务端和客户端。 服务接...

Thrift 学习笔记:IDL

上月底来到了 M 记,氛围和风格都和 J 记有很大不同,很舒服。开发工作还在按照 Mentor 定制的计划学习适应中,部分技术栈之前没接触过,比如 RPC,M 记用的...

[译] 一个行之有效的 Git 分支模型

原文 A successful Git branching model 是 gitflow 的作者 nvie 于 2010 年撰写的,最近才看到此文,恨晚。网上和微信公众号推送的 Git 最佳实践多多少少应该从这篇文章中获得过经验值。虽然文中...

探索 Spring MVC 重定向和转发

最近参与的一个微信公众号相关项目的开发中,业务包含大量的页面跳转逻辑,以及拦截器的数据获取校验。其间也遇到一些困惑,在探究 Spring MVC 中 redirect 和 forward 的源码...

读 Flask 源码:源码结构

打算对 Flask 的学习做个整理,以 Flask 的 GitHub 代码库的 master 分支为参考。其实早期的 0.3 版还是单文件,整个 flask.py 加上注释也只有 1426 行代码,非常简洁,很适合作为 Python 源码学习...

Spring Boot 学习笔记 1:起手式 Hello World

Spring Boot 是 Pivotal 团队开发的开源 Java Web 框架,相比同门师兄 Spring,Spring Boot 把开发者从繁重的配置中解放出来,遵循“约定大于配置”(convent...

通过反射统一 RPC 调用入口

最近项目开发中,有这样一个场景,依赖外部很多服务,每个服务从功能上彼此独立,因此各个外部服务的调用也是相对独立的。因此当时为每个调用都写了一...