好久没有更新了,这个年终总结更是拖了好久。接下来就总结一下2015年的技术成长吧。

总的来说感觉成长是很有限的,感觉现在所在的公司技术层面并不会特别突出,业务推进也比较缓慢,不过好在有时间学习新知识,这也算是一种折中。2015年12月末来到dr实习,当时参与开发一套借款端的怀旧系统…美名其曰为开发,世为修bug和写bug。这个系统主要开发语言是java,实用了十分怀旧的技术,可能由于CEO是Orale出来的缘故,整个技术栈都是Oracle的破东西,服务器用的是OC4J,ormapping框架用的toplink,都是不为人知,甚至不被oracle维护的东西…不过整个组内氛围十分融洽,而且有幸由当是的leader带我。环顾整个公司,有leader带人的情况也就发生在我身上了。

每当忙完一段时间,我的leader会让我做一些探索性的工作。比如说看看系统的源码,当时发现老人在实现发送短信的功能上,有一个非常有意思的地方,我想可以理解为oracle抗压(可见系统有多老),他/她在实现异步发送短信的逻辑上,采用将待发的手机号码先存储到oracle db中,在从oracle读取,整个异步看似很蠢,但是所有压力都放在oracle上,不知道这是不是10年前oracle抗压的典型做法?还有一次,leader让我给系统配一个log,当时的log框架用的五花八门的,一点不统一。于是我就配置了一份log4j,并阅读了它的源码。

后来由于团队需要,开始转做前端,并开始使用node和angularjs。通过node钻进了异步的世界,进入了高效i/o的世界,最有意思的莫过于函数式编程。虽然从来没有在工作中写过curry或是trampoline,不过确实开了眼界。另外现在的前端开发,跟我之前了解到的一点也不一样,jquery虽然很强大,但仿佛是上世纪的产物,angularjs、reactjs以及emberjs真是很强大的产物。在dr的前端开发中我们使用angularjs作为mvc框架,gulp作为build工具,使用less简化css的组织结构。其实当时的想法是,前端开发和后端开发很像。而且前端开发的处理逻辑的地方更多。不过后来就发现,前端对于我来说是一个深坑。我一直在尝试走全栈开发的路线,然而一个全栈前端是需要懂设计的…是在下输了…:(

有相当长的一段时间,我曾认为javascript是一个比java强好多的语言,毕竟js可以run在好多地方,而且单说i/o效率是比java强的(node)。不过后来回头重新写java时,还是认为java的积淀更深一些。

学习node最有意思的地方就是async i/o, so fun!在学习的过程中尽量学习node内部如何实现callback,针对异步的场景,还根同事讨论过,将问题扩展到所有的异步场景,包括linux的epoll、windows的IOCP。所有的高效异步都是同步的轮询。

最近参与开发针对线上借款业务的风控系统,名为risk engine。里面包含一个子项目叫rules engine。也就是一个DSL。这个东西陆陆续续做了几个月了,以后应该找个时间单独拿出来说的。