Подтвердить что ты не робот

Что в вашей инструментальной привязке JavaScript?

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

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

  • Какие редакторы и редакторы/режимы/скрипты вы используете? Я вообще-то пользователь Emacs, и сейчас использую js2.el, но мне интересно узнать о других настройках.
  • Используете ли вы какую-либо IDE (Aptana, Dashcode и т.п.)?
  • Какие библиотеки JavaScript или фреймворки вы используете?
  • Используете ли вы какие-либо языки, которые скомпилируются для JavaScript (GWT, haxe, Objective-J)?
  • Какие unit test рамки вы используете? Как вы их вызываете? Могут ли они быть вызваны из вашего редактора /IDE из командной строки из браузера на веб-странице из вашего отладчика JavaScript?
  • Какие автоматические инструменты тестирования пользовательского интерфейса вы используете (например, Selenium, Watir, Sahi)? Опять же, как их можно вызвать? (Возможность запуска модульных тестов и тестов интерфейса из командной строки была бы очень полезна для запуска buildbots)
  • Какие другие инструменты качества кода вы используете (JSlint, инструменты покрытия кода или что-то в этом роде)?
  • Что вы используете для своей среды отладки (Firebug, инспектор WebKit и т.д.)? Имеет ли он интеграцию с вашим редактором или IDE?
  • Какую пост-обработку вы выполняете на своем коде перед ее развертыванием (обфускаторы, minifiers, любые оптимизаторы)?
  • Есть ли у вас какие-либо инструменты для управления зависимостями модулей или динамической загрузки кода по мере необходимости? Приложение, которое я пишу, будет работать с большим количеством кода, и я хотел бы уменьшить время загрузки, поэтому были бы полезны инструменты для отслеживания того, какие модули необходимы или загрузка кода по запросу.
  • Существуют ли какие-либо другие необходимые инструменты в вашей toolchain (которые специфичны для разработки JavaScript для приложений на основе браузера, у меня уже есть отличная система контроля версий, отслеживание ошибок и т.д.)?

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

edit. Меня особенно интересуют рамки тестирования модулей и пользовательского интерфейса, и как их автоматизировать. Я предпочитаю иметь возможность запускать одну синглную задачу "make test" или "rake test" из командной строки для запуска всех тестов для проектов и вернуть статус в зависимости от успеха или неудачи тестов. Это позволит значительно упростить интеграцию с buildbots. Кроме того, мне интересно, кто-нибудь пишет модульные тесты, которые могут выполняться за пределами браузера (в Rhino, spidermonkey, v8 и т.п.) Для кода, который не зависит от браузера, для более быстрого поворота на подмножестве вашего тесты.

4b9b3361

Ответ 1

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

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

Используете ли вы какую-либо среду IDE (Aptana, Dashcode или тому подобное)?

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

Какие библиотеки JavaScript или вы используете?

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

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

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

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

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

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

Также см. Razor.

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

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

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

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

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

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

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

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

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

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

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

Был только один экземпляр, где мне нужно было минимизировать JavaScript для экономии пропускной способности. В этом случае я создал SVN post-commit hook, чтобы запустить Doug Crockford отлично JSMin.

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

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

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

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

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

Ответ 5

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

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

Для отладки, FireBug. Я уверен, что отладчик webkit тоже хорош.

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

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

Ответ 6

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

  • IDE: Visual Studio 2008 + ReSharper, Asp.Net MVC
  • Редактор: 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
  • Другие вещи: JQuery Validation, JSON2

Ответ 7

  • Редактор: Блокнот или любой другой текст редактор с подсветкой синтаксиса

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

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

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

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

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

Ответ 9

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

Ответ 10

Web Tech немного продвинулась, поэтому я подумал, что упомянул о некоторых хороших современных инструментах и ​​фреймворках для тех, кто видит этот вопрос в 2017 году.

Какие редакторы и редакторы/режимы/скрипты вы используете?

Atom - это мой текстовый редактор по выбору и, поскольку я нахожусь в экосистеме MS, Visual Studio 2013 - это IDE, которую я использую, хотя я избегаю VS для разработки JavaScript. Я практически все свое развитие JavaScript исключительно с Atom, где бы я ни был, хотя.

У меня есть несколько плагинов, которые помогают моему потоку работы.

  • atom-beautify, который я использую для очистки любых проблем с дизайном, которые я мог бы познакомить, он делает это при сохранении, поэтому делает вещи легкими для меня, поскольку я сохраняю и регистрация часто.
  • atom-easy-jsdoc, который позволяет мне вставлять комментарии jsdoc, используя Горячая комбинация клавиш, это здорово, поскольку это позволяет мне автоматически генерировать документация для кода, особенно полезная для разработки API.
  • atom-ternjs - это пакет, который я использую для завершения кода JavaScript, я не нужно это часто, но это удобно иметь.
  • minimap - это плагин, который позволяет мне видеть подробный план всех код в конкретном документе, мне легче его использовать, чем скроллбары. YMMV.
  • pigments - это плагин, который отображает цвета, когда он обнаруживает шестнадцатеричные цвета в CSS за текстом. Полезно, если вам нужно настроить и посмотреть результат быстро.

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

См. выше:)

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

Я стараюсь использовать RequireJS для домашних проектов и собственный загрузчик модулей на работе. Обычно я не использую библиотеки и фреймворки в своих проектах, хотя, когда я это делаю, я довольно частично отношусь к AngularJS (1.x). Все зависит от того, что я делаю.

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

Неа.

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

Я использую Node.js с Karma тестовый бегун в качестве тестового бегуна (who'da thunk it?), Jasmine в качестве моей тестовой платформы и sinonJS, так как моя библиотека stubbing/mocking для разработки тестов.

Карма может быть настроена на просмотр файловой системы для изменений (или работает бегун задачи, такой как grunt с плагинами просмотра файлов), и я выполняю все мои тесты каждый раз, когда файл сохраняется. У этого есть дополнительное преимущество, позволяющее одновременно запускать тесты против нескольких браузеров. Таким образом, он будет тестировать JS против IE, Edge, Chrome, Firefox, PhantomJS и т.д., Что очень полезно.

У меня есть моя настройка проектов js для запуска задач grunt. Обычно я просто запускаю "grunt devmode" из командной строки/терминала и что он, мои тесты запускаются. Для непрерывной интеграции при фиксации у меня есть отдельная задача grunt, которая только запускает тесты один раз. Для домашнего использования у меня TravisCI запускает эту задачу всякий раз, когда происходит нажатие.

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

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

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

Я использую любой веб-браузер, имеющий проблемы. Если это серверная сторона, например. Node, я использую node-debugger, поскольку я могу отлаживать прямо из Atom.

Какую пост-обработку вы выполняете на своем коде перед ее развертыванием (обфускаторы, minifiers, любые оптимизаторы)?

Обычно я этого не делаю, что для веб-проектов идеально подходит minifier и uglifier.

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

Оп! Я использую RequireJS реализация AMD. Я использую npm в качестве моего менеджера пакетов по выбору, хотя, если я использую Visual Studio, я Я использую nuget.

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

Не совсем уверен, что я понимаю вопрос, но я использую Git для домашних проектов, а также для работы с TFS, GitHub как мой репо-хост, TravisCI для непрерывной интеграции и Coveralls (репортер покрытия кода для репозиториев Git).