Pull to refresh
33
0
Павел Франков @twenty

Улучшаю Инфраструктуру фронтенда

Send message
В моём мире ваш комментарий опередил своё время на 5 лет.
И да backbone далеко не идеал, но сидеть и искать баг в 10 килобайтах jquery лапши это ТО еще удовольствие

Уверяю вас, лапша не зависит от того, используется ли в проекте Backbone или нет.

Наружу обычно вывожу только класс самой общей view, который подключаю на странице.

Но в таком случае, вы не сможете использовать одну и ту же модель в разных модулях.
Это если одна вьюха — нашёл. А если их много, да они ещё и вложенные?
...Backbone.Marionette…
Ну и Coffee Script выручает.

Искренне сочувствую вам.
Больше кода не может быть читабельнее, если не впадать в крайности, конечно.
Модульность? Полагаю, разговор не про разные названия объектов, в которых определены методы, а про возможность повторного использования кода в других проектах. Очень интересно посмотреть, где вы будете использовать TodoModel и TodoView?
Расширяемость extend'ом-то?
Я правильно понимаю, что вот это всё написано для отображения 5 статичных страниц?
Друг мой, понимаете ли вы, во что превратится ваш «правильный» код, когда вьюх станет больше 50, а модели будут вложены друг в друга? Если вы покинете такой проект, то заберёте сакральные знания об устройстве ваших абстракций с собой, и уже никто не сможет поддерживать такой проект.
Вы давно пишете на бэкбоне или чисто теоретизируете? Доводилось ли писать что-то более-менее сложное?
Когда в проекте много разнообразных вьюх, моделей и шаблонов, количество файлов растёт с бешеной скоростью, что, как не трудно догадаться, уже не становится таким очевидным преимуществом.

В jQuery можно написать 3 строчки и они просто будут работать. Без создания новых файлов, вьюх, моделей, коллекций и шаблонов. К тому же, в случае изменения требований (что бывает почти всегда), не придётся переписывать всю систему или вставлять костыли на том же jQuery.
Вы действительно считаете, что вот это
Скрытый текст
var Status = Backbone.Model.extend({
    url: '/status'
});

var Statuses = Backbone.Collection.extend({
    model: Status
});

var NewStatusView = Backbone.View.extend({
    events: {
        'submit form': 'addStatus'
    },

    initialize: function() {
        this.collection.on('add', this.clearInput, this);
    },

    addStatus: function(e) {
        e.preventDefault();

        this.collection.create({ text: this.$('textarea').val() });
    },

    clearInput: function() {
        this.$('textarea').val('');
    }
});

var StatusesView = Backbone.View.extend({
    initialize: function() {
        this.collection.on('add', this.appendStatus, this);
    },

    appendStatus: function(status) {
        this.$('ul').append('<li>' + status.escape('text') + '</li>');
    }
});

$(document).ready(function() {
    var statuses = new Statuses();
    new NewStatusView({ el: $('#new-status'), collection: statuses });
    new StatusesView({ el: $('#statuses'), collection: statuses });
});



Легче поддерживать, чем это?
Скрытый текст
$(document).ready(function() {
    $('#new-status form').submit(function(e) {
        e.preventDefault();

        $.ajax({
            url: '/status',
            type: 'POST',
            dataType: 'json',
            data: { text: $('#new-status').find('textarea').val() },
            success: function(data) {
                $('#statuses').append('<li>' + data.text + '</li>');
                $('#new-status').find('textarea').val('');
            }
        });
    });
});




Я вовсе не хочу сказать, что второй пример — элегантный. Но если выбирать наименьшее из двух зол — второй пример намного лучше.
А теперь, внимание, главный вопрос: зачем?
Вы только что изобрели мембранную ткань, используюемую в куртках и штанах сноубордистов и лыжников =)
Чтобы ничего не скакало при наведении, используйте свойство outline вместо border.
У меня детей пока нет, и я вас хочу спросить, как более опытного в воспитании: зачем вы ограничиваете их по часам? Не лучше ли, с точки зрения воспитания, дать неограниченное количество времени, ограничив исключительно развивающими приложениями?
Маркетологи не зря свой хлеб едят ;)
Покажите мне этот телефон или ноутбук, который просел всего на 30% при ежедневном полном цикле за 3 года. Через эти 3 года, обычно, рабочие ноутбучные и мобильные батареи держат заряд около 2—5 минут, а то и вовсе дохнут.

Здесь проводили исследования литий-ионных батарей:
batteryuniversity.com/learn/article/how_to_prolong_lithium_based_batteries
Оба одинаково адекватные.
С этим никто не спорит. Мой изначальный тезис был немного о другом:
Кому бы вы доверили операцию?..
… а хотя, к чёрту врачей — мы же на айтишном ресурсе. Кому бы вы доверили делать сайт? Человеку с дипломом о высшем профильном образовании или же человеку без оного, но с богатым, качественным портфолио?
Опыт порождает знание. Но знание не порождает опыт.
Вы как-то странно сравниваете опыт со знанием. Одно только знание не делает вас ни хирургом, ни лётчиком, ни адвокатом, ни кем бы то ни было ещё.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity