Angular 6 我应该为管理仪表板创建单独的应用程序还是单独的模块?
Angular 6 should i create separate app or separate module for admin dashboard?
我目前正在 angular 6 项目中创建一个具有以下功能的网站(公司网站)
作为公司网站+在线商店的网站
包含内容(如滑块、文本和图像、列表)的着陆页
可以从管理仪表板更改。
还有一个带有购物车的产品页面,用户可以在其中
在
登录购买公司产品
管理员仪表板,管理员可以控制其中的内容
网站
注:
网站的管理仪表板和内容(除了产品页面和购物卡)已连接到 NodeJs Api 网站-api
产品列表和购物车连接到不同的 NodeJs Api
目前我已经创建了一个包含以下模块的angular项目
- 管理模块:包含与管理仪表板相关的组件和路由
视图模块:具有与不同页面相关的不同组件和路由,如主页、关于、联系我们、职业等
产品模块:包含与产品页面、列表和购物车相关的组件
共享模块:具有在这些不同模块之间共享的组件
目前我有以下问题:
我应该如何处理项目结构/模块以优化它的性能?
我应该如何处理身份验证,因为我有同一个应用程序连接到两个单独的 API(我应该有单独的身份验证)吗?
我应该为管理仪表板创建一个单独的 angular 6 应用程序,还是应该坚持在同一个应用程序中创建不同的模块?
我感谢任何形式的改进应用程序整体性能的建议
性能
首先,您应该优化自己的代码:避免 O(n²)
复杂性(或更多),仅请求所需的 HTTP 数据,不要导入您不使用的模块...
之后,您还可以使用延迟加载来按需加载您的模块。
最后,您可以使用服务器端呈现来优化应用程序的加载时间。
将您的应用程序一分为二当然会影响您的性能,但这在很大程度上取决于两个应用程序的内容。
身份验证
由您决定:您可以拥有两个独立的应用程序、两个独立的数据库和两个不同的身份验证,或者您可以拥有一个具有基于角色的数据库的应用程序。
两者我都看过并研究过,既不是最好的也不是最差的。它们都有优点和缺点:由您选择。
鉴于这两种意见,你必须猜到最后一种:你可以选择任何一种方式来申请。这真的取决于你、你的团队和你的最终用户。
我认为首先,每个项目都应该根据其需求、规模和复杂程度来处理。
话虽如此,在您的具体情况下,我确实认为您应该问问自己,管理面板有多大?
我已经看到,从管理面板,这是最小和狭窄的,只允许管理员执行简单的管理级操作,到全面的管理面板,被数百人使用,具有不同的访问级别,显示多方面的统计数据 -在拥有 50 名或更多员工的手术室中使用屏幕。
如果你的管理面板应该只执行基本到中等复杂的管理操作,它可以在同一个应用程序中。如果规模和复杂性变得更大,您可以考虑将其分离到一个专门的应用程序,以保持对系统更好的控制。
不要忘记,在不需要的地方(通常是小规模)分成两个应用程序,很可能会造成额外的不必要的“混乱”。
我的回答中提到的“缩放级别”都是相关的,一切都是如此。
因此,是您做出决定,当然还要根据大局来“衡量”事物。
祝你好运!
我目前正在 angular 6 项目中创建一个具有以下功能的网站(公司网站)
作为公司网站+在线商店的网站 包含内容(如滑块、文本和图像、列表)的着陆页 可以从管理仪表板更改。
还有一个带有购物车的产品页面,用户可以在其中 在
登录购买公司产品
管理员仪表板,管理员可以控制其中的内容 网站
注:
网站的管理仪表板和内容(除了产品页面和购物卡)已连接到 NodeJs Api 网站-api
产品列表和购物车连接到不同的 NodeJs Api
目前我已经创建了一个包含以下模块的angular项目
- 管理模块:包含与管理仪表板相关的组件和路由
视图模块:具有与不同页面相关的不同组件和路由,如主页、关于、联系我们、职业等
产品模块:包含与产品页面、列表和购物车相关的组件
共享模块:具有在这些不同模块之间共享的组件
目前我有以下问题:
我应该如何处理项目结构/模块以优化它的性能?
我应该如何处理身份验证,因为我有同一个应用程序连接到两个单独的 API(我应该有单独的身份验证)吗?
我应该为管理仪表板创建一个单独的 angular 6 应用程序,还是应该坚持在同一个应用程序中创建不同的模块?
我感谢任何形式的改进应用程序整体性能的建议
性能
首先,您应该优化自己的代码:避免 O(n²)
复杂性(或更多),仅请求所需的 HTTP 数据,不要导入您不使用的模块...
之后,您还可以使用延迟加载来按需加载您的模块。
最后,您可以使用服务器端呈现来优化应用程序的加载时间。
将您的应用程序一分为二当然会影响您的性能,但这在很大程度上取决于两个应用程序的内容。
身份验证
由您决定:您可以拥有两个独立的应用程序、两个独立的数据库和两个不同的身份验证,或者您可以拥有一个具有基于角色的数据库的应用程序。
两者我都看过并研究过,既不是最好的也不是最差的。它们都有优点和缺点:由您选择。
鉴于这两种意见,你必须猜到最后一种:你可以选择任何一种方式来申请。这真的取决于你、你的团队和你的最终用户。
我认为首先,每个项目都应该根据其需求、规模和复杂程度来处理。 话虽如此,在您的具体情况下,我确实认为您应该问问自己,管理面板有多大? 我已经看到,从管理面板,这是最小和狭窄的,只允许管理员执行简单的管理级操作,到全面的管理面板,被数百人使用,具有不同的访问级别,显示多方面的统计数据 -在拥有 50 名或更多员工的手术室中使用屏幕。 如果你的管理面板应该只执行基本到中等复杂的管理操作,它可以在同一个应用程序中。如果规模和复杂性变得更大,您可以考虑将其分离到一个专门的应用程序,以保持对系统更好的控制。
不要忘记,在不需要的地方(通常是小规模)分成两个应用程序,很可能会造成额外的不必要的“混乱”。
我的回答中提到的“缩放级别”都是相关的,一切都是如此。 因此,是您做出决定,当然还要根据大局来“衡量”事物。
祝你好运!