Обновить
128K+

JavaScript *

Прототипно-ориентированный язык программирования

265,86
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Локализация комментариев в коде. Лекция Яндекса

Время на прочтение8 мин
Охват и читатели27K
В процессе выхода на международный рынок с API Карт мы решили отказаться от комментирования кода на русском языке. При этом на основе комментариев формируются справочники сервиса, которые затем публикуются у нас на портале, и отказываться от поддержки справочников на русском языке мы не хотели. Из доклада Олеси Горбачевой и Максима Горкунова вы узнаете, как технические писатели Яндекса совместно с разработчиками API Карт поменяли язык комментариев и организовали синхронную поддержку справочников и примеров сразу на двух языках.


Разработка 2D песочницы на JavaScript с нуля

Время на прочтение5 мин
Охват и читатели16K
Как-то для своих некоторых планов мне потребовалось сделать небольшую песочницу в 2D пространстве с базовыми возможностями:

1. Передвижение по игровому миру
2. Физика при движении, столкновения
3. Создание блоков
4. Удаление блоков

Графическое исполнение меня не беспокоило, поэтому я решил оформить все в серых тонах, выглядит это так:

image

$mol — лучшее средство от геморроя

Время на прочтение15 мин
Охват и читатели23K

Всем привет, меня зовут Дмитрий Карловский и я… хочу причинить вам боль. Много боли. Я напомню вам обо всех страданиях, что вы исптываете находясь в плену своего любимого js-фреймворка. Я опущу вас на самое дно самой глубокой безысходности. А потом, когда вы совсем отчаетесь и потеряете веру в комьюнити, я подам вам руку помощи и покажу светлое будущее.


Я причиню вам боль


Далее вашему представляется текстовая расшифровка одноимённого выступления c IT Global Meetup #11. Вы можете читать её как статью или же открыть в интерфейсе проведения презентаций. Приятного чтения.

Читать дальше →

Окружение для разработки веб-приложений на TypeScript и React: от 'hello world' до современного SPA. Часть 2

Время на прочтение14 мин
Охват и читатели15K
Цель данной статьи — вместе с читателем написать окружение для разработки современных веб-приложений, последовательно добавляя и настраивая необходимые инструменты и библиотеки. По аналогии с многочисленными starter-kit / boilerplate репозиториями, но наш, собственный.

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

image
Читать дальше →

Vibe.js — попытка сделать state management без боли

Время на прочтение4 мин
Охват и читатели11K

Всем йо, хабражители.


В общем, так вышло, что я пишу на JavaScript уже довольно долго, и одной из самых главных задач всегда была организация состояния приложения.
TL; DR;
Нет ничего привычнее на свете,
Чем писать колесо на велосипеда


Что-то хочется кешировать, что-то обновлять, причем обновлять везде, а не только в локальном компоненте, не хочется перерисовывать весь компонент если поменялся весь Store (shout out to Vuex), а хочется подписываться на то, что используешь (shout out to MobX).

Читать дальше →

Stryker, мутационное тестирование в JavaScript

Время на прочтение6 мин
Охват и читатели10K

image


Недавно я познакомился с методом тестирования ПО под названием «Мутационное тестирование» и уже успел стать фанатом такого подхода к написанию тестов.


Сначала теория


Цель мутационного тестирования состоит в выявлении неэффективных и неполных тестов, то есть это по сути тестирование тестов.


Идея состоит в том, чтобы изменять небольшие случайные фрагменты исходного кода и наблюдать за реакцией тестов. Если после внесения изменений тесты всё равно пройдены, то такой набор тестов неэффективен или неполон.

Читать дальше →

Объясняем современный JavaScript динозавру

Время на прочтение15 мин
Охват и читатели270K


Если вы не изучали JavaScript с самого начала, то осваивать его современную версию сложно. Экосистема быстро растёт и меняется, так что трудно разобраться с проблемами, для решения которых придуманы разные инструменты. Я начал программировать в 1998-м, но начал понимать JavaScript только в 2014-м. Помню, как просматривал Browserify и смотрел на его слоган:


Browserify позволяет делать require («модули») в браузере, объединяя все ваши зависимости


Я не понял ни слова из предложения и стал разбираться, как это может помочь мне как разработчику.


Цель статьи — рассказать о контексте, в котором инструменты в JavaScript развивались вплоть до 2017-го. Начнём с самого начала и будем делать сайт, как это делали бы динозавры — безо всяких инструментов, на чистом HTML и JavaScript. Постепенно станем вводить разные инструменты, поочерёдно рассматривая решаемые ими проблемы. Благодаря историческому контексту вы сможете адаптироваться к постоянно меняющемуся ландшафту JavaScript и понять его.

Ember.js: отличный фреймворк для веб-приложений

Время на прочтение22 мин
Охват и читатели32K
Ember.js — это JavaScript-фреймворк для разработки клиентской части веб-приложений, амбициозный проект, который в последнее время привлекает к себе много внимания. Сегодня мы хотим рассказать о некоторых ключевых концепциях, лежащих в основе Ember.js, продемонстрировав их в ходе создания простого приложения.



Это будет программа Dice Roller, которая позволяет «бросать» игральные кости, предварительно задавая их параметры, и просматривать историю предыдущих «бросков». Её код можно найти на Github.
Читать дальше →

На дворе почти 2018, а мы любим колбэки

Время на прочтение9 мин
Охват и читатели25K
Если в первый момент идея не кажется абсурдной, она безнадёжна.
— Альберт Эйнштейн

Мы собрали для вас самые популярные темы из обсуждений Node.js на Хабре, и попросили рассказать о них признанных экспертов: некоммерческого Node-хакера Матиаса Мэдсена и автора множества книг и курсов по Node, Азата Мардана.


Вот точный список тем:


  1. Потоки в Node.js и способы распараллеливания вычислений;
  2. Асинхронность в Node.js;
  3. Отладка и логирование в Node.js;
  4. Проблемы мониторинга производительности на продакшене;
  5. Инструменты для мониторинга нод.


    Азат Мардан (Azat Mardan) — Tech Fellow, менеджер в компании Capital One, и эксперт по JavaScript/Node.js с несколькими онлайн-курсами на Udemy и в Node University, а также автор 14 книг по той же тематике, включая «React Quickly» (Manning, 2017), «Full Stack JavaScript» (Apress, 2015), «Practical Node.js» (Apress, 2014) и «Pro Express.js» (Apress, 2014).






Читать дальше →

Изоморфное приложение React JS + Spring Boot

Время на прочтение9 мин
Охват и читатели45K


Про ReactJs, Java, Spring, рендеринг, Virtual DOM, Redux и прочие подобные вещи уже существует очень много всевозможных статей и практических наработок, поэтому я не буду в них углубляться.

Я не замерял производительность этой конструкции. Те кому интересно, могут провести свои личные тесты и сравнить например с NodeJS.

Я не особо заморачивался на стиле и качестве кода, так что извиняйте, кому не придётся по душе =)

Цель моей работы просто заставить работать воедино такие вещи как ReactJS + Redux + WebPack + Java/Spring.

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

С радостью исполняю желание читателей.
Читать дальше →

Firebase + Angular Universal = невозможное возможно

Время на прочтение6 мин
Охват и читатели8.9K

image
Firebase отличный инструмент для быстрой разработки приложений. Однако при использовании Firebase и Angular Universal могут возникнуть следущие вопросы:


  • Какой пакет firebase использовать в браузере пользователя и какой использовать на сервере?
  • Какой механизм использовать для асинхронных операций?
  • Как передать данные с сервера браузеру, избегая дублирования запросов?
Читать дальше →

Шесть вопросов спикерам FrontFest

Время на прочтение8 мин
Охват и читатели4.9K


Пару лет назад на CodeFest мы придумали экспертную зону. Ну, как придумали — наверняка подглядели на зарубежной конференции, но уже забыли на какой. Так вот, экспертная зона — то место, куда идёт спикер после своего доклада и ещё как минимум один слот (время доклада + вопросы) общается с участниками. Зачем мы так сделали? Чтобы увеличить время общения участников со спикером. Немудрено, что в кулуарах задавать вопросы проще, чем из зала.

На FrontFest мы пошли дальше и решили «разогреть» спикеров заранее — придумали шесть вопросов про технологии, будущее веба, работу и хобби. Знакомьтесь, задавайте свои вопросы в комментариях, приходите общаться лично на FrontFest!
Читать дальше →

Веб-приложение на Node и Vue, часть 2: компоненты, формы, маршруты

Время на прочтение13 мин
Охват и читатели50K
Перед вами — вторая часть серии материалов, которая посвящена созданию веб-приложения Budget Manager с использованием Node.js, Vue.js и MongoDB. В первой части мы занимались сервером, а именно — подготовили основные методы RESTful API и наладили JWT-аутентификацию. Сегодня приступим к работе над клиентской частью приложения, создадим каркас фронтенда, средства для регистрации в системе и входа в неё, поговорим о маршрутах и об их защите.

image
Читать дальше →

Ближайшие события

Angular c Clarity Design System от VmWare

Время на прочтение7 мин
Охват и читатели9.1K


Поработав с Angular Material 2, в какой то момент пришел к выводу, что продукт сыроват для полета фантазии и некоторые вещи (badge, vertical tabs, data-grid) либо реализованы с минимальным функционалом, либо In progress, planned.

Вечером, придя домой, начал искать что нибудь, что мог бы предложить тимлиду как альтернативу для следующего проекта. Тут то я и заметил, что angular.io разжился табом Resources. Это было пару месяцев назад.
Там среди прочих довольно таки полезных вещей, команда разработчиков Angular, добавила продукт от не менее известной компании, чьи разработки я уважаю и с щенячьим восторгом всегда рад лишний раз поковырять — VmWare. Ребята сделали весьма и весьма достойный продукт — Clarity.
Читать дальше →

Разработка браузерной онлайн игры без фреймворков и движков

Время на прочтение15 мин
Охват и читатели38K

Привет, Хабр!

В этом посте будет описан процесс разработки онлайн игры на чистом javascript и WebGL (без фреймворков и движков). Будут рассмотрены некоторые алгоритмы, техники рендеринга, искусственный интеллект ботов и сетевая игра. Проект является полностью опенсорсным, в конце поста будет ссылка на репозиторий.
Много картинок и гифок

Как мы Raiffeisen Online создавали…

Время на прочтение13 мин
Охват и читатели31K

Интернет-банк уже давно превратился из роскоши в must have для любого уважающего себя банка. Излишне говорить, что приложение должно не просто быть, а должно быть надёжным, удобным и приятным в использовании. В одной статье не получится рассказать обо всех аспектах нашего интернет-банка Raiffeisen Online, но зато я расскажу о нашем опыте создания новой версии, его архитектуре и трудностях, с которыми столкнулась команда. Возможно, кому-то наш опыт поможет сэкономить время и усилия.
Читать дальше →

Длинные уши асинхронности

Время на прочтение13 мин
Охват и читатели11K


Разработчики React тяготеют к функциональному подходу, но с появлением MobX, появилась возможность работать с состоянием в более-менее привычном ООП-стиле. Mobx старается не навязывать какую либо архитектуру, позволяя работать с реактивным состоянием, как с обычными объектами. При этом он делает автоматическое связывание вычислений, когда достаточно написать C = A + B, чтобы при обновлении A, обновился и C.


В HelloWorld это выглядит просто, но если мы добавим fetch, отображение статусов загрузки и обработку ошибок, мы увидим, что получается много копипаста, а в код начинают просачиваться хелперы вроде when, fromPromise или lazyObservable. И уже не получается писать код так, как будто нет асинхронности. Я хочу разобрать некоторые подобные примеры в MobX и попытаться улучшить его базовую концепцию, развив идею псевдосинхронности.

Читать дальше →

Книга «Angular для профессионалов»

Время на прочтение8 мин
Охват и читатели24K
image Выжмите из Angular — ведущего фреймворка для динамических приложений JavaScript — всё. Адам Фримен начинает с описания MVC и его преимуществ, затем показывает, как эффективно использовать Angular, охватывая все этапы, начиная с основ и до самых передовых возможностей, которые кроются в глубинах этого фреймворка.

Каждая тема изложена четко и лаконично, снабжена большим количеством подробностей, которые позволят вам стать действительно эффективными. Наиболее важные фичи даны без излишних подробностей, но содержат всю необходимую информацию, чтобы вы смогли обойти все подводные камни.
Читать дальше →

Видео-звонки в видеоконференцию Zoom с веб-страниц

Время на прочтение2 мин
Охват и читатели9.8K

В предыдущей хабрастатье я показал, что если сервис умеет интегрироваться по SIP и RTP, то с ним можно делать много интересных штук. Например, приглашать в видеоконференции Zoom участников с мобильных телефонов. Но наше облако Voximplant — это не только телеком и телефоны. Еще мы любим и умеем SDK, чтобы звонить и принимать звонки из неожиданных мест: с веб-страниц, из приложений (звонки через интернет намного дешевле, чем через голосовой канал) и даже из VR/AR Unity решений. В этой статье я покажу, как с помощью нескольких строк фронтенд JavaScript создавать «звонящие» страницы, с помощью которых участники смогут делать видеозвонок в конференцию. И да, благодаря последнему обновлению от Apple звонить теперь можно и с веб-страниц на iPhone!

Тащим музыку из ВК без публичного music API

Время на прочтение6 мин
Охват и читатели92K

Как все начиналось


Дело было вечером, делать было нечего… Точнее, я просто хотел загрузить аудиокнигу перед парами и тут меня ждал сюрприз. Кэш в кейт мобайле отключили. Как так? Что делать? Конечно же писать свое приложение с кэшем и аудиозаписями. Но для начала нужно понять, как вк превращает ссылки вида audio%user_id%_%track_id% в прямые ссылки на mp3. Что из этого вышло приложения я не написал и как скачать определенный плейлист можно прочитать под катом.
Читать дальше →