Pull to refresh
32
0
Александр Савин @asavin

Пользователь

Send message
Ммм, развиваетесь, очень интересно!
Напишите на ru.bem.info/forum пост — там намного больше народу увидит.
Вы не слышали про yeoman?
Только что понял, что это очень похоже на bem create. Вот дока. Можете пояснить в двух словах, в чем разница?
Может быть, хотя я — вполне себе любой разработчик не из Яндекса.

Кстати, я тут подумал, что мне все-таки будет не очень просто сделать нормальную интеграцию bem-priv+bh, потому что первым я вообще не пользовался, а на втором сделал только один небольшой проект. А там ведь наверняка свои «лучшие практики» уже и сформировавшися подходы.
Ну, скобочек многовато, конечно, но свою задачу вполне решает.

Когда я начинал, то хотел сразу делать и под bh, но не нашел аналога bemtree. Сейчас появился, судя по тому проекту, на который чуть выше дает ссылку tadatuta, можно добавить поддержку. Это не должно быть очень сложно.
Ммм, еще не видел этого репозитория, спасибо. Попробую найти время на интеграцию.
Если вы считаете, что сделали что-то полезное и готовы потратить время и силы — выкладывайте, почему нет?
В случае bnsf подобную проблему можно решить, например, таким способом:

// в этот блок вложен элемент data, в котором есть свой запрос
block('user-card').content()(function () {
    // рендерим элемент data
    var dataBlock = applyCtx({
        elem: 'data'
    });
    // шлем запрос
    return this.get('users', {
        user_ids: this.route.parameters.id
    }, function (data) {
         // что-то делаем с отрендеренным элементом и ответом от сервера
        return [dataBlock, {elem: 'bla', content: data.body}];
    });
});

// описание элемента data, который посылает запрос
block('user-card').elem('data').content()(function () {
    return this.get('users', {
        user_ids: 1
    }, function (data) {
        return data.body;
    });
});

Запросы объединятся. Выбор, когда рендерить блоки — до отправки запроса или после — остается за разработчиком.
Я бы сказал, что форкать смысла нет. Проще заново написать — что я и сделал, собственно.
Конечно, видел, пробовал.
Многое не понравилось.
Например, там плохо реализована маршрутизация. Если про то, что там есть для роутинга, вообще можно употреблять такие слова как «маршрутизация» и «реализована».
Я думал над этим, но если оставлять bemtree — то есть ли смысл в bh?
А если не оставлять — то что использовать взамен?
Меня не устраивает это решение.
1. Если мы его используем только там, где бывают литералы — то у нас возникает два разных способа вызвать родительский метод. Не круто.
2. Если мы его используем везде — то везде постоянно будет проверяться, функция или нет выше по цепочке. Тоже не круто.

Я думаю, можно прекратить обсуждение. Я вас понимаю, вы меня, наверное, тоже.
А когда вы захотите наследоваться и что-то переопределить — вам придется менять литерал на метод в родительском классе или использовать особый способ вызывать родительский метод, умеющий обрабатывать ситуацию, когда выше по цепочке — литерал. Вот этот момент мне кажется важным.
Все, что повторяется — это декларация метода и суперколл. Я не вижу удовлетворительного способа избавиться от шаблонного кода в этой ситуации.

Буду рад, если предложите таковой.
Вы в каком редакторе код пишите?

Я предпочитаю IDE от JetBrains, там есть Live Templates:
Набираете несколько символов, нажимаете Tab — и шаблонный код готов. Я даже видео для вас записал.

В вашем любимом редакторе, наверняка, тоже есть что-то подобное.

Писать легко, единообразие во всех файлах достигается без усилий.
Не понял, как связан выбор между объектом и методом, возвращающим объект, с количеством вьюх.

Зато понимаю ваше стремление к красивому коду. Просто предпочитаю однообразие.
Я в курсе, но, повторюсь, предпочитаю всегда использовать метод.
иногда проще написать объект, чем городить метод

Вы так говорите, как будто метод вместо объекта — это очень сложно или долго.

Суть не в том, как именно звать родительскую реализацию, а в том, чтобы всегда делать это одинаково.
Я не говорил, что this.someThing = this.$('.js-someThing') это круто.
Я имел в виду, что предпочитаю метод, возвращающий результат, подобным объектам в прототипе.
Метод по ссылке — выход, но, на мой взгляд, способ позвать реализацию в родителе должен быть один — что-нибудь вроде backbone-super.
Использование подобных деклараций становится не очень удобным, когда вы начинаете наследоваться.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity