首页
学习
活动
专区
工具
TVP
发布

程序开发的一些常规套路(一)

进入软件开发许久,期间做过Android,玩过opencv,做过小程序,写过TP5的接口。现在将一些软件开发上的常规套路分享给大家。服务器方面将会以TP5框架为例,客户端则以微信小程序为例。

服务器方面(以TP5为例)

服务器开发人员主要的工作就是写接口了。包括处理客户端传递过来的数据,以及将数据库中的信息传递给客户端。个人理解,项目开发之前,首先要做的就是设计数据库,理解表与表之间的关系,这一点对服务器开发人员尤为重要,因为接口中的内容归根揭底都是表与表之间的关系。

无论是后台服务器还是前台客户端,项目开发的第一步就是写好基类,将基本的框架功能搭建好。也许公司有框架,但是你不能否认这一步真的能为后面的工作节省很多的时间。接下来,从TP5的角度开发,说说我自己在开发上的一些常规套路。

大家都知道,服务器在无论在线下开发测试的时候,还是在线上都会遇到异常,在我们公司,是通过客户端可解析得json字符串来向客户端反馈的。一般,把可预计的异常的都抛出去,在客户端进行异常处理。只有在服务器按计划正确执行了的代码,才能在客户端进行正确的响应。在这里用到的方法就是抽取异常基类以及定义全局异常了。

抽取异常基类

首先我们来看看在客户端显示的数据是怎么样的。

当服务器遇到异常时,响应的数据。

服务器正确响应时反馈给客户端的数据

这里先来说说,响应异常时的处理方法。可以看出异常时json字符串中有statue msg errorCode 以及 url,我们在自己写的BaseException(继承TP5中的Exception)定义这几个字段。会在自定义全局HandLer中遇上。下面来具体看看代码

正确响应时候调用的方法,我们可以将它抽取到基类中,当然也可以定义公共php文件common.php

接下来是BaseException异常的基类

需要注意的是BaseException的构造方法,这里运用的比较巧妙,通过这种方式,我们可以很直接的在BaseException中自定义传递给客户端的参数,方便前台开发人员做出正确的响应。

示例

定义全局异常处理

当然想要达到以上的效果,只定义基类异常还是不行的。还需要另外自定义全局异常处理。在TP5框架当中的config.php文件中有一个**exception_handle**变量,用来指定服务器异常时要调用的handler处理方法。我们可以将它的路径设置为我们自己所写的继承了Handler的类来实现全局异常。

ExceptionHandler是我们自定义的异常,继承自TP5框架的Handler,而在Hanler中有一个render方法,在其中可以接受来自后台抛出的Exception,从而做出对客户端的响应。我们可以在子类中重定义这个方法,输出json字符串,来达到上面示例中的效果。下面来看看具体代码。

由于篇幅受限,就先说到这里。喜欢的可以点个关注,下期继续。

关注我们

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180426A1NMYL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券