Как вы помните, полгода назад меня перекинуло лидить PHP проект. И вот переодически начал видеть такие классы на ревью. Естественно в go командах такой проблемы не было.
Аргументы тех кто за - легко тестировать, SRP, просто и понятно и т.д. Из всего этого списка валидным, я могу признать валидным только легко тестировать - это правда. Все остальное слегка сомнительно, начиная от специфического понимания SRP(где вообще нет ни слова про то что один класс один метод), заканчивая тем что мне нифига неудобо шляться по yml конфигам и 30 классам, вместо того, чтобы просто прочитать простую плоскую функцию, пусть даже на 300 строк.
Когда я работал в одном сервисе доставки еды(не спрашивайте в каком, всё равно не скажу, но это была не ЯндексЕда), там увидел эту ситуацию возведенную в абсолют. Был вот такой интерфейс:
interface ServiceInterface { public function behave(Request $request): Response; }
И все классы должны были его реализовывать. Получается что любая операция представляля из себя бесконечный клубок функций вложенных одна в другую. Несмотря на то что каждый класс в отедльности правда был простой и понятный, разобраться что в целом происходит за время всего запроса было той еще задачей.
Короче получается какой-то дрочь ради дрочи, который плюсов не имеет совсем. Но может у кого-то есть иное мнение?
Как вы помните, полгода назад меня перекинуло лидить PHP проект. И вот переодически начал видеть такие классы на ревью. Естественно в go командах такой проблемы не было.
Аргументы тех кто за - легко тестировать, SRP, просто и понятно и т.д. Из всего этого списка валидным, я могу признать валидным только легко тестировать - это правда. Все остальное слегка сомнительно, начиная от специфического понимания SRP(где вообще нет ни слова про то что один класс один метод), заканчивая тем что мне нифига неудобо шляться по yml конфигам и 30 классам, вместо того, чтобы просто прочитать простую плоскую функцию, пусть даже на 300 строк.
Когда я работал в одном сервисе доставки еды(не спрашивайте в каком, всё равно не скажу, но это была не ЯндексЕда), там увидел эту ситуацию возведенную в абсолют. Был вот такой интерфейс:
interface ServiceInterface { public function behave(Request $request): Response; }
И все классы должны были его реализовывать. Получается что любая операция представляля из себя бесконечный клубок функций вложенных одна в другую. Несмотря на то что каждый класс в отедльности правда был простой и понятный, разобраться что в целом происходит за время всего запроса было той еще задачей.
Короче получается какой-то дрочь ради дрочи, который плюсов не имеет совсем. Но может у кого-то есть иное мнение?
"Your messages about the movement of the enemy through the official chatbot … bring new trophies every day," the government agency tweeted. Meanwhile, a completely redesigned attachment menu appears when sending multiple photos or vides. Users can tap "X selected" (X being the number of items) at the top of the panel to preview how the album will look in the chat when it's sent, as well as rearrange or remove selected media. NEWS "There is a significant risk of insider threat or hacking of Telegram systems that could expose all of these chats to the Russian government," said Eva Galperin with the Electronic Frontier Foundation, which has called for Telegram to improve its privacy practices. The next bit isn’t clear, but Durov reportedly claimed that his resignation, dated March 21st, was an April Fools’ prank. TechCrunch implies that it was a matter of principle, but it’s hard to be clear on the wheres, whos and whys. Similarly, on April 17th, the Moscow Times quoted Durov as saying that he quit the company after being pressured to reveal account details about Ukrainians protesting the then-president Viktor Yanukovych.
from ca