Oleg
Надо что-нить таки придумать 😄Ожидается много жести, если так продолжать - утону же 😄
Anton
какую orm предложите, bookshelf или sequelize?
hlomzik
Слишком мало зависимостей?) путем пристального всматривания ничего страшного не нашёл, это же http-сервер)
uRusure
Yaroslav Akulov:
Ребят, как находить интересные сервисы на гитхабе из мира фронтенда? Может есть возможность оформить подписку?
К примеру новую либо сделал кто-то, либо уже существующие есть годные. Как это найти?
Джон
посоны
Джон
почему одни в классе пишут методы, другие пишу функции?
Джон
Дима
uRusure
Denis
🚀 Друзья, пару месяцев назад мы провели первый React Moscow Meetup. Не скрою, это было действительно круто! Я помню довольные лица и горящие глаза людей, которые выходили из зала, хотя уже был поздний вечер. Новогодняя суета позади. Настало пора повторить! Отличный момент снова собраться, обменяться опытом и наблюдениями. Зима на исходе. Пора просыпаться. Подавайте темы для докладов: https://goo.gl/forms/hGbuCn35JpetxFt73
Джон
о круто
Джон
спасибо!
Sergey
Идеологически неправильно писать стрелочные функции в классах как методы, лучше бинды в конструкторе
Джон
Дима
Дима
Лучше стрелочные методы
Дима
Не помню когда последний раз юзал бинды в конструкторе
Sasha
Всем привет
У меня есть underscore.clone.
Можно ли мне как-то искуственно добавить в функцию, которая не возвращает промис собственно сам промис, чтобы выполнить действия только после того, как объект был клонирован?
Artem
почему одни в классе пишут методы, другие пишу функции?
но ведь твой вариант со стрелочными функциями не будет работать - в ES6 нельзя дефайнить свойства объекта напрямую в декларации класса, только через конструктор. По свойствам только пропозал есть, насколько я знаю
Джон
Джон
но это не мой пример
Джон
а из доков каких-то
Artem
скорее всего это потом компилируется в что-то типа Class.prototype.foo = () => {} и поэтому работает
Dreamerinnoise
Юзаю тайскрипт, пишу стрелочные методы
Artem
молодец
Джон
Dreamerinnoise
Брат жив
Artem
тайпскриптеры уже как веганы
Джон
ой нет, к пакету к нему
Dreamerinnoise
Dreamerinnoise
Alex
ты такой злой, потому что в твоем языке типизации нет
Dreamerinnoise
Да хер с ним с тайпскриптом, без него бы тоже стрелочные методы писал, что так сложно плагин воткнуть?
Artem
плагин для чего? Стрелочные функции в ES6 и так есть. Тут речь не про них, а про дефайн свойств в классе
Dreamerinnoise
Я про это и говорю
Dreamerinnoise
Про дефайн свойств
Джон
Джон
ага, это я понял. Выше кидали ссылку на доку реакта
Дима
Короче)
Дима
Пацаны, загуглите babel class properties
Dreamerinnoise
По мне свойства это идиоматически правильно
Дима
И на самом деле это просто замечательно, что такую фичу наконец-то вводят
Artem
По мне свойства это идиоматически правильно
это требует того, чтобы вообще все методы всех классов имели именно такое поведение. Этого нельзя гарантировать, если используешь чужой код. А иначе получается неконсистентность в коде и высока вероятность перепутать
Gordey
какую фичу вводят? что за кипишь?
Gordey
всем доброе утро
Artem
причём результат перепутывания может вылезти не сразу, например, если контект был не нужен когда писался код, но потом использования контекста добавилось и использующий код сломался потому что рассчитывал, что метод был задефайнен стрелочной функцией
Artem
есть классы со стандартным синтаксисом для методов, большинство ожидает именно этого
Дима
Ты вероятно не очень понимаешь, как их используют)
Dreamerinnoise
Методы это методы
Джон
Дима
Технически это и есть биндинги в конструкторе
Дима
Как бы
Artem
в своём коде ты можешь "всегда", а в чужом - нет
Джон
допустим для ивентов юзать только функции
Artem
Дима
Нет
Дима
Как минимум потому что за описанные тобой классы в рабочем коде надо дважды прописывать — за кривой хак с контекстом и нарушение инкапсуляции
Artem
Методы это методы
а ты тогда про что? Я думал ты предлагаешь вообще все методы дефайнить стрелочными функциями
Дима
Ну вообще ничто не мешает, но это не оч красиво просто-напросто
Dreamerinnoise
Artem
Дима
Если есть вероятность, что метод будет терять контекст — его записываем стрелочной функцией
Дима
И всё
Dreamerinnoise
Ну в реакт классах я только так и делаю
Джон
это что-то из разряда — а как лучше объявлять переменные. const или let ))
Джон
кек
Дима
Тут тоже никакой проблемы нет вообще
Джон
ну так да
Джон
я о том же, че спорить то
Artem
Если есть вероятность, что метод будет терять контекст — его записываем стрелочной функцией
тут я с тобой не согласен. Есть методы класса (не статические), их извне надо всегда вызывать так, как будто это обычные методы, т.е. явно задавать контекст если куда-то их передаёшь и хочешь контекст сохранить. Потому что полагаться на то, как задефайнен этот метод - это как раз нарушение инкапсуляции (если такое поведение явно не прописано в документации, потому что в этом случае это уже часть контракта)
Дима
Artem
ну вот простенький пример, есть const foo = new Foo(); далее по коду у тебя setTimeout(foo.method.bind(foo), ...);. Правильно ли я понимаю, что ты предлагаешь дефайнить все методы стрелочными функциями и делать простоделать просто setTimeout(foo.method, ...);?
Дима
Да
Andrey
Да
Дима
Потому что т тут при каждом вызове этого кода делаешь лишнюю работу
Дима
Если тебе это так важно, то можешь сделать упоминание в jsDoc метода