9 GarfieldEr007

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 17

整洁架构

本文是关于Bob大叔关于整洁架构的一篇学习笔记。前言整洁架构(Clean Architecture)是由Bob大叔在2012年提出的一个架构模型,顾名思义,是为了使架构更简洁。在开始深入的介绍这个架构之前,Bob大叔首先提到了近些年来比较流行的一个系统架构,包括Hexagonal Architecture,Onion Architecture,以及他自己以前提出的Screaming architecuture等。并且着中说道通过这些架构产生的系统特点是:独立的框架. 这样的.

2020-07-03 20:41:48

忘掉 Snowflake,感受一下性能高出 587 倍的全局唯一 ID 生成算法

今天我们来拆解 Snowflake 算法,同时领略百度、美团、腾讯等大厂在全局唯一 ID 服务方面做的设计,接着根据具体需求设计一款全新的全局唯一 ID 生成算法。这还不够,我们会讨论到全局唯一 ID 服务的分布式 CAP 选择与性能瓶颈。已经熟悉 Snowflake 的朋友可以先去看大厂的设计和权衡。百度 UIDGenertor:https://github.com/baidu/uid-...美团 Leaf:https://tech.meituan.com/2017...腾讯 Seqsvr

2020-07-03 20:33:16

Zookeeper集群脑裂问题

关于集群中的"脑裂"问题,之前已经在这里详细介绍过,下面重点说下Zookeeper脑裂问题的处理办法。ooKeeper是用来协调(同步)分布式进程的服务,提供了一个简单高性能的协调内核,用户可以在此之上构建更多复杂的分布式协调功能。脑裂通常会出现在集群环境中,比如ElasticSearch、Zookeeper集群,而这些集群环境有一个统一的特点,就是它们有一个大脑,比如ElasticSearch集群中有Master节点,Zookeeper集群中有Leader节点。一、 Zookeeper 集群节点为什么

2020-06-24 23:15:36

Resilience4j-轻量级熔断框架

Resilience4j简介Resilience4j是一款轻量级,易于使用的容错库,其灵感来自于Netflix Hystrix,但是专为Java 8和函数式编程而设计。轻量级,因为库只使用了Vavr,它没有任何其他外部依赖下。相比之下,Netflix Hystrix对Archaius具有编译依赖性,Archaius具有更多的外部库依赖性,例如Guava和Apache Commons Configuration。要使用Resilience4j,不需要引入所有依赖,只需要选择你需要的。Resil

2020-06-11 23:08:22

高可用框架Resilience4j使用指南

介绍Hystrix停更之后,Netflix官方推荐移步至resilience4j,它是一个轻量、易用、可组装的高可用框架,支持熔断、高频控制、隔离、限流、限时、重试等多种高可用机制。与Hystrix相比,它有以下一些主要的区别:Hystrix调用必须被封装到HystrixCommand里,而resilience4j以装饰器的方式提供对函数式接口、lambda表达式等的嵌套装饰,因此你可以用简洁的方式组合多种高可用机制 Hystrix的频次统计采用滑动窗口的方式,而resilience4j.

2020-06-11 23:07:34

JSR 303 - Bean Validation 介绍及最佳实践

关于 Bean Validation在任何时候,当你要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情。应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的。在通常的情况下,应用程序是分层的,不同的层由不同的开发人员来完成。很多时候同样的数据验证逻辑会出现在不同的层,这样就会导致代码冗余和一些管理的问题,比如说语义的一致性等。为了避免这样的情况发生,最好是将验证逻辑与相应的域模型进行绑定。Bean Validation 为 JavaBean 验证定义了相应的元数据模型和 A

2020-06-11 23:04:40

MySQL优化器:index merge介绍

在MySQL官方手册上,关于index merge的介绍非常非常少。甚至还有不少误导的地方,这次把5.1版本关于此类优化处理的代码细看了一遍,以案例的方式介绍了各种实用index merge访问类型的SQL。后续的还会继续介绍index merge实现的主要数据结构,以及成本评估。1. 什么是index mergeMySQL优化器如果发现可以使用多个索引查找后的交集/并集定位数据,那么MySQL优化器就会尝试index merge这类访问方式。index merge主要分为两大类,多个索引交集访问(

2020-05-26 21:22:50

MySQL 优化之 index merge(索引合并)

深入理解 index merge 是使用索引进行优化的重要基础之一。理解了 index merge 技术,我们才知道应该如何在表上建立索引。1. 为什么会有index merge我们的 where 中可能有多个条件(或者join)涉及到多个字段,它们之间进行 AND 或者 OR,那么此时就有可能会使用到 index merge 技术。index merge 技术如果简单的说,其实就是:对多个索引分别进行条件扫描,然后将它们各自的结果进行合并(intersect/union)。MySQL5.0之前

2020-05-26 21:20:30

MySQL 优化之 index merge(索引合并)

深入理解 index merge 是使用索引进行优化的重要基础之一。理解了 index merge 技术,我们才知道应该如何在表上建立索引。1. 为什么会有index merge我们的 where 中可能有多个条件(或者join)涉及到多个字段,它们之间进行 AND 或者 OR,那么此时就有可能会使用到 index merge 技术。index merge 技术如果简单的说,其实就是:对多个索引分别进行条件扫描,然后将它们各自的结果进行合并(intersect/union)。MySQL5.0之前

2020-05-26 21:19:33

MySQL 优化之 index merge(索引合并)

深入理解 index merge 是使用索引进行优化的重要基础之一。理解了 index merge 技术,我们才知道应该如何在表上建立索引。1. 为什么会有index merge我们的 where 中可能有多个条件(或者join)涉及到多个字段,它们之间进行 AND 或者 OR,那么此时就有可能会使用到 index merge 技术。index merge 技术如果简单的说,其实就是:对多个索引分别进行条件扫描,然后将它们各自的结果进行合并(intersect/union)。MySQL5.0之前

2020-05-26 21:18:56

谷歌OKR指导手册 (译)

译者:乔梁 来源:《持续交付2.0》公众号这是一本关于 OKR 迷你小册子,名为《google OKR playbook》,由www.whatMatters.com网站发布。该网站由John Doerr 团队经营,而John Doerr 正是 1999年将 OKR 引入谷歌的那个人。本文仅供大家学习参考,虽然文章较长,但值得一读,欢迎收藏。文章的末尾有一些8 道自我测试题,...

2020-04-29 23:52:16

记录下两个孩子在MineCraft里面还原公寓的经历

前不久,我们家两个小朋友沉迷于玩“我的世界”(MineCraft),考虑到堵不如疏,还是正面引导他们比较好,于是和孩子的妈妈商量后,给他两出了个题目:“把我们住的公寓在MineCraft里面搭出来”。为了激励他们,告诉他们如果2个月内搭好,还可以给他们奖励一个大乐高玩具。小朋友们一听,可来劲了,觉得又有意思又有挑战,还有玩具拿,马上就要打开游戏机开始搭。哪是那么容易的事情!于是就问了他们几个问...

2020-04-13 00:12:27

Make it run, make it right, make it fast

如果问我工作十多年后相比刚毕业参加的时候,学到了哪些重要的经验,那么“Make it work, make it right, make it fast”一定是其中最重要的经验之一。第一次听到这句话是从以前老板@沈嵘那里,然后发现是来源自大牛Kent Beck《Make It Work Make It Right Make It Fast》。这是软件项目开发的一条经典原则,实际上不...

2020-04-13 00:11:18

涨工资的那点事

刚毕业那几年,每次到加薪前,心里总是充满忐忑和期待,加薪后,有时惊喜有时失望。但当时并不太明白加薪背后的事情,公司到底是按照什么来给我们加工资的?随着工作经历增加,对涨工资这件事慢慢能泰然处之,也开始转变角色,要去处理部门员工涨薪资的事情。尝试写篇文章总结一下,当是给当年的自己或有类似困惑的对这个问题的一个解答。加薪这个事情,每个公司的操作方式肯定都是不一样的,大公司和小公司,外企国企私企,甚...

2020-04-13 00:10:10

《构建之法》读后感之项目计划

最近看到《构建之法》的“8.6 计划和估计”这一节,颇多感触。这些年来,不同的阶段,对项目计划都有不同的认识和掌握。邹老师提到了制定计划的几个概念:目标、估计和决心。目标:表明一个希望达到的状态。例如,软件“五一”之前要投放市场!在建校一百周年之时把我校建成世界一流大学!不论这类目标如何重要,它们未必能够实现。 估计:以当前了解的情况和掌握的资源,要花费多少人力物力时间才能实现某事。...

2020-04-13 00:03:53

如何面试程序员

最近被“Homebrew作者因为不会在白板上翻转二叉树而被谷歌面试拒绝”这事各种刷屏,知乎、Quora都是热门问题,连LeetCode都专门增加了这道题。说到面试这种事,一般网上讨论的热点都是如何去应对面试的方法技巧,很少有文章去讲如何面试别人,而在工作几年后,去面试别人很有可能变成日常工作的一部分,而大多数时候是没有经过什么培训就被赶鸭子上架了,只能是自己逐步摸索。所以一直想整理总结一下如何...

2020-04-13 00:00:46

Sublime配置

皮肤SetiGitHub - ctf0/Seti_ST3: Seti_UI Port for ST3.Flatland蓝色调,眼睛看的舒服thinkpixellab/flatland · GitHubOceanic Next Color Schemevoronianski/oceanic-next-color-scheme · GitHub配色...

2020-04-12 23:58:52

程序员也可以懂一点期望值管理

刚开始做程序员的时候,主要的心思都放在代码上,没有太关注和其他人之间的相处,更没有考虑过期望值和管理期望值的事情。直到我后来开始做技术管理,有一次听老板跟我讲:“管理,最重要的就是管理期望值”,我才开始关注有关期望值的问题,慢慢才发现生活中“期望值”无所不在,只是很多时候没有意识到罢了。比如上学的时候,某次考试,平时都是考60分左右的学渣考了80分,而平时都考90分的学霸也是考了80分,一般老...

2020-04-12 23:56:05

Code Review最佳实践

我一直认为Code Review(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题。包括像Google、微软这些公司,Code Review都是基本要求,代码合并之前必须要有人审查通过才行。然而对于我观察到的大部分软件开发团队来说,认真做Code Review的很少,有的流于形式,有的可能根本就没有Code Review的环节,代码质量只依赖于...

2020-04-12 23:54:55

把技术卖给不懂技术的人

曾参加过一次技术聚会,大多数都是程序员,一起的有台湾的郭安定老师,郭老师经历比较丰富,席间就有人问他,程序员怎么赚钱?郭老师的回答很精辟:“把技术卖个不懂技术但需要技术的人”,仔细回味一下,确实是这么个理,一般程序员圈子都比较小,比较宅,打交道的也都是程序员为主的技术圈子,很难把自己和技术推销出去,而且还有很多程序员热衷于把自己的技术推向给程序员,这可真难,比如有人写了一个号称很牛X的权限管理系统...

2020-04-12 23:53:32

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。