Xueqiu Engineering Blog

thoughts on creating xueqiu

开篇再加上2012的一点小总结

| Comments

欢迎来到雪球工程师团队博客!

马上就到年底了,也不知道这第一篇博客会不会成为最后一篇 (-_-#) 不管了,来一篇今年的总结作为开篇顺便展望一下未来 …

团队

今年人员上最大的变化是补充了移动团队,从无到有已经形成了比较完整的队伍。各个根据项目组合而成的小组也有了自己比较专注的目标,而且项目上多少都会有一些挑战而不是简单的重复性工作。总体上上看我们的工程师团队是按照计划完成了我们每一个阶段的开发任务。

开发实践

产品开发的组织上我们从年初的半年一个里程碑,逐渐缩短,后来是三个月,现在已经是每个月一个里程碑,这其中的原因是因为针对一些遇到的问题我们引入了一些方法和工具有效的提升了效率。

站立早会

一开始我们也没有特别的流程打到哪指到那,渐渐的为了团队之间的沟通更顺利,我们增加了开发之前的沟通与设计,还增加了每日(或隔日)的站立早会。早会上大家会回答三个问题:我之前做了什么?我现在在做什么?有什么需要讨论的问题?早会的效果可以说是很不错的,可以及时的发现问题然后有针对性的去解决掉,还可以督促工程师每天对已经完成的和将要做的事情提前有个计划。

Code Review

在我们的几个核心项目上,之前一直都是谁写的代码谁知道,其他人可能并不知道实现细节,也不知道是否实现的过程中有什么隐藏的问题。一直想找一个能够比较好进行 Code Review 的办法,不得法。找来找去发现其实 github 的 pull request 方式是最符合我们需要的方式,不过 github 的服务器对我们来说有点慢,弄个 Enterprise 版本又太贵,后来开窍了我们一直在用 Redmine 做项目管理,那我们干脆就山寨一个 Pull Request 好了。

成果在这里 https://github.com/xueqiu/redmine_pull_requests 欢迎 Fork 。使用半年来我们一共开启了将近 1000 个 request 了!通过引入方便的工具降低大家对改变的畏惧心理是个很有用的方法,一旦用上了就体会到好处变成习惯了。用这个工具我们还是提前发现了不少问题,更多的同学对其他人的代码也有了了解,因为有人要 review 自己的代码,也自觉的不能写的太差劲了 (-__-) 对提高代码质量还是很有帮助的。

测试

到今天我们的核心的项目都有了自己完整的、容易编写的自动化测试框架,这些项目包括 Java Web Service / NodeJS / iOS / Android ,虽然还没有很高的覆盖率,不过从新做(修改)的功能开始已经逐步开始补上和完善。测试代码不能解决逻辑问题,但可以避免人为出现的低级错误,谁用谁知道啊。

未来雪球可能也会有测试团队,但是测试团队的任务绝对不是手工点界面测试甚至不是写业务的测试代码,而是维护各种测试工具、推广测试的最佳实践,最适合写测试的人是开发者自己。

运维

对于我们现在的规模谈架构可能比较虚,我们把这项工作叫做运维吧,今年做了几个调整

  • 集中数据库,方便维护与调优
  • 独立缓存集群,扩大容量,隔离与其他系统的交叉
  • 合并服务,把尽合并的服务合并在一起(同一个项目或者同一台服务器),充分利用服务器资源

展望

最近看书看到个说法(大意)历史有两种,一种是著名的,一种是不著名的,著名的历史背后都是由不著名的历史组成和引发的。

对雪球的工程师团队来说,我们还是一支很年轻的队伍,看看这一年的改进都是非常基础性的,但对未来一定会有深远的影响。所以未来在各种提高效率的方法、工具投入任何精力都是不过分的,这也是让工程师有自我满足感的最重要因素,我个人认为没有之一。沿着这个思路,我们的目标是没有目的地的,不过方向是明确的清晰的,只要耐心踏实的坚持走下去,年轻的团队也可以很牛逼的。

Comments