Как показать, что ваш код — полное г*вно? 02.10.2015

Как показать, что ваш код — полное г*вно? Визуализировать его.

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

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

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

Если для разработки вы используете IDE от JetBrains, для составления UML диаграмм я бы рекомендовал воспользоваться дополнением PlantUML. Сам язык обладает несложным декларативным синтаксисом и позволяет быстро создавать диаграммы непосредственно из вашей любимой среды разработки и без излишней возни в визуальных редакторах. Диаграммы могут храниться в репозитории вашего проекта и легко редактируются. Здесь ничего не поедет в результате неловкого движения мышки, а стрелочки отношений между классами настолько прочны, насколько может быть прочна качественная растровая картинка. Возможность связывать элементы диаграммы с файлами проекта позволит использовать диаграмму для быстрой навигации. К сожалению, дополнение не подразумевает автогенерацию диаграмм по исходному коду, поэтому поддержка их в актуальном состоянии ляжет на ваши плечи. Но, несмотря на этот недостаток, наличие подобных диаграмм принесут только пользу вашему проекту.

by 02.10.2015