错误代码以及错误消息提示-如何更好地管理与维护消息资源

错误代码以及错误消息是开发过程中不可避免会碰到的问题,虽然对于开发技巧并没有多高的要求,但是清晰地管理好这些资源对于整个项目或者产品的开发都是百益而无一害的。

   1)明晰代码模块以及更好地梳理代码流程

   2)便于PM和前方客户沟通

   3)方便校验和国际化处理

从开发的角度,如何更好地管理好这些错误资源文件呢? 结合平常实际开发经验,总结出从几个方面实现明晰的错误消息管理。

 

一.错误消息规则

错误消息是一组由JSON格式表示的字符串,例如:{"error_code":"00001","error_message":"Invalid paramter."},

其中错误代码=模块代码+消息代码,例如假设错误代码共5位,模块代码长度设置为2位,则剩余的3位可以用来表示消息代码,

例如:

模块代码 模块名称
00 通用模块
01 用户管理
02 文件管理
--- 其他模块等等

 

例如: 00001,00表示通用模块,001表示在通用模块中具体消息。

二.错误消息定义

错误消息定义流程,遵循从前往后的原则。

前端错误消息来源于表单的校验,根据具体表单约束定义错误消息并管理在后端server上。

后端错误消息的定义是离不开API,

1)针对每个API,定义错误消息。

2)先抽出每个API通用的错误消息,例如:参数类型不对,Session过期,API名称不存在。

3)每个API的设计者、是闲着根据具体的模块添加错误消息。

 

三.错误消息框架实现

1)前端错误消息校验

定义错误信息资源文件web_errors,在页面上根据不同的locale通过ajax 加载不同的web_errors文件,并把该资源文件组装成error_code=error_message的map形式,方便前端调用。

2.Server层

定义专门的错误资源文件束:errors

使用ResourceBundle或者使用Spring [[MessageSource]] 加载错误资源文件

 

<bean id="messageSource"
          class="org.springframework.context.support.ResourceBundleMessageSource"
          lazy-init="false">
        <property name="basenames" value="messages"/>
        <property name="defaultEncoding" value="UTF-8"/>
    </bean>

由于ResourceBundle只是支持ISO8859-1编码的文件,因此需要将中文的资源文件使用native2ascii 转换成Unicode编码的文件,如何将转换? 其中一个方法为使用Maven native2ascii-maven-plugin 将具体的属性文件转化为unicode编码的即可。

<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>native2ascii-maven-plugin</artifactId>
                <version>1.0-beta-1</version>

                <executions>
                    <execution>
                        <id>native2ascii</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>native2ascii</goal>
                        </goals>
                        <configuration>
                            <encoding>UTF-8</encoding>
                            <workDir>${project.build.outputDirectory}/i18n</workDir>
                            <includes>
                                <include>*.properties</include>
                            </includes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

四。开发时如何避免资源文件冲突

1)将web端的错误信息资源文件和后端错误信息资源文件分开

2)多个开发人员开发时,为避免多人修改同一个错误资源文件导致冲突,可以根据模块分割成多个小文件,在打包时将这些小文件合并成一个大文件即可。

 

总结

错误资源管理其实也可以用于普通的资源管理,这里为什么要突出错误资源管理,这是因为在开发过程中,发现平常重开发轻错误处理,并没有加快开发进度,反而在某种程度上延误了项目进度。项目资源管理是整个项目开发中很细节的一块,就如何处理好这些细节,节约项目开发时间,将自己平时做的方法做了一些总结。这些总结肯定也会有局限性,在来日的开发过程中,发现更好的方法,我会继续跟进。

时间: 2024-02-20 14:01:18

错误代码以及错误消息提示-如何更好地管理与维护消息资源的相关文章

66种基于animate.css的CSS消息提示动画效果

这是一款基于animate.css的效果非常酷的CSS消息提示动画效果.这66种CSS消息提示动画效果按出现位置分为4种类型:上部.中部.中下和右下.每个部位的消息提示效果都是不一样的. 注意:这个CSS消息提示动画效果需要在支持CSS3的浏览器中才能正常工作. 在线演示:http://www.htmleaf.com/Demo/201503061471.html 下载地址:http://www.htmleaf.com/css3/css3donghua/201503061470.html

支付宝接口开发提示错误代码 invalid-signature 错误原因: 无效签名

今天做支付宝接口开发,参照官方的实例代码,但是一直提示报错:错误代码 invalid-signature 错误原因: 无效签名 而官方的例子却不报错,经过反复的测试发现,是因为官方代码里参数是通过POST赋值的 $out_trade_no = trim($_POST['WIDout_trade_no']);//商户订单号,商户网站订单系统中唯一订单号,必填 $subject = trim($_POST['WIDsubject']);//订单名称,必填 $total_amount = trim($

网页错误页提示码汇总及使用示例

      Web项目中总会遇到对错误页面的设计,好的错误页面处理,会让软件体验更佳,可以帮助运维人员了解基本错误信息,更好的维护软件.当然从底层避免错误是更好的软件开发方式,但我们很难避免软件一些非常隐性的Bug. 以下对网页错误页提示码进行汇总,并对最常见的404错误给出示例页面Demo. 2xx- 成功:这类状态提示码代表服务器成功地接受了客户端请求.           200:确定,客户端请求已成功.           201:已创建.           202:已接受.    

android 消息提示机制

消息提示机制 一 对话框 Dialog AlertDialog 对话框有:标准对话框, 菜单式对话框, 菜单式复选框对话框,自定义对话框 (注意:这里的上下文公用了,代码的点击方法我已经在点击监听事件里注册了) 1 标准对话框: 在布局界面写好按钮,然后设置点击事件, 在事件种创建 dialog 的构造器 AlertDialog.Builder builder = new AlertDialog.Builder(context); 然后用构造器设置dialog的各种属性,最后create,sho

从仿QQ消息提示框来谈弹出式对话框

<代码里的世界> -UI篇 用文字札记描绘自己 android学习之路 转载请保留出处 by Qiao http://blog.csdn.net/qiaoidea/article/details/45896477 [导航] - 自定义弹出式对话框的简单用法 列举各种常见的对话框实现方案 1.概述 android原生控件向来以丑著称(新推出的Material Design当另说),因此几乎所有的应用都会特殊定制自己的UI样式.而其中弹出式提示框的定制尤为常见,本篇我们将从模仿QQ退出提示框来看一

toastr 消息提示用法

toastr是一个基于jQuery简单.漂亮的消息提示插件,使用简单.方便,可以根据设置的超时时间自动消失. 1.使用很简单,首选引入toastr的js.css文件 <script src="<%=path%>/res/toastr/toastr.min.js"></script> <link rel="stylesheet" href="<%=path%>/res/toastr/toastr.min.

【C#】组件发布:MessageTip,轻快型消息提示窗

注:本组件适用于.net2.0+的winform项目 样子: 实际效果比这gif顺滑,建议下载文末的Tester体验 介绍: 如图所见,这种提示在网页.手机上用的较多,相比正经的消息框(如MessageBox),我认为好处有: 不需要用户对消息本身做出响应,点啥[确定]什么的 不阻塞.不干预用户的后续操作,就是单纯告诉你一声完事了 视觉上通过动画效果保证消息的送达性,弥补因无干预可能造成的“被无视” 这就是我所谓的[轻快型消息提示窗],适用于: 能快速出结果的操作,比如在本地库跑个小语句啥的.如

ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(五) 之 加好友,加群流程,消息管理和即时消息提示的实现

前言 前前一篇留了个小问题,在上一篇中忘了写了,就是关于LayIM已经封装好的上传文件或者图片的问题.对接好接口之后,如果上传速度慢,界面就会出现假死情况,虽然文件正在上传.于是我就简单做了个图标替代来增强用户体验. 上传中... 上传完成后 是不是很简单啊,接下来进入正题. 业务介绍 LayIM中的加好友可以说是不太必要的逻辑,而且其实大部分在模仿QQ,当然业务复杂度肯定没法和QQ比.主线,就是用户A请求添加用户B为好友,用户B收到消息提示之后点击同意或者拒绝或者直接忽略,然后在将消息反馈到用

Jquery消息提示插件toastr使用详解

toastr是一个基于jQuery简单.漂亮的消息提示插件,使用简单.方便,可以根据设置的超时时间自动消失. 1.使用很简单,首选引入toastr的js.css文件 html <script src="<%=path%>/res/toastr/toastr.min.js"></script> <link rel="stylesheet" href="<%=path%>/res/toastr/toastr