¿Cuáles son estos patrones en este ejemplo de Backbone TodoMVC?

Mirando hacia elejemplo de códigos de backbone todomvc. La estructura en el js / fold:

├── app.js
├── collections
│   └── todos.js
├── models
│   └── todo.js
├── routers
│   └── router.js
└── views
    ├── app-view.js
    └── todo-view.js

app.js

var app = app || {};
$(function () {
    'use strict';
    // kick things off by creating the `App`
    new app.AppView();
});

collections / todos.js

var app = app || {};

(function () {
    'use strict';
    var Todos = Backbone.Collection.extend({
    model: app.Todo,
    app.todos = new Todos();
})();

modelos / todo.js

var app = app || {};

(function () {
    'use strict';
    app.Todo = Backbone.Model.extend({
    });
})();

views / app-view.js

var app = app || {};
(function ($) {
    'use strict';
    app.AppView = Backbone.View.extend({
})(jQuery);

Tengo dos preguntas:

por quévar app = app || {} en cada archivo?

¿Cuáles son las diferencias entre$(function(){}), (function(){})()y(function($))(jQuery)?

Respuestas a la pregunta(2)

Su respuesta a la pregunta