管理许多不同的入职流程

Posted

技术标签:

【中文标题】管理许多不同的入职流程【英文标题】:Manage many different onboarding flows 【发布时间】:2022-01-17 16:37:39 【问题描述】:

我们正在开发一个 Angular 应用程序,要求用户注册并输入一些数据。

用户在我们的应用中注册后,他们会开始引导,通过各种屏幕输入/选择数据,以便应用运行。

不仅顺序,而且显示的屏幕取决于各种参数,例如用户当前所在的国家/地区、所选的应用语言、用户的选择等,因为根据这些参数,他们需要从应用中获得不同的东西。

目前在每一步之后都有一堆 if/else 语句,以确定应用程序下一步将去哪里。

您可以想象,随着应用开始支持更多种类的用户组并且必须提供越来越多的入职流程,这种方法很快就会失控,这可能还会共享一些用于许多组的通用屏幕。 这会导致在获取所有参数然后做出决定的每个步骤结束时出现大量逻辑,并且在设计流程时很容易忘记设置/选择/位置的众多组合之一。

是否有人有类似案例的经验,并且可以就他们如何以清晰且可扩展的方式引导用户通过不同的入职培训提供建议?

【问题讨论】:

【参考方案1】:

在我的脑海中,我可以看到您可能实施的两种不同的解决方案:

您首先定义一个从开始到结束的通用流程,然后在每个组件/路由上定义一个守卫来处理允许/禁止用户进入该页面的逻辑。如果守卫不允许,请导航到下一个。

第二个是您预先定义可能的入职流程并将它们保存在任何地方(例如常量文件)。然后,根据登录用户的一些信息,决定遵循哪个流程。

在这两种情况下,我都会有一个特定的服务来处理所有相关的逻辑。从保存必要的输入,到决定下一步导航到哪里。这样,您就可以避免将一堆不必要的逻辑分散到多个不需要了解的组件中。

【讨论】:

感谢您的回复,我发现您提到的第一点很有趣:如果守卫拒绝路由,您是直接在守卫中进行重定向还是直接返回 false 并在其他地方处理?跨度> 你可以直接在守卫中重定向,然后返回false。

以上是关于管理许多不同的入职流程的主要内容,如果未能解决你的问题,请参考以下文章

当地的新员工入职培训

当地的新员工入职培训

有啥方法可以强制在 iOS13 的入职过程中出现“始终允许”提示?

ThoughtWorks给你不一样的入职之旅

ThoughtWorks给你不一样的入职之旅

新力量 · 心声音,项目管理公司迎来新员工入职!