AngularJS:相同的逻辑,但不同的 [=11g=] 形式和不同的数据库 projects/clients

AngularJS: same logic but different HTML forms & database for different projects/clients

我正在开发的应用程序将为所有人提供相同的功能 users/clients/projects(随便你怎么称呼他们)。

但是,呈现给用户的 HTML 表单以及用于将它们发送到服务器的 AJAX 因项目而异。

我正在考虑使用 Angular constants,在 HTML 上使用 ng-show / ng-hide(甚至 ng-if)和控制器中的开关,基于 AJAX 发送和接收的常量。

这是一个好方法吗?我可以看到事情变得越来越复杂,有很多项目。我应该为每个项目使用不同的 view/controller 吗?这样我可能会丢失一些通用代码,但它不太可能成为意大利面条。

我建议采用 domain/(test) 驱动的方法。不要概括 过多的代码。

构建通用代码将创建依赖项,这些依赖项都是需要未来重构的潜在受害者。即使是简单的改动。没有什么比那些导​​致雪崩的小修改更耗时/更令人沮丧的了。我见过很多项目 运行 超时,因为代码库在一开始就设计过度了。

我的方法,尤其是对于没有明确重叠功能概述的更复杂的项目,只是开始 designing/building 分小步将功能彼此分开。就像任何 agile 工作流一样,交付一个完整的工作功能(一个工作表单),当你在处理功能并注意到之前有一个共享功能构建时,(明智的)决定 refactor/promote 将现有代码转化为通用代码。在这个阶段,您可以更好地做出这样的判断。如果您采用了测试驱动的方法(我强烈推荐),那么重构现有代码可以毫不费力地完成。

以这种方式工作可以更好地保证交付并最终获得可读性好的优化代码。

TL;DR

这一切都归结为常识。