2

哪个更好:将应用程序拆分为许多不同的指令/组件或许多不同的控制器?

将应用程序拆分为许多不同的指令/组件会创建一个“深度”应用程序。“深层”应用程序中有更多文件,但本质上更加模块化。优点:在团队环境中工作,两个人的努力相互碰撞的可能性较小(导致痛苦的合并)。在项目之间共享代码很容易。缺点:如果你想研究一个问题,你必须遵循一串代码才能到达你需要的地方。示例:无线电指令存在问题。您必须首先转到模板,找出无线电指令可能在哪个组件中,在其中查看指令定义,然后最后转到指令文件。

极端例子:想象一个有 10 个问题的表格。每个问题都是一个指令。表单本身就是一个组件。表单被加载到可视部分中,该部分是一个组件。构成页面的各个部分被加载到模板中。如果您是该项目的新手,并且表单问题 7 有问题,您必须从模板中“挖掘”以找到指令。

将应用程序拆分为许多不同的控制器会创建一个“宽”应用程序。“宽”应用程序中的文件较少,但每个控制器负责模板的一个方面。优点:您可以轻松查看模板并找到定义的所有内容。每个责任领域都由一个控制者接管。缺点:在团队环境中,多人将在同一个文件中工作。与项目共享代码更复杂。

极端例子:想象一个有 10 个问题的表格。每个问题都有一个控制器(用于验证)。该表格有一个控制器(检查所有问题何时有效)。该表单位于一个具有控制器的部分中。如果您是该项目的新手,并且表单问题 7 有问题,您将必须找到控制的控制器。

那么你认为哪个更好,为什么?“深度”应用程序还是“广泛”应用程序?

词汇(据我所知,请随时纠正我)

  • 指令:由 HTML 模板和 javascript 指令文件组成。您将 DOM 操作逻辑或任何其他复杂的逻辑放在此处。示例:下拉列表、日期选择器、来自 jQuery UI 的任何内容。

  • 组件:一段可重用的代码,用于抽象共性。您可以直观地做到这一点;想象一个漫画书页面。有许多由排水沟隔开的框架。每个框架都是一个组件,旨在容纳一件艺术品。

  • 模板:汇集所有部分、组件和指令。模板将通过角度渲染到视图中。

  • 部分:一段静态 HTML,旨在被拉入模板。

  • 查看:模板的编译版本。该视图在 Angular 编译之前不存在。

4

1 回答 1

1

我投票支持“深度”变体。代码重用是一件非常重要的事情。

您必须首先转到模板,找出无线电指令可能在哪个组件中

为什么?只需查看指令的名称并打开相应的文件。当您可以通过指令或控制器或服务的名称找到任何必要的文件时,创建可预测的文件夹结构。

例如,您的指令名为acme-radiowhereacme是您的供应商前缀,因此文件应位于 folder vendor/acme/directives/radio.js
其他指令是某些应用程序独有的,命名acme-appName-radio文件应该在appName/directives/radio.js.
这只是粗略的例子。

于 2013-09-04T14:55:38.893 回答