介绍
本文介绍 了每个企业在使用西门子Mendix 在 用户友好、安全、可扩展、无缝和高度可维护的应用程序时需要遵循的五个最佳实践 。
西门子Mendix 是一个快速应用程序开发平台,让您无需编写代码即可为移动、Web 和集成来创建我们的数字解决方案。
它是一个强大的平台,可以让企业应用程序开发以用户为中心。但是对于任何 RAD 工具,在使用特定技术构建应用程序时,都有一些最佳实践和需要注意的事项。
如果您发现自己在使用 西门子Mendix 时遇到问题或使用它而没有获得真正的 ROI,原因可能与您使用 蟹们子Mendix 的方式有关。如果是这种情况,请将这 5 个最佳实践作为新的最佳实践。
遵循这五个最佳实践将确保您能够创建用户友好、安全、可扩展且易于维护的应用程序。
以下是正确使用 西门子Mendix 的 5 个最佳实践。
西门子Mendix 最佳实践 #1:基本条件:不要在低代码平台上编码
无论您是软件开发的新人还是经验丰富的老程序员,遵循编码领域的良好实践都很重要。在 西门子Mendix 开发时,口头禅是不要在低代码平台上编码。
但是一些开发者试图在低代码平台上遵循他们之前的开发方法,这是不应该的。
- 西门子Mendix 是一个功能丰富的平台。学习以正确的方式使用它来开发应用程序。
例如: 使用可用的网格,不要尝试使用 HTML 块创建表格。
-
UI 元素应该使用内置的数据源。开发人员正在尝试从可用的 JS 块调用外部 API。相反,开发人员应该使用 Mendix 的预定义方法进行 API 调用。
-
正确使用 西门子Mendix 功能直接关系到应用程序的生命周期,这将有助于维护安全性并支持应用程序的可扩展性。
西门子Mendix 最佳实践 #2:牢记应用程序的可维护性
我们开发的应用程序应该存在很长时间。
多年来,不同的开发人员处理项目,因此,保持环境清洁和易于理解是强制性的。
-
根据项目故事适当地构建文件夹,以便其他开发人员可以理解。例如,常见的 Microflows 或 Nanoflows 应放置在可识别的文件夹中以变得可重复使用。
-
项目中的模块应作为单独的应用程序运行,Domain Models、Microflow、NanoFlow、Styles等都可以放在里面。
-
尽可能多地使用注释来解释实现的功能——一些常见的强制使用注释的地方是微流、领域模型、纳米流等。
-
请记住,西门子Mendix 一直在努力使其变得更好,始终坚持 西门子Mendix 的开发方法,以简化应用程序的升级过程。
西门子Mendix 最佳实践#3:领域模型
一个好的数据库设计就像一个应用程序的坚实基础, 构建干净且专为应用程序的未来而设计的域模型。
-
适当地命名实体和属性。使其具有描述性。请记住,西门子Mendix 会自动命名实体之间的关联。
-
高交互的实体应该被索引。西门子Mendix 检索包含所有列的对象,索引有助于快速获取 Mendix ID 并有助于排序。
-
删除行为必须有效配置。管理不善的配置会累积可能占用不必要空间的孤立数据。例如,如果在域模型中未适当配置删除行为,则删除对象可能会使其关联的对象无用。
-
为每个模块维护单独的域模型,并尽量减少与其他模块的实体的关联
-
使用计算属性时要小心。每次更改或检索对象时都会触发计算属性。在这种情况下,它将导致额外的负载(和延迟),而逻辑的结果未被使用。创建计算属性总是会影响性能,因此您应该评估是否有必要使用它们。
-
非持久实体有助于避免实体之间不必要的关联。西门子Mendix 中的不可持久对象不保存在运行时服务器中,而是保存在 西门子Mendix 客户端中。
西门子Mendix 最佳实践 #4:MicroFlow
通常,微流名称应包括触发它们的事件类型、正在处理的主要实体的名称以及正在执行的操作:{PREFIX}{Entity}{Operation}。
例如:ACT_Vendor_StartWorkflow
-
在列表提交中的循环之后执行提交。如果需要,在循环之前创建一个名为 _CommitList 的列表并收集那里提交的项目。对于循环中的检索,请考虑在循环之前检索所有数据并在循环内的该列表中进行查找。如果循环包含决策,请考虑决策逻辑是否可以是循环之前的查询以最小化迭代。
-
如果对象或列表可以作为参数传递,则防止不必要的检索。
-
如果可能,使用检索而非关联。这使用了更易读的缓存,并且使用了索引。如果业务逻辑需要数据库的值(因为可能会更改关联的值),则需要了解数据库检索。
-
尽可能晚提交。提交锁定该记录(或记录列表)。这意味着任何其他想要提交相同对象的用户/逻辑必须等到第一个事务完成。
-
将微流程拆分为逻辑的、功能性的元素。如果一个微流有超过 25 个元素,则通过为其一部分创建子微流来将其拆分,例如,通过将表示逻辑与业务逻辑分离。
西门子Mendix 最佳实践 #5:安全性
重要的是要记住,信息安全是一场持久战。这就是为什么 西门子Mendix 始终通过有效和可靠的数据保护策略与积极的攻击抵抗策略相结合来确保其客户的数据安全。遵循这些最佳实践以获得最大的应用程序安全性。
- 指定执行查询时应用的实体的访问规则,在返回给用户之前限制数据。
2、一直使用西门子Mendix原生组件,免去了注入的顾虑。查询(如 XPath)是参数化的,因此总是被转义,使得 SQL 注入成为不可能。使用 西门子Mendix 应用商店或外部接口中的组件时,请确保它们被转义以避免注入。
-
限制从开发人员门户(环境详细信息)中对请求处理程序的访问,例如禁用未使用的端点、应用 IP 限制或客户端证书身份验证。
-
加密存储在数据库中的敏感数据。西门子Mendix 应用商店中提供了加密模块,可帮助加密敏感数据。
5.管理员的用户名可以在管理员选项卡上更改应用内安全设置。建议重命名管理员用户。
-
在应用程序中为端点使用 SSL 连接和公钥。此外,HTTP 标头可以添加额外的安全层并帮助您检测特定攻击。
-
移除未使用的模块、小部件、Java 库、未使用的微流程。将您的应用程序保持在高水平将减少易受攻击的应用程序的机会。