转眼间,在灵析实习已经一个多月了。中间请了一个周的假参加夏令营,算起来总共待在灵析的时间也已经有5个周了。

那么在这五个周里,我到底学到了什么呢?

工具篇:

作为一个工具控,当然要先说一下在灵析学到的各种新的工具啦。

  • 团队沟通 Slack
    slack确实是一个非常优秀的团队沟通工具,可以非常简单地发起群聊,单聊等。不过其在国内的访问速度略慢,所以我自己在选择的时候,选择了国内的同类产品BearyChat,速度相对快不少。
  • 任务(项目)管理 Worktile
    我们团队使用Worktile来进行任务管理。特别是对于开发来说,Worktile是一个非常好的与其他部门进行合作的工具。我们的运营客服经常会收到用户反应的各种bug,这些都会直接记录到Worktile上,然后由技术部的负责人将这些bug或者feature在Worktile上直接分配给对应的程序员,非常方便。特别是Worktile的拖拽的操作方式,非常直观。
  • 代码管理 SourceTree
    以前对于SourceTree只是听说,基本上没有用过。团队里的其他同学用的都是SourceTree,所以我也使用了它,感觉上非常的便捷,很多操作都可以不用CLI来进行了,对于多个仓库的支持也很好。缺点是长时间使用(像我这种每天不关机的人……)会变卡,需要重启一下。

工作流

灵析研发的基本工作流我觉得非常棒,刚来的时候让我有一种置身大公司的规范感。(虽然后来发现这个流程其实并不是特别严格地被遵守……)

研发这边的基本工作流,就是对于现有的系统,如果要进行bug修复或者feature添加,一共有以下几个步骤:

  1. 开发人员拉一个新的feature分支出来
  2. 在该分支上进行自己的开发
  3. 开发完成后,将代码push到gitlab上,然后创建MergeRequest
  4. 技术负责人对代码进行Review,提出对应的修改建议
  5. 开发人员继续修改
  6. 修改完成后由技术负责人将代码合并回开发分支

我觉得这种开发的流程,能够非常好地保证代码的质量,同时开发流程也相对清楚明了。

当然,也有一定的缺陷,比如代码的Review都由技术负责人进行的话,在团队规模扩大后可能会出现问题,这个可以由比较有经验的程序员进行Review或者互相Review。

技术相关

首先最明显的肯定是对于PHP和Laravel框架的了解啦,虽然现在还是处于查着文档写代码程度,但是对于整个Laravel框架的理解更加深入了一层,比起自己当时只会页面和Controller的程度要好了不少。特别是进行灵析支付这部分的开发工作,让我开始了解到了使用Laravel时候需要进行的系统架构设计等工作。还有就是对Laravel中的IoC、DI、Facade等的了解,从原来的基本上没有概念,到现在能够理解并且运用,而且还和之前自己学习的Spring框架的相关内容对应了起来,让我觉得非常的受益。

另外,对于单元测试(现在仅仅局限于PHPUnit),也有了相应的了解和经验,能够大体上编写对应的单元测试。以及对于CI,也正好和我之前看的一些东西结合了起来。这种感觉,就像刚在课本上学到了一个知识点,然后马上就用到了一样,特别爽!

总结

总之,在灵析的这一个月,确实学到的很多东西。当然,每天上下班的一个小时也是醉……