硬核难度

个人博客

从URL开始,定位世界

从我们输入URL并按下回车键到看到网页结果之间发生了什么?换句话说,一张网页,要经历怎样的过程,才能抵达用户面前?下面来从一些细节上面尝试一下探寻里面的秘密。 #前言:键盘与硬件中断 说到输入URL,当然是从手敲键盘开始。对于键盘,生活中用到的最常见的键盘有两种:薄膜键盘、机械键盘。 薄膜键盘:由面板、上电路、隔离层、下电路构成。有外观优美、寿命较长、成本低廉的特点,是最为流行的键盘种类......

什么时候能用上设计模式?

这是原本我觉得在这一生中很难碰到的开发实践。 #前言 粗略来说,公认的设计模式有GoF的23种设计,分为创建型、结构型、行为型。在我读大学的时候把其中十几种比较常用的模式总结过一遍,工作一年之后比较惭愧,只记得单例、简单工厂、外观、观察者模式了。 但是,前几天在项目中有一位比较资深的同事,将业务代码使用一种设计模式实现之后,让我感觉死而复生一般对设计模式再一次产生了浓厚的兴趣。 #业务中例......

开源产品商业化成功是一种怎样的体验

Docker:泻药 ##从前的Docker 2013年年初,一个叫做dotCloud的PaaS供应商将其内部项目Docker开源之后,Docker便慢慢进入我们的视野,这家公司甚至卖出所有PaaS业务,改名为Docker.Inc,专注于Docker的开发与推广。 2014年,Docker公司进行了多次收购,当年6月,Docker 1.0版本正式发布。同时发布Swarm、Machine与Co......

Spring Cloud中异常处理的套路

异常在Java中有两种分类:Error(OutOfMemoryError之类的我们自己程序无法处理的非常严重的错误,Java推荐不catch,让程序随之崩溃)、Excepiton(NullPointerException之类的并不致命的错误,Java觉得indicates conditions that a reasonable application might want to catch......

一辈子做好一件事

再过一个月,婆婆和你就已经走了两年了,这两年我偶尔会想起你们,每逢佳节的时候想到婆婆,不逢佳节的时候也会像到婆婆;看到有水的地方会想到你,没看到水的时候也会想到你。 打我记事起,爷爷刚刚去世,平时最关心的蜂箱婆婆还保养的好好的,每年还能从婆婆那里拿到不少蜂蜜。虽然自己不喝,但每年年初,婆婆给我家还是送了喝不完的蜂蜜。 每年过年的时候基本上要回家一趟,那一趟路少说3个小时的车程,慢的话4个小......

玩转微服务测试

本文会讲到在微服务中,测试如何在基于其意义的基础上如何配合微服务的特点被完成,不会涉及到类似测试技巧、测试性能等实现细节,但看完你会明白的是要写什么、为什么在微服务中这样写。 与单体应用测试不同的是,微服务架构中服务之间的通信非常频繁,不同服务之间的接口变更亦是如此,所以契约测试会占更重要的地位,也是本文的重点。 #单元测试如何写 首先一定要明白单元测试测的是什么。 最小可测试单元进行检查......

监听器的前世今生

对不起我的文章中没有粗体或者高亮,只有格式的不同,因为格式已经足够明显提醒你了并且每句话都是不是废话。 #世界上最早的监听器不是Servlet中的 其实这篇文章有一半与主题无关。请原谅我当了一次标题党。万恶的标题党,我自己都难以根据题目了解文章内容了。 对于大部分Java开发者来说,第一次听说监听器这个翻译过来的词汇的时候是在学习Servlet的时候听说的,还记得当年用HttpSessio......

对CI/CD与分支模型的理解

最近从前项目上刚下来,经历了项目中分支策略的重大变更,完成了对部署策略替换的实现,现在想把自己了解到的这方面知识记录以及总结一下,深入自己对其的理解程度。 #CI/CD ##概念 CI (Continuous Integration)和CD (Continuous Delivery)是敏捷中非常重要的概念,它以持续、敏捷的思想对项目开发、发布流程有一个具体的指导性实践。 ###持续集成 ......

一次小型脑暴+Inception的过程

在Beach上呆久了就会觉得无聊,然后最无聊的老司机来干大事啦,虽然整个流程只花了一个半小时。 #动机 我们这几天自己在学一些新东西嘛,然后光自己学挺无聊的,如果能把他们结合自己的想法去做个东西出来不更好吗?这就是我们这次脑暴的动机啦。 #脑暴 首先把我们最近干的事情以及自己想做的东西都列出来,每个人谈谈学习经历、想法出现的动机,反正就是全部列出来。我就说我最近在看GoCD想去贡献源代码去......

[译][MicroService 6]选择一个微服务部署策略

选择一个微服务部署策略 #动机 部署一个单体应用意味着运行多个相同的单个副本,并且通常是比较大的应用。你通常配置N个服务器(物理或虚拟),并且在每个上面跑M个应用的实例。单体应用的部署不总是很简单的,但是比部署微服务简单多了。 微服务包含很多服务。服务又可能是用不同的语言和框架写的。每个服务都是一个有自己特定部署、资源、缩放和监控需求的小型应用。比如你需要根据服务来为每个服务启动一定量的实......