TGViewer
Пятиминутка PHP Пятиминутка PHP @tg_5minphp · 2.8K subscribers
Post #827 831
Прочитал книгу «Элегантные объекты» Егора Бугаенко: http://amp.gs/6WRa

Автор описывает свой взгляд на «правильное ООП», даёт практические рекомендации и показывает наглядные примеры, итоговая цель которых — хорошо поддерживаемый код! Я полностью разделяю эту ценность: поддерживаемость — это одна из важнейших характеристик кода.

Например, из хорошо известных и зарекомендовавших себя практик, в книге описаны преимущества неизменяемых объектов, разделение на команды и запросы, понятные советы по именованию классов и методов, разделение больших классов на маленькие, более сфокусированные, тесты как документация, внедрение зависимостей и инверсия управления.

А также, чего следует избегать при написании поддерживаемого кода: недостатки моков, проблемы статических методов, классов-утилит и синглтонов, NPE ошибка и применение null vs optional vs пустой объект.

Кстати, интересный вопрос, над которым я раньше не думал: чем отличаются синглтоны и классы, целиком состоящие из статических методов? Синглтон в тестах можно подменить, если есть метод `setInstance()`.

Но есть много радикальных идей, которые вызывали у меня сопротивление и отрицание.

На сколько я понял, материал книги основан на блоге автора: http://amp.gs/6WRo. Зачастую, когда у меня возникал очередной вопрос-возражение, в конце главы я обнаруживал свой вопрос в виде вставленного комментария от одного из читателей блога и тут же ответ Егора. Удивительно, на сколько мои вопросы совпадали с приведёнными комментариями. К сожалению, ответы меня так и не убедили, многие вопросы остались. Чтобы лучше прояснить позицию Егора, думаю, стоит более глубоко изучить его блог, почитать комментарии, возможно влиться в тусовку в телеграме http://amp.gs/6WRM и http://amp.gs/6WRc.

В итоге, станет ли код более поддерживаемым, если писать ПОЛНОСТЬЮ по описанным рекомендациям? Книга меня не убедила. Но, по крайней мере, я получил удовольствие от чтения. Рекомендую.
More from @tg_5minphp
  1. Sep 10, 2026Пыхник’26 — целая неделя PHP! С 28 сентября по 2 октября пройдёт Пыхник’26 — онлайн-конфер…
  2. Jul 27, 2026Работа с Claude Code "в лоб": создай dynamic worflow, чтобы найти все баги, запиши их в BU…
  3. Jul 8, 2026Первый официальный State of PHP опрос открыт: https://jb.gg/php-survey-2026 В сообществе у…
  4. Jul 3, 2026Запустили краудфандинг!!! 11 сентября в Art Village под Москвой собираем небольшую PHP-кон…
  5. Jul 3, 2026Продано!
  6. Jun 20, 2026Помните я писал про затею от разработчиков модели Kimi - ставишь на какую-то футбольную ко…
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 →