Будущее уже наступило, дорогой друг! Хватить уже оправдывать свою лень тем, что браузеры что-то там не поддерживают. Пора решать старые задачи по-новому! Пора уже взять и выучить все новые возможности JavaScript из «новой» спецификации ECMAScript 2015 (также известна как ES6). Решил я написать обзорную статью с примерами нововведений. Зачем? Во-первых, хочется вас ещё раз подтолкнуть…
Makefile спешит на помощь
Сегодня мы поговорим о старых-добрых Makefile‘ах и о том, как они могут облегчить современным web-разработчикам жизнь. Начну, пожалуй, с вопросов. Бывало ли у вас при переключениях между разными проектами состояние, когда вы не знаете или не помните, какой командой нужно установить или обновить зависимости, собрать приложение или же запустить его? Вы всегда помните менеджер пакетов,…
Знакомство с 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…
Разработка лэндингов
Недавно сделал своей супруге лэндинг-страницу по теме логопед во Всеволожске. Поскольку мой блог — технический, я опишу то, как и чем я это делал. В процессе разработки помимо само собой подразумевающегося (HTML, CSS, JS) я выбрал следующий арсенал: Less, AngularJS, Grunt, RequireJS. Многие спросят: «Зачем для лэндинга AngularJS»? Ответ тут простой. Во-первых, конкретно для этого…