Обновить
256K+

JavaScript *

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

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

Руководство по JavaScript, часть 2: стиль кода и структура программ

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

Занимательный JavaScript: Без фигурных скобок

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

image


Меня всегда удивлял JavaScript прежде всего тем, что он наверно как ни один другой широко распространенный язык поддерживает одновременно обе парадигмы: нормальные и ненормальное программирование. И если про адекватные best-практики и шаблоны прочитано почти все, то удивительный мир того, как не надо писать код но можно, остается лишь слегка приоткрытым.


В этой статье мы разберем еще одну надуманную задачу, требующую непростительных надругательств над нормальным решением.

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

Руководство по JavaScript, часть 1: первая программа, особенности языка, стандарты

Время на прочтение8 мин
Охват и читатели340K
Недавно мы провели опрос, посвящённый целесообразности перевода этого руководства по JavaScript. Как оказалось, около 90% проголосовавших отнеслись к данной идее положительно. Поэтому сегодня публикуем первую часть перевода.



Это руководство, по замыслу автора, рассчитано на тех, кто уже немного знаком JavaScript и хочет привести свои знания в порядок а также узнать о языке что-то новое. Мы решили немного расширить аудиторию этого материала, включить в неё тех, кто совершенно ничего не знает о JS, и начать его с написания нескольких вариантов «Hello, world!».

Часть 1: первая программа, особенности языка, стандарты
Часть 2: стиль кода и структура программ
Часть 3: переменные, типы данных, выражения, объекты
Часть 4: функции
Часть 5: массивы и циклы
Часть 6: исключения, точка с запятой, шаблонные литералы
Часть 7: строгий режим, ключевое слово this, события, модули, математические вычисления
Часть 8: обзор возможностей стандарта ES6
Часть 9: обзор возможностей стандартов ES7, ES8 и ES9

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

«Я просто энтузиаст проекта и пользователь языка Dart» — интервью с Ari Lerner, автором знаменитой ng-book

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


Как написать девять книг по совершенно разным технологиям, включая Angular, Vue, React, React Native и другим? Что самое важное в обучении, что такое «hallway chat» и вообще, при чём тут Dart и Flutter?

Сегодня у нас в гостях автор множества книг и статей по программированию, включая ng-bookAri Lerner. Какой будет дальнейшая книга, что автор думает о таком… противоречивом языке, как Dart, и почему на конференциях так важно общаться, спрашивают ребята из программного комитета конференции HolyJS (Дмитрий DmitryMakhnev Махнёв и Евгений bunopus Кот).

Самодокументированные микросервисы (ArangoDB + swagger)

Время на прочтение5 мин
Охват и читатели6K
Поддержание документации к микросервисам в актуальном состоянии по прежнему требует предельной дисциплины при разработке, ну и больших трудозарат. Очень разумный подход к созданию документации предлагает, например, GraphQL, где документация неразрывно связана с программным кодом и этим гарантируется 100% соответствие документации и документируемых сервисов. Однако, непривычность подхода GraphQL для разработчиков, привыкших к REST-API, все еще затрудняет продвижение этой технологии в практическую разработку приложений. Тут же можно вспомнить и SOAP, который уже давно решил проблему соответствия документации и сервисов, но из-за переусложненности не прижился в широких массах разработчиков.

Хотелось бы найти такой стек технологий для разработки микросервисов, который обеспечил такую же самодокументируемость программного кода при разработке «традиционных» REST-API микросервисов. И он, как оказалось, уже существует.
Читать дальше →

Дайджест свежих материалов из мира фронтенда за последнюю неделю №338 (5 — 11 ноября 2018)

Время на прочтение4 мин
Охват и читатели13K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.


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

Заглядываем под капот нового Gmail

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

Полгода назад Google представила обновленную версию своего почтового сервиса. Несмотря на то что многие пользователи были недовольны редизайном, в том числе и на Хабре, это теперь основной интерфейс для пользователей.


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

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

Как я делал анимации Солнечной системы для сына-второклассника

Время на прочтение5 мин
Охват и читатели32K
Когда-то давно я получил высшее образование по физике. Позже еще самостоятельно выучился на веб-программиста. С тех пор я преимущественно работаю программистом, но продолжаю уделять время и физике, и технике (что-нибудь рассчитываю или конструирую), и науке в целом. Подобное «раздвоение» приносит интересные результаты. Оказалось, что некоторые факты в физике можно хорошо объяснить с помощью программирования.

Откуда вообще возник такой вопрос? У старшего ребенка в школе было занятие про планеты Солнечной системы. В целом, он их знает, и на вечернем небе мы видели некоторые (Юпитер, Марс, Сатурн). Но многие интересные факты остаются за пределами понимания. Не хватает наглядности, движения, может быть, интерактивности. Вот именно этот пробел в подаче материала я и захотел заполнить с помощью веб-программирования, следуя известной мудрости «лучше один раз увидеть, чем сто раз услышать».

Как вы уже догадались, в статье речь пойдет о фактах, касающихся Солнечной системы (не только о планетах). Давайте посмотрим, что есть такого любопытного в нашем галактическом уголке.
Читать дальше →

Краткая выжимка из книги React и Redux функциональная веб-разработка: Глава 1. Добро пожаловать в React

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

image


Предисловие


Для начала представлюсь, меня зовут Эдик, я Full Stack Web Developer. Основные направления Laravel & React.js, Vue.js. Изучаю GoLang и Swift.


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


Чтобы структурировать данные информация будет представлена в виде серии статей разбитых по главам.


Я пишу эти нотатки для себя и решил поделится ими со всем миром. Так что не будьте суровы. И так, поехали!


Глава 1. Добро пожаловать в React


React — популярная библиотека, используемая для создания пользовательских интерфейсов. Она была создана в Facebook чтобы решить ряд проблем, связанных с крупномаштабными сайтами.

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

Работа с абстрактными синтаксическими деревьями JavaScript 

Время на прочтение7 мин
Охват и читатели15K
Зачем парсить свой код? Например, для того, чтобы найти забытый console.log перед коммитом. А что делать, если вам надо изменить сигнатуру функции в сотнях вхождений в коде? Справятся ли тут регулярные выражения? В этой статье будет показано, какие возможности перед разработчиком открывают абстрактные синтаксические деревья.



Под катом — видео и текстовая расшифровка доклада Кирилла Черкашина (z6Dabrata) с конференции HolyJS 2018 Piter.

Руководство по разработке Web-приложений на React Native

Время на прочтение8 мин
Охват и читатели33K
Вы проснулись. Сияет солнце, щебечут птички. В мире никто ни с кем не воюет, никто не голодает, а один и тот же код можно использовать и в веб-проектах, и в нативных приложениях. Как бы было хорошо! К сожалению, на горизонте можно разглядеть лишь универсальный код, но путь к нему, даже сегодня, всё ещё полон неожиданностей.

image

Материал, перевод которого мы сегодня публикуем, представляет собой небольшое, но достаточно подробное руководство по разработке универсальных приложений с использованием React Native.
Читать дальше →

[в закладки] PDF-версия руководства по Node.js и новое руководство по JavaScript

Время на прочтение2 мин
Охват и читатели48K
Недавно мы опубликовали серию материалов, представляющую собой перевод руководства по Node.js. В первой публикации мы интересовались мнением аудитории о целесообразности перевода этого руководства и говорили, что планируется подготовить его PDF-версию.

image


PDF-версия документа состоит более чем из 120 страниц, содержит оглавление, немного картинок и всё необходимое форматирование. Просто закидывайте файлик в читалку и готово. Или в папочку с литературой. Или… решать вам.

Скачать PDF-версию [ 1.8 Мб ]



Сегодня мы хотим представить вашему вниманию новое руководство того же автора, посвящённое JavaScript.

Вот краткий перечень вопросов, которые оно раскрывает:
  • Общая характеристика языка и его стандартизация
  • Особенности стандартов ES6, ES7, ES8, ES9
  • Оформление кода, руководства по стилю
  • Лексическая структура языка
  • Переменные
  • Типы данных
  • Выражения
  • Логические выражения
  • Прототипное наследование
  • Классы
  • Исключения
  • Функции и замыкания
  • Массивы
  • Циклы
  • События
  • Асинхронное программирование
  • Таймеры
  • Строгий режим
  • Математические вычисления
  • Модули

Мы планируем это руководство перевести, но, прежде чем приняться за работу, хотели бы предложить вам поучаствовать в небольшом опросе
Читать дальше →

Почему на touch-ноутбуках некоторые SPA перестали поддерживать touch-события

Время на прочтение1 мин
Охват и читатели4K
Возможно, я только сейчас разглядел, а всё уже давно знают, но оказывается, что в Chrome 70 сделали вот такое: The ontouch* APIs default to disabled on desktop

Соответственно, если в своём коде вы опирались на наличие ключей 'ontouch*' в document или window, ваш код перестанет определять, что работает на touch-устройстве.
Читать дальше →

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

Разыгрываем билеты на воркшоп «Advanced React State Management With MobX»

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


Привет, хаброчитатели! Мы с классными новостями. Как только наши коллеги узнали, что Michel Weststrate готов сделать воркшоп в Москве, сразу собрали группу желающих. И решили разыграть два билета на мастер-класс среди читателей хаброблога. Про воркшоп и условия розыгрыша читайте под катом.
Читать дальше →

Стрелочные функции в JavaScript: зачем они нужны, как с ними обращаться, когда ими стоит пользоваться, а когда — нет

Время на прочтение8 мин
Охват и читатели169K
Одной из самых заметных новшеств современного JavaScript стало появление стрелочных функций (arrow function), которые иногда называют «толстыми» стрелочными функциями (fat arrow function). При объявлении таких функций используют особую комбинацию символов — =>.

У стрелочных функций есть два основных преимущества перед традиционными функциями. Первое — это очень удобный и компактный синтаксис. Второе заключается в том, что подход к работе со значением this в стрелочных функциях выглядит интуитивно понятнее, чем в обычных функциях.

image

Иногда эти и другие преимущества ведут к тому, что стрелочному синтаксису отдают безусловное предпочтение перед другими способами объявления функций. Например, популярная конфигурации eslint от Airbnb принуждает к тому, чтобы всегда, когда создают анонимную функцию, такая функция была бы стрелочной.

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

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

Как использовать новую экспериментальную функцию Profiler в React

Время на прочтение4 мин
Охват и читатели2.7K
Вот и вышел React 16.4.0! (Прим. переводчика — эта фича была добавлена в версии 16.4.0, тогда и был написан этот пост). И в такие моменты вы понимаете, насколько вы JavaScript — гик, если следите за минорными обновлениями своего любимого фреймворка. Отлично!



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

Кроме того, есть багфикс для как-бы нового метода getDerivedStateFromProps (теперь он будет вызываться при каждом рендере). Я ещё недостаточно этим пользовался, поэтому для меня это обновление было не очень важным.

Затем я увидел похороненный под заголовками анонс о том, что они добавили новый экспериментальный компонент unstable_Profiler. Видя, что моя жизнь сейчас достаточно неустойчива(unstable_), я решил прочитать RFC и попробовать его.
Читать дальше →

Оффлайн брокер на JavaScript

Время на прочтение7 мин
Охват и читатели7.8K
В своем проекте, мне понадобился функционал, который позволил бы не терять внесенные данные, в случае разрыва интернет соединения и я придумал очень простой «Брокер», который позволял не терять данные при потере соединения, а отправлять их когда соединение будет снова восстановлено. Возможно «Брокер» для него не очень хорошее название, но не судите строго. Хочется поделиться, может кому-то станет полезным.
Читать дальше →

Компоненты высшего порядка в React

Время на прочтение12 мин
Охват и читатели46K
Недавно мы публиковали материал о функциях высшего порядка в JavaScript, направленный на тех, кто изучает JavaScript. Статья, перевод которой мы публикуем сегодня, предназначена для начинающих React-разработчиков. Она посвящена компонентам высшего порядка (Higher-Order Components, HOC).


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

Сделаем веб снова великим

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

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

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

TypeScript: Десериализация JSON в классы с валидацией типов у свойств

Время на прочтение3 мин
Охват и читатели26K
Привет, Хабр! Хочу поделиться с вами своей библиотекой для десериализации объектов JSON в классы, которая еще и автоматически валидирует по типам входные данные.

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