Обновить
512K+

Веб-разработка *

Делаем веб лучше

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

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

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



Часть 1: Практические рекомендации по разработке масштабных React-приложений. Планирование, действия, источники данных и API

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

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

Дайджест свежих материалов из мира фронтенда за последнюю неделю №372 (1 — 7 июля 2019)

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


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

Мощный модуль для типизации Vuex

Время на прочтение5 мин
Охват и читатели21K
Мотивом для написания данной статьи послужила другая статья на тему типизации Vue и, соответственно, Vuex. К моему удивлению я не обнаружил там упоминания модуля, который, по моему мнению, является лучшим в своем роде «типизатором» Vuex. Поиск по Хабру, да и вообще по Рунету (на самом деле и в англоязычных источниках не просто сходу найти какие-либо упоминания), увы, не дал никаких результатов. Данная статья не является подробным разбором и многостраничным мануалом по использованию и настройке, но скорее способом поделиться с вами, уважаемые Vue-ниндзя, инструментом, который отлично справляется со своей задачей.
Встречайте:

Несколько простых, но полезных советов по работе с геттерами в Vuex

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

Vuex предоставляет удобные инструменты для работы с данными, но некоторые разработчики используют их не всегда по назначению, либо создают избыточные конструкции там, где можно было написать более понятно и ёмко, такое также случается, когда разработчик только знакомится с данными инструментами. В данной статье будут приведены некоторые рекомендации по организации геттеров (Getters), которые вы сможете применить в работе.

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

Как настроить HTTPS — поможет SSL Configuration Generator

Время на прочтение4 мин
Охват и читатели10K
Рассказываем об инструменте для конфигурации SSL, который разработали в Mozilla.

Под катом — о его возможностях и других утилитах для настройки сайтов.

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

User Inyerface — как не надо мучать пользователя

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


Студия Bagaar собрала худшие элементы сайтов в одной онлайн-форме и предложила ее заполнить. Сможете пройти это испытание?
Читать дальше →

Функциональный JavaScript: что такое функции высшего порядка и зачем они нужны?

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

«Функции высшего порядка» — это одна из тех фраз, которыми часто разбрасываются. Но редко кто может остановиться и объяснить, что это такое. Возможно, вы уже знаете, что называют функциями высшего порядка. Но как мы используем их в реальных проектах? Когда и почему они бывают полезны? Можем ли мы с их помощью манипулировать DOM? Или люди, которые используют эти функции, просто хвастаются? Быть может, они бессмысленно усложняют код?

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

Главный секрет разработки хороших Electron-приложений

Время на прочтение7 мин
Охват и читатели19K
Кое-кто люто ненавидит Electron-приложения. То, что приложение включает в себя браузер Chromium, кажется, мягко говоря, странным. Это ощущение усиливается в ходе работы с такими приложениями. Они потребляют много памяти, медленно загружаются и не отличаются особенно высокой скоростью реакции на воздействия пользователя. Непросто разработать хорошее приложение для веба. Зачем же веб-технологии притащили в настольную среду? Ведь возникает такое ощущение, что в этой среде они создают кучу проблем?

Автор материала, перевод которого мы сегодня публикуем, говорит, что не станет выступать в роли защитника Electron, хотя всё говорит об успешности этой платформы. Правда, никто не собирается сбрасывать со счетов излишества, которые присущи Electron-приложениям. Можно ли, разрабатывая такие приложения, убить одним выстрелом двух зайцев?


Некоторые из проблем Electron (большие размеры файлов, медленная загрузка) являются наследием технологий, на которых основана эта платформа. Их надо решать на низком уровне. Более серьёзные проблемы (потребление памяти, неповоротливость интерфейсов) могут быть решены на том уровне, на котором разрабатывают Electron-приложения. Однако решать эти проблемы непросто. Что если есть некий секрет, зная который можно, в автоматическом режиме, минимизировать эти недостатки?

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

Практические рекомендации по разработке масштабных React-приложений. Планирование, действия, источники данных и API

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



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

Часть 1: Практические рекомендации по разработке масштабных React-приложений. Планирование, действия, источники данных и API

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

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

До Netscape: забытые веб-браузеры начала 1990-х

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

Кто-нибудь помнит Erwise? Viola? Cello? Давайте вспоминать.




Когда в 1980-м Тим Бернерс-Ли прибыл в ЦЕРН, знаменитую европейскую лабораторию физики частиц, его наняли для обновления контрольных систем нескольких ускорителей частиц. Но изобретатель современной веб-страницы почти сразу увидел проблему: в исследовательский институт постоянно приходили и уходили тысячи людей, многие из которых работали там временно.

«Для программистов на контракте было довольно сложно пытаться понять системы, как человеческие, так и вычислительные, управлявшие этой фантастической игровой площадкой, — писал Бернерс-Ли позже. – Большая часть критически важной информации существовала только у людей в головах».
Читать дальше →

5-6 причин прийти на GolangConf

Время на прочтение12 мин
Охват и читатели4.7K
Если вы бывали на HighLoad++, то знаете о традиционном митапе по Go. Активисты, интересующиеся Go, занимали зал на пару часов, представляли небольшие доклады, обсуждали насущные темы, холиварили. Были на HighLoad++ и отдельные доклады по Go.

Теперь, нам кажется, что пора выходить на новый уровень, поэтому 7 октября мы проведем GolangConf. Из названия понятно, что это конференция про Go, но этого явно недостаточно.



Мы готовим эту конференцию для:

  • Go-разработчиков — тех, кто уже давно сидит на Go, кому интересно обсудить новинки, поговорить о производительности и «кишках», узнать, что меняется в Go, похоливарить о дженериках, например.
  • Кроме того, поскольку Go-общество расширяется, мы ждем программистов, которые только-только переходят на Go или даже только подумывают об этом. Покажем им истории успеха, реализовавшегося с переходом на Go, или истории провала. Узнаем, что не получается, почему, какие их первые чувства, мнения, впечатления.
  • Третья категория посетителей — пользователи инструментов, написанных на Go. Это популярные в рамках Cloud Native инфраструктур: Kubernetes, Docker, Terraform, Consul и другие продукты Hashicorp. На Go-конференции гости, с одной стороны, узнают, какие у этих инструментов есть проблемы, связанные с особенностями языка, а с другой — увидят, какие в Go есть вызовы и задачи, чтобы начать, например, контрибьютить в эти проекты.

Чтобы определить, какие именно темы нужно обсудить на конференции по Go, какие проблемы и задачи важны для каждой из категорий слушателей, мы собрали Программный комитет и активистов Go-сообщества. Устроили своего рода мозговой штурм. Результатами делимся с вами и, поскольку главная наша цель — развивать сообщество, надеемся на ваш отклик. Напишите в комментариях, что нужно раскрыть полнее, что совсем неинтересно, а что именно то что нужно. Посоветуйте, например, стоит ли обсуждать особенности эксплуатации Go под Windows, а то мнения разделились.
Читать дальше →

Иструменты Node.js разработчика. Очереди заданий (job queue)

Время на прочтение7 мин
Охват и читатели38K
При реализации бэка веб-приложений и мобильных приложений, даже самых простых, уже стало привычным использование таких инструментов как: базы данных, почтовый (smtp) сервер, redis-сервер. Набор используемых инструментов постоянно расширяется. Например, очереди сообщений, судя по количеству установок пакета amqplib (650 тыс. установок в неделю), используется наравне с реляционными базами данных (пакет mysql 460 тыс. установок в неделю и pg 800 тыс. установок в неделю).

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

ICANN убрала ценовой порог для домена .org — почему ИТ-сообщество против, и что будет дальше

Время на прочтение3 мин
Охват и читатели11K
Также «под раздачу» попали .info и .biz.


/ фото David Goehring CC BY

ICANN меняет правила игры


ICANN изменили условия договора с регистратором доменных имен Public Interest Registry (PIR), ответственным за .org. Ранее ему запрещалось назначать базовую цену за домен выше 8,25 долларов (пункт 7.3). Раз в год эту ставку можно было увеличивать, но не более, чем на 10%. Подобные ограничения действуют на все крупные доменные зоны, в том числе .com, за который отвечает Verisign. Такой подход и конкуренция между регистраторами помогают сдерживать рост цен.

В начале этого года в ICANN решили предоставить PIR возможность устанавливать свои цены на домены .org. В конце июня это решение вступило в силу. Причем изменения коснулись и двух других доменов верхнего уровня — .info и .biz. Их контролируют операторы Afilias и Neustar.
Читать дальше →

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

Практический пример использования render-функций Vue: создание типографской сетки для дизайн-системы

Время на прочтение13 мин
Охват и читатели23K
В материале, перевод которого мы сегодня публикуем, речь пойдёт о том, как создать типографскую сетку для дизайн-системы с использованием render-функций Vue. Вот демонстрационная версия проекта, который мы будем здесь рассматривать. Здесь можно найти его код. Автор этого материала говорит, что использовал render-функции из-за того, что они позволяют гораздо точнее контролировать процесс создания HTML-кода, чем обычные шаблоны Vue. Однако, к своему удивлению, он не смог найти практических примеров их применения. Ему попадались лишь учебные руководства. Он надеется на то, что этот материал изменит ситуацию в лучшую сторону благодаря тому, что здесь приводится практический пример использования render-функций Vue.

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

Неудачное развертывание ПО привело к сбою в работе сервиса Cloudflare

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

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


Сегодня на протяжении примерно 30 минут посетители сайтов Cloudflare могли видеть ошибку 502, вызванную резким скачком загрузки CPU нашей сети. Это произошло по причине неудачного развертывания программного обеспечения. Мы провели откат изменений, и сейчас сервис функционирует в обычном режиме, как и прежде, а все домены, использующие Cloudflare, вернулись к нормальному уровню трафика.

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

«Мы всегда верили в конкуренцию и право выбора пользователя» © Яндекс

Время на прочтение4 мин
Охват и читатели58K
Вчера Яндекс ответил на жалобу российских компаний о недобросовестной конкуренции. Их иронично-издевательский ответ показал их истинное лицо: двуликое и беспринципное, прикрывающееся словами о конкуренции и выборе. Поэтому я решил опубликовать эту статью, дабы привлечь больше внимания к вопросу монополистических практик в Интернете и спору между Яндекс.Вертикалями и конкурирующими с ними сервисами.

image

В 2015 году Яндекс пожаловался на Google, обвинив его в злоупотреблении доминирующим положением на рынке мобильных ОС. «Яндекс» утверждал, что Google навязывает пользователям собственные сервисы, ограничивая доступ к сторонним.

Официальную позицию Яндекс опубликовал на Хабре. И, судя по рейтингу и откликам, большинство хабравчан поддержало Яндекс в том споре. Тогда Яндекс выиграл дело, ФАС признала Google нарушителем закона «О конкуренции». Но прошло 4 года и я хочу обратиться к Яндексу с его же словами и призывами.
Читать дальше →

TestMace — мощная IDE для работы с API

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

Всем привет! Сегодня мы хотим представить на суд IT-общественности наш продукт — IDE для работы с API TestMace. Возможно некоторые из вас уже знают о нас из предыдущих статей. Однако всеобъемлющего обзора инструмента не было, поэтому устраняем этот досадный недостаток.


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

Создание React-ивного хука usePosition() для получения и отслеживания координат браузера

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

image


Если вкратце


В этой статье мы создадим React-ивный хук usePosition() для отслеживания геолокации браузера. Под капотом этот хук будет использовать методы getCurrentPosition() и watchPosition() нативного браузерного объекта navigator.geolocation. Финальную версию хука я опубликовал на GitHub и NPM.


Зачем создавать хук usePosition() в принципе


Одно из важных преимуществ хуков в React-е — это возможность изолировать логически связанные фрагменты кода в одном месте (в хуке), избежав при этом необходимости смешивания логически не связанных фрагментов кода, например, в методе компонента componentDidMount().


Предположим, мы хотим получить координаты браузера (latitude и longitude) и после получения координат запросить прогноз погоды или текущую температуру в этом регионе со стороннего сервиса. Код этих двух функциональностей (получения координат и запроса температуры) в React-е часто размещают внутри одного метода componentDidMount(). При этом в методе componentWillUnmount() обычно "убирают" за собой, вызывая метод clearWatch() для прекращения слежки за локацией браузера. Подобный подход увеличивает размер методов, разбивает логически связанные участки кода на части (отдельно подписка и отписка от слежки за локацией браузера) и объединяет логически слабо связанные части кода в один метод (получение координат и температуры). Чтение кода затрудняется, так же как и его отладка и поддержка.


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

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

13 приёмов работы с npm, которые помогают экономить время

Время на прочтение11 мин
Охват и читатели100K
Каждый день миллионы разработчиков, создавая свои JavaScript-приложения, обращаются к npm (или к Yarn). Выполнение команд наподобие npm init или npx create-react-app стало привычным способом начала работы над практически любым JavaScript-проектом. Это может быть сервер, клиент, или даже настольное приложение.

Но утилита npm способна не только на инициализацию проектов или на установку пакетов. Автор материала, перевод которого мы сегодня публикуем, хочет рассказать о 13 хитростях npm, которые позволят выжать из этой системы всё, что можно. Здесь будут рассмотрены приёмы разного масштаба — от использования сокращений команд до настройки поведения npm init.



Многие программисты пользуются npm ежедневно. Это значит, что в долгосрочной перспективе изменить что-то в лучшую сторону может даже небольшая экономия времени. Этот материал рассчитан, преимущественно, на начинающих разработчиков и на разработчиков среднего уровня. Однако даже если вы — профессионал, автор материала надеется, что вы сможете найти здесь пару интересных вещей, с которыми вы раньше не сталкивались.

Если вы совершенно не знакомы с npm — знайте, что интересующая нас программа устанавливается вместе с Node.js. Если вы работаете в Windows, то, чтобы воспроизвести кое-что из того, о чём здесь пойдёт речь, рекомендуется установить Git Bash.
Читать дальше →

Использование Avocode для верстки сайтов. Обзор для новичков. Бонус — регистрируем 30-дневный пробный период

Время на прочтение5 мин
Охват и читатели82K
Как мы все знаем, верстка сайта — это фактически кодирование макета дизайна, а чтобы нам было комфортнее мы используем различные программы для работы с макетами. Photoshop? Sketch? Zeplin? Да, это все отличные инструменты, но сегодня мы поговорим о продукте, с помощью которого делать верстку сайта стало действительно приятно. Речь пойдет об Avocode.