标签: dci

如何在Rails 4中使用问题

默认的Rails 4项目生成器现在在控制器和模型下创建目录"Concer".我找到了一些关于如何使用路由问题的解释,但没有关于控制器或模型的解释.

我很确定它与社区当前的"DCI趋势"有关,并且想尝试一下.

问题是,我应该如何使用此功能,是否有关于如何定义命名/类层次结构以使其工作的约定?如何在模型或控制器中包含问题?

ruby-on-rails dci ruby-on-rails-4

619
推荐指数
6
解决办法
22万
查看次数

在哪里放置模型数据和行为?[TL; 博士; 使用服务]

我正在与AngularJS合作完成我的最新项目.在文档和教程中,所有模型数据都放入控制器范围.我知道必须存在控制器,因此在相应的视图中.

但是,我不认为该模型应该在那里实施.它可能很复杂并且具有私有属性.此外,人们可能希望在另一个上下文/应用程序中重用它.将所有内容放入控制器完全打破了MVC模式.

对于任何模型的行为都是如此.如果我使用DCI架构并从数据模型中分离行为,我将不得不引入其他对象来保存行为.这可以通过引入角色和上下文来完成.

当然,模型数据和行为可以使用普通的javascript对象或任何"类"模式来实现.但AngularJS的做法是什么呢?使用服务?

所以它归结为这个问题:

在AngularJS最佳实践之后,您如何实现与控制器分离的模型?

javascript model-view-controller dci angularjs

340
推荐指数
7
解决办法
7万
查看次数

DCI - 数据,上下文和交互 - MVC的继承者?

数据,上下文和交互(DCI)推广到组织的最佳描述是什么?

它是由MVC模式的创建者Trygve Reenskaug创建的.

它真的是MVC的继承者还是其他模式?它的优点和缺点是什么?

design-patterns dci

38
推荐指数
3
解决办法
1万
查看次数

什么是DCI以及它如何适合Rails?

最近与同事讨论了在Rails应用程序中设计和编码模型的不同方法,这使我在Rails环境中跨越了DCI.

但是,即使经过这个示例应用程序,我似乎也无法围绕整个概念.

目前,在编写Rails应用程序时,我倾向于或多或少地" 按书 ".

所以我想问一些事情 -

  • 什么是DCI,与MVC一起在普通的旧MVC(以及Rails中的vanilla ActiveRecord)上实现时有什么优势?
  • 如何在Rails中实现(或者换句话说,在所有模块中实现什么)?

编辑

我想在RoR的上下文中进一步扩展我的问题 - 是否建议使用Rails中的模型和控制器之间的另一个抽象层次?它在不同规模的应用中有多广泛?

architecture design-patterns ruby-on-rails dci

23
推荐指数
4
解决办法
5257
查看次数

DCI架构的例子?

我一直在努力通过阅读精益软件架构来了解DCI 架构.我觉得我需要看到一些更多的例子来巩固我对它的理解,但我只能找到那些在书中贯彻的账户之间汇款变化.

如果网上有任何内容,请告诉我.或者,如果你自己创建了一个不在网上的好例子,你可以在这里发布.

任何语言都可以.

architecture dci

22
推荐指数
1
解决办法
5606
查看次数

Rails中的RESTful DCI上下文

我首先通过这篇博文了解了数据,上下文和交互(DCI).着迷于这个概念,我努力将其构建到我的下一个Rails应用程序中.由于DCI与MVC协同工作,我认为同时使API RESTful不会太难.所以我创建了一个RESTful资源,并使用各种上下文扩展它.我在Rails中实现上下文的方法是为扩展控制器操作的模块创建一个目录.所以我看起来像这样:Report/app/contexts/reports_controller.rb

class ReportsController < ApplicationController
  before_filter :only => :new do |c|
    c.switch_context("submission")
  end

  # GET /reports
  def index
    @context.report_list
  end

  # GET /reports/1
  def show
    @context.display_report
  end

  # GET /reports/new
  def new
    @context.new_report
  end

  # GET /reports/1/edit
  def edit
    @context.edit_report
  end

  # POST /reports
  def create
    @context.create_report
  end

  def update
    @context.update_report
  end

  # DELETE /reports/1
  def destroy
    @context.destroy_report
  end

  protected

  def switch_context(context_name)
    session[:context] = context_name
    context = session[:context].camelize.constantize
    @context ||= self.extend context …
Run Code Online (Sandbox Code Playgroud)

ruby rest ruby-on-rails dci

12
推荐指数
1
解决办法
1352
查看次数

在遵循DCI设计时,何处进行验证?

我正在关注DCI来构建新Rails应用程序的行为,但我对将验证放在何处有一些疑问.

传统上,如果您要使用ActiveRecord模型管理数据,则在从AR继承的特定类中定义验证,并且它们似乎适合作为数据层的一部分.

但是,在我看来,只有在特定角色下才能进行某些验证是有意义的,并且只应检查对象是否在该上下文中,在所有其他情况下都被忽略.这基本上意味着应该在特定角色定义那些验证,并且当对象在有意义的上下文中使用时,应该使用这些角色模块对对象进行扩展.

您是否认为将这些验证保留在角色中是个好主意?如果是这样,你如何声明它们而不会污染与对象相同类的其他实例?如果我想使用ActiveRecord验证,它们在类级别声明,因此我不能单独将它们附加到对象,强制在角色模块上使用"验证"实例方法的重新声明(附加直接对象的错误数组的错误,或一些类似的技术.

ruby validation activerecord ruby-on-rails dci

8
推荐指数
1
解决办法
310
查看次数

如何结合DDD(域驱动设计)DCI来设计应用程序

DDD是域驱动设计,它是一种包括无处不在的语言,根实体,价值对象和聚合的方法.

DCI:数据,上下文,交互是Trygve Reenskaug发明的一种编程范式.

如何在新系统中与它们结合?

domain-driven-design dci

6
推荐指数
1
解决办法
1167
查看次数

Scala可以约束对象图,以便只显示与上下文相关的那些对象吗?

有没有办法使用Scala的类型系统来简明地指定完整对象图的上下文相关子图?

DCI认为你经常有一个相当复杂的对象图,但在任何一个用例中你通常只想使用一个子图.你有一个Fooa Bar和a Bat,但是当你处于用例1时,你只关心Bar用例2和用户2时的情况Bat.

例如,假设您拥有此结构,Foo->Bar->Baz->Bin并且Role1用例需要和Role2用例需要Foo->Bat->Baz->Buz:

class Foo{
   val bar = new Bar() //Only relevant to Role 1
   val bat = new Bat() //Only relevant to Role 2 
}

class Bar {
   val baz = new Baz() 
}

class Bat {
   val baz = new Baz()
}

//Relevant to both Role 1 and 2 (via Bar or Bat)
class Baz {
  val bin = new Bin() //Only relevant to …
Run Code Online (Sandbox Code Playgroud)

abstraction scala typeclass dci

5
推荐指数
1
解决办法
214
查看次数

如何理解DCI模式

根据维基百科数据,上下文和交互(DCI)是计算机软件中用于对通信对象系统进行编程的范例。在这里,我不清楚DCI试图解决的问题。能用简单的例子解释一下吗?您的示例中的数据,上下文和交互是什么?

oop design-patterns dci

5
推荐指数
2
解决办法
1326
查看次数