[Разработка веб-сайтов, PHP] Что не так с трейтами?
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Кажется, стоит просто сказать «трейты» — и начнется холивар. Мы уже случайно начали один пару недель назад. А затем решили разобраться. Что это в большей степени? Способ снизить дублирования кода. Быстрый способ внедрить функциональность. Дефолтная реализация интерфейса. Или древнее зло?
Рассмотрим с примерами — в эту среду вечером на ютубе. А ниже можно ознакомиться с позициями участников трансляции.
Как все будет. Мы устроим что-то близкое к дебатам: серия раундов, оппоненты, модератор. И голосование за приглянувшуюся вам позицию.
Валентин Удальцов (автор канала «Пых») выступит ярым противником трейтов. Роман Пронский (PHP-Дайджест) — ведущим. Ну а остальные ребята будут защищать доброе имя трейтов.
Кирилл Несмеянов, developer advocate в SpiralScout, член программного комитета PHP Russia
— Что не так с трейтами?
— Да всё с ними «так»: это инструмент — применяй правильно. Забивать гвозди микроскопом — много ума не надо. Проблема в тех, кто пытается запихнуть их туда, куда не следует, а потом такие: «Да ну это всё, пойду лучше во фронтенд».
— Почему тебе интересно поговорить об этом?
— Потому что не все понимают, для какого круга задач были придуманы трейты. Почему-то их обычно считают средством физической нарезки классов. Пора это прекращать!
— Сможет ли 2-часовой онлайн заставить тебя поменять свою позицию?
— Нет.
Сергей Жук, тимлид в Skyeng, ведущий подкаста «Между Скобок»
— Что не так с трейтами?
— Как и любой инструмент, трейт должен быть в арсенале разработчика. Но стоит использовать его правильно: например, для шаринга каких-то методов-хелперов между несвязанными классами в библиотеках, где мы хотим дать пользователям возможность расширять функционал без наследования или DI.
Конечно трейты могут стать «leaky». И чтобы не выстрелить себе в ногу, я для себя выделил три правила:
- Для любого трейта должен быть соответствующий интерфейс.
- Трейт должен быть полностью самодостаточным: всё, что он использует, должно быть объявлено внутри него самого.
- Трейты должны быть как можно меньше. В идеале один метод — один трейт.
— Почему тебе интересно поговорить об этом?
— Многие разработчики категорически против этой возможности PHP. Было бы интересно поспорить с ними. Пока для меня это выглядит как: «Я попробовал git rebase -> испортил себе репозиторий -> git rebase зло».
— Сможет ли 2-часовой онлайн заставить тебя поменять свою позицию?
— Да.
Иван Лещев, разработчик в BotHelp.io
— Что не так с трейтами?
— Все ок, просто кто-то не умеет их правильно готовить.
— Почему тебе интересно поговорить об этом?
— Интересно посмотреть на примеры хорошего и плохого дизайна.
— Сможет ли 2-часовой онлайн заставить тебя поменять свою позицию?
— Скорее нет, чем да.
Александр Дубовской, технический директор в Radon, активный участник Drupal-сообщества
— Что не так с трейтами?
— Всё так. Просто это молоток, которым вполне можно и по пальцу ударить.
Холивар тянется как минимум со статьи Энтони Феррара 2011 года Are traits the new eval. Но тогда было мало красивых примеров, за которыми сейчас можно легко сходить в Symfony-компоненты. Тот же LockableTrait жутко удобен и понятен зачем и почему)
— Почему тебе интересно поговорить об этом?
— Любые архитектурные споры — это интересно. Как минимум, услышишь свежие точки зрения и узнаешь, что еще почитать.
— Сможет ли 2-часовой онлайн заставить тебя поменять свою позицию?
— Нет.
p.s.
Никита Попов: Трейты не люблю особо. Я участвую в разработке с PHP 5.5, а их добавили в 5.4. Если бы я тогда был, их бы точно не добавили.
p.p.s. Если есть отличная история, как трейты всех спасли или испортили, пожалуйста, расскажите ее на стриме 23 декабря. И в любом случае — подключайтесь.
===========
Источник:
habr.com
===========
Похожие новости:
- [Разработка веб-сайтов, CSS, JavaScript, Программирование, HTML] С чего начать разработку приложения
- [Разработка веб-сайтов, JavaScript] Cloudflare представила сервис Pages для статичных сайтов JAMstack
- [Разработка веб-сайтов, .NET, HTML, Angular, Визуализация данных] Rich text editors from backend perspective
- [Разработка веб-сайтов, Машинное обучение, Карьера в IT-индустрии, IT-компании] Как мы в ПИК-Брокер оцениваем квартиры через «цифру»
- [Разработка веб-сайтов, JavaScript, Программирование, ReactJS] Итерируемые объекты и итераторы: углублённое руководство по JavaScript (перевод)
- [Разработка веб-сайтов, JavaScript, Программирование] Новые возможности ES2021 / ES12 (перевод)
- [PHP, Программирование, Интервью] Занятное мини-интервью с основными контрибьюторами PHP 8
- [Разработка веб-сайтов, CSS, API, Браузеры] До свидания, Google Fonts. Последний аргумент
- [Разработка веб-сайтов] Статический генератор сайтов Hugo. Фронтенд реалии
- [Разработка веб-сайтов, JavaScript, Программирование] JavaScript за 60 секунд: работаем с картой (Geolocation API, Leaflet.js, Nominatim)
Теги для поиска: #_razrabotka_vebsajtov (Разработка веб-сайтов), #_php, #_trait, #_traits, #_trejty (трейты), #_onlajnmitap_po_php (онлайн-митап по php), #_blog_kompanii_skyeng (
Блог компании Skyeng
), #_razrabotka_vebsajtov (
Разработка веб-сайтов
), #_php
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 15:19
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Кажется, стоит просто сказать «трейты» — и начнется холивар. Мы уже случайно начали один пару недель назад. А затем решили разобраться. Что это в большей степени? Способ снизить дублирования кода. Быстрый способ внедрить функциональность. Дефолтная реализация интерфейса. Или древнее зло? Рассмотрим с примерами — в эту среду вечером на ютубе. А ниже можно ознакомиться с позициями участников трансляции. Как все будет. Мы устроим что-то близкое к дебатам: серия раундов, оппоненты, модератор. И голосование за приглянувшуюся вам позицию. Валентин Удальцов (автор канала «Пых») выступит ярым противником трейтов. Роман Пронский (PHP-Дайджест) — ведущим. Ну а остальные ребята будут защищать доброе имя трейтов. Кирилл Несмеянов, developer advocate в SpiralScout, член программного комитета PHP Russia — Что не так с трейтами? — Да всё с ними «так»: это инструмент — применяй правильно. Забивать гвозди микроскопом — много ума не надо. Проблема в тех, кто пытается запихнуть их туда, куда не следует, а потом такие: «Да ну это всё, пойду лучше во фронтенд». — Почему тебе интересно поговорить об этом? — Потому что не все понимают, для какого круга задач были придуманы трейты. Почему-то их обычно считают средством физической нарезки классов. Пора это прекращать! — Сможет ли 2-часовой онлайн заставить тебя поменять свою позицию? — Нет. Сергей Жук, тимлид в Skyeng, ведущий подкаста «Между Скобок» — Что не так с трейтами? — Как и любой инструмент, трейт должен быть в арсенале разработчика. Но стоит использовать его правильно: например, для шаринга каких-то методов-хелперов между несвязанными классами в библиотеках, где мы хотим дать пользователям возможность расширять функционал без наследования или DI. Конечно трейты могут стать «leaky». И чтобы не выстрелить себе в ногу, я для себя выделил три правила:
— Почему тебе интересно поговорить об этом? — Многие разработчики категорически против этой возможности PHP. Было бы интересно поспорить с ними. Пока для меня это выглядит как: «Я попробовал git rebase -> испортил себе репозиторий -> git rebase зло». — Сможет ли 2-часовой онлайн заставить тебя поменять свою позицию? — Да. Иван Лещев, разработчик в BotHelp.io — Что не так с трейтами? — Все ок, просто кто-то не умеет их правильно готовить. — Почему тебе интересно поговорить об этом? — Интересно посмотреть на примеры хорошего и плохого дизайна. — Сможет ли 2-часовой онлайн заставить тебя поменять свою позицию? — Скорее нет, чем да. Александр Дубовской, технический директор в Radon, активный участник Drupal-сообщества — Что не так с трейтами? — Всё так. Просто это молоток, которым вполне можно и по пальцу ударить. Холивар тянется как минимум со статьи Энтони Феррара 2011 года Are traits the new eval. Но тогда было мало красивых примеров, за которыми сейчас можно легко сходить в Symfony-компоненты. Тот же LockableTrait жутко удобен и понятен зачем и почему) — Почему тебе интересно поговорить об этом? — Любые архитектурные споры — это интересно. Как минимум, услышишь свежие точки зрения и узнаешь, что еще почитать. — Сможет ли 2-часовой онлайн заставить тебя поменять свою позицию? — Нет. p.s. Никита Попов: Трейты не люблю особо. Я участвую в разработке с PHP 5.5, а их добавили в 5.4. Если бы я тогда был, их бы точно не добавили.
p.p.s. Если есть отличная история, как трейты всех спасли или испортили, пожалуйста, расскажите ее на стриме 23 декабря. И в любом случае — подключайтесь. =========== Источник: habr.com =========== Похожие новости:
Блог компании Skyeng ), #_razrabotka_vebsajtov ( Разработка веб-сайтов ), #_php |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 15:19
Часовой пояс: UTC + 5