Избыточные названия классов

Меня удивляет одна общая практика в мире php. Возможно это есть и в других яп, не знаю. Буду говорить за php

Практика эта - избыточное наименование классов. Пример: SberbankPaymentApiService Если посмотреть так, то очень хорошее название, по которому сразу понятно, за что класс отвечает.

Но! В каком неймспейсе/директориях обычно располагают такой класс? Ну например в Laravel. Обычно это получается примерно так App/Service/Api/Payment/SberbankPaymentApiService И по сути это и есть полное название класса. Вас ничего не смущает? Меня вот смущает то, что название класса избыточно и тафтологично. То есть в коде мы стараемся избавляться от дублирования, а на именование классов это почему-то не распространяется.

По аналогии, это как говорить: в этом ITT треде - in this In-This-Thread thread или SaaS-сервис - Softfare-as-a-Service service

Я бы сократил до App/Service/Api/Payment/Sberbank. Теперь класс назван лаконично вообще не потеряв смысловой нагрузки, при этом отбросив тафтологию

Тут вы можете возразить, что теперь код будет менее читаемым

function buy(Sberbank $sber){

Что это за класс Sberbank и к чему он относится не понятно

Но это лишь потому что в мире php функционал нейпспейсов используется не на полную катушку и что самое плохое автоподстановка в IDE к этому подталкивает. Мы пишем название класса, а IDE подставляет в начале файла use App/Service/Api/Payment/Sberbank. Но вообще-то мы можем прописать use App/Servise; а в коде прописать function buy(Service/Api/Payment/Sberbank $sber){

То есть по итогу я предлагаю вместо

use App/Service/Api/Payment/SberbankPaymentApiService;
function buy(SberbankPaymentApiService $sber){

использовать

use App/Service;
function buy(Service/Api/Payment/Sberbank $sber){

Преимущества такого подхода:

Минусы: