当一个系统发展到一定的规模后势必会面临拆分的问题,一个大而全的系统被拆分成多个功能独立的子系统,数据库也会做垂直和水平的拆分。这时,分布式事务就是必不可少的一项功能。酷壳的博主陈皓的最新博文就与这个话题有关——《分布式系统的事务处理》(http://coolshell.cn/articles/10910.html),其中介绍了不少基础性的概念,以及实现上的简单思路,当然,其中自然少不了高大上的Paxos。最近这段时间我自己也在整理分布式事务的实现细节与交互流程,整个过程基本类似于2PC,有业务系统来驱动主事务的状态,事务管理器来协调各个参与方的状态,以求达到最终一致,节后有机会再和大家分享。
本周的第二篇推荐文章同样来自于酷壳,同样有点高大上的话题——函数式编程,其实FP早已不是什么新鲜玩意儿了,最早是从Haskel那里听说了FP,后来喜欢上了Lambda表达式,无奈Java中没有Lambda(Java 8里终于有了),一直要用匿名类的方式来变通一下。在写Ruby时一直都没能把自己命令式的编码风格改成声明式的,所以我一直都觉得自己的Ruby写得很糟糕。陈皓的这篇《函数式编程》(http://coolshell.cn/articles/10822.html)其实并没有写出太多新的内容,其实也不可能有这么多惊天动地的新东西,但是文中用了很多对比的范例,能帮助读者更容易理解什么样的代码更“函数”一点。至于能不能用好FP,那就得看自己的造化了,个人感觉Python、Ruby这样的脚本语言会比Java更容易写出声明式风格的代码,但话又说回来,函数式与语言的关系其实没有大家想的这么大,我还见到过一本O’Reilly出版的《Functional Programming for Java》呢。
马上就要过年了,每年春运都是人口大迁移,还记得那年南方大雪,多少人困在回家途中。今年突然看到了百度的“迁徙图”(http://qianxi.baidu.com/),觉得百度也是用技术做了些有意思的东西。
按照以往的惯例,长假期间不更新《每周推荐阅读》,因为大家也忙,就不占用大家的宝贵时间了。祝大家马上有XX(自己想要什么就填什么吧:-))。