2013-06-12 4 views
1

Я нашел себя из чудовищного JavaScript-проекта. Я не видел никаких ссылок на известные шаблоны проектирования, а файлы кода состоят из 5000+ строк беспорядочного кода. Обычная длина функции составляет около 100 строк. Также пространства имен беспорядочны. Любые идеи, как получить смысл для этого проекта?Рефакторинг монстров JavaScript-проект

Я пытался прочитать исходный код, но комментариев нет. Также нет тестов, поэтому внесение изменений - дело удачи.

Отказ от проекта не является выбором.

Есть ли хорошие инструменты для оказания помощи? На данный момент я использую sublime & Chrome.

+0

Пройдите через него с помощью отладчика. –

ответ

2

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

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

Я видел последний подход на конференции о реорганизации уродливого, устаревшего кода. Динамик генерировал множество случайных значений/пар результатов, превращал их в модульные тесты и начал рефакторинг сверхбыстро. Результаты были довольно удивительными, и вы точно знали, что в этом ничего не сломалось.

Конечно, если ваше приложение более сложное, чем «дать мне ввод, я расскажу вам о выходе», это сложнее. Но, возможно, это заставит вас начать!

+0

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

+0

Существуют ли какие-либо инструменты для сопоставления исходного кода в соответствии с их путями выполнения. Я имею в виду, что какой-то инструмент, который позволяет мне видеть, как некоторый код перемещается через код. Я знаю отладчика, но его так медленно использовать. –