洋蔥

贪婪,找不到比这更好的词了,是件好事。

在技术圈里,我们经常听到“工程师文化”这个词。很多公司的HR、管理层都热衷于研究Google、Facebook、Netflix等大公司的文化,希望能打造成和它们一样优秀的工程师文化。

过去几年,好几位朋友也问过我,怎么才能打造跟Google一样的工程师文化?实际上回答这个问题之前,我们先要搞清楚,到底什么是工程师文化,Google的工程师文化是什么。今天,我就针对这三个问题,聊一聊我对Google工程师文化的理解。

话不多说,让我们正式开始今天的内容吧!

阅读全文 »

我一直强调,在项目中实践、由点及面的学习,是提高技术最有效的途径。但是,好的技术氛围、培养机制,也能打破通过项目单一成长的限制,获得更多项目之外的收获。很多公司,特别是一些大公司,在关注员工工作效率、工作产出的同时,也十分关注员工的个人成长、职场发展。今天,我就和你聊一聊Google有哪些让我快速成长的地方。

阅读全文 »

100篇的正文已经全部结束了,估计你学得也有点累了吧?时隔这么久,正文终于结束了,从今天起,我们继续加餐内容。

跟正文内容相比,加餐内容我希望尽量轻松有趣,帮你拓展知识面,主要是课后的一些小分享,有的会以讲故事为主,但我也希望它能给你带来收获。如果能够引发你的思考和共鸣那就更好了。所以,我也希望你在留言区,多说说自己的感受和看法,多多与我互动。

话不多说,让我们正式开始今天加餐的内容吧!

阅读全文 »

尽管说设计模式跟编程语言没有直接关系,但是,我们也无法完全脱离代码来讲设计模式。我本人熟悉的是Java语言,所以专栏中的代码示例我都是用Java语言来写的。考虑到有些同学并不熟悉Java语言,我今天用一篇文章介绍一下专栏中用到的Java语法。

如果你有一定的编程基础,熟悉一门编程语言,结合我今天讲的Java语法知识,那看懂专栏中的代码基本不成问题。

如果你熟悉的是C/C++、C#、PHP,那几乎不用费多大力气,就能看懂Java代码。我当时从C++转到Java,也只看了一天的书,基本语法就全部掌握了。

如果你熟悉的是Python、Go、Ruby、JavaScript,这些语言的语法可能跟Java的区别稍微有些大,但是,通过这篇文章,做到能看懂也不是难事儿。

好了,现在,就让我们一块儿看下,专栏中用到的所有Java语言的语法。

阅读全文 »

你好,我是王争。今天是春节,首先祝你在新的一年,学业进步,工作顺利。放假期间,也不要忘记学习啊!

到此为止,咱们的《设计模式之美》快要更新过半了。很多小伙伴反馈的问题我都看到了。这里我也来讲一下,到底该如何学习《设计模式之美》专栏,才能做到事半功倍、有的放矢?

阅读全文 »

上一节课,我们对整个专栏的理论知识点做了串讲复习,不知道你掌握得如何?对于上节课总结的重点内容,我希望你能多花点时间搞透彻,对于一些不那么重要的内容,我建议你把专栏当作工具资料,用到的时候随手查阅,再深入学习研究。

实际上,很多小伙伴反应,虽然理论掌握得差不多,专栏也很贴近实战,每个知识点的讲解都有结合实际的代码案例,并且最后还有集中的项目实战,但落实到自己写代码的时候,还是无法将学到的理论知识很好地应用到其中。今天,我们就再聊一聊,如何将设计思想、原则、模式等理论知识应用到实际的项目开发中。

话不多说,让我们正式开始今天的学习吧!

阅读全文 »

到今天为止,理论部分和实战部分都已经讲完了,整个专栏也接近尾声了。我这里用两节课的时间,带你一块复习一下前面学到的知识点。跟前面的讲解相对应,这两节课分别是针对理论部分和实战部分进行回顾总结。

今天,我先来带你回顾一下整个专栏的知识体系。我们整个专栏围绕着编写高质量代码展开,涵盖了代码设计的方方面面,主要包括面向对象、设计原则、编码规范、重构技巧、设计模式这五个部分。我们就从这五个方面,带你一块把之前学过的知识点串一遍。

阅读全文 »

上两节课,我们讲解了灰度组件的需求和设计思路。不管是之前讲过的限流、幂等框架,还是现在正在讲的灰度组件,这些框架、组件、类库的功能性需求都不复杂,相反,非功能性需求是开发的重点、难点。

今天,我们按照上节课给出的灰度组件的设计思路,讲解如何进行编码实现。不过今天对实现的讲解,跟前面两个实战项目有所不同。在前面两个项目中,我都是手把手地从最基础的MVP代码讲起,然后讲解如何review代码发现问题、重构代码解决问题,最终得到一份还算高质量的代码。考虑到已经有前面两个项目的学习和锻炼了,你应该对开发套路、思考路径很熟悉了,所以,今天我们换个讲法,就不从最基础的讲起了,而是重点讲解实现思路。

话不多说,让我们正式开始今天的学习吧!

阅读全文 »

上一节课,我们介绍了灰度组件的一个需求场景,将公共服务平台的RPC接口,灰度替换为新的RESTful接口,通过灰度逐步放量,支持快速回滚等手段,来规避代码质量问题带来的不确定性风险。

跟前面两个框架类似,灰度组件的功能性需求也比较简单。上一节课我们做了简单分析,今天我们再介绍一下,这个组件的非功能性需求,以及如何通过合理的设计来满足这些非功能性需求。

话不多说,让我们正式开始今天的学习吧!

阅读全文 »
0%