@typescript_ru

Страница 575 из 669
Jack
11.04.2018
09:54:15
Google
Artur
11.04.2018
09:54:46
классные аргументы, да?

Jack
11.04.2018
09:55:45
Не позорьте себя, Реакт ништяк
Даа, вот когда будете написать огромные enterprise приложения на реакте, тогда я буду сочувствовать

Евгений
11.04.2018
09:56:11
классные аргументы, да?
Насколько известно тинькофф с ангуляржс мигрирует ангуляр 2+, вот это аргумент

Jack
11.04.2018
09:56:23
Уже пишем megaplan.ru
Тогда сочувствую

Aleksey
11.04.2018
09:56:28
классные аргументы, да?
Когда я слышу слово аргумент то представляю ругающихся ментов

Artur
11.04.2018
09:56:29
Тогда сочувствую
Не требуется, нам хорошо

Jack
11.04.2018
09:57:46
А на самом деле angular + redux, вот это вещь

andretshurotshka?❄️кде
11.04.2018
09:57:48
5

Евгений
11.04.2018
09:57:49
Дмитрий
11.04.2018
09:57:57
Artur
11.04.2018
09:58:09
Уже ангуляр 4+
Речь про интернет банк?

Google
Дмитрий
11.04.2018
09:58:53
Ч. т. д.
Что это доказывает?)

Речь про интернет банк?
про ИБ для бизнеса

и некоторые внутренние проекты

про ИБ для бизнеса
вот они, кстати, как раз «переписывали». форкнули старый ИБ для физлиц и переписывают его на новый ангуляр

Слушай, ну я больше про то, что "переписать" и "написать с нуля" - практически синонимы
По моему мнению, «переписывать» - это постепенный процесс, когда в условно новом продукте используются части старого. В случае с tinkoff.ru такого не было, она писалась с нуля =)

В теории с ангуляра на реакт можно «переписывать», если проект грамотно написан и бизнес логика в целом не сильно зависит от платформы Но если проект грамотно написан, зачем переписывать?)

Дмитрий
11.04.2018
10:11:52
Есть специальный отдел задача которого все переписывать
ага, «отдел веб-разработки» называется

InoY
11.04.2018
10:11:54
Так, товарищи фронтедеры, скажите мне пожалуйста, что нужно знать ньюфагу, чтобы сбацать проект на Тайпскрипте и Реакте (при условии, что я уже знаю и умею в реакт)?

Дмитрий
11.04.2018
10:11:58
каждые 6 недель переписываем

Aleksey
11.04.2018
10:12:27
Дмитрий
11.04.2018
10:12:55
Aleksey
11.04.2018
10:13:16
._.
Вот же ш

Max
11.04.2018
10:17:46
а… ну глубокое наследование это в принципе нехорошо ни где
Не соглашусь, после того как я понял главный профит наследования я теперь считаю наследование круче композиции (а множественное наследование еще лучше) При композиции каждое переопределение какого-то поведения требует создать объект. В итоге если у нас цепочка из 10 переопределений (например 10 хокков на реакт-компоненте) то на списке из тысячу объектов будет создано в сумме 10 тысяч объектов - а это тратится сpu на создание объектов, тратится в n раз больше памяти, и главное тратится в время на сборку всех этих объектов сборщиком мусора потом. Причем для хокков реакт-компонентов это не только время на создание объектов - это еще время на увеличения diff-а при рендере из-за n-кратного увеличения количества компонентов. А при наследовании для тысячного списка будет только тысячу объектов в рантайме - то есть, сколько бы раз бы не наследовались и добавляли или переопределяли методы, сколько бы цепочек переопределений бы не строили - да хоть тысячу хокков - в рантайме будет создан только один объект а не в n-раз больше. То есть наследование это механизм который позволяет вынести очень много работы в compile-timе и после того как я это понял я теперь не понимаю людей которые говорят что композиция лучше наследования

Дмитрий
11.04.2018
10:18:28
Рип

Даже пояснять ничего не нужно )

Max
11.04.2018
10:25:19
Ну дык, а что я неправ? Композиция явно хуже по производительности чем наследование

Max
11.04.2018
10:26:33
в 99% кейсов это похуй

что будет 10 обьектов а не один

а те кто попадают в 1% уже начинают решать эти проблемы сами

Google
Max
11.04.2018
10:54:27
С реакт-компонентами там будет далеко не 1 процент. Реакт в рендер-методе на каждый перерендер создает новые объекты и цепочка из 10 хокков выльется в создании 10 объектов вместо одного и потом diff-а десяти компонентов вместо одного. И для списка из тысячу таких компонентов разница думаю будет заметна

Max
11.04.2018
10:57:25
++

Олег
11.04.2018
10:58:15
Игорь
11.04.2018
11:01:08
Ну вцелом я с Богданом согласен. Ну наследоваться по разному можно... Главное делать это с умом

Max
11.04.2018
11:12:25
чувак, удачи тебе с разгребанием адовой лапши из реакт-компонентов, наследующихся друг от друга
А в каких случаях это будет адовая лапша? Чем кардинально отличается такой хокк с наследованием functon withProps(Component, props){ return class extends Component { static defaultProps = { ...(Component.defaultProps || {}), ...props } } }от такого хокка с композицией functon withProps(Component, props){ return class extends React.Component { render(){ return <Component {...props}/> } } }? И там и там хокки, только с композицией каждый хокк приводит к созданию еще одного объекта в рендере, дополнительного диффа в новом компоненте реактом и еще одной ступеньке в лесенке компонентов в девтулзах а с наследованием нет

Дмитрий
11.04.2018
11:14:17
Ах, если бы всё было так просто

На практике у тебя будет гора миксинов, конфликты имен, неявные зависимости, ад и израиль

Дмитрий
11.04.2018
11:24:58
anatolii
11.04.2018
11:26:00
Вы так спорите постоянно как буд-то композиция это замена наследования. Нет, это дополнительная возможность в архитектуре

В многих случаях их можно заменить друг другом, и там выбирает кто кому нравится, но в некоторых нет

Дмитрий
11.04.2018
12:50:26
Пока ваша дискуссия стихла повторю свой вопрос:
при условии, что уже знаешь реакт, остается только ТС выучить

и готово

Google
InoY
11.04.2018
12:50:45
Вай нот?

Дмитрий
11.04.2018
12:50:47
если без этого, то тайпинги не забыть поставить

на tsc не полагаться, бандлить вебпаком через awesome-typescript-loader

вопрос очень абстрактный у тебя

InoY
11.04.2018
12:51:48
и готово
Ну я спрашивал о вещах типа "бабель тебе уже не нужен будет" и, допустим, "настрой вебпак вот так" или "вебпак тоже выкинь" и т.п и т.д.

Дмитрий
11.04.2018
12:52:12
без вебпака не получится

InoY
11.04.2018
12:52:38
Ок, спасибо. Ещё что-нибудь?

Дмитрий
11.04.2018
12:52:38
даже если бы у тебя не было других ассетов кроме жс, всё равно не вышло бы по-человечески всё сделать

да больше не нужно ничего вроде

два лоадера есть, и awesome typescript loader вроде как побыстрее typescript loader

а вообще реально проще всего заюзать какой-нибудь из многочисленных реакт-тс стартер-китов

InoY
11.04.2018
12:54:01
То есть, теоретически я могу взть свой реакт стартер кит, прикрутить к нему лоадер и готово?

Дмитрий
11.04.2018
12:54:36
ну да

InoY
11.04.2018
12:54:47
Спасибо

Max
11.04.2018
13:57:19
Всем привет. Есть ли возможность запретить дочернему классу переопределять метод родительского?

Andrii
11.04.2018
14:01:29
Конечно

Посмотри так на него пронзительно

И пальцем «но-но-но!»

Andrey
11.04.2018
14:02:02
sealed или final почему-то не хотят добавлять, к сожалению :(

Google
Artur
11.04.2018
14:03:18
два лоадера есть, и awesome typescript loader вроде как побыстрее typescript loader
ts-loader (с опцией happyPackMode: true) + ForkTsCheckerWebpackPlugin (с подключенным tslint, что позволяет избавиться от tslint-loader) самый космос сейчас

В ts-loader недавно добавили ещё experimental watch api, но его пока не тестил, обещают ещё более ускорение

Max
11.04.2018
14:04:41
круто

надо попробовать

Andrey
11.04.2018
14:04:45
↑ Тру стори, самое быстрое решение по результатам моих тестов на нескольких проектах. Тслинт вообще иногда неюзабелен тслинт-лоудером (по полчаса работает)

Sergey
11.04.2018
14:05:12
а по flow тут тоже отвечают?

Artur
11.04.2018
14:06:25
ForkTsCheckerWebpackPlugin можно перевести в async режим и тогда бандл будет готов ещё до тайпчекинга, что удобно когда например только стили колбасишь

class SomeClass { method() { return this.other() } other() { return 123 } } const a = new SomeClass(); const method = a.method method() Такую лажу на TS как то можно отлавливать?

playground со всеми включенными галочками не ругается, а в рантайме ошибка

Andrey
11.04.2018
19:55:30
only-arrow-functions не решает случайно эту же проблему с другой стороны?

Max
11.04.2018
20:10:10
ребята, как сконвертить type A = 'a' | 'A'; в переменную рантайма const myA = ['a', 'b']?

Страница 575 из 669