TGViewer
Bear's Rambles | МЕДВЕДЬ ГОВОРИТ... Bear's Rambles | МЕДВЕДЬ ГОВОРИТ... @bearrambles · 128 subscribers
Post #8 156
Legacy. Код, который разработчики хотят переписать.

Знаете, для первой серии постов я долго выбирал тему, которая будет интересна максимально большому количеству людей. Поэтому главный критерий был примерно таков: мой опыт и мои знания в этой теме должны быть минимально искажены моим стеком технологий. Так что "легаси" (вы уж извините, я иногда, когда очень лень переключать раскладку, буду писать это слово по-русски) - оказалось идеальным вариантом. Да и близким каждому разработчику, так что вперёд, в мир наследуемых систем, кривой архитектуры и говнокода.

мммм... Legacy... Много Вы знаете людей, которые отказались от наследства? Навряд ли. Так почему подавляющее большинство разрабов относится к легаси, как к кредитам почившего бати-лудомана? Большинство настолько подавляющее, что сами термины "легаси-код" и "легаси-система" давно и прочно имеют негативную оценку. Всё просто: нам нравится работать с тем, что мы создали сами. Вот этими пальчиками клац-клац по клавиатуре.
С системами, которые мы знаем от и до.
С кодом, который мы видели и читали много раз.
С архитектурой, которую мы сами проектировали.

И в оправдание этому мы придумали страшные метрики:

🔘трудноподдерживаемая
🔘устаревшая
🔘не имеющая достаточной документации

Чувствуете это на языке? Каждый из этих пунктов можно закончить словосочетанием "для нас". Пожалуй единственное объяснение через метрику, лежащую вне субъективного, ввёл Физерс в своей книге (да блять, прикиньте, про это написана книга, причем не одна) "Эффективная работа с устаревшим кодом", определив, собственно, легаси как
код, недостаточно покрытый тестами.

Вот это объективно: мы в незнакомой системе можем поменять что-то, не зная к чему это приведёт, и, не имея средств этого проверить, вкупе со всеми остальными факторами, это приведет к нарушению работы системы. И в такой ситуации будет охренительно хорошо, если система где-то упадет в ошибку, а не продолжит тихо и спокойно делать свое дело, но теперь не правильно.

Вы легко можете найти тексты про legacy с заголовками из различных вариаций на тему "казнить нельзя помиловать", я же выбрал отсылку к Эли Лопиану (гендир Typemock - разработчика инструментов для тестирования), который описал legacy как
код, который разработчики боятся менять

Нет. Не боимся. Жаждем. Где ставить запятую в знаменитой амфиболии - зависит не всегда от разработчика. А вот желание что-то переписать, будем честны - присутствует всегда.

И да, я сознательно подменил смысл, заключенный в слове "менять", а вы даже не заметили. Понятно, что этот пост написан с изрядной долей преувеличения и упрощения. Я не думаю, что необходимо разжевывать каждому понятие legacy, как это делали до меня куча авторов с явно более крутой экспертизой. Я всего лишь хочу посветить фонариком в те места, куда мы не часто заглядываем. Привыкайте, это обычный для меня литературный прием. Имею блять право, не учебник пишу. А суть применения этого приема сейчас - настроить Вас на то, что legacy - не есть само собой разумеющееся зло. Нет, когда его много - это тоже не есть хорошо. Просто давайте попробуем в дальнейшем понять, мы переписываем систему с нуля - и это обоснованное требование бизнес-процесса или все таки просто нам так хочется. И какие есть альтернативы.

#медведьразмышляет #legacy
  • ❤ 4
More from @bearrambles
  1. Sep 25, 2026Первый блин комом ли? Итак, стрим закончился. Вайбово было точно. Моё главное опасение был…
  2. Sep 23, 2026Post #136
  3. Sep 9, 2026Пошёл в веб-кам Мне нравится, когда из пары сказанных между делом слов получается что-то и…
  4. Aug 25, 2026Post #134
  5. Aug 24, 2026Всем привет👋 Да, я знаю, что не было значащих постов уже почти 3(!!!!) недели😂 Ну вот та…
  6. Aug 16, 2026Post #132
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →