Будущее уже наступило, дорогой друг! Хватить уже оправдывать свою лень тем, что браузеры что-то там не поддерживают. Пора решать старые задачи по-новому! Пора уже взять и выучить все новые возможности JavaScript из «новой» спецификации ECMAScript 2015 (также известна как ES6). Решил я написать обзорную статью с примерами нововведений. Зачем? Во-первых, хочется вас ещё раз подтолкнуть…
Знакомство с Webpack
Наверно, уже каждый разработчик хотя бы мало-мальски интересующийся новостями в своей профессиональной сфере слышал про webpack. Что это за зверь, и для чего он нужен, мы с вами разберём сегодня? Начнём с определения. Webpack — это невероятно мощный, гибкий и популярный сборщик модулей JavaScript. Он уже успел не раз удивить JS-сообщество своими возможностями, завоевав сердца…
Unit-тестирование AngularJS-приложений
Как легко догадаться из названия, Unit-тестирование — это тестирование отдельных единиц (англ. unit) кода. Под единицей подразумевается небольшая изолированная часть кода, выполняющая конкретную функцию. В сегодняшней статье мы посмотрим о том, как тестировать при помощи Jasmine различные сущности фрэймворка AngularJS. Каждая из них имеет свою специфику, поэтому нужно знать определённые шаблоны, правила и рекомендации, чтобы…
HTML5 Canvas. Рисуй и анимируй!
HTML5 уже давно на дворе, а мы в этом блоге ещё ни разу ничего на холсте (canvas) не нарисовали И чтобы исправить эту несправедливость, я сегодня на достаточно простом примере расскажу и покажу, как рисовать и анимировать с помощью этого интересного элемента web-страницы. Эти знания пригодятся вам, например, при разработке HTML5-игр. Сразу скажу, что сегодня…
Unit-тесты с асинхронностью в Jasmine
Продолжая тему тестирования, давайте разберёмся, как в Jasmine работать с асинхронностью. При разработке клиентской части — это, на мой взгляд, достаточно редкий случай тестов, но знать всё равно будет полезно! Вообще, в unit-тестах при помощи mock-ов желательно избавляться от асинхронности, чтоб гарантировать один из критериев unit-тестирования — изолированность модуля от другой части приложения и высокая…
Заглушки для HTTP-сервера в AngularJS-приложении
Сегодня мы поговорим про заглушки в AngularJS-приложениях. Именно в приложениях, а не в тестах! Очень часто при разработке клиентской части приложения приходится реализовывать новую функциональность, не имея при этом рабочей функциональности на серверной стороне. А ещё иногда возникает потребность показать заказчику прототип приложения, не реализовывая при этом API для экономии времени. Когда-то я делал для…
when и expect в сервисе $httpBackend
Сегодня поговорим о unit-тестировании AngularJS-сервисов, которые предоставляют интерфейс для обмена данными с сервером, а если быть точнее, то мы рассмотрим один нюанс — отличие expect’ов от when’ов при работе с $httpBackend‘ом из модуля ngMock. Но давайте будем последовательны и начнём с начала. Встроенный AngularJS-сервис $http делегирует всю работу по обеспечению кроссбраузерности в работе с XMLHttpRequest…
Проблема с npm
Сегодня я поведую историю одной проблемы с пакетным менеджером npm. В один прекрасный день столкнулся с такой проблемой: часть UI в нашем проекте перестала собираться. Валилось всё на стадии загрузки npm-зависимостей. Ошибка была для меня непонятной, т.к. никогда на такое я ещё не нарывался. Но тем оно и интереснее! Заключалась ошибка в том, что npm…
Организация зависимостей RequireJS
При разработке крупных масштабируемых web-приложений с использованием RequireJS иногда даже самые связные модули могут потребовать довольно много других модулей-зависимостей. Как следствие, поддержка порядка этих зависимостей может стать достаточно утомительным занятием. К счастью, RequireJS предоставляет нам средства для упрощения того, как модули могут определять зависимости в таких случаях. Упорядочение зависимостей Если мы посмотрим, как в обычном…
Что такое $apply и $digest в AngularJS?
В AngularJS есть два основополагающих понятия, которые многие недопонимают и путают, — $apply и $digest. Чтобы прояснить, как фрэймворк работает, каждый должен понимать, что из себя представляют $apply и $digest, и как они могут помочь AngularJS-разработчику в ежедневной разработке пользовательских интерфейсов. Исследование $apply и $digest Одной из самых полезных возможностей AngularJS из коробки является двустороннее…