【问题标题】:How do I split my web application?如何拆分我的 Web 应用程序?
【发布时间】:2017-02-04 06:01:36
【问题描述】:

我们创建一个单页应用程序。假设这是 ProjectA。

然后,我们运气好,决定做ProjectB。

90% 的 ProjectA 和 ProjectB 是相同的。

这告诉我我们需要ProjectCore ProjectAProjectB。后两者必须使用第一个作为依赖项。

让水变得浑浊的是,不仅仅是 JavaScript。设计师说“我会遇到你的问题,但 CSS !”。所以我的意思是,如果ProjectCore 有一个ConfirmationModalView,那么该视图应该与哪些样式一起使用的CSS。

你如何处理这个问题?这就是 WebPack 及其同类产品的用途吗?解决这个问题有哪些常见的解决方案?

“将所有代码从 A 复制并粘贴到 B 中,然后保持两者”正在获得投票,但这很蹩脚。虽然我不能说我可以提供解决方案。

【问题讨论】:

    标签: javascript css architecture package single-page-application


    【解决方案1】:

    您可以查看 Git 和版本控制。但是...您可以拥有一个主要的 JS 和 CSS 文件来存放不变的内容。

    然后,您可以为 Project AProject B 分别添加具有特定功能的较小、单独的 JS 文件(请注意,如果您在“主 JS”下方包含,所有全局函数和变量都可用于使用这个 JS 文件,如果需要的话,这是一种奖励)。

    然后,您可以在两个不同的较小 CSS 文件的顶部使用 @import url("base.css"); 来“将主 CSS 与仅用于“那个”页面的新的特定 CSS 组合。

    【讨论】:

      【解决方案2】:

      你需要使用 MVC ... 你的模型是一样的..因为它是你的对象管理器服务器端。 你的视图是不同的,因为你有不同的用户界面。

      您可以根据需要开发控制器...在 javascript ajax 中通过事件用户与服务器通信...控制器 php 可以管理默认信息。数据库连接、加密...等。

      您可以将静态作为 CSS 和 JS 上传到服务器,并将 PHP 核心项目上传到服务器端...

      您可以添加控制器 1、2、3 或视图 1、2、3,具体取决于您拥有核心视图和核心控制器的项目。

      【讨论】:

      • 甚至不相关。模型-视图-控制器 (MVC) 是一种用于实现 UI 的软件架构师模式,根本不接近版本控制。
      • 版本控制要求您所有的应用程序都更新到最新版本以避免代码错误......这可能会导致一切平等。如果您正在寻找用于管理 Web 应用程序的不同界面,则必须使用 MVC ... 使用模型和控制器作为版本控制,但您的“视图”可以根据需要进行调整。他还在谈论:“将所有代码从 A 复制并粘贴到 B 中,然后保持两者”这意味着没有项目具有多重定义的架构。没有什么比及时实现编程模型更好的了。
      • 版本控制,A/B 测试 - 在这里使用相同。尝试使用 MVC,特别是如果你没有从 MVC 开始,会搞砸你。当然你可以有很多控制器,当然你可以有一个视图,但是如果视图需要不同(A/B 测试)怎么办,你就坏了。到时候还不如做两个完整的项目吧?
      • 不一定...版本控制的想法是协同提升代码与带来 1 2 3 个不同的项目无关... MVC 在这方面更具可扩展性的版本控制。您可能拥有:一个 JS、CSS 和 PHP 核心……同时拥有 2 3 4 个项目 A、B、C,它们引用具有不同用户界面、事件和数据的相同核心。这是要讨论很多次的。版本控制用于线性开发。 MVC和其他架构一样,是开发多个应用程序和模块组装(Framework)。
      • 版本 - “某事物的特定形式在某些方面不同于早期形式或同一类型事物的其他形式。”同意不同意。就这么简单,你已经让它难以忍受了。这个孩子没有开发他自己的框架,可能想把你的范围从拯救世界到拯救这个孩子的项目。
      猜你喜欢
      • 1970-01-01
      • 2015-02-19
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      • 2017-10-03
      • 1970-01-01
      相关资源
      最近更新 更多