Как стать автором
Обновить
17
0
Александр Воронянский @BelirafoN

Frontend Teamlead

Отправить сообщение

Релиз Node.js 10 и NPM 6

Время на прочтение3 мин
Количество просмотров33K


Сегодня состоялся одновременный релиз Node.js v10 (LTS) и NPM v6. Данное событие особенно важно, оно знаменует собой новую веху для всей платформы и превносит много значимых изменений и улучшений во всей кодовой базе Node.js. Появилась поддержка новых алгоритмов шифрования.

Подробнее об изменениях
Всего голосов 59: ↑58 и ↓1+57
Комментарии38

Директивы prefetch и preload в webpack

Время на прочтение11 мин
Количество просмотров12K
В webpack 4.6.0. появилась поддержка директив prefetch и preload (они выглядят, соответственно, как «магические комментарии» webpackPrefetch и webpackPreload к командам import()). С их помощью браузеру можно давать подсказки о ресурсах, которые могут понадобиться пользователю в недалёком будущем. Браузер заблаговременно загружает такие ресурсы, что позволяет улучшить впечатление пользователя от работы с сайтом.

image

В материале, перевод которого мы сегодня публикуем, речь пойдёт о том, как пользоваться этими директивами для оптимизации производительности веб-сайтов.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии0

Технический долг на проекте или выбраться из черной дыры

Время на прочтение6 мин
Количество просмотров15K
Каждому разработчику знакома ситуация, когда реализация новой возможности в системе занимает большое количество времени, но релиз уже близко, а тимлид или менеджер проекта пятый раз за день задают уже надоевший вопрос: “Ну когда будет готово?”. И тогда встает непростой выбор — сделать все правильно и не уложиться в сроки релиза или реализовать минимально работающий, но не идеальный с точки зрения технического решения, функционал. Очевидно, что в большинстве случаев будет выбран второй вариант, так как релиз и предоставление результата клиентам здесь и сейчас важнее чистоты кода и архитектуры системы. Но проходит несколько месяцев, и вот уже старое не идеальное техническое решение мешает реализации другого функционала. И дальше такие решения будут накапливаться в огромный ком. Разбираясь с этой проблемой, очень важно сделать правильные выводы и выбрать нужное решение. От этого решения будет зависеть дальнейшая судьба всего проекта. В данной статье мы постараемся разобраться с природой технического долга и посоветовать пути его устранения.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии11

Moscow SPA №4: краткое содержание, видео, презентации, фотоотчёт

Время на прочтение2 мин
Количество просмотров5.4K

Недавно в офисе Авито прошёл четвёртый по счёту митап-сателлит Moscow.js — Moscow SPA, встреча для фронтенд-разработчиков, которым интересна тема веб-приложений (Single Page Application). Прозвучали доклады от представителей Mail.ru, Альфа-Банка и Авито, а в конце встречи прошла панельная дискуссия о том, каким должно быть SPA сегодня. Под катом — видеозаписи и презентации докладов и ссылка на фотоотчёт.


Всего голосов 21: ↑20 и ↓1+19
Комментарии0

Из рутины в приятный процесс: что такое бэклог продукта и как им управлять?

Время на прочтение5 мин
Количество просмотров194K
Менеджеры продукта и его собственники не могут не уделять серьезного внимания продуктовому бэклогу. Не только для облегчения планирования релизов и итераций, но и для оптимизации всего жизненного цикла продукта, над которым намерена работать команда.

image
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии2

Ещё один инструмент для проверки ваших npm зависимостей — wtfwith

Время на прочтение6 мин
Количество просмотров7.5K
Вы как-нибудь задумывались, сколько версий одной и той же библиотеки затягивает ваша клиентская или серверная сборка? Мне вот в какой-то момент стало интересно. Навскидку найти для этого готовый инструмент не получилось, а смотреть глазами package-lock слишком утомительно. Как мы знаем — в любой непонятной ситуации нужно писать свой npm пакет, поэтому я именно это и сделал… Дальше в посте я рассмотрю результат анализа живого проекта и сделаю пару спорных выводов.

Ну и никак нельзя обойтись без этой классической картинки:

Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии2

Export to Excel from JS

Время на прочтение2 мин
Количество просмотров67K

Введение


Всем привет! Сегодня я опишу довольно тривиальную, но нигде не освещенную тему экспорта из страницы данных в Excel. На мое удивление сам процесс не описан нигде в полной мере. Итак, приступим.
Читать дальше →
Всего голосов 38: ↑25 и ↓13+12
Комментарии29

Bluebird: пояс с инструментами для асинхронщика

Время на прочтение8 мин
Количество просмотров18K

Асинхронность. Асинхронность никогда не меняется. Node.js использовал асинхронность, чтобы получить большой rps для io-операций. TC39 добавила промисы в спецификацию для борьбы с адом колбеков. Наконец, мы стандартизировали async/await. Но асинхронность никогда не меняется. Погодите, что это синеет в небе? Похоже bluebird несёт в клюве пояс с инструментами для тех из нас, кто плотно подсел на thenable-объекты и всю эту асинхронную лапшу.


Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии20

ES6: полезные советы и неочевидные приёмы

Время на прочтение5 мин
Количество просмотров39K
Стандарт EcmaScript 2015 (ES6) существует уже несколько лет. Он принёс с собой множество новых возможностей, разные способы использования которых далеко не всегда очевидны. Вот обзор некоторых из этих возможностей с примерами и комментариями.

image
Читать дальше →
Всего голосов 54: ↑50 и ↓4+46
Комментарии87

Современный PHP без фреймворков

Время на прочтение13 мин
Количество просмотров91K


У меня есть для вас непростое задание. Когда в следующий раз начнёте новый проект, постарайтесь обойтись без PHP-фреймворка. Я не собираюсь перечислять недостатки фреймворков, и это не проявление синдрома неприятия чужой разработки: в этом руководстве мы будем использовать пакеты, написанные разработчиками нескольких фреймворков. Я всецело уважаю инновации в этой сфере.

Читать дальше →
Всего голосов 96: ↑78 и ↓18+60
Комментарии265

Патч от Meltdown привел к более критичной уязвимости Windows 7x64/2008R2

Время на прочтение2 мин
Количество просмотров34K

 
Патч, закрывающий уязвимость Meltdown привел к более критичной уязвимости систем Windows 7X64 и Windows 2008R2. Уязвимости подвержены системы, обновленные патчами 2018-01 или 2018-02. Уязвимости не подвержены системы, не пропатченные с декабря 2017 года, либо если на них установлен кумулятивный патч 2018-03.
Читать дальше →
Всего голосов 55: ↑55 и ↓0+55
Комментарии29

Классы и фабричные функции в JavaScript. Что выбрать?

Время на прочтение8 мин
Количество просмотров34K
В JavaScript существуют разные способы создания объектов. В частности, речь идёт о конструкциях, использующих ключевое слово class и о так называемых фабричных функциях (Factory Function). Автор материала, перевод которого мы публикуем сегодня, исследует и сравнивает эти две концепции в поисках ответа на вопрос о плюсах и минусах каждой из них.

image
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии19

Проблемы при работе с кэшем и способы их решения

Время на прочтение12 мин
Количество просмотров39K
Привет, Хабр!

Меня зовут Виктор Пряжников, я работаю в SRV-команде Badoo. Наша команда занимается разработкой и поддержкой внутреннего API для наших клиентов со стороны сервера, и кэширование данных — это то, с чем мы сталкиваемся каждый день.

Существует мнение, что в программировании есть только две по-настоящему сложные задачи: придумывание названий и инвалидация кэша. Я не буду спорить с тем, что инвалидация — это сложно, но мне кажется, что кэширование — довольно хитрая вещь даже без учёта инвалидации. Есть много вещей, о которых следует подумать, прежде чем начинать использовать кэш. В этой статье я попробую сформулировать некоторые проблемы, с которыми можно столкнуться при работе с кэшем в большой системе.



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

При работе я исхожу из того, что рассматриваемая система состоит из приложения, базы данных и кэша для данных. Вместо базы данных может использоваться любой другой источник (например, какой-то микросервис или внешний API).
Читать дальше →
Всего голосов 62: ↑62 и ↓0+62
Комментарии22

Resolve IP адресов в Linux: понятное и детальное описание

Время на прочтение12 мин
Количество просмотров128K

Настройка сетевого взаимодействия сервисов не самая простая задача и часто осуществляется без глубокого понимания как требуется настраивать систему и какие настройки на что влияют. После миграции сервисов в docker контейнерах с centos 6 на centos 7 я столкнулся со странным поведением вебсервера: он пытался присоединиться к сервису по IPv6, а сервис же слушал только IPv4 адрес. Стандартный совет в такой ситуации — отключить поддержку IPv6. Но это не поможет в ряде случаев. Каких? В этой статье я задался целью собрать и детально объяснить как приложения resolve'ят адреса.

Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии6

Четыре факта о memcached-амплификации

Время на прочтение6 мин
Количество просмотров6.6K

Это перевод оригинальной публикации Артема ximaera Гавриченкова «Understanding the facts of memcached amplification attacks», опубликованной в блоге APNIC (Азиатско-Тихоокеанский сетевой информационный центр).

Неделя с 25 февраля по 3 марта была высокоинтенсивной с точки зрения memcached-амплифицированных DDoS-атак во всех уголках мира, то есть в интернете.

Тем не менее, давайте еще раз вспомним все факты, которые нам известны об амплифицированных атаках.

Факт номер один: Амплификаторы были, есть и будут есть


NTP (Network Time Protocol) был первым протоколом, злонамеренно использованным в качестве амплификатора (усилителя) DDoS-атак еще в 2013 году. Тысячи и сотни тысяч NTP-серверов к тому моменту были развернуты по всей сети, так что использование данного вектора амплификации было вполне выгодно злоумышленникам. И NTP давал такую возможность, что вылилось в волну амплифицированных NTP DDoS-атак. В начале 2014 года на какое-то время NTP в качестве главного амплификатора стал даже популярнее протокола DNS (Domain Name System).
Всего голосов 40: ↑40 и ↓0+40
Комментарии1

Как превратить веб-сайт в мобильное приложение с помощью 7 строк JSON

Время на прочтение16 мин
Количество просмотров137K
В материале, перевод которого мы публикуем сегодня, речь пойдёт о создании мобильных приложений на базе существующих веб-проектов. Автор этой статьи демонстрирует инструменты, которые позволяют с минимальными усилиями разрабатывать приложения, пользующиеся нативными возможностями платформ iOS и Android и включающие в себя материалы работающих сайтов или локальные ресурсы. Его рассказ начинается с тех самых семи строк JSON-кода, которые позволяют превращать сайты в мобильные приложения.

image
Превращение веб-сайта в мобильное приложение
Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Комментарии6

Главные критерии SEO и AEO в будущем — понимание и достоверность

Время на прочтение6 мин
Количество просмотров4.3K


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

С ростом популярности голосового ввода поисковые системы все более стремятся предоставить одно-единственное верное решение и все больше полагаются на такие критерии, как понимание и достоверность.

Что нужно сделать, чтобы этим воспользоваться?


В этой статье мы рассмотрим:

  1. Обзор текущего положения дел.
  2. Тенденции развития поисковых систем.
  3. Что нужно предпринимать уже сегодня.

Переведено в Alconost
Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Комментарии5

Вам не нужны разработчики автотестов

Время на прочтение13 мин
Количество просмотров23K

В эпоху вселенского внедрения agile-методологий и Devops уже никто не сомневается в том, что регрессия должна быть автоматизирована. Особенно, если в компании идет речь о Continuous Delivery. Все кинулись хантить разработчиков автотестов, от чего рынок становится перегретым.


В этой статье я расскажу о том, что на самом деле разработчик автотестов — не такая уж и важная роль в команде. Они не нужны, особенно если вы внедряете у себя scrum. И все эти agile-ы и devops-ы можно внедрять и без этих людей. Так что если кто-нибудь вам скажет, что у них в команде все тестируют руками — потому что у них по каким-либо причинам нет разработчика автотестов — не верьте им. Они тестируют руками, потому что по-другому им лень. Или не умеют.

Читать дальше →
Всего голосов 33: ↑26 и ↓7+19
Комментарии37

Как выполнять много UI-тестов параллельно, используя Selenium Grid?

Время на прочтение7 мин
Количество просмотров22K

Всем привет! Я работаю в Avito и занимаюсь разработкой инструментов для тестирования. Когда у нас стало много UI-тестов, мы столкнулись с проблемой масштабирования Selenium-серверов, и сейчас я расскажу, как мы ее решили.


И так как же все-таки выполнять много UI-тестов параллельно, используя Selenium Grid? К сожалению — никак.
Selenium Grid не способен выполнять большое количество задач параллельно.
Хотите зарегистрировать действительно большое количество нод? Что ж, попробуйте.
Хотите скорости? Её не будет — чем больше нод зарегистрировано на гриде, тем менее стабильно выполняется каждый тест. Как следствие — перезапуски.
Хотите отказоустойчивость на случай, если Grid перестал отвечать? Тоже нет: вы не можете запустить несколько реплик и поставить перед ними балансировщик.
Хотите обновить Grid без даунтайма и чтобы тесты, выполняющиеся в данный момент, не упали? Нет, это не про Selenium Grid.
Хотите не держать тысячи Selenium-ов разных конфигураций в памяти, а поднимать их по требованию? Не получится.
Хотите знать, как решить все эти проблемы? Тогда приглашаю вас прочитать эту статью.
*(Мой доклад с таким же названием уже звучал на Heisenbug 2017 Moscow, и, возможно, кто-то из читателей с ним знаком. Под катом — более подробная текстовая версия рассказа об инструменте).


Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии10

Шаблоны проектирования в React

Время на прочтение7 мин
Количество просмотров45K
Шаблоны проектирования, которые возникли и развились в экосистеме React за время её существования, улучшают читабельность и чистоту кода, облегчают повторное использование компонентов.

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

Сообществу React понадобилось около двух лет для того, чтобы выработать несколько идей, которые теперь стали популярными. Тут можно отметить переход с React.createClass к классам ES6 и к чистым функциональным компонентам, отказ от миксинов и упрощение API. Теперь, учитывая то, что число React-разработчиков постоянно растёт, то, что в развитие этого проекта вкладываются серьёзные силы, можно наблюдать эволюцию нескольких интересных шаблонов проектирования. Этим шаблонам и посвящён данный материал.
Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии5

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность