0%

回归

博客搁置了两年了,之前一直在找借口不写博客,现在发现这是个多么愚蠢的决定。

借此机会回顾一些自己工作近两年来工作的一些事情和生活中的一些事情。

工作

不知不觉在华为工作了快两年了。如果要用一个关键词来总结这两年,那就是

我在变,项目在变,同事在变,语言在变,部门在变,公司在变,总之都在变。

项目在变:不夸张的说,两年来做过5个项目:

  • 基于服务框架的服务运维系统
  • 一个java框架的安全整改
  • 基于golang的服务调用框架
  • 基于nodejs的web开发环境系统
  • 基于k8s的沙箱系统

五个项目,经历4种语言,我也是很无奈。内心总归有一些抱怨,但是学到的东西和接触的东西还是很多的。

基于服务框架的服务运维系统:通过这个项目,对rpc调用框架(业界比较流行的框架是dubbo,我司的服务框架和dubbo有很多相似之处)有了很深的了解,各种新概念(对我来说)新知识不断袭来,当然我也只能选择吸收。

第二个项目,做的时间较短,而且项目紧急,只要是接触了一些web安全相关的技术,比如xss攻击、sql注入等。了解的也是一知半解,只能说是了解,入门都不算。

基于go的服务调用框架,是真正的去做一款服务调用框架,这个项目还是很有趣的。首先是克服语言的障碍,go语言的上手是挺快的,但是用起来也是一堆坑,不断的试错不断的学习,慢慢的觉得go语言写的代码还是很优雅的,相对java来说挺简洁的。尤其是goroutine和channel,用起来很灵活,刚开始用也是一头雾水,慢慢能体会到他们的好处。在这个项目中,我主要做服务的注册和发现模块,和zookeeper打交道很多。对zookeeper还算有一些了解。被zk的事件机制也是搞得焦头烂额。各种事件的处理、各种异常情况的处理,功能也慢慢的稳定。

做这个项目还有一个很大的收获是,对于软件系统来说,工程能力很重要。所有工程能力就是CI(持续集成),就是工程打包、代码质量、每日构建(测试用例执行)、出包等。在github代码库(我司使用的是基于github自主开发的一个工具,很类似)上设置门槛用例,确保每次提交的代码能保证基本功能通过。而且良好的项目氛围,不断的codereview都使我受益良多。之前写过不少代码,但是并没有真正的好好思考一些什么样的代码是好的优雅的代码,我们的PL总结了一些写代码的基本原则,基于这些原则,写出来的代码果然有很大的不同,看起来也舒服很多。这些原则看起来其实挺简单的,但是能总结出来并且在代码中都能很好的遵守这些原则还是需要一些功力的。后面有机会也可以分享一下这些原则。