程序员应该避开的20个低级不良用户体验

2023-10-27

☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython

前2天碰到一件事《只因职业信息没登记汉口银行的系统居然禁止我使用银行卡账号》,这样的神操作一看十有八九是程序员干的,由此联想到平时开发中遇到的一些对开发人员来说不是事、但给使用系统的内容部人员和客户带来不便的一些用户体验槽点。下面就来说说这样一些低级的用户体验槽点。

槽点1:界面信息显示不全

在系统界面上要显示的信息,表结构设计是N字节,系统界面上显示时单文本显示框宽度只能显示少于N字节,且无法滚动、业务其他提示,一般情况没有问题,遇到长信息时操作人员就悲剧了。

槽点2:信息模糊化规则不统一

现在都是要注重客户信息保护,系统涉及客户信息的页面很多,才开始没进行模糊化处理,开始重视信息安全后就需要针对存量的功能逐个去修改,结果由于需求多头负责,导致模糊化没有统一规则,例如大部分情况姓名都是模糊化中间的字(两个字的模糊化第一个),可有的部分是模糊化的模糊化的姓,结果几个页面一结合就能拼凑出完整的客户姓名。

槽点3:业务回退出现负预存

系统给办理了业务回退,居然不验证客户资金是否已经被使用,直接回退,导致客户预存变成了负数。

槽点4:缺省值不考虑业务场景

系统的查询,经常需要根据时间段去查,不同查询业务场景可能查询时间范围不一样,如客户投诉一般都是最近一个星期发生的事、账单一般都是最近三个月的记录等等,开发人员完全可以根据业务场景和系统时间给查询框设置好初始值,但开发人员很多压根就不考虑缺省值这个事,或者全部设置为当前时间。

槽点5:预约业务不限制预约时间

对于允许业务预约的情况,一般用户预约的时间是次日、一周内某日、一月内某日、次月1日、次月当日、次年当日等,但有些需求提出人和开发人都只做要实现业务预约,根本不考虑业务预约的合理性,有次发现一个业务居然预约到10年以后,而业务的礼品却被领走了。

槽点6:不控制输入

不控制输入这种情况有很多种,如要求输入是数字、日期等,这都不是奇葩的,最奇葩的是提交时不控制继续输入,曾经有一回,因一台机器回车键出现问题,按下后不能弹起,导致业务短时间内被重复提交上千笔。

槽点7:任务处理没有优先级

在一个系统中涉及任务处理的,有可能任务来自前台或电子渠道,也可能来自后台,如果任务处理没有优先级,最强大的处理能力也不能解决短时的拥堵问题。

槽点8:业务报错使用者看不懂

现在的语言大部分都有异常处理,开发人员知道要有异常处理,但一段大的代码用一个异常捕获,导致异常情况无法细分,给出的报错信息全部是捕获的系统内部信息,不说使用者,一般的其他开发人员也看不懂。

槽点9:耗时的操作在前台没有提示

一个操作提交后,后台可能要执行一段时间,但前台没有针对性处理,整个页面出于类似死机的空白状态,使用人无法知道是正在处理还是系统死机了。

槽点10:不一致的校验

在系统中前一个输入和后面某个输入有关联,即前面的值决定了后面输入的范围,但校验时只在后面这个输入进行了校验,校验完之后操作人员有可能回到前面那个输入修改输入值,此时又没有校验,导致后面的校验可以轻易绕过去。

槽点11:只考虑系统不考虑人

要做某个批量任务处理,为了系统处理不超时,一次只允许提交100条数据,且限定在闲时执行,但相关工作人员有时需要处理的数据是上万条,只能熬夜分割一个个提交。

槽点12:环节考虑不全

现在的CRM一个业务往外涉及办理、回退、取消、查询、退出等生命周期流程,而需求开发人员做开发时可能没有全面考虑,结果导致某些环节就失控了。

例如老猿曾经遇到过一个这的情况,业务只考虑了办理和取消,没考虑回退,而回退是一个通用模块,结果就悲剧了,导致不该回退的也被回退了。

还有次跟第三方对接时,对方给的某种类型的数据系统实现只考虑了数据采集和存储,未考虑后续数据怎么使用。

槽点13:只考虑新变更不考虑存量数据

上面说的某银行的这个例子就是这样一个典型,这样的例子应该说还是比较多的。例如某个已有多年的业务因政策原因要求有年龄限制,但存量客户中已经有与此要求不符合的客户,开发时只考虑了新增的处理,结果那些不满足年龄限制的存量客户再来办理业务就出现了异常。

槽点14:一个错误导致所有录入全丢

资料录入后提交,因某个字段存在问题报错后直接退出,导致所有录入全部丢失。

槽点15:后台任务不支持断点重处理

一个文件批量导入的任务,处理到中途异常退出,此时想要再提交可能导致已经处理的重复执行,不处理又还有一部分未处理。

槽点16:不能为空和可以为空的字段在录入界面没有显区分

录入客户资料或订单等信息时,界面许多的输入字段有些是可以不填的,但系统界面上没有区分,也没有聚类,耽误录入人员的时间。

槽点17:一些内部的代码术语直接显示在界面上

在各个专业领域都有特定的一些术语,有些是内外部客户都懂的,有些是仅少数核心技术人员才知道,这样的一些术语直接出现在界面上,导致操作人员和客户一脸懵逼。

槽点18:窗口关闭没有接管拦截

没有对界面窗口的关闭操作进行屏蔽或拦截,导致操作人员不小心关掉了窗口,辛苦录入的东西全部丢失。

槽点19:界面没有适配不同主流的操作系统

应用的开发环境与实际使用环境可能存在较大差别,如操作系统版本、Java版本、浏览器版本在真正运行时很可能不同于开发环境,对这些情况没有主动匹配和拦截,导致出现千奇百怪的系统错误。

槽点20:没有考虑生僻字的输入

中国汉字博大精深,无论使用哪种字符集都无法将全部的生僻字包含进来,因此生僻字就成了操作人员或客户的噩梦。

小结:

一个成熟的软件产品,不光功能要强大,而且要有好的用户体验,但开发过程中因各种原因会产生各种不良用户体验的槽点,而这些槽点大部分都是我们程序员干的,当然也反映了团队的管理水平。本文介绍20个容易出现的低级的不良用户体验情况,你是否创造过?或者遇到过呢?

写博不易,敬请支持:

如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

关于老猿的付费专栏

  1. 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
  2. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
  3. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录
  4. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。

前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。

如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

如对文章内容存在疑问,可在博客评论区留言,或关注:老猿Python 微信公号发消息咨询。

老猿Python,跟老猿学Python!

☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

程序员应该避开的20个低级不良用户体验 的相关文章

  • 无法“安装”plpython3u - postgresql

    我正在尝试在 postgresql 中使用 python 语言 像这样的事情 create or replace function test a integer returns integer as if a 2 0 return even
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • 为 Anaconda Python 安装 psycopg2

    我有 Anaconda Python 3 4 但是每当我运行旧代码时 我都会通过输入 source activate python2 切换到 Anaconda Python 2 7 我的问题是我为 Anaconda Python 3 4 安
  • 通过最小元素比较对 5 个元素进行排序

    我必须在 python 中使用元素之间的最小比较次数来建模对 5 个元素的列表进行排序的执行计划 除此之外 复杂性是无关紧要的 结果是一个对的列表 表示在另一时间对列表进行排序所需的比较 我知道有一种算法可以通过 7 次比较 总是在元素之间
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • 如何使用Python创建历史时间线

    So I ve seen a few answers on here that helped a bit but my dataset is larger than the ones that have been answered prev
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 解释 Python 中的数字范围

    在 Pylons Web 应用程序中 我需要获取一个字符串 例如 关于如何做到这一点有什么建议吗 我是 Python 新手 我还没有找到任何可以帮助解决此类问题的东西 该列表将是 1 2 3 45 46 48 49 50 51 77 使用
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • 使用其构造函数初始化 OrderedDict 以便保留初始数据的顺序的正确方法?

    初始化有序字典 OD 以使其保留初始数据的顺序的正确方法是什么 from collections import OrderedDict Obviously wrong because regular dict loses order d O
  • NotImplementedError:无法将符号张量 (lstm_2/strided_slice:0) 转换为 numpy 数组。时间

    张量流版本 2 3 1 numpy 版本 1 20 在代码下面 define model model Sequential model add LSTM 50 activation relu input shape n steps n fe

随机推荐

  • LeetCode每日刷题:存在重复的元素II

    题目 给定一个整数数组和一个整数 k 判断数组中是否存在两个不同的索引 i 和 j 使得 nums i nums j 并且 i 和 j 的差的 绝对值 至多为 k 解题思路 这道题有三种解法 暴力 滑动窗口 Set 暴力解法 循环遍历数组
  • wifi密码本 字典(免费)

    需要自取 链接 https pan baidu com s 1ffGwfcvoqkrIgDIOeC3 IA 提取码 ao1i 破解fiwi密码教程 破解wifi密码 暴力破解 保姆式教学 Z Xshan的博客 CSDN博客 如果提取码失效试
  • push 和 pop 函数的使用

    include
  • PySOT单目标跟踪训练、测试、验证全流程(全网最详细,持续更新,建议收藏!)

    目录 数据集准备 数据集介绍 数据集下载解压 代码部署 训练 修改配置文件 开始训练 数据集准备 数据集介绍 PySOT支持多种数据集混合训练 其中包括以下四种数据集 VIDhttp image net org challenges LSV
  • linux安装zabbix,添加监测客户机

    一 linux系统配置 1 临时关闭seLinux setenforce 0 2 永久关闭selinux 需编辑配置文件 etc selinux config 设置SELINUX disabled 重启系统后生效 vi etc selinu
  • 使用Clang作为编译器 —— 使用 Clang 交叉编译

    使用 Clang 交叉编译 1 介绍 2 交叉编译问题 Cross compilation issues 3 Clang中的一般交叉编译选项 General Cross Compilation Options in Clang 3 1 Ta
  • 大数据模型交易平台---学生校园消费行为分析模型

    业务问题 大部分高校均基于校园一卡通系统进行 智慧校园 的相关建设 当前 学生作为一个特殊的群体 其饮食消费内容在社会大背景影响下日益多样化 而且在没有其他任何收入来源的时候 对消费的正确认识就显得尤为重要 校园一卡通就是体现学生消费行为的
  • Play With Docker

    文章目录 Play with Docker PWD 1 Getting Started The command you just ran What is a container What is a container image 2 Our
  • Windows 和 Linux 上安装 TTF 字体的方法

    前言 在之前的文章中 我们是通过引入字体文件的方法解决了平台字体兼容性的问题 有同学提出了一个问题 为什么要通文件引入的方式解决问题 难道不考虑带宽问题吗 其实 我们一开始考虑的方案是将字体文件安装在运行项目的每台客户机上 但是 因为使用项
  • 第四天 Java 数组与排序

    数组与排序 一 数组 1 数组的常见概念 二 一维数组 1 1 一维数组的声明方式 1 2 一维数组的初始化 1 动态初始化 2 静态初始化 1 3 一维数组内存解析 1 4 随机数的产生 三 多维数组的使用 1 二维数组 数组中的数组 2
  • 基于模型预测控制(MPC)的悬架系统仿真分析

    目录 前言 1 悬架系统 2 基于MPC的悬架系统仿真分析 2 1 simulink模型 2 2仿真结果
  • 1.深度学习入门:感知机是什么和感知机的实现(详细讲解)

    1 深度学习入门 感知机是什么和感知机的实现 感知机 感知机是什么 简单逻辑电路 感知机的实现 简单的实现 导入权重和偏置 使用权重和偏置的实现 感知机 感知机是什么 感知机 Perceptron 是一种二元线性分类模型 由美国学者Fran
  • ovirt 安装

    第一步 通过oVirt node iso安装host 从本站 安装包下载 页面或其它渠道获取到oVirt4 4版本的node iso 本次部署使用的是ovirt node ng installer 4 4 1 2020080418 el8
  • vim编辑器使用教程

    文章目录 前言 一 vim 的三种工作模式 二 vim 基本操作 1 编辑 2 复制粘贴 3 撤销 4 跳转 5 查找和替换 6 自动缩进 7 分屏 8 其他 三 vim 配置文件 前言 vim 是 Linux 系统内置的 文本编辑器 用于
  • docker系列:1、docker概述和学习资料

    docker系列 1 docker概述和学习资料 文章目录 docker系列 1 docker概述和学习资料 1 前言 2 docker概述和学习资料 3 最后 1 前言 之前总结完了GoFrame框架 我接下来是想将我的个人网站做下升级
  • MapReduce工作流程

    1 MapReduce工作流程图 2 流程详解 上面的流程是整个MapReduce最全工作流程 但是Shuffle过程只是从第7步开始到第16步结束 具体Shuffle过程详解 如下 1 MapTask收集我们的map 方法输出的kv对 放
  • ucint核心边缘分析_【5G研报】边缘计算及重点个股

    这是一篇清明前发过的文章 由于微信后台两天不回复网友留言则无法私信各位 故重新发布 对5G感兴趣的朋友老规矩 点击关注 后台留言或发消息 边缘计算 搞研究 选个股 我们是专业的 一篇关于边缘计算的万字研报 感兴趣的点个关注 更多资讯尽在神光
  • 2651. 计算列车到站时间

    文章目录 Tag 题目来源 题目解读 解题思路 方法一 数学 知识回忆 除法运算 写在最后 Tag 数学 题目来源 2651 计算列车到站时间 题目解读 给你一个列车预计到达时间点和一个列车延误的时间 请返回列车实际的到达时间 解题思路 方
  • springboot和springcloud的联系与区别

    什么是springboot Spring Boot是一个用于简化Spring应用程序开发的框架 它提供了一种约定优于配置的方式 通过自动配置和快速开发能力 可以快速搭建独立运行 生产级别的Spring应用程序 在传统的Spring应用程序开
  • 程序员应该避开的20个低级不良用户体验

    前往老猿Python博文目录 https blog csdn net LaoYuanPython 前2天碰到一件事 只因职业信息没登记汉口银行的系统居然禁止我使用银行卡账号 这样的神操作一看十有八九是程序员干的 由此联想到平时开发中遇到的一