老码农眼中的区块链

大家可能已经听说过比特币、莱特币、以太币等等,以及它们作为一种新货币在市场上的潜力。 有趣的是,很多投资比特币的人也提到了区块链之类的东西。 显然,这项技术是比…

一个让业务开发效率提高10倍的golang库

此文除了是标题党,没啥其他毛病。
这篇文章推荐一个库,https://github.com/jianfengye/collection。这个库是我在开发业务过程…

中台的末路:中台不是银弹,下手需谨慎

以下文章来源于码农桃花源 ,作者曹春晖
从 15 年开始,到 19 年现在为止。各大公司都在吹捧中台理念。仿佛中台是业务复杂性的救世主。是某些架构师和 PM 的…

卓越工程之如何做好Code Review

本文主要从我们为什么需要CR?CR面临哪些挑战?CR的最佳实践几个方面分析,希望可以给读者一些参考。

为什么需要CR?
代码质量
定性来看,大家都认可Co…

成为架构师的难点及8大核心能力

在业界,对于架构师的角色往往存在一些误解,尤其是在实际操作中。这种情况常常表现为:一方面对架构设计的工作缺乏足够的重视,拿到需求后,几乎没有经过任何设计思考,便…

5个规则,确保你的微服务优化运行

最近几年好像大家都开始对微服务着迷,而一旦你开始使用微服务架构,也许你需要一些规则,帮助你成功运行它们
挑战 1:难以全面监控

在容器化应用中,回滚一个“坏”…

共识Raft:如何保证多机房数据的一致性?

当机房 A 修改了一条数据的同时,机房 B 也对该数据进行了更新,Otter 会通过合并逻辑来处理冲突的数据行或字段,以达到合并效果。为了避免这种冲突,我们在上…

领域拆分:如何合理地拆分系统?

一般来说,强一致性的系统都会牵扯到“锁争抢”等技术点,有较大的性能瓶颈,而电商时常做秒杀活动,这对系统的要求更高。业内在对电商系统做改造时,通常会从三个方面入手…

流量拆分:如何通过架构设计缓解流量压力?

今天,我打算以直播互动作为例子,引领大家一同去了解在面对读多写多的情况时,应当怎样去应对所产生的流量压力。通常而言,这类服务在多数情况下都属于实时互动服务。由于…

数据引擎:统一缓存数据平台

任何一个互联网公司都会有几个核心盈利的业务,我们经常会给基础核心业务做一些增值服务,以此来扩大我们的服务范围以及构建产业链及产业生态,但是这些增值服务需要核心项…

多层依赖:如何避免落入数据服务接口的陷阱?

前面,我们讨论了不同类型系统(如读多写少、强一致、写多读少和读写密集)的优化方法。但在很多复杂的业务系统中,读写逻辑往往相互交织、互相制约,这让优化工作变得更具…

业务缓存:元数据服务如何实现?

当你打开微博或一个新闻网站时,眼前会呈现出丰富的媒体文件:图片、文本、音频、视频等应有尽有。有时,一个页面甚至由成百上千个文件组合而成。那么,这些文件究竟存放在…

网关编程:如何通过用户网关和缓存降低研发成本?

如果说用户的流量就像波涛汹涌的海浪,那网关就是防御冲击的堤坝。在大型的互联网项目里,网关必不可少,是我们目前最好用的防御手段。通过网关,我们能把大量的流量分流到…

如何让系统易于扩展?

高可扩展性是架构设计中的关键指标,它意味着系统能够通过增加服务器数量来线性提升处理能力,从而应对更高的流量和并发需求。有人可能会问:“为什么在设计之初不直接规划…

技术与业务同行:做业务的技术人

本文结合了作者的工作经验提出了一些建议,希望每一位技术同学都可以找到适合自己的成长方向和路径。
做业务就好比打仗,团队是我们的归属。
在团队中,我们既要通力协…

领域驱动设计DDD|从入门到代码实践

在本文中,作者将借鉴《实现领域驱动设计》的做法,介绍领域驱动设计的基本概念的同时,用一个虚拟的公司和一个虚拟的项目,把领域驱动设计进行落地实践。
背景
为什么…

从设计模式谈业务开发

本文主要讲述我们如何通过一个主干业务流程承接多个业务场景并在数据上可适配到多端型多场景,实现在服务端高质量高效率的“包接口”。
一、背景
前台业务同学在业务承…

关于“重构”的一些思考

本文将从一个新人数次修改CR comments的角度探讨代码重构的定义、目的以及常见的重构方法,并以简单的代码案例来说明代码重构的具体实现。

任何一个傻瓜都…

实战总结|复杂系统设计原则与案例

本文主要讲述了应对复杂性的一些原则和经验,通过实际案例解构设计思想,个人认为好的设计是体现在「职责分离」、「抽象分层」和「变化扩展」上,在类的结构设计上尤其要…

高德信息业务DDD实战 – 聊聊用领域重构胶水代码

本文主要记录了高德信息业务DDD实战中如何用领域重构胶水代码。
一、背景

团队简介:高德信息业务us团队主要承接聚合下游服务(搜索、推荐、广告、离线、商服、…