Проблема именование классов

Yoskaldyr

"Спамер"
Партнер клуба
Иногда складывается впечатление, что некоторые живут в мире единорогов, а не в реальном мире.
если так получилось, что вы можете выбирать архитектуру с нуля и поддерживать этот проект на всех этапах его жизни, то могу только поздравить. но не у всех так. У обычных разработчиков в большинстве случаев это с точностью до наоборот, т.е. приходится жить в тем что есть. Единственные исключения, когда реально повезло или когда разработчик специализируется на этом. Это "гуру" которые приходят на старте проекта лобают "архитектуру", записывают в резюме и сваливают в другой стартап, на большую ставку. Главное свалить вовремя и "после меня хоть потоп" :)))

Но иногда нет возможности менять архитектуру проекта, иногда нет возможности выкинуть элоквент или другую подобную хрень (и это не потому что не хочется, а потому что найти разработчиков под популярные библиотеки тупо проще и дешевле), и когда использование Write Models находится в одном файле c использованием Read Models (таки да, они могут быть вместе, не часто, но довольно стабильно).

И кстати здесь на форуме просто обожают передергивать факты. Сразу почему-то уперлись в модели, но не всегда проблема с моделями - есть Entity, Service, Config, Option и т.д. и т.п. Модель это типичный пример, при использовании популярных библиотек/фреймфорков при написании кода по официальным гайдам. Т.е. надо понимать если разработчик фреймворка предоставляет какие-то гайды, то скорее всего большая часть разработчиков будет делать именно так. Неважно насколько это хорошо и плохо - это уже будет статистика и надо с этим как-то мириться.

Все программирование это поиск компромиссов и нет серебряной пули. Так вот эта тема как раз попытка обсуждения компромисса, а не серебрянной пули.

Просто я заметил что после введения неймспейсов именование классов превратилось в больший треш чем было до введения. Запихнуть в короткое имя класса практически полное имя/путь класса - это уже норма и печальная статистика.
Т.е. если раньше было Vendor_Super_Puper_Duper_Class, то сейчас будет \Vendor\Super\Puper\Duper\SuperPuperDuperClass. И разница при чтении кода не сильно большая между Vendor_Super_Puper_Duper_Class и SuperPuperDuperClass (одинаково уебищно смотрится). К тому же когда класс встречается разово (например в phpdoc-е), то выносить его в use тупо нет смысла и по полному имени \Vendor\Super\Puper\Duper\SuperPuperDuperClass это вообще треш с точки зрения читабельности.
И это придуманый пример наименования класса, в реальности все значительно печальнее (длинее и страшнее).

Практически никто не используется частичные use, да что говорить тупо нет инструментов в ide удобного их использования, хотя это могло бы решить проблему.

P.S. Все-таки интересно посмотреть на структуру реально большого проекта с большими bounded context, как там именуют и разбивают классы.
 

Adelf

Administrator
Команда форума
Меня не парят длинные имена классов. Читабельность важнее. IDE помогает с автокомплитом. Класс должен иметь такое имя, чтобы его без неймспейса было понятно что это за зверь. Если это не приватный класс какой-нибудь(хотя в пхп приватных классов и нет).

Больше парит суффикс Interface ) SuperPuperDuperClassInterface

Говно не трогать - оно и не воняет
Да для чтения нормально... чо. Оно красиво делает with, избавляя от N+1. Хотя чем дальше с лес, тем хуже с ним...
 

Yoskaldyr

"Спамер"
Партнер клуба
Да нет, просто смысл обсуждать костыли?
Просто все программирование основано на костылях. Тут вопрос в размере этих костылей и в том кто применяет их. Если это будет команда symfony, то даже самый адовый костыль становится популярной практикой.
 

Adelf

Administrator
Команда форума
Случайно нашел решение для тебя :)
Ставишь PHP Annotations plugin для шторма. И там есть настройка.

annotations.PNG
 

Yoskaldyr

"Спамер"
Партнер клуба
Спасибо, попробую как оно в работе.

Проблема в том что когда несколько разработчиков все должны одинаково настраивать.
 

fixxxer

К.О.
Партнер клуба
Ну это не особо и проблема, если не опенсорс какой.
У нас в вики лежит ман, как настраивать phpstorm, а у кого не phpstorm, тот идет в жопу.
 

Adelf

Administrator
Команда форума
Опрос на моем текущем проекте:
IDE usage:
VSCode 8
Sublime 5
PHPStorm 2
Other 4

Other - там Atom и emacs...
:(
 

fixxxer

К.О.
Партнер клуба
У меня две гипотезы:
1. Два бэкенд-разработчика, много фронтенд-разработчиков и админ с емаксом
2. Это какой-то ****** ******
 

fixxxer

К.О.
Партнер клуба
Не, ну если студент программировать учится, то понятно (хотя и тут есть EAP и студенческие скидки). А разработчик на зарплате?

PHPStorm сколько стоит? Возьмем самый дорогой вариант, 20 баксов чтоли в месяц. Учитывая, сколько времени разработчика он сэкономит, это за еду с помойки что ли работают?

Я бы за PHPStorm заплатил не думая даже если бы он в 10 раз дороже был.
 

Adelf

Administrator
Команда форума
"I like Sublime. Feels fastest to me on Mac. " :(

А потом я нахожу не сделанные use и throw абстрактных классов эксепшенов...
 

fixxxer

К.О.
Партнер клуба
На маке есть из коробки ed, он быстрее всего работает!
 

Yoskaldyr

"Спамер"
Партнер клуба
Вопрос не в цене, а в привычке некоторых одаренных :(
Плюс EAP сейчас вообще не вариант, больше времени когда нет EAP-ов, чем когда они есть.

P.S. Я то не юзаю VSCode, но знаю что некоторые юзают и довольны типа
 

AnrDaemon

Продвинутый новичок
Почему "типа"? Я доволен… когда дебаггер не тупит. :(
 

Yoskaldyr

"Спамер"
Партнер клуба
Ну я не знаю довольны они или нет, когда спрашиваю - говорят все ок.
 
Сверху