第二届2016PHP全球开发者大会于5月14日在北京国际会议中心隆重开幕!
此次大会吸引了近千的PHP开发者,PHP界的很多大牛,鸟哥,PHP语言创始人Rasmus Lerdorf等各路大咖纷纷到场。可以说,这是一场PHP技术盛会。
各路牛人就PHP开发中的不同问题发表了精彩演讲。
聚合数据的数据平台总监罗承成以PHP开发中的测试环节为主题,发表了题为 《如何编写可测试的代码》的演讲。
罗承成在分享的开始抛出了一个大多数开发者会遇到的问题:
开发的代码不够靠谱,同时也没有好的办法自测,导致了测试环节非常浪费时间。
就如何解决这一问题,罗承成发表了自己的观点。
罗承成提到:在开发中,会有不少人因为代码维护起来太费劲,想去重构,而真的做过重构的人也知道重构之后的系统还是会逐渐走上之前的老路。
问题的关键在于没有用到自动化测试。
如果在每个环节中,都能保障了关键部分的代码有效,那么项目就不会过早瘫痪。
或许换句话说,自动化测试是项目唯一有效的防腐剂。
关于可测试的代码,罗承成提出两条原则。
一 低耦合
二 明确的依赖关系
关于这两条原则罗承成做了非常通俗易懂的阐述:
耦合就是知道的太多了。
比如在工作中,我们和另一个项目的开发人员合作,双方有HTTP的接口,但是项目里还有他们的数据库的连接。现在需要增加一个查询信息的接口,对方开发任务排满了没空做,那就直接从数据库里查吧。
没问题,但是后来对方因为功能需要把数据库表结构改了,他们不会知道你怎么用了他们的数据库,这一上线就把对方的系统搞挂了。
这就是因为知道了不该知道的,而且一旦知道了就免不了会去揣测对方的具体做法,做出一些不可靠的假设,最后都被实现细节相互牵制。
低耦合就是只知道该知道的事儿,不该知道的就别瞎猜,接口咋说的就咋用。
依赖关系,具体的说就是要做一件事,必须满足的前提条件。
比如我们去办个证,他们说需要提供某某证明,等几经周折把证明办下来了, 他们又说哦,你这个情况还需要某某证明,这个证明办下来了,他们又说了,这个证明盖的章不对,得找户口所在地的某某级别的单位盖章才行,这就是不明确的依赖。
为了更好的解释这两条原则,罗承成列举了大量的实战代码案例,对于开发者,实战往往更能使他们热血沸腾。
罗承成在演讲最后还总结了测试驱动开发会带来的好处:
一、测试驱动会促使你写出可测试的代码,不然写测试用例没法下手“有了自动测试的保护,可以随时重构看着不顺眼的代码
二、对于已经完成的代码正确性有十足的信心
三、面对新功能和需求变更,可以对开发时间有准确的估计
四、遇到bug可以快速的定位和修复问题
在演讲的最后,罗承成对聚合数据平台做了一个简短的介绍,聚合数据是服务开发者的一个平台,为开发者或企业提供基础数据API服务。这次能代表聚合数据参会进行交流学习非常高兴,希望借PHP大会这个契机结交更多的朋友,也希望聚合数据的服务,能够助力更多的开发者。
|