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

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

Комментарии • 47

  • @axea4554
    @axea4554 3 года назад +21

    2017: 45:44
    2020 (почти 2021):
    Facebook не переписал весь фронтенд на Reason

  • @markrihter98
    @markrihter98 5 лет назад +64

    Господи, что случилось с человеком на 47:51?

  • @sergey5758
    @sergey5758 3 года назад

    35:17 разве там не шаблонная функция? разве не надо было написать promisify(track) и тогда Input и Output был бы определен?

    • @warlokfergan2545
      @warlokfergan2545 11 месяцев назад

      Боже клоун, ну иди в своем проекте это делай

  • @sceptic571
    @sceptic571 4 месяца назад

    Я, конечно, нуб. Просто хочу сказать, что эти все умные люди делают жизнь больнее своими удобными изобретениями. Запутали просто до краю.

  • @szt1980
    @szt1980 3 года назад +1

    200 метров жабаскрипта грузят текста 300 байт...

  • @jaypacsky
    @jaypacsky Год назад

    Он герой Харькова

  • @isfland
    @isfland 3 года назад +6

    Теперь понятно почему Илья закрыл свою компанию и ушел в gitlab.
    Выбрал маргинальный Flow вместо перспективного TS

  • @LuckyStar1457
    @LuckyStar1457 3 года назад +1

    Шел 2021 год. Строгая типизация все еще не победила. Возможно строгое заявление "Все понимают необходимость строгой типизации" не такое уж и строгое? Есть разные ситуации.

  • @tvortsa
    @tvortsa 4 года назад +2

    Парнишка няшка конечно, но лично для себя вывода два:
    1. Не возвращаться в ООП и статику хоть Дарт, хоть флоу хоть TS там как и в джаве 20 лет назад все те же три сосны на которых проще повеситься чем найти адекватное решение.
    2. Не связываться с легаси и аутсорсом даже от Майкрософт )
    В NPM CDN мегатонны разрозненного JS кода и как-то все это умудряется взаимоиспользоваться пусть и с танцами с бубном но всетаки менее затратными по времени чем вечные спотыки в ООП статике
    Поделюсь и своим евангелием на этот счет:
    ООП и объектная модель это не для прототипирования, вы "отливаете" в "чугуне" ООП то что собралось на войну и надолго.
    Но в миное время на конкурентном рынке творческого общества ООПу место чисто утилитарное, гдето в ДОМ и т.п. базовых структурах но не в реале повседневного кодинга конечных задач!
    ООП-щики конечно накидают сейчас, но обратите внимание на начало лекции? - "Строгая типизация это ого-го!" (мы правда не скажем ничего предметного но вы ведь и так понимаете что все эти обезьяны от процедурной функциональщины не настоящие кодеры)
    А я вот третий год живу практически без автоподстановки и о чудо вообще никак не испытываю неудобств!
    Тоесть ее как-то там можно было поднастроить, но все руки не доходили да так и не дошли. И кстати в 5 прошлых java-лет эта пресвятая автоподстановка не спасла, хоть и убедительно делала вид что может!

    • @isfland
      @isfland 3 года назад +4

      Мне кажется не стоит смешивать ООП и статическую типизацию. Можно писать на TS и без ООП

  • @euginekosenko2268
    @euginekosenko2268 3 года назад +1

    Перефразируя классиков, "js помогает элегантно решать проблемы, которые без js вообще бы не возникли" (с)
    Вначале выбираем неподходящую говнотехнологию, которая позволяет писать говнокод, потом тыкаем кучу костылей, которые помогают с этим жить. А потом долго и нужно размышляем, какой тип костылей круче всего.

    • @blt_r
      @blt_r 2 года назад +4

      "неподходящая говнотехнология"? это ты про JS? Подожди, а какая технология, по-твоему, подходящая для написания фронтэнда?

    • @VeloVetal
      @VeloVetal Год назад

      тоже самое можно сказа про похапэ

  • @sadr9189
    @sadr9189 2 года назад

    ты погубил свою репутацию !

  • @user-pt9wq3iw6r
    @user-pt9wq3iw6r 6 лет назад +5

    Решил запустить в песочнице пример с собаками и кошками (TS 2.7)
    Косяка, показанного в видео нет. Видимо, пофиксили в новой версии.

    • @yaroslavserhieiev3315
      @yaroslavserhieiev3315 6 лет назад

      Не-а, пример все еще воспроизводится в 2.8: bit.ly/2JyBEJ5

  • @alexozhigin8675
    @alexozhigin8675 7 лет назад +48

    парень просто разорвал
    Ахуенный доклад

  • @Nerossoul
    @Nerossoul 5 лет назад

    Кто нибудь мне пояснит, почему 25:53 флоу молчит, мы же в функицю log() должны передавать строку, а передаем объект, а ошибки нет.

    • @dmanokhinj
      @dmanokhinj 5 лет назад +1

      Мы и передаем строку id. Конструкция const { id } = entity; ложит в константу id параметер id из объекта entity. Как если бы мы написали const id = entity.id;

    • @kaifaty
      @kaifaty 3 года назад

      @@dmanokhinj Вообще странно что флоу здесь дает ошибку. Мы же как раз строку передаем. Какая разница измениться она или нет? В объекте останется в любом случае та же строка что и была.

    • @TheZloymedved
      @TheZloymedved 3 года назад

      @@kaifaty плюсую, тоже этого не понял

  • @x0r1k
    @x0r1k 5 лет назад +14

    Во flow написал тип, в ts не написал, и тайпскрипт кривой, ага

  • @UserSo4reUsu75ry
    @UserSo4reUsu75ry 6 лет назад +7

    Нуба вопрос. Почему сразу не создавать массив Animal без присваивания ссылки массива Dogs ? Это же как ставить точку с запятой в конце. Просто делать сразу нормально. Что не так ?

    • @ecroFeGushKa
      @ecroFeGushKa 6 лет назад +5

      Потому что парню захотелось профорсить Flow. В реальной жизни, такого рода проблемы с TS встречаются в 1 случае из тысячи.

    • @user-fh6xg9pn3y
      @user-fh6xg9pn3y 5 лет назад

      Я так понял, он там просто объяснить хотел различия подходов.
      Та ситуация надумана и просто решается тем, что animals: Dog[] и вы не сможете добавлять туда кошек, либо по месту использования дописать аннотацию (... as Animal[]).
      Т.е. он пытается предъявлять претензии к *неявному* поведению TypeScript. И типа ему надо самому помогать и указывать более жесткие рамки)

    • @user-rq3ie3yv1y
      @user-rq3ie3yv1y 5 лет назад

      @@ecroFeGushKa, Согласен, так никто не пишет. Решил поработать с нетипизированным массивом - отгребай)

    • @gerda-morozova
      @gerda-morozova 2 года назад

      @@ecroFeGushKa уф, спасибо твоему каналу. В один момент моей жизни помог понять редакс

  • @KostiaBazrov
    @KostiaBazrov 5 лет назад +1

    где мой JavaScript7

  • @user-pi7qi9fx7q
    @user-pi7qi9fx7q 4 года назад +1

    а какой шрифт в редакторе?

    • @user-ye8zh3ep7m
      @user-ye8zh3ep7m 4 года назад

      Какой удобный автору - логично

    • @StanislavK1
      @StanislavK1 4 года назад +1

      Это платный какой-то, он говорил на трансляции.

    • @vladgorea7215
      @vladgorea7215 2 года назад

      похож на Pragmata Pro

  • @shdiev
    @shdiev 5 лет назад +2

    Почему докладчики так любят вот это "Поднимите руки кто ...? А теперь поднимите руки кто ....? Ага, понятно..." Сомневаюсь что докладчик по этой статистике будет менять презентацию или объем информации, которую подает.

    • @user-fo5qu5rc2k
      @user-fo5qu5rc2k 4 года назад +6

      Это вовлечение аудитории. Так люди лучше воспринимают и запоминают материал.

    • @isfland
      @isfland 3 года назад +1

      Вполне можно поменять структуру доклада на ходу. Если никто не поднимет руку на вопросе "кто пишет на TS", то можно больше времени посвятить вводной части о предмете доклада.

    • @jaypacsky
      @jaypacsky Год назад

      Он сейчас защищает Харьков

  • @TheJeronimotion
    @TheJeronimotion 6 лет назад +9

    Докладчик не умеет в ковариантность\контрвариантость. В первом сравнении с собаками и кошками Флоу отвалится на той же строчке, если убрать все что под ней. И причина здесь вовсе не каком-то там лютом графе вывода типа.

  • @olegshestakov9579
    @olegshestakov9579 6 лет назад +6

    (Субъективное мнение) Мда, сказали о Dart, как о отдельном языке и что там уже все давно реализовано, но применять его мы не будем, а будем мы применять Reason. Безумное JS коммьюнити.

    • @plasticine6712
      @plasticine6712 6 лет назад +4

      Это ведь объясняется тем, что найти программиста, который будет писать на дарте гораздо сложнее.

  • @sobchenyuk
    @sobchenyuk 6 лет назад

    Хватит употреблять словосочетание ВОФЛОУ