Что находится в Вашем наборе инструментальных средств JavaScript? [закрытый]

Это - ряд дополнительно-параноидальных флагов, которые я использую для кода C++:

    -g -O -Wall -Weffc++ -pedantic  \
    -pedantic-errors -Wextra -Waggregate-return -Wcast-align \
    -Wcast-qual  -Wchar-subscripts  -Wcomment -Wconversion \
    -Wdisabled-optimization \
    -Werror -Wfloat-equal  -Wformat  -Wformat=2 \
    -Wformat-nonliteral -Wformat-security  \
    -Wformat-y2k \
    -Wimplicit  -Wimport  -Winit-self  -Winline \
    -Winvalid-pch   \
    -Wunsafe-loop-optimizations  -Wlong-long -Wmissing-braces \
    -Wmissing-field-initializers -Wmissing-format-attribute   \
    -Wmissing-include-dirs -Wmissing-noreturn \
    -Wpacked  -Wpadded -Wparentheses  -Wpointer-arith \
    -Wredundant-decls -Wreturn-type \
    -Wsequence-point  -Wshadow -Wsign-compare  -Wstack-protector \
    -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch  -Wswitch-default \
    -Wswitch-enum -Wtrigraphs  -Wuninitialized \
    -Wunknown-pragmas  -Wunreachable-code -Wunused \
    -Wunused-function  -Wunused-label  -Wunused-parameter \
    -Wunused-value  -Wunused-variable  -Wvariadic-macros \
    -Wvolatile-register-var  -Wwrite-strings

, Который должен дать Вам что-то для начала работы. В зависимости от проекта Вы, возможно, должны были бы снизить его для не наблюдения того, чтобы попросить прибыть из сторонних библиотек (которые обычно довольно небрежны о том, чтобы быть предупреждающим свободный.), Например, код вектора/матрицы Повышения сделает g ++, испускают много шума.

А лучший способ обработать такие случаи состоит в том, чтобы записать обертку вокруг g ++, который все еще использует предупреждения, настроенные до макс., но позволяет подавлять их от того, чтобы быть замеченным для определенных файлов/номеров строки. Я записал такой инструмент давным-давно и выпущу его, как только у меня есть время для чистки его.

57
задан 5 revs 9 February 2010 в 04:40
поделиться

9 ответов

Какой редактор и редактор плагины / режимы / скрипты вы используете? я обычно пользователь Emacs, и я использую js2.el на данный момент, но я интересно услышать о других

Я обычно использую Textmate (с пакетами JavaScript , jQuery и Prototype ). Когда я выполняю тяжелую фронтенд-разработку, когда я быстро переключаюсь между файлами HTML, CSS и JavaScript, я выберу разделенные панели vim. При этом я использую либо macvim , либо Терминал + Visor , в зависимости от моего настроения. Очевидно, я пользователь Mac.

Вы используете какую-либо IDE (Aptana, Dashcode и т.п.)?

Нет. Раньше я использовал Coda , но возможности его текстового редактора оставляют желать лучшего. Я также поиграл с Espresso , что интересно ... но ...

Какие библиотеки JavaScript или Вы используете фреймворки?

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

Используете ли вы какой-либо из языков, скомпилировать в JavaScript (GWT, haxe, Objective-J)?

Абсолютно нет - у меня есть философские претензии к таким рамкам. В отличие от кода на стороне сервера, код интерфейса выполняется в браузере пользователя в среде, которую вы не можете контролировать. Таким образом, я считаю, что разработчик JavaScript несет ответственность за создание наилучшего возможного кода . Субоптимальный код может иметь разветвления по производительности, а JavaScript, скомпилированный с помощью таких языков, как Objective-J (который я использовал только из вашего списка), никогда не будет таким жестким, как код, созданный сильным разработчиком JavaScript.

Что Вы используете фреймворки для модульного тестирования? Как вы их вызываете? Они могут быть вызывается из вашего редактора / IDE, из командная строка, из браузера в веб-страницу из вашего JavaScript отладчик?

Я большой поклонник QUnit , фреймворка для модульного тестирования jQuery. Также хорош Dojo DOH Unit Testing .

Не пропустите FireUnit , отличное расширение Firebug для модульного тестирования.

Также см. Razor .

Что автоматизировало тестирование пользовательского интерфейса инструменты, которые вы используете (например, Selenium, Ватир, Сахи)? Опять же, как это может быть вызывается? (Возможность вызвать unit тесты и тесты интерфейса из командная строка была бы очень полезна для

При необходимости я использую Selenium , но это бывает редко.

Какие другие инструменты качества кода вы используете (JSlint, инструменты покрытия кода, или что-нибудь в этом роде)?

Я использую и люблю JSLint .

Firebug имеет хорошее расширение покрытия кода , а HRCov широко считается быть лучшим представителем породы. Я не нахожу особого применения покрытия кода в большей части моей повседневной работы с JavaScript.

Что вы используете для отладки среда (Firebug, WebKit инспектор и т. д.)? Есть ли в нем интеграция с вашим редактором или IDE?

Насколько я понимаю, Firebug - приложение-убийца для разработки JavaScript. Некоторые полезные функции отладки:

  • Всплывающие подсказки для переменных
  • Точки останова и условные точки останова
  • Профилировщик производительности
  • Чрезвычайно изящный консольный API
  • Наблюдать за выражениями
  • Трассировка стека
  • Полезные плагины, например Jiffy , FireCookie и FireQuery .

WebKit Inspector хорош, как DragonFly и Панель отладки ] полезен для отслеживания ошибок IE ... но FireBug - это для меня.

На какой постобработке вы выполняете ваш код перед его развертыванием (обфускаторы, минификаторы, любые optimizers)?

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

Был только один случай, когда мне нужно было минимизировать JavaScript для экономии трафика. В этом случае я установил обработчик пост-фиксации SVN для запуска превосходного JSMin Дуга Крокфорда .

Есть ли какие-нибудь другие важные инструменты в ваш набор инструментов (которые относятся к Разработка JavaScript для браузера приложения на основе; У меня уже есть отличная система контроля версий, трекер ошибок и т. д.)?

31
ответ дан 24 November 2019 в 19:47
поделиться
  • IntelliJ IDEA / RubyMine для редактирования.
  • Плагины jQuery + из-за их сходства с Ruby
  • Используете ли вы какой-либо из языков, которые компилируются в JavaScript (GWT, haxe, Objective-J)?
  • JSUnit с Blue Ridge (пакет Rails), но больше полагаться на тесты Selenium
  • Нет инструментов качества кода, кроме парного программирования и тестов
  • Отлаживайте в основном с помощью Firebug
  • Положитесь на сжатие gzip, чтобы уменьшить пространство
  • Создайте множество небольших модульных файлов JS
  • Используйте направляющие для статического объединения и автоматического включения этих файлов по мере необходимости. Это собственный код, но я писал об этом в блоге. Это позволяет вам сохранять модульность по мере роста разработки
  • Создайте довольно много подключаемых модулей jQuery для управления виджетами на сайте
3
ответ дан 24 November 2019 в 19:47
поделиться

Только что начал использовать RubyMine в качестве IDE JavaScript, исключительно для JavaScript поддержка, что очень хорошо. Это то же самое, что и в IntelliJ IDEA.

Для отладки Firebug является очевидным обязательным элементом, хотя, на мой взгляд, в последнее время он немного снизился. Я предпочитаю использовать ведение журнала в большей степени, чем отладчик, поэтому считаю log4javascript очень полезным (хотя, вероятно, я должен указать, что написал его). Я также иногда использую инспектор WebKit и отладчик IE 8, а также отладчик Visual Studio с более ранними версиями IE.

Для качества кода я использую JSLint вручную, а иногда, поскольку я не согласен с некоторыми его рекомендациями. RubyMine / IntelliJ также имеет массу «инспекций» JS. которые анализируют ваш код по мере того, как вы его пишете, и генерируют предупреждения рядом с вашим кодом, что я считаю полезным.

Я обычно разрабатываю на нескольких страницах разработки, которые включают отдельные, неминифицированные сценарии, и при создании сборки я запускаю сценарий сборки (мой собственный, написанный на Ant), который проверяет мой код из системы управления версиями, объединяет отдельные сценарии, удаляет вызовы журналирования и отладки, минимизирует / сжимает (с помощью JSMin или YUICompressor) код и запускает модульные тесты. Мой сценарий модульного тестирования является моим собственным и в нем нет ничего особенного.

Он работает достаточно хорошо, но не идеально.

написан на Ant), который проверяет мой код из системы контроля версий, объединяет отдельные сценарии, удаляет вызовы журналирования и отладки, минимизирует / сжимает (с помощью JSMin или YUICompressor) код и запускает модульные тесты. Мой сценарий модульного тестирования является моим собственным и не представляет собой ничего особенного.

Он работает достаточно хорошо, но не идеально.

написан на Ant), который проверяет мой код из системы контроля версий, объединяет отдельные сценарии, удаляет вызовы регистрации и отладки, минимизирует / сжимает (с помощью JSMin или YUICompressor) код и запускает модульные тесты. Мой сценарий модульного тестирования является моим собственным и в нем нет ничего особенного.

Он работает достаточно хорошо, но не идеально.

3
ответ дан 24 November 2019 в 19:47
поделиться

Я еще не написал ничего серьезного в Javascript (около 3000 строк в моем последнем проекте), но я использую JSLint свой код и минимизирую / комбинирую его со всеми библиотеками, которые мне нужны в моем сценарии развертывания / сборки. Мой сценарий сборки также меняет HTML с прямого импорта сценариев и библиотек на импорт производственного сжатого кода. Таким образом, вы не Чтобы увидеть изменения в процессе разработки, необходимо запустить сценарий сборки.

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

Для отладки - FireBug. Я уверен, что с отладчиком webkit тоже все в порядке.

Для разработки: vim с улучшенным скриптом отступа js и ctags с некоторыми модификациями js. Я не уверен, какие преимущества имеет настоящая IDE, но уверен, что они есть. Вим не любит • по умолчанию выделяет синтаксис HTML внутри строк javascript, но очевидно, что его можно настроить на .

JSLint легко запускается в Rhino, но spidermonkey выполняется примерно в 3 раза быстрее, поскольку это не нужно запустить JVM. Крокфорд не поддерживает такую ​​схему, но мне как-то удалось заставить ее работать.

2
ответ дан 24 November 2019 в 19:47
поделиться

Я использую немного другой технологический стек (asp.net mvc), но вот оно:

  • IDE: Visual Studio 2008 + ReSharper, Asp.Net MVC
  • Editor : Notepad ++ (большую часть времени я использую VS, но Notepad ++ имеет лучшую подсветку синтаксиса для JavaScript)
  • Dev Browser: FireFox + Firebug + YSlow + PageSpeed ​​+ FireCookie Также добавьте панель инструментов разработчика
  • . Другие браузеры: IE8, Chrome 3, Safari, Opera (редко используются), а также IE6 и IE7 через виртуальные машины (бесплатно загружаемые образы виртуальных ПК от Microsoft).
  • Постобработка: JLint и YUI Компрессор. У меня есть задача сборки, выполняющая часть компрессора YUI.
  • JavaScript Framework: JQuery + JQuery UI
  • Другие вещи: JQuery Validation, JSON2
2
ответ дан 24 November 2019 в 19:47
поделиться

Google wave работает на GWT , поэтому кажется хорошим вариантом для больших приложений.

1
ответ дан 24 November 2019 в 19:47
поделиться
  • Редактор: Блокнот или любой другой текст редактор с подсветкой синтаксиса

  • IDE: может быть Dreamweaver, Aptana, Netbeans - до вашего личного предпочтение.

  • Javascript Framework: я больше привык в jQuery, и я все еще рекомендую jQuery.
    вы можете изучить возможность добавления некоторых «плагинов» к jQuery. некоторые действительно крутые. например Facebox ( http://famspam.com/facebox ) - всплывающее окно, похожее на jQuery и Facebook, которое легко использовать. или плагин jQuery Cookie

  • Отладка: Firebug (FireCookie, Page Speed, YSlow) - без интеграции с IDE, но это волшебство в браузере. Если вам нужна кроссбраузерная отладка, вы можно использовать Firebug Lite.

    Вы можете легко использовать console.log () для отладки вместо предупреждений (особенно когда вы делаете javascript с большим количеством обратных вызовов, таймеров, AJAX и т. д. Вам не нужны предупреждения

  • Постобработка: Packer - http://dean.edwards.name/packer/

1
ответ дан 24 November 2019 в 19:47
поделиться

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

8
ответ дан 24 November 2019 в 19:47
поделиться

Я использую Dashcode для разработки виджетов для Mac, и для этого он "нормальный" и имеет множество функций, ориентированных на виджеты, но для всего остального - TextMate

1
ответ дан 24 November 2019 в 19:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: