Илья Климов - «Строгий» JavaScript: типы против реальности

  Рет қаралды 37,028

HolyJS

HolyJS

6 жыл бұрын

Ближайшая конференция - HolyJS 2024 Autumn, 7 ноября (Online), 14-15 ноября, Санкт-Петербург
- -
. . Строгая типизация: серебряная пуля или маркетинговый ход? Этот доклад - история о том, как небольшая компания год писала «типизированный JS» и что из этого вышло. Личный опыт войны с типизацией, какие проблемы возникли на пути «перехода», какую ценность (и с позиции разработки, и с позиции бизнеса) это принесло, и когда стоит об этом беспокоиться.
В докладе немного затронем TypeScript (в основном отвечая на вопрос «почему не он») и сконцентрируемся вокруг FlowType и его экосистемы - чтобы понять, «зачем нам еще один TypeScript», куда движется сообщество «типизаторов» и зачем к нему присоединяться.

Пікірлер: 47
@markrihter98
@markrihter98 4 жыл бұрын
Господи, что случилось с человеком на 47:51?
@yurikaradzhov5202
@yurikaradzhov5202 4 жыл бұрын
Сыграл в Траволту
@serhii.chernenko
@serhii.chernenko 3 жыл бұрын
ахахахахахах
@jaypacsky
@jaypacsky Жыл бұрын
Он воюет в Украине
@axea4554
@axea4554 3 жыл бұрын
2017: 45:44 2020 (почти 2021): Facebook не переписал весь фронтенд на Reason
@sergey5758
@sergey5758 3 жыл бұрын
35:17 разве там не шаблонная функция? разве не надо было написать promisify(track) и тогда Input и Output был бы определен?
@warlokfergan2545
@warlokfergan2545 10 ай бұрын
Боже клоун, ну иди в своем проекте это делай
@sceptic571
@sceptic571 3 ай бұрын
Я, конечно, нуб. Просто хочу сказать, что эти все умные люди делают жизнь больнее своими удобными изобретениями. Запутали просто до краю.
@LuckyStar1457
@LuckyStar1457 3 жыл бұрын
Шел 2021 год. Строгая типизация все еще не победила. Возможно строгое заявление "Все понимают необходимость строгой типизации" не такое уж и строгое? Есть разные ситуации.
@isfland
@isfland 3 жыл бұрын
Теперь понятно почему Илья закрыл свою компанию и ушел в gitlab. Выбрал маргинальный Flow вместо перспективного TS
@szt1980
@szt1980 3 жыл бұрын
200 метров жабаскрипта грузят текста 300 байт...
@jaypacsky
@jaypacsky Жыл бұрын
Он герой Харькова
@tvortsa
@tvortsa 3 жыл бұрын
Парнишка няшка конечно, но лично для себя вывода два: 1. Не возвращаться в ООП и статику хоть Дарт, хоть флоу хоть TS там как и в джаве 20 лет назад все те же три сосны на которых проще повеситься чем найти адекватное решение. 2. Не связываться с легаси и аутсорсом даже от Майкрософт ) В NPM CDN мегатонны разрозненного JS кода и как-то все это умудряется взаимоиспользоваться пусть и с танцами с бубном но всетаки менее затратными по времени чем вечные спотыки в ООП статике Поделюсь и своим евангелием на этот счет: ООП и объектная модель это не для прототипирования, вы "отливаете" в "чугуне" ООП то что собралось на войну и надолго. Но в миное время на конкурентном рынке творческого общества ООПу место чисто утилитарное, гдето в ДОМ и т.п. базовых структурах но не в реале повседневного кодинга конечных задач! ООП-щики конечно накидают сейчас, но обратите внимание на начало лекции? - "Строгая типизация это ого-го!" (мы правда не скажем ничего предметного но вы ведь и так понимаете что все эти обезьяны от процедурной функциональщины не настоящие кодеры) А я вот третий год живу практически без автоподстановки и о чудо вообще никак не испытываю неудобств! Тоесть ее как-то там можно было поднастроить, но все руки не доходили да так и не дошли. И кстати в 5 прошлых java-лет эта пресвятая автоподстановка не спасла, хоть и убедительно делала вид что может!
@isfland
@isfland 3 жыл бұрын
Мне кажется не стоит смешивать ООП и статическую типизацию. Можно писать на TS и без ООП
@euginekosenko2268
@euginekosenko2268 3 жыл бұрын
Перефразируя классиков, "js помогает элегантно решать проблемы, которые без js вообще бы не возникли" (с) Вначале выбираем неподходящую говнотехнологию, которая позволяет писать говнокод, потом тыкаем кучу костылей, которые помогают с этим жить. А потом долго и нужно размышляем, какой тип костылей круче всего.
@blt_r
@blt_r 2 жыл бұрын
"неподходящая говнотехнология"? это ты про JS? Подожди, а какая технология, по-твоему, подходящая для написания фронтэнда?
@VeloVetal
@VeloVetal Жыл бұрын
тоже самое можно сказа про похапэ
@sadr9189
@sadr9189 2 жыл бұрын
ты погубил свою репутацию !
@helga4778
@helga4778 2 жыл бұрын
Почему?
@user-pt9wq3iw6r
@user-pt9wq3iw6r 6 жыл бұрын
Решил запустить в песочнице пример с собаками и кошками (TS 2.7) Косяка, показанного в видео нет. Видимо, пофиксили в новой версии.
@yaroslavserhieiev3315
@yaroslavserhieiev3315 6 жыл бұрын
Не-а, пример все еще воспроизводится в 2.8: bit.ly/2JyBEJ5
@Nerossoul
@Nerossoul 5 жыл бұрын
Кто нибудь мне пояснит, почему 25:53 флоу молчит, мы же в функицю log() должны передавать строку, а передаем объект, а ошибки нет.
@dmanokhinj
@dmanokhinj 5 жыл бұрын
Мы и передаем строку id. Конструкция const { id } = entity; ложит в константу id параметер id из объекта entity. Как если бы мы написали const id = entity.id;
@kaifaty
@kaifaty 3 жыл бұрын
@@dmanokhinj Вообще странно что флоу здесь дает ошибку. Мы же как раз строку передаем. Какая разница измениться она или нет? В объекте останется в любом случае та же строка что и была.
@TheZloymedved
@TheZloymedved 3 жыл бұрын
@@kaifaty плюсую, тоже этого не понял
@UserSo4reUsu75ry
@UserSo4reUsu75ry 6 жыл бұрын
Нуба вопрос. Почему сразу не создавать массив Animal без присваивания ссылки массива Dogs ? Это же как ставить точку с запятой в конце. Просто делать сразу нормально. Что не так ?
@ecroFeGushKa
@ecroFeGushKa 5 жыл бұрын
Потому что парню захотелось профорсить Flow. В реальной жизни, такого рода проблемы с TS встречаются в 1 случае из тысячи.
@user-fh6xg9pn3y
@user-fh6xg9pn3y 5 жыл бұрын
Я так понял, он там просто объяснить хотел различия подходов. Та ситуация надумана и просто решается тем, что animals: Dog[] и вы не сможете добавлять туда кошек, либо по месту использования дописать аннотацию (... as Animal[]). Т.е. он пытается предъявлять претензии к *неявному* поведению TypeScript. И типа ему надо самому помогать и указывать более жесткие рамки)
@user-rq3ie3yv1y
@user-rq3ie3yv1y 5 жыл бұрын
@@ecroFeGushKa, Согласен, так никто не пишет. Решил поработать с нетипизированным массивом - отгребай)
@user-ue8bh7tj5k
@user-ue8bh7tj5k 2 жыл бұрын
@@ecroFeGushKa уф, спасибо твоему каналу. В один момент моей жизни помог понять редакс
@alexozhigin8675
@alexozhigin8675 6 жыл бұрын
парень просто разорвал Ахуенный доклад
@user-pi7qi9fx7q
@user-pi7qi9fx7q 4 жыл бұрын
а какой шрифт в редакторе?
@user-ye8zh3ep7m
@user-ye8zh3ep7m 4 жыл бұрын
Какой удобный автору - логично
@StanislavK1
@StanislavK1 4 жыл бұрын
Это платный какой-то, он говорил на трансляции.
@vladgorea7215
@vladgorea7215 2 жыл бұрын
похож на Pragmata Pro
@x0r1k
@x0r1k 5 жыл бұрын
Во flow написал тип, в ts не написал, и тайпскрипт кривой, ага
@Vlad-ur7ec
@Vlad-ur7ec Жыл бұрын
18:34
@TheJeronimotion
@TheJeronimotion 6 жыл бұрын
Докладчик не умеет в ковариантность\контрвариантость. В первом сравнении с собаками и кошками Флоу отвалится на той же строчке, если убрать все что под ней. И причина здесь вовсе не каком-то там лютом графе вывода типа.
@shdiev
@shdiev 5 жыл бұрын
Почему докладчики так любят вот это "Поднимите руки кто ...? А теперь поднимите руки кто ....? Ага, понятно..." Сомневаюсь что докладчик по этой статистике будет менять презентацию или объем информации, которую подает.
@user-fo5qu5rc2k
@user-fo5qu5rc2k 4 жыл бұрын
Это вовлечение аудитории. Так люди лучше воспринимают и запоминают материал.
@isfland
@isfland 3 жыл бұрын
Вполне можно поменять структуру доклада на ходу. Если никто не поднимет руку на вопросе "кто пишет на TS", то можно больше времени посвятить вводной части о предмете доклада.
@jaypacsky
@jaypacsky Жыл бұрын
Он сейчас защищает Харьков
@KostiaBazrov
@KostiaBazrov 5 жыл бұрын
где мой JavaScript7
@olegshestakov9579
@olegshestakov9579 6 жыл бұрын
(Субъективное мнение) Мда, сказали о Dart, как о отдельном языке и что там уже все давно реализовано, но применять его мы не будем, а будем мы применять Reason. Безумное JS коммьюнити.
@plasticine6712
@plasticine6712 6 жыл бұрын
Это ведь объясняется тем, что найти программиста, который будет писать на дарте гораздо сложнее.
@sobchenyuk
@sobchenyuk 6 жыл бұрын
Хватит употреблять словосочетание ВОФЛОУ
Андрей Мелихов - V8 под капотом
59:57
Как быстро замутить ЭлектроСамокат
00:59
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 6 МЛН
Omega Boy Past 3 #funny #viral #comedy
00:22
CRAZY GREAPA
Рет қаралды 24 МЛН
ELE QUEBROU A TAÇA DE FUTEBOL
00:45
Matheus Kriwat
Рет қаралды 15 МЛН
How I prepare to meet the brothers Mbappé.. 🙈 @KylianMbappe
00:17
Celine Dept
Рет қаралды 50 МЛН
TypeScript - Быстрый Курс за 70 минут
1:08:00
Владилен Минин
Рет қаралды 620 М.
Вселенная и Специальная теория относительности.
3:51:36
ЗЛОЙ АНАЛИТИК ВСЕЛЕННОЙ.
Рет қаралды 6 МЛН
iPhone 15 Pro vs Samsung s24🤣 #shorts
0:10
Tech Tonics
Рет қаралды 9 МЛН
XL-Power Best For Audio Call 📞 Mobile 📱
0:42
Tech Official
Рет қаралды 772 М.
What percentage of charge is on your phone now? #entertainment
0:14
3D printed Nintendo Switch Game Carousel
0:14
Bambu Lab
Рет қаралды 4,6 МЛН