Всем привет.
Некторое время я собирал информацию об актуальных на сегодняшний день интсрументах, средах разработки, редакорах, фреймворках, различных библиотеках используемых при разработке на JavaScript и в частности в Front end разработке.
Хочу с Вами поделиться своим списком.
Среда разработки
Среда выполнения JS кода
Браузер
Большинство актуальных на сегодняшиний день браузеров, позволяют выполнять и отлаживать JS код. Возможность отладки и предоставление полезной информации о том что происходит в коде, по умолчанию поддерживается всеми популярными браузерами.Node.JS
Node.JS - это server-side фреймворк, который позволяет запускать JS код.
Package managers
- npm (Optionally can be installed with a Node.JS)
- bower
Task runners
IDEs (Desktop)
Coding standards, coding style and code quality check tools
Minifiers, compressors, uglifiers
На этом мой список инструментов, помогающих писать код на JS подошёл к концу. Теперь перейдём непосредственно к разработке и библиотекам, фреймворкам актуальным на сегодняшний день.
Разработка на JS
Модульная структура
Здесь хочется упоменуть подходы, архитектурные, паттерны, техники применяемые для организации модульной структуры приложений на JS. И инструменты их реализующие. Сразу хочу сказать, что в некоторые фреймворки эти возможности встроены по умолчани. Здесь приведнён список библиотек, позволяющие это делать без привязки к какому либо фреймворку.
- AMD (Asynchronous Module Definition - подход, который позволяет организовывать JS код в модули)
- CommonJS (API, стандарт)
- RequireJS (загрузчик JavaScript файлов и модулей)
Libraries (not frameworks)
Хочется сразу расставить все точки на i и разобраться в терминологии.
Фреймворк - библиотка, или набор бибилиотек, которые предлогают разработчику определённую архитиктуру приложения. Т.е. пользуясь фреймворком, вы получаете из коробки определённый каркас вашего приложения, которое начинаете наполнять своим кодом, реализовывая ваши задачи.
В отличие от этого просто библиотека, предоставляет Вам набор определённых классов, функций, расширений, которые избавляют Вас от определённой рутины, за счёт готовый реализаций тех или иных алгоритмов.
Т.е. разница кардинальная, в первом случае Вы получаете каркас приложения, взамен на что Вы теперь должны следовать принципам построения приложений описанным в документации к фреймворку. Во втром же случае, Вам не предлогается какая то архитектура Вашего приложения, а просто набор низкоуровневых фунций, которыми Вы можете пользоваться по своему усмотрению.
Итак:
Frameworks
UI Controls libraries
- Telerik
- Bootstrap (Components library with over a dozen custom jQuery plugins. Easily include them all, or one by one.)
- html5shiv (HTML5 sectioning elements in legacy Internet Explorer.)
TDD/BDD frameworks
- Mocha (Test framework)
- Chai (JS assertion library. Can be used in a pair with a test framework)
Compilers
- Babel (You can write for a ECMA-262 6.0 today. And run on a ECMA-262 5.1 environment. It possible because babel can compile you ECMA-262 6.0 code into the ECMA-262 5.1.)
- TypeScript (Write on TypeScript, comile to JavaScript)
- CoffeeScript (Write on CoffeeScript, compile to JavaScript)
Mobile development
- Phonegap
- Ionic
- Monaca
- Onsen UI
- Taco
- Telerik
- Cocoon
- Framework7
- Aerogear Platforms - limited intended for "enterprise mobile"
- Mobile Angular UI
- Sencha Touch
- Kendo UI
Так же хочется напомнить о сущетсвовании RFC по семейству ECMA-262 языков.
RFSs
И не могу не затронуть тему связаных с JS веб стандатнов, ссылки на которые хочется так же привести.
Front end tools
Related resources
- JS Types related:
- JS Implicit Coercion related:
- WebAssembly
- Other:
Books
coming soon
Lessons
coming soon
Что дальше
Переход на HTTP 2.0
Переход на ECMA-262 6ᵗʰ Edition
Переход на ECMA-262 7ᵗʰ Edition
Поддержка браузерами стандарта WebAssembly