
Dreamerinnoise
16.09.2016
18:08:10
Насколько она актуальна?
С новыми асинк авейтами
Или она про другое?

Vladimir
16.09.2016
18:09:33
Она неактуальна

Google

Vladimir
16.09.2016
18:09:37
Забудьте её

KlonD90
16.09.2016
18:10:00
ох вы про этот async
как страшный сон

Dreamerinnoise
16.09.2016
18:32:47
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Generator_comprehensions
что это? этого ведь нет в стандарте?
а, это вообще из 1.8

Vladimir
16.09.2016
18:35:48

KlonD90
16.09.2016
18:37:38

Никита
16.09.2016
18:57:49
Ну, некоторые штуки вообще полезно знать. В исходники для этого, правда, лезть необязательно.
http://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html полезная.
Например.

Vladimir
16.09.2016
19:05:22
> @ChALkeR
В исходники для этого, правда, лезть необязательно.
просто неэффективно
может быть разве что местами с комментариями, которых немного

Никита
16.09.2016
19:51:30
Надо репозиторий на гитхабе под нацпол завести.

Google

Роман
16.09.2016
20:10:41

Wilfred
16.09.2016
20:12:20

Роман
16.09.2016
20:13:32

Котяй Негодяй
16.09.2016
20:27:19
Если я передаю экземпляр одного класса в качестве аргумента конструктора второго класса и сохраняю его в виде свойства экземпляра второго, это будет считаться реализацией dependency injection?

Дмитрий
16.09.2016
20:28:46
Ну с какой то стороны да

Vladimir
16.09.2016
20:29:47
> @bigslycat
это будет считаться реализацией dependency injection
А какая разница?

Дмитрий
16.09.2016
20:30:46
Я кстати так и делал, когда надо было управлять зависимостями

Котяй Негодяй
16.09.2016
20:30:51
Ну, на самом деле, меня волнует не столько соответствие паттернам, сколько реальная несвязанность кода.

Дмитрий
16.09.2016
20:31:43

Котяй Негодяй
16.09.2016
20:32:22

Vladimir
16.09.2016
20:32:46
Ну да, это и есть dependency injection

Котяй Негодяй
16.09.2016
20:33:26
Я просто узнал о термине и решил ознакомиться с паттернами вокруг него — вдруг я делаю что-то не так, или упустил какой-то интересный подход.

Дмитрий
16.09.2016
20:35:17

Vladimir
16.09.2016
20:35:47
Много бойлерплейта, но в целом хорошо
Тестировать становится все очень просто

Котяй Негодяй
16.09.2016
20:37:16
А ещё. Парится ли кто-нибудь о реализации приватных методов/свойств?

Vladimir
16.09.2016
20:41:27
нет

Котяй Негодяй
16.09.2016
20:43:58
Нормальная ли практика:
1. Большое количество методов в классе?
2. Вынос методов в отдельные файлы с последующим подключением к MyClass.prototype?

Google

Дмитрий
16.09.2016
20:45:56
Без второго хотелось бы обойтись. Просто выделяй смежную, но отдельную сущность

Roman
16.09.2016
20:46:26
Я бы не стал так делать. По мне - неудобно поддерживать, неявно.
+ допустим ты захочешь перейти на es6 классы, это дополнительное усложнение для перехода

Котяй Негодяй
16.09.2016
20:47:28
Эм... Ничего сложного.

Дмитрий
16.09.2016
20:47:39
Нуу хз

Котяй Негодяй
16.09.2016
20:48:09
class MyClass {}
MyClass.prototype.myMethod = ...

Дмитрий
16.09.2016
20:48:19
Неа

Roman
16.09.2016
20:48:19
вопрос, а зачем так делать? Даже с точки зрения работы с кодом - чтобы посмотреть реализацию нужно все время скакать по файлам.
Это не ES6 классы

Котяй Негодяй
16.09.2016
20:48:31
Эм... ?

Дмитрий
16.09.2016
20:48:42
И это и плохо

Roman
16.09.2016
20:48:57
это может работать в зависимости от реализации траншпилера

Дмитрий
16.09.2016
20:49:07
Это не "переезд" тогда вообще)
Как реализовывал через прототипы, так и продолжаешь)

Roman
16.09.2016
20:49:36
в голове вертится вопрос "а зачем так делать?"

Дмитрий
16.09.2016
20:49:42
++

Котяй Негодяй
16.09.2016
20:49:44
А, ну, в общем, да.

Vladimir
16.09.2016
20:49:46
Это работает, но это не повод

Котяй Негодяй
16.09.2016
20:49:52
=)

Google

Котяй Негодяй
16.09.2016
20:50:09
Писать классы меньше, но больше сущностей?

Дмитрий
16.09.2016
20:50:30
Static методы

Roman
16.09.2016
20:50:35
на TS ты тоже без объединения в файл переехать не сможет нормально, например

Котяй Негодяй
16.09.2016
20:50:52
А что статик методы?

Roman
16.09.2016
20:50:52
Фаулер завещал больше маленьких сущностей
=)

Дмитрий
16.09.2016
20:50:58
И больше сущностей, да, почему нет
Один метод на весь класс

Roman
16.09.2016
20:52:44
class Foo { static staticMethod() {.. } private method() { Foo.staticMethod(); .. }

Admin
ERROR: S client not available

Roman
16.09.2016
20:53:43
кстати никто не смотрел, статические методы дают прирост производительности?
я просто не смотрел как они траншпилятся в том же TS..

Дмитрий
16.09.2016
20:55:09
Естественно, если в каждом экземпляре по методу, то памяти будет есть больше

Roman
16.09.2016
20:56:19
в каком случае будет в каждом экземпляре по методу?

Дмитрий
16.09.2016
20:56:38
Ну когда не static

Котяй Негодяй
16.09.2016
20:56:48
Неа.

Roman
16.09.2016
20:56:53
ну тогда же он берет по ссылке из прототипа всегда

Котяй Негодяй
16.09.2016
20:56:58
Прототипы остаются прототипами.

Google

Дмитрий
16.09.2016
20:57:16
А контекст?

Котяй Негодяй
16.09.2016
20:57:21
Классы — это просто сахар же.

Roman
16.09.2016
20:57:28
это задача JS уже

Котяй Негодяй
16.09.2016
20:57:39
Да всё так же, как с прототипами.

Roman
16.09.2016
20:57:47
или я что-то не знаю о JS? oO

Котяй Негодяй
16.09.2016
20:58:00
По сути, механизм не поменялся.

Paul
16.09.2016
20:59:27

Roman
16.09.2016
20:59:39
давно не игрался с такими вещами но, var foo = function() { console.log(this) }; b = { a: 1, foo: foo }; b.foo()
вернет b
контекст будет всегда объекта от котого ф-я исполняется
без bind

Дмитрий
16.09.2016
21:00:18
Да

Roman
16.09.2016
21:00:46

Котяй Негодяй
16.09.2016
21:00:49
function Class1() {}
Class1.staticMethod = function() {};
Class1.prototype.method = function() {};
class Class2 {
static staticMethod() {}
method() {}
}
Одно и то же.

Дмитрий
16.09.2016
21:01:14
Кэп ?

Vladimir
16.09.2016
21:01:27
> @bigslycat
Одно и то же.
почти

Котяй Негодяй
16.09.2016
21:01:35
В чём отличия?

Roman
16.09.2016
21:01:38
вторая запись мне нравится больше определенно)

Котяй Негодяй
16.09.2016
21:01:45
Ну, это да.

Vladimir
16.09.2016
21:01:55

Котяй Негодяй
16.09.2016
21:02:28