Questions tagged «user-experience»

5
单个故障是否会使批量操作失败?
我正在使用的API中有一个批量删除操作,该操作接受ID数组: ["1000", ..., "2000"] 我可以按照自己的意愿随意执行删除操作,因此我决定使整个事务具有事务性:也就是说,如果单个ID无效,则整个请求将失败。我将其称为严格模式。 try{ savepoint = conn.setSavepoint(); for(id : IDs) if( !deleteItem(id) ){ conn.rollback(savepoint); sendHttp400AndBeDoneWithIt(); return; } conn.commit(); } 备选方案(在软件套件中的其他位置实现)是尽我们所能在后端进行操作,并报告阵列中的故障。该软件的这一部分处理的请求较少,因此从理论上讲,响应不会成为一个巨大的数组。 资源贫乏的服务器中最近发生的一个错误使我再次查看代码,现在我在质疑最初的决定-但是这次,我更多地是出于业务需求而不是最佳实践的动力。例如,如果我未能通过整个请求,则用户将不得不重试,而如果删除了许多项目,则用户可以完成操作,然后要求管理员执行其余操作(在我修复错误的同时) !)。这将是许可模式。 我尝试在网上寻找有关此事的一些指导,但我空手而归。所以我来找你:这种性质的批量操作最期望什么?我应该坚持更严格,还是应该更宽容?

4
在敏捷开发中如何处理用户界面设计和相应的功能支持?
在敏捷开发过程中,通常主要侧重于用户故事,但是有时一个需求可能跨越多个用户故事。 例如,客户端可以为论坛中的所有用户请求搜索页面,并且在每个用户上可以执行多种操作,例如禁止用户,删除用户,重置密码等。 我们可以将此功能至少分为4个用户故事: 搜索用户 禁止用户 删除用户 重设密码 用户界面设计者将如何实现这样的用户界面?他/她是否应该处理第一个用户故事,然后开始为UI增加更多功能?但是,我认为最终的UI会搞砸了! 如果他决定使用整个功能(搜索+动作),那么如果这些动作的优先级较低,并且将在搜索功能完成后进行多次迭代,该怎么办?

3
什么时候应该修剪输入?
我正在学术界之外大量学习有关行业的知识。 我今天想到的一件事是削减输入。 一方面,我不希望用户/实现者不断收到意想不到的结果,因为它们的输入空间太大,因此我需要在每次函数调用后不断调整用户输入。 但是同时,如果我要在办公室内部创建一个供内部使用的API库,则尾随/前导空格可能对结果至关重要。 然后有一些实例,我不确定空格是否重要。 对我来说,最大的问题是我发现自己在代码中的任何地方都不断地调用.trim()。 是否有人对如何处理某些情况有任何技巧或经验法则?

7
密码哈希和对用户的支持
我们最近转向了更好的密码存储策略,它带来了所有的好处: 通过bCrypt后存储密码 系统会在创建帐户时向用户发送激活链接,以确认地址的所有权 忘记密码而没有安全问题,会将链接发送到他们的电子邮件。 该链接将在24小时后失效,此时他们将需要请求一个新的链接。 如果帐户是由我们的员工创建的,则会发送一封包含随机强密码的电子邮件。登录后,用户必须将其重置为我们不知道的东西,并且被密码加密了。 现在,这符合周围的“最佳实践”,但这增加了我们对不了解所有这些,而他们只想登录的普通用户的支持需求。 我们经常收到抱怨以下内容的用户的请求: 密码错误(从他们需要重设的密码开始,他们经常在密码的末尾粘贴一个空格)。他们告诉我们他们正在使用什么,但是我们无法告诉他们他们的实际密码是什么。 说他们没有收到我们发送给他们的电子邮件(激活,重置等)。通常情况并非如此,经过大量故障排除后,我们通常发现他们在电子邮件中打了错字,他们没有检查正确的电子邮件帐户,或者只是将其放入了垃圾邮件文件夹。 我们当然不能为他们尝试,因为我们没有密码。我们正在记录失败的尝试,但是我们也清除了他们使用的密码,因为它很可能是另一个帐户使用的密码,并且我们不想存储在纯文本日志文件中。这样,当他们报告问题时,我们几乎没有任何帮助。 我很好奇大多数人如何处理此类问题?

1
当异步任务使用户体验不佳时
我正在编写一个COM插件,该插件扩展了迫切需要它的IDE。这里涉及许多功能,但是为了这篇文章,我们将其缩小到2: 有一个“代码资源管理器”工具窗口,其中显示一个树状视图,允许用户浏览模块及其成员。 有一个“代码检查”工具窗口,其中显示一个datagridview,可让用户浏览代码问题并自动修复它们。 两种工具都有一个“刷新”按钮,用于启动异步任务,该任务将解析​​所有打开的项目中的所有代码。该代码浏览器使用的解析结果建立树形视图和代码评审使用的解析结果,以找出代码问题并显示其结果的datagridview。 我在这里想要做的是在功能之间共享解析结果,以便在代码浏览器刷新时,代码检查会知道它并可以刷新自身,而无需重做代码浏览器刚刚进行的解析工作。 因此,我做了什么,将解析器类设置为事件提供者,这些功能可以注册到: private void _parser_ParseCompleted(object sender, ParseCompletedEventArgs e) { Control.Invoke((MethodInvoker) delegate { Control.SolutionTree.Nodes.Clear(); foreach (var result in e.ParseResults) { var node = new TreeNode(result.Project.Name); node.ImageKey = "Hourglass"; node.SelectedImageKey = node.ImageKey; AddProjectNodes(result, node); Control.SolutionTree.Nodes.Add(node); } Control.EnableRefresh(); }); } private void _parser_ParseStarted(object sender, ParseStartedEventArgs e) { Control.Invoke((MethodInvoker) delegate …

2
注册期间自动生成密码是一个好主意吗?
我正在为我正在从事的项目开发注册系统。 由于如果过程太长,用户往往不愿注册,所以我认为(至少最初需要)他们的电子邮件,然后将自动生成的密码发送给他们(这也使我可以验证他们的电子邮件地址) )。这也将阻止他们选择较弱的密码来快速完成注册。 到目前为止,我还没有发现任何弊端,但是由于我从未见过使用该系统的站点,因此恐怕还有一些弊端。 这是一个好主意吗? PS:当然,我也正在通过Facebook和其他类似服务实施注册,以使人们无需密码即可快速注册,但许多人可能出于隐私考虑或因为他们不愿意而选择经典注册使用任何这些服务。

7
谁在S​​crum项目上使用UX?
好。假设您正在从事教科书Scrum项目。您有一个Scrum主管与产品负责人合作。接下来的冲刺是UI重-你的程序员开始构建屏幕的时候,你真的想有一些想法,他们打算什么样子。 谁来做线框图,何时做?产品负责人?有人支持产品负责人吗?Scrum高手?如果您有UX专家,他们是在冲刺开始后与编码人员一起工作,还是他们在故事卡和约束条件旁边预先提供了线框和模型,以指导和告知开发人员正在进行的工作? 我很确定我们需要一些UX帮助,但是我真的不确定在哪里应用它。 编辑:让我改一下这个问题。 您如何在敏捷项目中提供一致的高质量用户体验?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.