Как вы остаетесь на вершине сложного проекта JavaScript? - PullRequest
7 голосов
/ 19 июля 2009

Я использую Firebug, чтобы понять, что происходит в моем коде JavaScript (+ JQuery). Я в основном использую его, чтобы распечатать тонны console.log заявлений. Это, вероятно, не самый эффективный способ оставаться на вершине проекта. Поскольку эта функция выросла с нескольких функций до более ста, я начинаю путаться из-за того, как все сходится. Я имею в виду, это работает как-то, но когда я смотрю на код сейчас, я почти чувствую, что кто-то другой написал это, потому что это так запутанно.

Теперь у меня есть сумасшедшее количество console.log заявлений, появляющихся в консоли каждый раз, когда я запускаю свое приложение в Firebug, и я оставляю его там, потому что всегда заканчиваю тем, что воссоздаю его всякий раз, когда вынимаю часть из него. Я думаю, это делает вещи еще более запутанными, чем если бы у меня не было регистрации вообще. Я никогда не исследовал настоящую отладку - точки останова, переменные наблюдения и т. Д. - это было бы хорошим способом восстановить контроль над этим проектом или есть какие-то другие инструменты, которые могли бы помочь?

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

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

Ответы [ 8 ]

11 голосов
/ 19 июля 2009

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

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

8 голосов
/ 19 июля 2009

Я работал в Web2.0 со многими javaScript и т. Д. Я дам несколько советов, которые мне помогли:

Попробуйте aptana , помогите с завершением кода, проверками и т. Д. (Есть ext-je, плагины Jquery)

Попробуйте JSLint , помогает мне решать проблемы, особенно при работе с Internet Explorer.

Попробуйте YSlow , чтобы увидеть оценки вашего сайта.

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

Не забудьте поставить Id`s везде, где только можно.

Определить код соглашения могут помочь. ( ссылка1 - ссылка2 )

[Обновление] Я искал в своей закладке и нашел очень хорошее видео о: Поддерживаемый JavaScript взглянуть.

Надеюсь, эти простые советы могут помочь!

Ура!

4 голосов
/ 19 июля 2009

Возможно, вы захотите внедрить в ваш код реальные модульные тесты. Существует множество платформ для модульного тестирования javacscript, таких как fireunit . Если у вас уже установлен FireBug, это довольно быстрый переход в зону счастливого комфорта!

Сделайте попытку, даже небольшое количество покрытия юнит-тестами поможет вам расслабиться!

3 голосов
/ 19 июля 2009

Каждый раз, когда программа начинает ускользать от вас, вам нужно остановиться и внимательно посмотреть, как разбить ее на части. Подумайте о том, чтобы разбить js на отдельные файлы, чтобы вам не приходилось держать все это в голове сразу. Все, что вы можете считать «выполненным», может быть превращено в интерфейс, в котором вас больше не волнует.

Все дело в том, чтобы скрыть беспорядок. Будь то ОО или процедурный. У многих людей такая же проблема с PHP и C, как у вас с JavaScript, поэтому вы можете найти «спагетти PHP» и получить несколько полезных советов.

1 голос
/ 19 июля 2009

Одна вещь, которая помогла мне разобраться со сложной базой кода JavaScript, которую я унаследовал, была пакет AOP в dojo. . Используя его, вы можете получить красиво отформатированный путь выполнения вашего кода (вроде профиля Firebug, но в списке в порядке вызова методов).

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

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

1 голос
/ 19 июля 2009

Возможно, вы захотите подумать об использовании GWT.

  • Превосходная поддержка.
  • Классы
  • Возможность рефакторинга.
  • Нет соглашений о пространстве имен - используйте пакеты.

Для более полного списка «причин» прочитайте приведенные командой GWT.

1 голос
/ 19 июля 2009

Используйте хороший отладчик JavaScript, такой как Firebug, и оператор отладчика, чтобы добавить точки останова в ваш JavaScript. Просто будьте осторожны, чтобы удалить их после того, как вы закончите.

1 голос
/ 19 июля 2009

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

...