TGViewer
S0ER S0ER @softwareengineervlog · 10.4K subscribers
Post #1107 3.9K
Утиная типизация полна сюрпризов, ведь если что-то крякает как утка, плавает как утка, выглядит как утка - это еще совсем не значит, что перед нами утка. И мой любимый пример, когда утиная типизация дает сбой - клубника. Если что-то выглядит как ягода, пахнет как ягода, на вкус как ягода - это еще не означает, что перед нами ягода, так как клубника - это скорее орех, а если еще точнее, то "многоорех".

Утиная типизация - прекрасна для небольших приложений, прототипов и демонстраций. Но в серьезном проекте она рано или поздно приведет к ситуации "да что за хрень у нас тут получилась?".

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

Мне по кайфу писать на typescript, не потому что это лучший язык на планете, а потому что я могу сам принимать решение о том насколько жесткая система типов мне нужна.

Хорошим дополнением к строгой типизации является "вывод типов", например, алгоритм Хиндли-Милнере, когда мы не указываем явно типы, а они "магическим" образом выводятся из наших "утверждений" или "действий". И этот вариант тоже приятно использовать, но все же в этом случае тратится чуть больше мозготоплива.

Этим топиком я хочу сказать, что утиная типизация - это удобно, но ограничиваться только ей - неразумно. Нужно обязательно попробовать разные способы типизировать свои данные, чтобы выбрать тот который со вкусом "клубнички".
  • 👍 46
  • 👎 3
  • 🔥 3
  • 🤣 2
  • 😁 1
More from @softwareengineervlog
  1. Sep 3, 2026Google выпустила Gemini 3.8 Flash — новая быстрая модель уже обходит гигантов в кодинге. П…
  2. Sep 3, 2026Сейчас использую DeesSeek v4 Flash, на готовой кодовой базе решать стандартные таски из тр…
  3. Aug 6, 2026Полезное: разраб сделал интерактивный мануал, который по шагам показывает, что происходит…
  4. Aug 5, 2026Ты ненастоящий программист! Это происходит снова и снова, и каждый раз одинаково. Я начал…
  5. Jul 27, 2026Внимание, скам! Появился бот который выдает себя за бота моего канала. Я НИЧЕГО ЧЕРЕЗ БОТО…
  6. Jul 25, 2026У Сбера есть интересный whitepaper где он описывает технологию разработки продукта с помощ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →