SaaS可配置性设计要点

news2025/2/24 15:13:30

1 引言

      考虑到系统SaaS需求,就成熟的SaaS应用而言,元数据服务是为用户提供定制和配置应用、满足其特定需求的主要手段。
      可配置能力主要反映在这4个方面:1 程序外观;2 工作流程与业务规则;3 数据模型;4 用户及最终用户的存储权限。 这种自定义的能力应该在易配置性和配置能力两个方面做好权衡,最优结果是通过最方便的配置手段来实现最复杂的自定义功能,但是这个并不容易做到,所以有可能需要针对复杂需求提供基于已有系统的二次开发能力。

2 程序外观

      用户界面,客户通常希望具有用户界面的调整功能,以反映各自公司的品牌风格,因此SaaS应用通常都提供相关特性,以使客户能够更改诸如图形、色彩、字体等相关内容。外观的配置其实包括的内容很多,比较核心的内容是界面元素的多力度模块化,只有实现这一点,才有可能让用户在多个力度级别上去定义自己想显示什么、以什么样的界面风格去显示。

      在实现多力度的模块化界面设计时,需要注意以下几个点:

  1. 符合用户的使用习惯和心理预期,设计时应该从用户的角度出发,考虑用户的使用习惯和心理预期,以便设计出更符合用户需求的界面模块;
  2. 保持一致性,在设计多个界面模块时,应该保持一致的设计风格和交互方式,以便用户能够快速适应整个应用的操作方式;
  3. 提供可自定义的选项,为了让用户能够根据自己的使用习惯进行个性化设置,应该提供可自定义的选项,如调整快捷方式的位置、选择需要显示的快捷方式等。
  4. 考虑不同设备的屏幕尺寸和分辨率,由于不同设备的屏幕尺寸和分辨率不同,因此在设计界面模块时需要考虑不同设备的适配问题,以确保界面的可读性和可操作性。

      用于提高易用性的设计原则有10个,在设计程序外观的时候可以作为参考使用。

设计原则说明例子
用户界面适用于软件的功能用户界面的合适性是指界面与软件功能相融洽的程度一个三维建模软件,如用户不能使用鼠标对模型进行旋转、移动、缩放等操作,那么这个软件的用户界面就不适合于软件的功能。即使这个软件的内核功能很强(如算法很先进),这个软件也很难卖出去
容易理解用户可以根据界面即可理解设计者的操作意图,界面结构清晰能够反映工作流程,以便引导用户按部就班的操作界面中的所有元素(如菜单、工具条)没有错误,也不会让人误解。所有的界面元素应当提供充分而必要的提示,例如当鼠标移动到工具条上的某个图标按钮,应当在该图标旁边出现功能提示。对于复杂界面,最好提供界面“向导”
风格一致同类的界面元素应当有相同的视感和相同的操作方式例如命令按钮是最常见的界面元素,所有命令按钮的形状、色彩以及对鼠标的响应方式都是一致的
及时反馈信息用户进行某项操作后,如果过了一会儿(几秒钟)用户界面一点反应都没有,这将使用户感到迷茫和不安,因为他不知道是自己操作错了还是软件死机了。所以及时反馈信息很重要,至少要让用户心里有数,知道该任务处理得怎么样了,有什么样的结果例如下载一个文件,界面上应当显示“百分比”或相关数字来表示下载的进度,否则人们不知道要等待多少时间。如果某些事务处理不能提供进度等数据,那么至少要给出提示信息如“正在处理,请等待……”
出错处理用户在使用软件的过程中,不可避免地会出现一些错误的操作。在设计用户界面时必须考虑出错处理,避免用户怕犯错误而提心吊胆、小心翼翼地操作。如提供对输入数据进行校验的功能。当用户输入错误的数据时,及时提醒用户改正数据。
适应各种用户一个软件产品可能有许多类型的用户,例如有些用户对计算机比较外行,有一些用户可能是计算机的行家。在设计用户界面时应当尽可能多地了解用户的需求和技能水平,努力使用户在操作软件的时候感觉不到差异和麻烦。例如使用Windows下的文件管理器,对于一个初学者来说,他愿意使用鼠标和菜单一步一步地操作;而对于技术专家而言,他也许更愿意使用热键来获取更高的效率。
国际化在设计用户界面的时候应当充分考虑语言和文化的差异。尽可能使用标准的图解方式和国际通行的语言,要求简单易懂,易于翻译,方便于不同母语的用户。如字体、提示信息、在线帮助;货币、度量单位;数字、日期格式;人的名字、电话号码、通信地址;图标、标签;声音;阅读顺序或习惯;
个性化用户界面的“个性化”与“一致性”之间存在微妙的矛盾关系。对于一些非常注重安全性的商业软件(如银行软件)而言,用户界面的“一致性”要比“个性化”重要得多,因为一致的界面可以减少用户出错的几率。例如,国内所有银行的自动取款机的用户界面都是非常相似的,谁也不会想着设计一些新花样。
合理的布局首先,界面的布局应当符合逻辑,最好能够与工作流程吻合。界面设计人员只有仔细地分析软件的需求,才能提取对界面布局有价值的信息。其次,界面的布局应当整洁(整齐清爽)。界面元素应当在水平或者垂直方向对齐,行、列的间距保持一致。窗体的尺寸要合适,各种控件不能过分拥挤也不能过分宽松。要善于利用窗体和控件的空白,以及分割用的线条。
和谐的色彩用户界面是否美观,主要取决于该界面的布局和色彩搭配。

3 工作流程与业务规则

      为了能广泛地向潜在客户提供服务,任务关键型SaaS应用必须能够满足不同工作流程的需要。如,对于跟踪发票流转的应用而言,一家客户可能要求所有发票均由同一名经理批准;另一家客户则要求每张发票都由两名经理先后批准,第三家客户则要求每张发票得到两名经理批准,而不考虑先后。这时,不同客户应能根据需要自行配置应用的工作流程,以满足各自的商业进程要求。
      所谓业务流程,其实应该属于经典的工作流(workflow)问题。所以这一方面尽管非常重要与复杂,但重点主要是两个,一个是对工作流方法论的研究。另一个是对现存的工作流工具的研究。系统可以考虑做成可配置的,一种做成可以对接外部工作流系统,另一种做出使用内置工作流,针对不同类型的用户配置不同的工作流方式。
      考虑到公司个性化需求除了配置项还可以通过规则引擎来实现业务规则和应用程序代码相分离。通过编辑业务规则可以定制应用表现。规则引擎可以选择Drools,它是为Java量身定制的基于Charles L. Forgy的Rete算法实现的,支持Java代码直接嵌入到规则文件中。
在这里插入图片描述
      Drools是一款基于Java语言开发的开源规则引擎,可以将复杂且多变的业务规则从硬编码中解放出来,以规则脚本的形式存放在文件或特定的存储介质中(如存放在数据库中),使得业务规则的变更不需要修改项目代码、重启服务器就可以在线上环境立即生效。而且在项目中使用Drools,既可以单独使用也可以整合Spring使用。如果单独使用只需要导入pom依赖即可。

4 数据模型

      数据模型的扩展。对于许多数据驱动型SaaS应用而言,单个模型显然不能满足所有需要。即便对于相对简单的任务专用应用而言,如果数据字段和表格一成不变,也会给客户造成麻烦。可扩展的数据模型使客户能自由地让应用根据自身需要工作,而不必为了满足应用的要求而改变底层数据逻辑。
      一个好的数据模型需要对字段、表与表的关系、表的名字进行梳理和构建。字段是一个数据模型中最重要也是唯一需要的部分,是定义一个字段列表。字段列表包括字段名、字段类型、字段长度、校验表达式、默认值等。重点需要关注字段名的命名规则,不能与系统数据库的保留字段同名,字段名是可识别的。字段类型应该是可扩展的自定义型,不能仅只有数据库默认的那几种。
      表与表的关系有一对多关系和多对多关系。父子表是种一对多关系,兄弟表是种多对多的关系。表与表的关系通过主键与外键相关联。所以实体-关系的抽象合理是构建良好数据模型的必要条件。
      表的名字与一篇文章的标题一样重要,一个好的表名让人可以立刻知道这个表的作用,表中存放了哪些数据。系统应该提供一个选项,如db_table用来定义与模型映射在一起的数据库表的名字。

5 用户及最终用户的存取权限

      需要结合业务需求给定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1159094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker 存储目录迁移

参考:【Docker专题】WSL镜像包盘符迁移详细笔记 - 掘金 docker迁移 一 默认目录 Windows版本(Windows 10 wsl 2)docker 默认程序安装到c盘,数据存放于 C:\Users\当前用户名\AppData\Local\Docker\wsl\data\ext4.vhdx 这样会导致…

多机多卡分布式训练

1. 环境搭建 分布式训练框架:acceleratedeepspeedpdsh(可有可无)基础环境:cuda、显卡驱动、pytorch 1.1 安装相关包 cuda安装:参考官网安装步骤 wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-…

python raise语句的两种用法

python raise语句的两种用法 1、主动抛出异常的方法是使用 raise 语句: raise ValueError()2、可以同时指明错误原因: raise ValueError("输入值不符合要求")**3、这个函数没有处理可能出错的情况。**比如函数的age参数不能随意取值&#x…

呵护笔记本屏幕,同时获得更全方位的隐私保护

之前看到很多人都在给手机贴防窥膜,但是我试过之后觉得效果并不好。其实,防窥膜这个东西用在笔记本上会更实用一些。特别是那些经常在公共场所办公的朋友,比如我。最近我发现了一款威宝的防窥膜,质量非常靠谱。如果你也有同样的需…

天体学爱好者基础知识-太阳系//未完待续,业余者的学习

难过的时候,仰望天空吧,人类有时候,做的事情真的太愚昧且无聊了,渺小的尘埃,也可以飘际宇宙。 太阳系-八大行星 卫星围绕着恒星公转。行星必须围绕着恒星公转。 什么是行星?行星和恒星、卫星有什么区别&am…

qt5使用QWebEngineView崩溃的问题

在使用QWebEngineView加载崩溃 需要把下图的文件放入exe文件中

7年经验之谈 —— 常用的接口抓包工具和接口测试工具!

一、接口 统称为API,它是指程序与程序之间的对接、交接。 二、接口测试 它主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点,主要是为了检验不同组件(模块)之间数据的传递是否正确,同时接口测试还要测…

Google play开发者账号被封的几种常见原因及相关解决思路

在Google paly上,每天都有大量的应用被成功发布,同时也有很多开发者账号被封禁。特别是在今年的十月份之前,谷歌的"封号潮"给很多开发者带来了沉重的打击。不过,令人欣慰的是,自十月份之后,情况逐…

518抽奖软件,是否支持作弊~内定~指定中奖人~设置范围

518抽奖软件简介 518抽奖软件,518我要发,超好用的年会抽奖软件,简约设计风格。 包含文字号码抽奖、照片抽奖两种模式,支持姓名抽奖、号码抽奖、数字抽奖、照片抽奖。(www.518cj.net) 主打纯净,不可作弊 市面上&…

【C语言】备战校赛Day1

日期:11.1 星期二 L1-001 Hello World 题目描述 这道超级简单的题目没有任何输入。 你只需要在一行中输出著名短句“Hello World!”就可以了。 输入样例: 无 输出样例: Hello World! 解题代码 int main() {printf("Hello World!");return 0; } 该题较为简单,但要注…

Web安全系列——CSRF攻击

文章首发公众号: 海天二路搬砖工 前言 CSRF 攻击是Web应用中最常见的攻击方式之一。 CSRF攻击给网站身份验证、用户账户和个人隐私带来极大威胁。了解 CSRF 攻击的流程、原理与防御措施,是构建安全可靠的Web应用程序的必要条件。 什么是CSRF攻击 CS…

IOS手机耗电量测试

1. 耗电量原始测试方法 1.1 方法原理: 根据iPhone手机右上角的电池百分比变化来计算耗电量。 1.2实际操作: 在iOS通用设置中打开电池百分比数值显示,然后操作30分钟,60分钟,90分钟,看开始时和结束时电池…

大模型推理最新论文及源码合集,涵盖多模态推理、逻辑推理、数学推理

大模型推理技术的发展帮我们解决了许多的难题,但如今的大模型在复杂推理上的表现仍然欠佳,为了突破这一瓶颈,研究者们提出了许多创新性的方法。 我整理了其中一部分个人认为很值得学习的论文来和大家分享,涵盖多模态推理、逻辑推…

JavaScript 特殊对象的排序

在项目中有需求,需要对对象进行排序,根据键值对的“键”(key)进行排序 前提是 你的 key 是用数字表示的,这样才能排序 例子一: let obj {"101": 孙悟空,"105": 猪八戒,"102&quo…

关键词搜索苏宁易购商品数据接口(标题|主图|SKU|价格|优惠价|掌柜昵称|店铺链接|店铺所在地)

关键词搜索苏宁易购商品数据接口可以帮助企业快速获取苏宁易购平台上的商品数据。通过该接口,企业可以获取到商品的详细信息,如商品名称、价格、库存量、销量等。这些信息可以用于多种业务场景,如选品决策、采购计划制定、价格监控等。 使用…

2023/11/1 JAVA学习

和上面的镜态变量,实例变量类似 可以这样送一些数据给mian方法(类方法) 将工具类的构造器私有化,这样就无法再创造对象 只能是在子类中访问,如果是一个非子的类中,创建了一个子类对象,这样是访问不了的 子类中的构造器中默认有一个super(),调用父类的无参构造器 若父类无无参构…

高压发生器

直流高压试验装置产品简介 武汉凯迪正大KDZG系列直流高压发生器是按照中国行业标准ZGF24003-90《便携式直流高压发生器通用技术条件》的要求,研究、制造的便携式直流高压发生器,适用于电力部门、厂矿企业动力部门、科研单位、铁路、化工、发电厂等对氧化…

移动设备访问本地localhost

一.正常访问 1.首先确保使用的移动设备和PC端在同一个局域网下(如连接同一个wifi) 2.查看PC端地址 命令行:ipconfig 3.移动设备访问localhost地址,把PC端前缀替换为IPv4地址 如:PC地址为 localhost:9999/xxx/yyy …

【干货速学】电商API接入电子商务数据分析:电子商务数据分析的流程

生活中的数据分析 日常工作和生活中处处都有数据分析的存在,比如消费者在购买不同商品前,经常会对儿“性价比”进行简单分析,价格表现为固定的货币数字。性能则具体体现在商品质量、客户收务等客观因素和客户对该商品的需求程度等主观因素上。…

springboot项目多环境配置

springboot项目多环境配置 企业级软件开发往往存在多种环境,比如:开发、测试、生产等。不同环境的配置文件略有差异,如何能够方便的进行环境切换,尤其是在打包编译的时候,至关重要。本文则节选出关键的核心代码。 po…