摘要:这个春节假期,本来是制定了一系列计划,但是在假期结束时,才发现实施了不到五分之一。这让我想起了以前高中寄宿的时候,每两周才能回家一次,每次回家我都会背一书包书回去,想着在家好好学习。结果呢,大多数时候书包都不会打开,然后原样背回学校。 唯一完成的计划 就是看完《小强升职记》这本电子书,因为是电子书, 阅读全文
posted @ 2018-02-25 15:57 xybaby 阅读 (4747) 评论 (7) 编辑
摘要:程序员学习每一门语言都是从打印“hello world”开始的,日志也是新手程序员学习、调试程序的一大利器。当项目上线之后,也会有各种各样的日志,比如记录用户的行为、服务器的状态、异常情况等等。打印日志似乎是一件很简单、不值得一提的事情。但是,当看到线上项目居然有这样的日志的时候,不禁想问问我们真的 阅读全文
posted @ 2017-12-04 09:05 xybaby 阅读 (10463) 评论 (5) 编辑
摘要:程序员对于异常(Exception)这个词应该都不陌生,尤其现在Exception基本上是OOP编程语言的标配。于我而言,这个词既熟悉又陌生,熟悉是因为听过了很多遍、似乎也有大量使用;陌生是因为很少真正思考过到底什么是异常,以及如何使用异常。本文记录我对如何使用异常、自定义异常的一些看法,不一定正确 阅读全文
posted @ 2019-10-10 09:44 xybaby 阅读 (270) 评论 (1) 编辑
摘要:不管是 ,还是 ,对于软件开发来说,代码复用都是最基本的原则之一。 代码复用,可能是DRY(dont repeat yourself),也可能是使用别人的代码,或者是开源项目,或者是其他团队提供的组件、服务,或者是团队内他人实现的公共模块,这些复用大大减少了项目的开发周期和成本。 但怎样才算是高效、 阅读全文
posted @ 2019-08-18 16:40 xybaby 阅读 (3115) 评论 (3) 编辑
摘要:[TOC] 写出整洁的代码,是每个程序员的追求。《clean code》指出,要想写出好的代码,首先得知道什么是肮脏代码、什么是整洁代码;然后通过大量的刻意练习,才能真正写出整洁的代码。 WTF/min是衡量代码质量的唯一标准,Uncle Bob在书中称糟糕的代码为沼泽(wading),这只突出了我 阅读全文
posted @ 2019-08-11 17:56 xybaby 阅读 (6049) 评论 (26) 编辑
摘要:上周,又看见有程序和PM(产品经理)吵了起来,大致是因为晚上就要上线了,下午的时候PM来说要改点需求,但程序不愿意。兴许是天气热了,大家都很烦躁,于是一言不合就发飙了,最终还是程序老大介入才解决了问题。 程序和PM的最大矛盾应该就是 需求 :提需求、改需求。 但程序和PM一定是对立的双方吗?显然不是 阅读全文
posted @ 2019-05-27 09:26 xybaby 阅读 (2623) 评论 (11) 编辑
摘要:由于项目的需求,最近花了较多的时间来看开源项目的代码,在本文中,简单总结一下对为什么要看源码、如何看源码这两个问题的思考。 本文地址: "http://bsyjek.com/xybaby/p/10794700.html" 看源码的意义 看源码只是一种方法、手段,而不是目的。我也曾经给自己 阅读全文
posted @ 2019-04-30 10:51 xybaby 阅读 (2772) 评论 (2) 编辑
摘要:  在 "CAP理论与MongoDB一致性、可用性的一些思考" 一文中提到,MongoDB提供了一些选项,如Read Preference、Read Concern、Write Concern,对MongoDB的一致性、可用性、可靠性(durability)、性能会有较大的影响。 阅读全文
posted @ 2019-01-14 09:14 xybaby 阅读 (765) 评论 (0) 编辑
摘要:在 "一文搞懂raft算法" 一文中,从raft论文出发,详细介绍了raft的工作流程以及对特殊情况的处理。但算法、协议这种偏抽象的东西,仅仅看论文还是比较难以掌握的,需要看看在工业界的具体实现。本文关注MongoDB是如何在复制集中使用raft协议的,对raft协议做了哪些扩展。 阅读本文,需要对 阅读全文
posted @ 2018-12-24 09:21 xybaby 阅读 (1299) 评论 (1) 编辑
摘要:  raft是工程上使用较为广泛的强一致性、去中心化、高可用的分布式协议。在这里强调了是在工程上,因为在学术理论界,最耀眼的还是大名鼎鼎的Paxos。但Paxos是:少数真正理解的人觉得简单,尚未理解的人觉得很难,大多数人都是一知半解。本人也花了很多时间、看了很多材料也没有真正理 阅读全文
posted @ 2018-12-17 09:35 xybaby 阅读 (17647) 评论 (8) 编辑
摘要:《Designing Data-Intensive Applications》的第一部分,基于单点(single node)介绍了数据系统的基础理论与知识;在第二部分,则是将视野扩展到了分布式数据系统,主要是Partition和Repliacation。在第三部分,则聚焦于派生数据系统。 integ 阅读全文
posted @ 2018-11-05 09:29 xybaby 阅读 (412) 评论 (0) 编辑
摘要:最近做了一次架构(流程)的设计,简单来说,是设计一个流程,提供相应的API,方便其他程序员将业务逻辑逐步迁移到另一套框架。在完成这次设计的过程中,还是有许多经验、教训,值得思考和记录。其实,这些经验总结,可能在其他地方看到过,也听别人分享过,不过只是“夫子言之,于我心有戚戚焉”,只有当自己亲身经历过 阅读全文
posted @ 2018-10-14 12:03 xybaby 阅读 (1049) 评论 (0) 编辑