如何组织通用代码

Pla*_*Ton 2 javascript coffeescript backbone.js

刚刚开始使用backbone.js,我注意到的一件事是我的许多模型,集合和视图共享一些非常相似的方法.我想重构它们并从提取的位置(/ lib?)调用它们.我去搜索文档和/或示例,并对我发现的很少(特别是没有)感到惊讶.那么,有几个问题:

  • 我是否有理由忽视为什么在公共库中考虑很少的主干方法示例?
  • 共享代码的骨干项目中是否有标准/商定的位置?
  • 任何骨干类和/或常用插件来帮助存储常用方法?

任何想法都赞赏 - 提前感谢.

(编辑)示例添加:

从视图中获取此代码.(不可否认,它太短暂实际上值得重构,但它的简单性使它成为一个简洁的例子)

  destroy: () ->
    @model.destroy()
    @remove()
    return false
Run Code Online (Sandbox Code Playgroud)

假设我想将其重构为:

  destroy: () ->
    restful_destroy_method(this)
Run Code Online (Sandbox Code Playgroud)

然后称之为:

 restful_destroy_method: (view) ->
    view.model.destroy()
    view.remove()
    return false
Run Code Online (Sandbox Code Playgroud)

来自一个公共图书馆.有没有其他人似乎这样做的原因?

Rob*_*ska 5

这取决于具体情况,以及您的常用代码.

就你的例子而言,我可能会做的是创建一个更具体的View来扩展.

对于直接的JavaScript表示道歉,我在CoffeeScript中不能流利地使用它来回答问题.

DestroyableView = Backbone.View.extend({
    destroy: function () {
        this.model.destroy();
        this.remove();
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

然后,new Backbone.View()我创建了new DestroyableView()s 而不是创建s.DestroyableView可以有其他常用功能,或者您可以创建几个不同的父定义,并使用_.extend()它们全部应用于单个对象.