Javascript 类似于DAOs的主干设计模式
总的来说,我很高兴在我公司的前端应用程序中使用Backbone.js。然而,我注意到了许多基本问题,我想知道是否还有其他人遇到过这些问题 最大的问题是前端团队无法控制为我们的应用程序提供动力的API。传递的对象在结构上相当复杂。嵌套数组、子对象等。。。。这本身是意料之中的。API的用途与前端不同。每个人认为“对象”是完全不同的东西 在实践中,这会导致一些问题。也就是说,一个API端点可以分解为多个前端模型。这是处理API时的常见问题。它通常通过数据访问对象或将API对象转换为内部对象的数据访问层来解决。相反,主干网希望模型和API端点紧密耦合。模型上的同步操作(即保存、获取)立即到达API 除此之外,我严重认为主干中的toJSON做得太多了。它用于以可在内部使用的格式复制模型;定义模型应如何发布到API;并用于许多内部操作的模型之间的相等性检查。这三个人中的任何一个都有可能找到自己的方法 还有其他人处理过吗?你使用了什么策略?实现DAOs?是否有一个主干分支可以解释这些问题 [编辑] 我遇到的一个更接近真实世界的案例。当我们查询API的结果时,大约有一百个过滤器可以随请求一起传递。总体过滤器结构非常简单,在这方面,过滤器对象数组如下:Javascript 类似于DAOs的主干设计模式,javascript,api,backbone.js,dao,Javascript,Api,Backbone.js,Dao,总的来说,我很高兴在我公司的前端应用程序中使用Backbone.js。然而,我注意到了许多基本问题,我想知道是否还有其他人遇到过这些问题 最大的问题是前端团队无法控制为我们的应用程序提供动力的API。传递的对象在结构上相当复杂。嵌套数组、子对象等。。。。这本身是意料之中的。API的用途与前端不同。每个人认为“对象”是完全不同的东西 在实践中,这会导致一些问题。也就是说,一个API端点可以分解为多个前端模型。这是处理API时的常见问题。它通常通过数据访问对象或将API对象转换为内部对象的数据访问层
{
filterName: '',
// '~', '=', '<=', '>='
operator: '',
value: ''
}
{
过滤器名称:'',
// '~', '=', '='
运算符:“”,
值:“”
}
对于一个特别有问题的过滤器,根据“操作员”,我们要么允许用户选择单个选项,要么允许用户从可用选项中构造“句子”。前一个选项呈现为HTML选择,后一个选项由lextree解析器实现。显然,这两种方法需要非常不同的代码,所以我们将其分为两个不同的类,但是对于API来说,无论我们的实现如何,过滤器都是相同的
这很简单,但是主干的问题涉及到如何定义类。我们可能希望使用内置的get/set函数。但这会将属性转储到属性中,这会影响默认的toJSON,该toJSON也用于构建此过滤器的API表示,以及此过滤器是否等于相同类型的另一个过滤器
有了数据访问模式,就会有另一层知道如何将过滤器转换为API,反之亦然。任何CRUD操作都将由特定DAO拾取并由代理处理 你能举一个典型问题的例子吗?@KimGysen用一个例子更新了这个问题