Кто сказал «кря»?

IT и разработка 25.08.2026 · 👁 956 просмотров
❓ Кто сказал «кря»? В программировании часто важно, чтобы объекты относились к совместимым типам, например, наследовали один класс или реализовывали один интерфейс. А что, если нам не так важно, что это за объект, главное – чтобы он умел делать то, что от него нужно? Это и есть идея утиной типизации (Duck typing) . 🪿 Утиная типизация – это подход, при котором тип объекта не проверяется явно. Если у него есть нужные методы и свойства – его можно использовать. 🪿 То есть, если нам нужно, чтобы объект умел плавать и крякать, мы просто вызываем методы swim() и quack() . Если объект крякает – для нас он утка. Ну а почему типизация именно утиная ? Термин пошёл от английского выражения «утиный тест» (duck test). Его суть хорошо передаёт известная фраза: «Если что-то выглядит как утка, плавает как утка и крякает как утка, то это, скорее всего, утка» . 💛 В программировании логика примерно такая же. Не обязательно выяснять, что за объект перед нами, если он умеет делать то, что от него требуется – с ним можно работать. Утиная типизация особенно характерна для языков с динамической типизацией: Python, JavaScript, Ruby, PHP . Почему её используют? ➕ код получается гибче и универсальнее ➕ меньше лишних зависимостей и проверок типов ➕ хорошо подходит для прототипирования и скриптов А в чём подвох? ➖ часть ошибок может обнаружиться только во время выполнения ➖ не всегда очевидно, что именно должен уметь объект ➖ в большом проекте такие неявные зависимости бывает сложнее поддерживать Утиная типизация даёт свободу, но требует внимательности. Главное – не то, кем объект себя называет, а то, что он умеет. Хотя иногда всё-таки стоит проверить, точно ли перед вами утка. Как говорится, доверяй, но проверяй 😈 #ЛАНИТ_учит 🍀 ЛАНИТ ищет в ВК и в МАХ
Откликнуться в Telegram →

⚠️ Никогда не платите «за оформление» или «гарантию трудоустройства» — это признак мошенников. Работа ТРУ не несёт ответственности за содержание вакансии.

🇮🇱 Не нашли подходящую зарплату? В Израиле платят от $3000 Без языка и опыта · жильё и легализация под ключ · официально Смотреть вакансии →