Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 主干模型是DTO还是POCO(POJO)?_Backbone.js - Fatal编程技术网

Backbone.js 主干模型是DTO还是POCO(POJO)?

Backbone.js 主干模型是DTO还是POCO(POJO)?,backbone.js,Backbone.js,我正在将主干网与.NET WCF服务一起用于我的web项目,我非常希望您对以下内容发表意见。 在编写.NETWCF服务时,我有一个具有许多属性的大模型和几个数据传输对象(DTO),每个服务一个,返回模型的一部分。我正在使用这些DTO向主干客户端返回数据。 我想知道,我是否应该为每个DTO创建一个主干模型(它的url将是服务url)? 或者,我是否应该创建一个大型主干模型,并在有数据时只填充数据(调用服务A时,使用A的结果填充模型,调用服务B时,继续使用B的结果填充模型)? 使用DTOs模型方法,

我正在将主干网与.NET WCF服务一起用于我的web项目,我非常希望您对以下内容发表意见。
在编写.NETWCF服务时,我有一个具有许多属性的大模型和几个数据传输对象(DTO),每个服务一个,返回模型的一部分。我正在使用这些DTO向主干客户端返回数据。
我想知道,我是否应该为每个DTO创建一个主干模型(它的url将是服务url)?
或者,我是否应该创建一个大型主干模型,并在有数据时只填充数据(调用服务A时,使用A的结果填充模型,调用服务B时,继续使用B的结果填充模型)?
使用DTOs模型方法,当一个模型包含另一个模型中存在的属性时,更改第一个模型将需要我同步另一个模型的数据。
使用一个大模型需要重写fetch和save方法,这样这个模型就能够与多个服务交互,而不仅仅是一个服务


你认为你的工作应该是什么样的

正如WiredPairie所建议的,主干方法(我认为是“智能程序员”方法)是将事物分解为单独的组件

每一个程序员,作为一个人,一次只能把他们的脑袋绕在这么多代码上。如果您试图在代码中创建大量类,您基本上可以保证不会同时将所有相关部分保留在内存中。此外,几乎每个人都同意测试是代码可维护性的关键部分,而大型类会抑制测试

最终,你不需要几个大类,你需要很多小类一起工作来创建你的应用程序。通过这种方法,您可以很容易地理解正在处理的类,因为它的大小是可管理的,并且您可能还可以将与它交互的每个类的一般工作同时保存在您的头脑中。此外,您可以轻松地编写单元测试,因为每个类只有一个目的和一组(大小合理的)要测试的操作

主干网很好地支持这一点;我不能肯定,但我敢肯定杰里米·阿什凯纳斯从未期望任何人在他们的整个网站上只有一个
视图。相反,我很确定他希望站点(至少是普通站点)将许多
视图组合在一起创建站点。类似地,试图用一个巨大的
模型做所有事情,实际上违背了主干网的设计用途

有很多方法可以使用主干在较小的组件之间“连接点”。例如,如果您确实需要一次保存所有数据,这并不意味着您应该只有一个
模型。您可以创建一个处理同步的“主”
模型
,然后为其提供一组属性或属性,这些属性或属性是
集合
或其他
模型
。然后,您可以覆盖
initialize
方法来填充那些
模型
/
集合
,并覆盖该主
模型
toJSON
方法来使用其子模块和子集合的toJSON结果

或者,您可以覆盖子类上的
sync
方法(或单个CRUD方法,如
save
fetch
),以便当它们尝试
fetch
/
save
/无论什么,它们实际上触发了主对象的保存。或者,您可以覆盖
Backbone.sync
,以监视发生的每个操作,并防止来自子对象的操作。或者你可以


关键是,在任何环境下,几乎任何程序员都可以将许多小部件连接在一起,而不是试图在一个地方同时完成所有工作。因为主干网是一个非常强大和灵活的库,它为您提供了许多方法来实现这一点。

正如WiredPairie所建议的那样,主干网方法(以及我认为的“智能程序员”方法)是将事物分解到单独的组件中

每一个程序员,作为一个人,一次只能把他们的脑袋绕在这么多代码上。如果您试图在代码中创建大量类,您基本上可以保证不会同时将所有相关部分保留在内存中。此外,几乎每个人都同意测试是代码可维护性的关键部分,而大型类会抑制测试

最终,你不需要几个大类,你需要很多小类一起工作来创建你的应用程序。通过这种方法,您可以很容易地理解正在处理的类,因为它的大小是可管理的,并且您可能还可以将与它交互的每个类的一般工作同时保存在您的头脑中。此外,您可以轻松地编写单元测试,因为每个类只有一个目的和一组(大小合理的)要测试的操作

主干网很好地支持这一点;我不能肯定,但我敢肯定杰里米·阿什凯纳斯从未期望任何人在他们的整个网站上只有一个
视图。相反,我很确定他希望站点(至少是普通站点)将许多
视图组合在一起创建站点。类似地,试图用一个巨大的
模型做所有事情,实际上违背了主干网的设计用途

有很多方法可以使用主干在较小的组件之间“连接点”。例如,如果您确实需要一次保存所有数据,这并不意味着您应该只有一个
模型。您可以创建一个处理同步的“主”
模型
,然后为其提供一组属性或属性,这些属性或属性是
集合
或其他
模型
。然后,您可以覆盖
initialize
方法来填充那些
模型
/
集合