Пересмотренный принцип DRY: хождение по канату повторного использования кода

Пересмотренный принцип DRY: хождение по канату повторного использования кода

Мы все бывали в такой ситуации — смотрели на два почти одинаковых блока кода, как растерянные близнецы на семейном воссоединении: «Разве ты не Билли?» «Нет, я Боб!» «Но у вас обоих одинаковый нос!» Такое космическое дублирование кода — именно то, что пытается предотвратить принцип DRY (Don’t Repeat Yourself). Давайте разберёмся, как применять этот принцип, не превращая нашу кодовую базу в излишне усложнённую машину Рубе Голдберга. Принцип DRY демистифицирован DRY — это не просто предотвращение копирования и вставки, это управление знаниями....

30 мая 2025 14:00 · 4 минуты · 662 слова · Maxim Zhirnov
Аргументы против повторного использования кода: Лучше писать с нуля

Аргументы против повторного использования кода: Лучше писать с нуля

Мы все бывали в такой ситуации — смотрели на утилитный класс десятилетней давности, который стал монстром Франкенштейна в вашей кодовой базе. «Но он же переиспользуемый!» — настаивает ваш коллега, пока вы обнаруживаете, что теперь в нём 47 необязательных параметров и жёсткая привязка к IE6. Давайте разберёмся, когда написание нового кода может спасти ваше душевное равновесие (и стек). Скрытые затраты на переиспользование 1. Ловушка чрезмерной обобщённости Переиспользуемый код часто начинается с благих намерений:...

27 мая 2025 06:00 · 3 минуты · 523 слова · Maxim Zhirnov
Почему ваша одержимость оптимизацией кода подобна тюнингу Ferrari для продуктового магазина

Почему ваша одержимость оптимизацией кода подобна тюнингу Ferrari для продуктового магазина

Представьте: вы на code review, с четвёртой чашкой кофе за утро в руках, и тут кто-то бросает такую фразу: «Зачем здесь использовать списковое включение? Поиск по словарю выполняется за O(1)!» Между тем рассматриваемый метод обрабатывает максимум три элемента. Поздравляем — вы только что стали свидетелем преждевременной оптимизации в естественной среде обитания. Высокая цена ранней оптимизации Начнём с истории, которую вы, возможно, узнаете: # «Оптимизированный» подход results = [] for i in range(0, len(data), 1): temp = process(data[i]) results....

24 мая 2025 06:00 · 3 минуты · 567 слов · Maxim Zhirnov
Почему Ваш код ненавидит тестироваться (И как это исправить)

Почему Ваш код ненавидит тестироваться (И как это исправить)

Мы все бывали в такой ситуации — вы пишете красивый код, который прекрасно работает… пока не попытаетесь его протестировать. Внезапно ваш шедевр превращается в ворчливого кота, который шипит при каждой попытке проверить его поведение. Давайте разберёмся, как писать код, который радостно мурлычет при тестировании, используя проверенные паттерны и немного юмора. Синдром ворчливого кода: почему важна тестируемость Представьте, что вы пытаетесь измерить температуру кота с помощью термометра для индейки. Именно так ощущается тестирование тесно связанного кода....

21 мая 2025 14:00 · 3 минуты · 573 слова · Maxim Zhirnov
Почему ошибки - самые забавные учителя вашего кода (И как смеяться, исправляя их)

Почему ошибки - самые забавные учителя вашего кода (И как смеяться, исправляя их)

Представьте: вы только что развернули свой шедевр кода. Откидываетесь назад, попиваете кофе, и БАМ — пользователь сообщает, что ваша кнопка «Добавить в корзину» при нажатии превращается в вращающуюся ламу. Поздравляю! Вы только что встретили своего нового учителя кодирования: сеньора Баг. Давайте разберёмся, почему эти незваные гости на самом деле лучшие учителя, которые у вас когда-либо были. 1. Ошибки — это проверка кода природой Каждая ошибка — это как причудливая головоломка, оставленная вашим прошлым «я»....

18 мая 2025 06:00 · 4 минуты · 655 слов · Maxim Zhirnov