Распутывание Программного Хаоса

Рыбаки знакомы с запутанными лесками. Они могут не произойти, когда они на самом деле ловят рыбу, но возьмите кусок лески и спрячьте ее подальше от глаз, дайте ей немного времени, и кажется, что она волшебным образом запуталась.

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

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

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

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

Вы можете сохранить идентичность своего кода, выделив автономный модуль почти так же, как вы это сделали бы с клубком Рыбака. Это требует терпения, и вам нужно поговорить с достаточным количеством людей, чтобы убедиться, что вы понимаете, что может быть самодостаточным, а что нет. По мере того, как вы разрабатываете код, вы должны постоянно обновлять свои решения о том, что принадлежит модулю, а что нет.

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

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

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




Разработка программного обеспечения — сложный и запутанный процесс. Все начинается с тщательного проектирования и тщательной организации, но со временем, когда над базой кода работают несколько команд, все может быстро превратиться в запутанный беспорядок. Точно так же, как рыбак, который прячет леску вне поля зрения, а потом обнаруживает, что она необъяснимым образом запуталась, программное обеспечение, кажется, умеет вводить себя в хаос.

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

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

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

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

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

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

Распутывание программного хаоса может быть одновременно сложной и полезной задачей. Усердно прорабатывая запутанные ситуации, вы в конечном итоге получите код, который будет иметь больше смысла не только для вас, но и для других, которые будут работать над ним в будущем. Этот процесс требует баланса терпения, тщательного анализа и сотрудничества, но конечным результатом является более удобная в обслуживании и отказоустойчивая программная система.

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2011-07-23 05:15:35
Баллов опыта: 552966
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.