最近继续对打印问题进行梳理,从程序实现角度整理了可能存在的异常状况,和导致这些状况的可能原因。基于此,初步得到一些优化改进项。在已经整理出的优化改进点中,似乎很多就是程序设计上应该考虑和注意的。或许不一定都对,但分享出来供自己备忘,供参考:
1、自动化检测与配置
不仅能减少了用户手动配置,也降低配置错误的风险。比如,程序去自动匹配适合的打印机和纸张,必要时才需要进行人工配置。
但也要警惕,自动规则的严谨性和可靠性,否则还会带来新的问题。
2、强化输入验证
尽量确保所有输入数据的有效性,及时发现问题并做明确提示。
另外,应避免可传/可不传这种模棱两可的情况,因为这样不利于提前检测和事后排查问题。比如,在需要显性指定打印设置相关参数的情况下,就应该启用程序的入参检查。
3、提供详细的错误提示
这类提示,通常不是简单弹出给操作员看。根据场景,通过弹出显示、浏览器F12控制台输出、日志输出等方式,清晰指引用户解决问题。信息包括两个关键部分:
明确的错误原因:当发生错误时,提供具体的错误信息,帮助用户理解问题所在,并给出可能的原因。
解决方案建议:除了报错信息外,还应该提供相应的解决步骤或链接至帮助文档,指导用户如何修复问题。
4、合理的日志记录与分析
一些错误不容易避免,这时日志等工具就是一个重要手段。
记录每一个关键操作及其结果,包括成功和失败的情况,方便事后追溯。基于此,提供方便的日志可视化查询和分析,能帮助现场人员快速排查定位问题并解决。这样,能将技术支持人员的问题排查思路、工具和最佳实践封装起来,直接提供给用户和支持团队,从而提高问题的解决效率。
5、用户友好的界面交互
典型如,为长时间运行的任务(HTML打印)提供实时进度更新,让用户知道当前状态。
6、增强对环境因素的考虑,以及对安全性、可扩展性、兼容性等方面的设计
程序通常不会运行在理性环境中。对相关因素的提前考量,对程序稳定运行和保障用户数据安全是比较重要的。
7、程序不一定要解决所有问题
有些是超出程序范畴,有些是成本和复杂度过高,......
所以,有时应该要考虑和区分——哪些问题是值得并且可以由程序来解决的,哪些则更适合通过其他方式处理。
比如,对于打印机和驱动的检测适配,单从程序上可能不太好解决,但通过《各种常见打印机的典型问题清单》也可以应对。遇到问题或新上打印机时,根据打印机型号去快速查阅,帮助判断是否兼容、驱动版本要求、稳定性如何等。
附录:优化改进
├── 事前预防
│ ├── 提示优化(事前-引导正确操作的提示信息)
│ ├── 功能改进.合理性(事前)
│ │ ├── 减少人工设置
│ │ └── 打印设置提供更合理的缺省值
│ ├── 事前检测预警
│ │ ├── 网页组件安装/启动时提前处理组件的下载和检测
│ │ ├── 完善报表设计器的校验检查规则
│ │ └── 完善服务控制台对服务异常状况的检测和警告提醒
│ ├── 公共组件抽取
│ └── 规范约束
│ └── 对接的公共JS库优化+规范要求
├── 事中监测
│ ├── 打印任务进度可视化
│ ├── 资源占用检测
│ ├── 网络连接稳定性检查
│ ├── 异常处理与自动恢复
│ └── 错误即时通知:明确的错误提示,以及排查解决方案
├── 事后检测
│ ├── 提示优化(事后-错误发生后的提示与指引)
│ ├── 基于“日志”的辅助排查功能
│ ├── 基于日志的分类查询、统计
│ └── 提供客户端异常上报
├── 配套检测工具
│ └── 程序及运行环境检查工具
├── Q/A指南
│ └── 《各种常见打印机的典型问题清单》
└── 反馈&跟进
├── 案例跟进
│ └── 传入的打印参数不正确
│ └── HTML打印与预览效果不一致(html样式影响)
└── 反馈机制


被折叠的 条评论
为什么被折叠?



