分布式系统中的几个概念——CAP、ACID、BASE

这两天在阅读一篇关于微服务的文章时,作者提到了CAP的原则,作者没有做任何的解释,只是引用了这个原则,感觉应该是业界比较知名的理论,想当然的认为阅读者已经知晓了。

我的确是孤陋寡闻啊,竟然完全不知道CAP是什么东东,只好在网上补习了一下。记录于此,作为备忘吧。

CAP

CAP理论是用来描述分布式系统的一个准则:

阅读全文

编程道场手册——什么是编程道场

什么是编程道场,实际上在我之前的一篇文章中已经说的很清楚了,大家可以参考。

但这篇文章是有感而发,所以写的比较感性,也比较琐碎。今天这篇文章来自于《The coding dojo handbook》中的一章,作者从本质上把握了一下什么是编程道场,以及什么是编程道场中不可或缺的组成元素。

阅读全文

《源泉》书摘

作者简介

安·兰德(Ayn Rand,1905年2月2日-1982年3月6日),原名“阿丽萨·济诺维耶芙娜·罗森鲍姆”(俄语:Алиса Зиновьевна Розенбаум)俄裔美国哲学家、小说家。

阅读全文

我的2016年度计划

一、关于工作

  1. 在专业技能上不能放松,技术是根本,是立身之本;
  2. 持续学习最前沿的敏捷开发理论和相关技能;
  3. 了解前端的开发技术,学习一门前端的语言,把前后端融会贯通起来;

阅读全文

我的2015年度总结

一、可量化数据

  1. 读书:读了16本书。
  2. 日记:在日记本上写了3篇日记。
  3. 运动:2015年运动方式主要是跑步,中间买了一个小米手环来记录运动,后来感觉不好用就没在用,所以也没记录详细的数据。

阅读全文

叔本华的《论思考》读后感

在叔本华看来,独立、自为的思考是最高价值的精神活动,其它任何精神层面的活动都无法代替它,甚至包括阅读最经典的书籍。

过多的阅读会让我们精神思考失去弹性,就像一个弹簧受到持续不断的重压最终失去弹性一样。所以,我们的第一要务就是要触发、保持这种独立、自为的思考过程。这种自发的思考比任何由外部阅读而引发的思考价值百倍。因为由外部阅读引发的思考只是一种假象,实际上是别人的思考在我们头脑中的映像,我们的大脑只是成为了别人思维的游乐场,当这种思维的盛宴撤去以后,留存在我们头脑中的真正有价值的东西寥寥无几。

阅读全文

为什么对于thrift不建议使用长连接

我们后端的服务采用Micro-Service的架构,按照功能切分成各种细小的服务,对于每个服务不限制编程语言,比如我们的团队成员就使用了三种编程语言——golang、python、nodejs。服务与服务之间使用了Facebook开源的thrift通讯框架来做RPC调用,灵活、简单、功能上也基本满足了需求。关于thrift的使用,可以参考它的官网

阅读全文

Go语言中的异常处理机制

正如在前面的文章《Go语言基础——为什么选择Go》中提到的,Go语言采用了独创的新的错误处理机制,抛弃了之前主流语言中使用的try-catch模式的错误处理机制。因为传统的try-catch结构会破坏程序的可读性和维护性,让开发者仅仅为了程序安全性而添加大量一层套一层的try-catch语句,这个跟Go语言奉行的简单精致的设计哲学背道而驰,所以Go语言的设计者抛弃了这种做法。

阅读全文

给宇宙公主的第一封信

亲爱的宇宙公主:

今天早上你以自己嘴上起泡为由赖着不起床,更是让我为你向幼儿园老师请假,我拒绝了你,坚持让你起床,坚持让你去上学,虽然你很是不情愿,还落下了一些眼泪,但最终还是去了。爸爸是很为你感到自豪的,但我知道你心里肯定在埋怨爸爸:为什么自己这么难受还非要送我去上学呢?

阅读全文

Go语言中如何捕获系统信号

熟悉C语言的同学可能都知道在标准C的编程中,我们通常使用标准C库提供的signal函数来捕获系统信号并执行我们注册的回调函数。对于进行服务端编程的同学来说,这样一个需求是很普遍的。我最近一直在使用Go语言写服务端程序,很自然也碰到了这个需求。那么在Go语言中如何实现捕获系统的信号并处理我们自己的流程呢?

阅读全文