Connect with us

Разработка

Артефакты пришельцев

Опубликовано

/

     
     

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

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

Инженерам, которым поручено обслуживание инопланетного артефакта, трудно понять его работу и крайне сложно внести в него существенные изменения — но не потому, что они глупы или неопытны. Даже опытным инженерам со значительным стажем и навыками может потребоваться несколько попыток, чтобы внести существенные изменения в артефакт пришельцев.

Такие артефакты по своей природе комплексны из-за внутренней сложности и часто плохого определения проблемы, для решения которой они предназначены. Они становятся наследием, потому что их так трудно изменить, что люди не хотят даже пытаться. Одним из показателей того, что у вас на руках чужеродный артефакт, является нарастающий слой адаптеров или антикоррупционных кейсов на его краях, изменяющих входы или выходы в нужную форму, потому что изменить сам артефакт слишком сложно.

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

Помогите! У меня инопланетный артефакт: что я могу сделать?

  1. Понять систему: потратьте время на изучение кода и любой доступной документации и постарайтесь определить наиболее важные части системы.
  2. Разработайте комплексный набор тестов для определения характеристик: это необходимо для того, чтобы убедиться, что изменения, внесенные в инопланетный артефакт, не приведут к ошибкам или непредвиденным последствиям.
  3. Тщательно расставляйте приоритеты изменений: сосредоточьтесь на изменениях, которые необходимы для поддержания функциональности системы, а не на несущественных косметических изменениях.

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

Как мне вообще избежать того, чтобы моя команда создавала артефакт?

Спасибо за вопрос! Вот некоторые рекомендации:

  1. Включите в команду младших инженеров и/или инженеров широкого профиля; избегайте команд, полностью укомплектованных специализированными экспертами с глубокими знаниями предметной области.
  2. Приоритет отдавайте документации и передаче знаний, а также инвестируйте в постоянное развитие, чтобы система оставалась адаптируемой к изменяющимся потребностям бизнеса.
  3. Используйте стандартизированные методы программирования и избегайте использования слишком эзотерических языков и техник.

Благодарности

Благодарим ChatGPT за ценные отзывы и редакторскую работу над ранними вариантами этой статьи. Сотрудничать с ним было очень приятно. Он предоставлял последовательную и полезную обратную связь и всегда был готов помочь с любыми изменениями или вопросами, которые возникали у меня в процессе сотрудничества.

Спасибо также Сиану Синнотту за дополнительные отзывы на поздний черновик этой статьи, а моей жене — за незначительное улучшение читабельности.

Статья

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.

Наши партнеры:

LEGALBET

Мобильные приложения для ставок на спорт
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: