What is the difference between an MVC Model object, a domain object and a DTO

Domain and model objects are essentially the same, and may contain business logic. Depending on implementation, domain and DTO objects may be equivalent if you remove business logic from the model into a service class. Often a key variant of the DTO is the View Model, which is used purely to transfer data between the … Read more

Fat models and skinny controllers sounds like creating God models

It might not be the best idea to look at Rails as a staple of MVC design pattern. Said framework was made with some inherent shortcomings (I kinda elaborated on it in a different post) and the community only just now has begun addressing the fallout. You could look at DataMapper2 development as the first … Read more

Unable to set data attribute using jQuery Data() API

It is mentioned in the .data() documentation The data- attributes are pulled in the first time the data property is accessed and then are no longer accessed or mutated (all data values are then stored internally in jQuery) This was also covered on Why don’t changes to jQuery $.fn.data() update the corresponding html 5 data-* … Read more

GUI not working after rewriting to MVC

As you’ve discovered, the Model–View–Controller pattern is no panacea, but it offers some advantages. Rooted in MVC, the Swing separable model architecture is discussed in A Swing Architecture Overview. Based on this outline, the following example shows an MVC implementation of a much simpler game that illustrates similar principles. Note that the Model manages a … Read more

How to render and append sub-views in Backbone.js

I have generally seen/used a couple of different solutions: Solution 1 var OuterView = Backbone.View.extend({ initialize: function() { this.inner = new InnerView(); }, render: function() { this.$el.html(template); // or this.$el.empty() if you have no template this.$el.append(this.inner.$el); this.inner.render(); } }); var InnerView = Backbone.View.extend({ render: function() { this.$el.html(template); this.delegateEvents(); } }); This is similar to your … Read more