Neptune8

September 15, 2017

Designing a Microservices Architecture for Failure

为服务架构可以定义明确的边界来隔离故障,就像每一个分布式系统一样,发生在网络、硬件、应用层级的错误是很常见的。为了优雅的处理这些错误,我们需要设计一种可容错的微服务架构。 ... Read more

September 14, 2017

Golang Pearl 02

作为有运行时的语言,Go也实现了反射机制,这为我们提供了一种可以在运行时操作任意对象的能力。比如: 查看一个接口变量的具体类型 查看一个结构体中的字段 修改某个字段 ... Read more

September 12, 2017

Golang Pearl 01

在Golang中,面向对象的三大特性(封装、继承、多态)只有封装这一特性被实现,但是在Go中封装的形式不像常规的面向对象语言那样,Go采用了一种比较独特的封装方式,这种封装方式被称为方法集的概念。 ... Read more

September 9, 2017

Git Pearl 01

在使用git的时候,经常遇到这种情况: 我们发布了一个版本b1 继续为产品增加新特性,去掉不必要的功能,处理之后遇到的bug等 突然在b1中发现一个非常严重的bug,这个bug已经在步骤2中做了修正,但我们急需将这个补丁应用到b1版本上。同时,我们不希望将其它的特性和bug修复应用到b1 这时我们要将b1checkout出来,修正这个bug,然后发布一个基于b1的b2版本 ... Read more

September 7, 2017

Way of Thinking

我们在解决问题、与人沟通的时候,能够找到一个结构,将所有的碎片信息放进去,就能够减轻大脑的负担,从而更容易解决问题。 结构化的思维方式在咨询行业使用最广泛,若论对行业的理解和公司的了解,其实并不会比客户更多,其赖以生存的关键还是在于思维模式,各种思维模型的运用构成其核心竞争力之一。因此,结构化的思维方式是非常值得刻意训练的能力。 ... Read more

September 4, 2017

Deliberate Practice

任何新手成为大师都有一个步骤,先是兴趣,然后认真,最后刻意练习。 对于刻意练习来讲,最重要的就是需要有一个明确的目标,而且这个目标必须可以衡量。例如,想要练习写作,就可以找到一片不错的文章、仿写、对比、改进、再仿写,这样一个循环。 ... Read more

September 2, 2017

Hackers Painters

在大众眼里“黑客”就是入侵计算机的人,在程序员眼里“黑客”指的就是优秀的程序员。其实这两个看法是相通的,因为都包含者对某样事情精通的意思,也就是说他们可以随心所欲的支配计算机。 从更广泛的意义上来讲,黑客指的是那些解决问题的方式非常聪明高超,将整个系统操纵在鼓掌之间的人。早在计算机发明以前,黑客就已经存在了,费曼在为曼哈顿计划工作时,喜欢破解保险箱中的机密文件。这个传统流传至今。有时,你很难解释为什么有人喜欢做这种事,黑客往往因为入侵计算机而遭受政府的调查。通行的调查方法并不适合黑客,所以,调查局的就从犯罪动机角度展开调查。然而黑客的动机是满足自己的好奇心,这种动机并不在传统的犯罪动机之中,这往往会惹怒当局。 ... Read more

September 1, 2017

How to Write an About Page

Crafting an A+ About Page requires more than throwing up a bio about yourself and adding an iPhone photo of your face. There are several steps you should take when creating an About Page. ... Read more

August 31, 2017

LeetCode 55 Jump Game

Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array represents your maximum jump length at that position. Determine if you are able to reach the last index. ... Read more

August 30, 2017

Software Design

软件体系结构不会优雅地老化。软件体系结构的退化与软件本身的改动数量成正比:缺陷修复会腐蚀软件的层次,新特性会使设计产生应力。确定什么时候软件体系结构退化到该重新设计或重写一个模块是一个很难的决定。一方面,在设计退化时,维护和开发变得更困难,最终变成一个老化的软件。它的每次发布只能靠一群暴力测试者来维持。因为没有人知道该软件内部是怎么工作的。另一方面,用户会强烈抱怨根本性改动带来的不稳定和不兼容。作为一个软件架构师,你唯一的保证是无论选择那条路,总有人对你不满。

© 2017 Zhou LiHai. All rights reserved. 鲁ICP备16041720号.