Ответ
Ответ не найден
Ответ 18+ 🔞
Да ты посмотри, что за дичь творится в мире! Сижу я тут, значит, думаю про эту вашу современную моду на «чистый код». Ну, типа, всё должно быть идеально, как у святых в раю. А по факту-то получается, что какой-нибудь заумный архитектор накрутит абстракций, будто он паутину плетёт, а потом бедный разработчик, как тот Герасим немой, только «Му-му» мычать может, пытаясь в этом разобраться.
Вот смотри, классический пример — паттерн «Стратегия». В теории-то красота: меняешь алгоритмы на лету, как перчатки. А на практике какой-нибудь умник так его завернёт, что проще новую фичу написать, чем в его код влезть.
from abc import ABC, abstractmethod
class SortingStrategy(ABC):
@abstractmethod
def sort(self, data):
pass
class QuickSortStrategy(SortingStrategy):
def sort(self, data):
return sorted(data) # Ну, типа, быстрая сортировка, да
class BubbleSortStrategy(SortingStrategy):
def sort(self, data):
# А это, блядь, пузырёк, чтоб его
n = len(data)
for i in range(n):
for j in range(0, n - i - 1):
if data[j] > data[j + 1]:
data[j], data[j + 1] = data[j + 1], data[j]
return data
class DataProcessor:
def __init__(self, strategy: SortingStrategy):
self._strategy = strategy
def process_data(self, data):
return self._strategy.sort(data)
# Использование
processor = DataProcessor(QuickSortStrategy())
result = processor.process_data([5, 2, 8, 1])
print(result) # [1, 2, 5, 8]
Смотришь на это и думаешь: «Ну ёпта, зачем столько классов-то, нахуй?» Для трёх строчек логики — целый овердохуища интерфейсов! Иногда же проще тупо функцию передать, и всё. Но нет, надо «расширяемо» и «по книжке». А потом этот код поддерживать — волнение ебать, терпения ноль ебать. Сидишь и гадаешь: «Этот пидарас шерстяной, который это писал, он вообще в здравом уме был?»
И ведь самое пиздецовое — часто эти «идеальные» решения оказываются медленнее и сложнее простого, прямолинейного кода. Но попробуй скажи это архитектору с его диаграммами! Он тебе всю лекцию про SOLID прочтёт, а в итоге система работает, как черепаха в меду. Вот и получается, что красота в теории, а на практике — чих-пых тебя в сраку. Код должен работать и быть понятным, а не быть поводом для интеллектуального онанизма, блядь.