Vladimir
может быть разве что местами с комментариями, которых немного
special agent
Timur
Забей на киты, они все не очень
А что тогда?) Просто в доках тыкать в модули и смотреть описания?)
special agent
А что тогда?) Просто в доках тыкать в модули и смотреть описания?)
Для нормального todo app на реакте и ноде нужен rest api, его в китах я не наблюдал Я тебе советую собрать свой кит под твои задачи из множества чужих
Anonymous
Если я передаю экземпляр одного класса в качестве аргумента конструктора второго класса и сохраняю его в виде свойства экземпляра второго, это будет считаться реализацией dependency injection?
Дима
Ну с какой то стороны да
Vladimir
> @bigslycat это будет считаться реализацией dependency injection А какая разница?
Дима
Я кстати так и делал, когда надо было управлять зависимостями
Anonymous
Ну, на самом деле, меня волнует не столько соответствие паттернам, сколько реальная несвязанность кода.
Anonymous
А в чём несвязанность?
Возможность взять и перенести какой-либо компонент приложения.
Vladimir
Ну да, это и есть dependency injection
Anonymous
Возможность взять и перенести какой-либо компонент приложения.
Это не всегда цель, но показатель. Если я добиваюсь этого условия, то мне потом намного проще поддерживать приложение.
Anonymous
Я просто узнал о термине и решил ознакомиться с паттернами вокруг него — вдруг я делаю что-то не так, или упустил какой-то интересный подход.
Дима
Возможность взять и перенести какой-либо компонент приложения.
Ну реализуй это как-то аккуратно) По моему сам по себе такой метод это не проблема
Vladimir
Много бойлерплейта, но в целом хорошо
Vladimir
Тестировать становится все очень просто
Anonymous
А ещё. Парится ли кто-нибудь о реализации приватных методов/свойств?
Vladimir
нет
Anonymous
Нормальная ли практика: 1. Большое количество методов в классе? 2. Вынос методов в отдельные файлы с последующим подключением к MyClass.prototype?
Дима
Без второго хотелось бы обойтись. Просто выделяй смежную, но отдельную сущность
Anonymous
Я бы не стал так делать. По мне - неудобно поддерживать, неявно.
Anonymous
+ допустим ты захочешь перейти на es6 классы, это дополнительное усложнение для перехода
Anonymous
Эм... Ничего сложного.
Дима
Нуу хз
Anonymous
class MyClass {} MyClass.prototype.myMethod = ...
Дима
Неа
Anonymous
вопрос, а зачем так делать? Даже с точки зрения работы с кодом - чтобы посмотреть реализацию нужно все время скакать по файлам.
Anonymous
Это не ES6 классы
Anonymous
Неа
Работает.
Anonymous
Эм... ?
Дима
И это и плохо
Anonymous
это может работать в зависимости от реализации траншпилера
Дима
Это не "переезд" тогда вообще)
Дима
Как реализовывал через прототипы, так и продолжаешь)
Anonymous
в голове вертится вопрос "а зачем так делать?"
Дима
++
Anonymous
А, ну, в общем, да.
Vladimir
Это работает, но это не повод
Anonymous
=)
Anonymous
Писать классы меньше, но больше сущностей?
Дима
Static методы
Anonymous
на TS ты тоже без объединения в файл переехать не сможет нормально, например
Anonymous
А что статик методы?
Anonymous
Фаулер завещал больше маленьких сущностей
Anonymous
=)
Дима
И больше сущностей, да, почему нет
Дима
А что статик методы?
Считай то, что ты и делал через прототипы
Дима
Один метод на весь класс
Anonymous
class Foo { static staticMethod() {.. } private method() { Foo.staticMethod(); .. }
Anonymous
кстати никто не смотрел, статические методы дают прирост производительности?
Anonymous
я просто не смотрел как они траншпилятся в том же TS..
Дима
кстати никто не смотрел, статические методы дают прирост производительности?
Разницы по идее никакой, если сравнивать с отдельно лежащим методом
Дима
Естественно, если в каждом экземпляре по методу, то памяти будет есть больше
Anonymous
в каком случае будет в каждом экземпляре по методу?
Дима
Ну когда не static
Anonymous
Неа.
Anonymous
ну тогда же он берет по ссылке из прототипа всегда
Anonymous
Прототипы остаются прототипами.
Дима
А контекст?
Anonymous
Классы — это просто сахар же.
Anonymous
это задача JS уже
Anonymous
Да всё так же, как с прототипами.
Anonymous
или я что-то не знаю о JS? oO
Anonymous
По сути, механизм не поменялся.
Loyd
Классы — это просто сахар же.
Расскажи это поменявшейся семантике оператора new
Anonymous
давно не игрался с такими вещами но, var foo = function() { console.log(this) }; b = { a: 1, foo: foo }; b.foo()
Anonymous
вернет b
Anonymous
контекст будет всегда объекта от котого ф-я исполняется
Anonymous
без bind
Дима
Да
Anonymous
Расскажи это поменявшейся семантике оператора new
Про это не слышал, где глянуть можно?
Anonymous
function Class1() {} Class1.staticMethod = function() {}; Class1.prototype.method = function() {}; class Class2 { static staticMethod() {} method() {} }
Anonymous
Одно и то же.
Дима
Кэп 😄
Vladimir
> @bigslycat Одно и то же. почти
Anonymous
В чём отличия?
Anonymous
вторая запись мне нравится больше определенно)