有你在真好 的个人博客
服务端开发的一些规范
阅读:2261 添加日期:2021/3/27 23:26:22 原文链接:https://www.toutiao.com/item/6412561918250189313/

写之前先来发一通牢骚,最近两天有些郁闷,我在头条上发的每一篇文章都是自己原创,但是头条号指数却一直在下降,不知道什么原因导致酱紫的结果。我一开始还以为是文章发重复了,但在头条上搜了一下类似的文章好像并不多,看来还有一段时间煎熬了。现在唯一的慰藉只有收藏和粉丝的增加了。唉,何时是个头啊。

无论是前端还是后端开发,撸代码时都需要满足一定的规范,这对于后期的维护是至关重要的,不规范的代码不是一串好代码。这句话应该不会被质疑吧。1、逻辑规范

什么是逻辑规范?通俗的来说,你需要记录下服务端可能的所有业务逻辑结果,比如登录时,如果用户名不存在、密码错误、请求的数据格式有误等等,这些都需要反馈给用户,让他知晓到底是哪里出了问题。因此,在开发的时候大概率会用到很多的if-else和try-catch。当然这种返回消息分用户可见和不可见两种情况,如果服务端在执行过程中,自己出现了问题,比如数据库连接不上、序列化为Json时出错,那这些就没必要返回了,自己记录下来就好了,到时候找问题直接看日志就行了。

2、代码规范

对于变量的命名,应该不会有人不知道如何给变量进行命名的对吧,但是你的命名符合规范吗?int aaa?string sss?double ddd?再过一个月你能一眼看出这是什么变量吗?恭喜你,你的记性还不错,看来很适合当程序员。

变量的命名应该是一个参考规范,而不是强制性的规范,你可以不遵从,但是规范命名却是值得你参考的。比如驼峰命名法(除了第一个单词外,其他单词首字母大写)、帕斯卡命名法(所有单词首字母大写),Upper命名(所有字母都是大写,适用于短变量名比如圆周率PI这种的)。

变量名最好是需要具有一定的含义,比如用户名那就userName,密码那就passWord等等。当然你可以使用一些大家都认可的命名。比如密码使用psw,地址使用addr等等等等。再比如布尔类型(bool)变量,最好在前面加上is,比如isTrue,isCompleted,isDeleted等等。

在接口的命名上,尽量使用完整的单词,还有尽量使它具有一定的含义,比如该接口是插入操作,那就在前面或者后面加上Insert,更新操作加上Update,删除操作加上Delete,查询操作可以使用Get或者Select,这些都可以,只要显而易见就好。

还有一些规范是大家默认遵从的,比如接口以大写字母I开头,for循环中使用i,j,k等,你可以遵从也可以不遵从,但是建议还是严谨一些对自己没坏处。

3、日志的记录

服务端日志的记录还是很重要的,这对以后的维护会起到很好的作用,如果出了什么问题,一看日志就明白了,如果是“碰瓷”,那也有日志这个“行车记录仪”在手,也不至于被讹上。

那日志要记录哪些内容呢?首先需要一个网站运行日志,比如谁来请求的,几点,请求成功了没有,服务端返回了什么数据等等,这些都是需要记录的,虽然这显得很啰嗦但是很有必要。

另外还需要一个错误或者异常日志。这个应该好理解,发生了错误就记录下来,方便找bug并修复bug。那什么时候记录异常呢?

首先,永远不要相信客户端发来的参数,一定要检查数据和参数的合法性。比如你要int类型数据,客户端给你发来了三个点(...),势必会引发异常。

其次,如果是在运行时产生的异常,一定要把异常的信息记录下来,如果使用的SQL语句,那这个SQL语句也是有必要记下来的。

因为指不定那个地方会出问题,比如,虽然在第一步已经检查了数据的合法性,但是在执行的过程仍然有可能报错,比如反序列化,这时就需要try-catch一下,然后记录下catch到的异常消息。在比如,与数据库交互的时候,如果出现了数据正常,但是插入不到数据库中去,这种时候,也是可以try-catch一下的。

这个时候可能就有疑惑了,那我隔一行记一次,记录越多越好。事实上,这完全没有必要,只需记录主要的操作就好了,不然日志文档会显得很大,想找到错误的地方都很难找到,这个就自讨苦吃了。

最后,日志最好记录下请求的IP地址,管它有用没用,记下来再说。日志最好分日期取名,每天的日志文件名都不同,比如20170424、2017-04-24这种都是可以的,不然如果写在一个日志文档里面,那家伙就不是一般大了。

补充一句,很多网站的日志会对日志级别进行判定,比如说错误、警告、消息、编译等。这些都是可以的,看自己怎么选择了。

最后,我自认为自己的日志结构还不错,贴出来供大家参考一下,如果有什么建议,欢迎交流。

服务端开发的一些规范

声明:本头条号的所有文章都是本人一字一句码上去的,自己都感觉挺不容易的,但是欢迎小伙伴们转发和转载,请勿用于商业用途就好。谢谢合作。

ICP备案号:苏ICP备14035786号-1 苏公网安备 32050502001014号