Обновить
256K+

JavaScript *

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

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

Стилизация React-компонентов

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

image


Введение


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


  • Использование React предполагает, что View нашего Web-приложения разбито на компоненты, и каждый из них, так или иначе, отвечает за собственное отображение и функциональность.


  • Подразумевается, что будут использованы современные инструменты разработки вроде babel, webpack, browserify, gulp, post- pre- css-процессоры.

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

JavaScript по-русски — pycckuu.js

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


Вы никогда не задумывались, как выглядит код на JavaScript для программиста, у которого родной язык — английский? Представьте, насколько удобнее им читать и писать код на своем «нативном» языке, насколько ускоряется время разработки и уменьшается количество багов. А ведь использование английского языка как основы для языков программирования не обусловлено ничем, кроме того, что «так исторически сложилось».
Читать дальше →

Вышел в свет Node.JS v6.0

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

Сегодня увидела свет версия 6.0. Изменений много, в том числе за счет обновления версии v8 (до v5.0), при этом некоторые из них могут поломать ваш код. В октябре этого года ветка v6.x станет новой активной LTS версией и её поддержка продлится до апреля 2018 года.


Изменена логика работы Buffer для повышения безопасности приложений. Из коробки будут доступны Proxy, Reflect, расширеная поддержка ES 2015. Основные изменения c примерами под катом.

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

Конкурс по программированию на JS: Классификатор слов

Время на прочтение5 мин
Охват и читатели74K
Компания Hola объявляет начало весеннего конкурса по программированию! Призовой фонд увеличен:

  1. Первое место: 3000 USD.
  2. Второе место: 2000 USD.
  3. Третье место: 1000 USD.
  4. Возможно, мы решим отметить чьи-то чрезвычайно оригинальные решения двумя специальными призами в 400 USD.
  5. Если Вы отправите кому-то ссылку на этот конкурс, поставив наш адрес в CC, и этот человек займёт призовое место, Вы получите половину суммы приза (разумеется, не в ущерб награде победителя). За одного победителя такую награду может получить только один человек — тот, кто отправил ссылку первым.

Мы ищем талантливых программистов, поэтому авторы интересных решений будут приглашены на собеседования.

Опубликовано дополнение: Тестовая программа, часто задаваемые вопросы, типичные ошибки.
Опубликовано дополнение: О ходе тестирования.


Правила


На этот раз мы решили попробовать что-то новенькое: для разнообразия, этот конкурс — не на производительность кода.

Условия конкурса на английском языке размещены на GitHub. Ниже — перевод на русский язык.

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

Все, что хотел

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

Hotel – приют для localhost.


Запуск и управление всех ваших веб-проектов с одного адреса.


Больше, разных портов костылей.


Можно держать зоопарк портов для каждого проекта: 9000, 8000, 8080, 3000, 3001…
Или настраивать веб-сервер, править /etc/hosts файл или DNS для каждого проекта.
А еще помнить, как запускать девелоперский веб-сервер для каждого проекта:


  • gulp
  • gulp serve
  • gulp watch
  • ionic serve
  • browser-sync start --server --no-open --directory --files
  • http-server -p 9000
  • python -m http.server 8000
  • php -S localhost:8000
  • и так далее...

Сделать жизнь проще поможет hotel.


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

Async/Await в javascript. Взгляд со стороны

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


В последнее время все больше моих друзей, коллег и людей из сообщества говорят про работу с асинхронными функциями и в частности про использование async/await на своих проектах. Я решил разобраться для себя, что это за зверь и стоит ли его использоваться при разработке боевых проектов.

Первое что хочется развеять, это распространенное заблуждение о том, что async/await — это фича ES7.

По моему мнению, использование терминов ES6 и ES7 само по себе не очень верное и может ввести разработчиков в заблуждение. После удачного релиза спецификации ES2015, называемой ES6, у многих людей сложилось ошибочное мнение, что все в нее не вошло и заполифилено через babel — это фичи ES7. Это не так. Вот список того что появится с релизом спецификации ES2016. Как видите он не такой большой и async/await в нем никак не значится.

Я хочу, чтобы мы говорили правильно. И говоря о той, или иной фиче, ссылались на конкретную спецификацию в рамках которой она описана и реализована, а не мифические ES6, ES7 … ESN.
Читать дальше →

Краткая история Всемирной паутины по версии веб-разработчиков

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

Веб станет намного лучше, когда мы сможем использовать изображения.


Веб станет намного лучше, когда мы сможем использовать больше 216 цветов.


Веб станет намного лучше, когда у нас появятся каскадные таблицы стилей.

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

Этажи: 3D-навигация на WebGL в 2gis.ru

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


В 2014 году 2ГИС выпустил Этажи — это фича, позволяющая посмотреть схему этажей здания и найти на ней нужную организацию. Долгое время она существовала только в мобильных приложениях 2ГИС. Теперь эта возможность появилась и в онлайн-версии.

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

Профилирование JS-кода из функций. Опыт Яндекса

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

Последние полгода всем знакомый интерфейс поисковой выдачи Яндекса (Search Engine Result Page — SERP) переезжает на новую архитектуру, с которой разработка неспецифичных фич становится очень быстрой, а разработка специфичных фич — прогнозируемой. Для большой распределенной команды из 40 фронтендеров это большой успех. Когда все было почти готово и новый код начали обкатывать в production экспериментах, оказалось, что серверная JS-шаблонизация в новой архитектуре ощутимо замедлилась.



Новый код был проще и логичнее скомпонован, поэтому замедление было не только нежелательным, но и неожиданным. Чтобы получить «зеленый свет» для новой архитектуры, нужно было ускорить код, чтобы он работал как минимум не медленнее старого.


Простым «разглядыванием» проблему решить не удалось, нужно было разбираться, нужно было профилировать. Читайте дальше, чтобы узнать, как это было сделано.

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

Эмодзи?! Нет, не слышал

Время на прочтение5 мин
Охват и читатели38K
image В нашу жизнь уже давно вошли эмодзи. И в социальных сетях, и во всевозможных мессенджерах мы используем их не задумываясь, выражая свои эмоции всего одним символом. Но для кроссплатформенного приложения отправка и отображение эмодзи — непростая задача. Проблема заключается в том, что отправленные эмодзи с мобильных приложений не всегда отображаются корректно на веб-сайтах.

Последние версии iOS и Android имеют поддержку более 1200 символов эмодзи, но «десктопный» рынок не может похвастаться такими успехами. Мы же в Badoo хотим и делаем все, чтобы пользователям было комфортно общаться на всех платформах, не имея никаких ограничений в переписке.
Далее я расскажу, каким способом мы добились 100% поддержки эмодзи для веба.
Читать дальше →

Бесплатные практические курсы по основам программирования на JavaScript

Время на прочтение2 мин
Охват и читатели86K
Привет, Хабр!

Мы на Хекслете закончили полный цикл курсов по обучению PHP-программистов и переключились на стек JavaScript. Первые два курса новой программы уже доступны, и они бесплатные!

Курс «Основы программирования» — это знакомство с миром разработки и языком JavaScript. Курс рассчитан на новичков без опыта в программировании, но будет полезен и многим практикующим программистам, потому что покрывает таки темы как рекурсивные и итеративные процессы, чистые функции и побочные эффекты, автоматические тесты и модульное тестирование.

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

Первая версия Visual Studio Code 1.0 — путь от простого редактора до мощного инструмента

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


Отличная новость завершает рабочую неделю - версия Visual Studio Code 1.0 вышла в релиз!

Мы с удовольствием делимся этим событием с разработчиками и вспоминаем, что с момента первого публичного выпуска превью Visual Studio Code прошел почти год, и за это время инструмент был установлен и протестирован 2 миллионами разработчиков.

Начинавшийся в качестве эксперимента, редактор кода превратился за это время в новый кросс-платформенный инструмент разработки, отлично дополнивший всю историю платформы для создания программного обеспечения средствами Visual Studio. Сейчас Visual Studio Code предоставляет расширенные возможности редактирования, навигации, отладки и встроенной поддержки Git. Скачать и установить Visual Studio Code 1.0 можно для операционных систем Windows, Linux и OS X.

Выпуск Visual Studio Code 1.0 — это не просто набор новых возможностей редактора, дополнивших предыдущие бета-версии, это результат плотной работы команды с сообществом, совместная работа над ошибками, улучшением производительности и т.д. Ведь изначально, VS Code создавался, как инструмент для разработчиков веб-приложений, ориентированных на JavaScript и TypeSript.
Читать дальше →

Пишем свой Lisp на JavaScript

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

image


Для начала следует задать простой вопрос: для чего?


Писать свой язык программирования — практически всегда плохая идея. Так зачем нам еще один лисп? Тем более, что уже есть ClojureScript, который на данный момент является production ready и имеет кучу приятных фич. Конкурировать даже с ClojureScript — безумие, — не гворя уже о TypeScript, CoffeeScript, etc. Но язык нам нужен и не для этого!


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

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

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

NPM и left-pad: мы разучились программировать?

Время на прочтение4 мин
Охват и читатели117K
Автор — Дэвид Хейни (David Haney), ведущий инженер-программист Stack Overflow

Итак, разработчики, время для серьёзного разговора. Вы уже наверное в курсе, что на этой неделе React, Babel и куча других популярных пакетов на NPM сломались. Причина довольно удивительная.

Простой пакет NPM под названием left-pad был установлен как зависимость в React, Babel и других пакетах. Модуль, который на момент написания этого поста, имеет 11 звёзд на Github (сейчас 323 — прим.пер). Весь пакет состоит из 11 простых строчек, которые реализуют примитивную функцию вставки пробелов в левой части строк. Если какие-то из ссылок когда-нибудь умрут, вот его код:

module.exports = leftpad;
function leftpad (str, len, ch) {
  str = String(str);
  var i = -1;
  if (!ch && ch !== 0) ch = ' ';
  len = len - str.length;
  while (++i < len) {
    str = ch + str;
  }
  return str;
}
Что меня беспокоит, так это такое большое количество пакетов, где установлена зависимость от простой функции набивки строки пробелами, вместо того чтобы потратить 2 минуты и написать эту базовую функцию самому.
Читать дальше →

Один разработчик чуть не «сломал» пакетный менеджер NPM

Время на прочтение2 мин
Охват и читатели101K
Веб-разработчик Азер Кочулу (Azer Koçulu), автор более 250 модулей для Node.js, попал в неприятную ситуацию. В своём блоге он пишет, что несколько недель назад получил письмо от юриста компании Kik (мессенджер) с требованием отозвать модуль с аналогичным названием kik из пакетного менеджера NPM (Node Package Manager).

Программист отказался, тогда юрист обратился напрямую в NPM, и администрация проекта удовлетворила его требование, сменив владельца kik без разрешения автора.

Азер Кочулу был крайне недоволен этим. Настолько недоволен, что решил в ответ «освободить» (то есть отозвать) все свои модули — более 250 модулей NPM. К сожалению, среди них оказался и left-pad — маленький модуль из 11 строк кода на JavaScript. Он используется при установке зависимостей между пакетами через NPM, в том числе в Node.js, JavaScript-транскомпиляторе Babel и огромном количестве других билдов. Только за прошлый месяц left-pad скачали 2 486 696 с сервера NPM, по их статистике.
Читать дальше →

Простой и не очень очевидный способ повесить chrome, firefox и nodejs внутри нативной функции

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

Вот весь код: var x = []; x[0x7fffffff]=1; JSON.stringify(x);


Для желающих попробовать: jsfiddle


Таким незамысловатым способом, можно намертво повесить firefox, довести до падения вкладку хрома и повесить основной поток nodejs.

Самое примечательное в этом то, что зависание происходит на уровне нативного кода функции JSON.stringify, что не позволяет прервать выполнение в том же firefox'е, как это обычно бывает при простом while(true);.

При выполнении внутри WebWorker'а в chrome, страница продолжает отвечать, но terminate не может завершить поток.

Так же по понятным причинам, такой код не обнаруживается jslint'ом.

Как это работает и как автор докатился до жизни такой

Три основных браузера добавили поддержку низкоуровневого бинарного формата WebAssembly

Время на прочтение2 мин
Охват и читатели38K
Google, Microsoft и Mozilla на этой неделе синхронно выпустили экспериментальные билды браузеров с поддержкой WebAssembly (wasm) — эффективного низкоуровневого языка программирования, выполняющегося в браузере с производительностью гораздо выше, чем у самых современных и скоростных компиляторов JavaScript.

Разработчик из Mozilla Люк Вагнер рассказал на Mozilla Hacks о преимуществах WebAssembly, а также сообщил о портировании на WebAssembly научно-фантастического шутера Angry Bots. Демка запускается в браузерах с поддержкой WebAssembly — это последние версии Chrome Canary, Firefox Nightly и Microsoft Edge. Скоро к ним присоединится Safari на WebKit.
Читать дальше →

Текстовый туториал по React.js и Redux на русском

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

(у учебника по Основам React вышло второе издание, Redux-учебник в процессе обновления)

Закончил работу над парой подробных текстовых туториалов на русском. Постарался уделить как можно больше времени практике. По ходу повествования есть вопросы, задачи и решения.


Курс про Redux попал в официальную документацию.


Оба руководства бесплатны и выложены на gitbook (можно скачать PDF, ePub, mobi).


В текстах нарочно участвуют термины переведенные на русский (например, состояние), английские (state), либо английский термин написанный по-русски — стейт. Считаю это допустимым, и даже более того, удобным для читателя.

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

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №202 (6 — 13 марта 2016)

Время на прочтение8 мин
Охват и читатели32K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


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

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №201 (1 — 6 марта 2016)

Время на прочтение7 мин
Охват и читатели38K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


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