Обновить
512K+

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

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

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

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

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

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

Обсуждаем PostgREST — open source веб-сервер на Haskell

Время на прочтение3 мин
Охват и читатели20K
Рассказываем об инструменте, который позволяет настроить API для работы с запросами PostgreSQL. Говорим о возможностях, достоинствах и недостатках утилиты, а также об альтернативных решениях.

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

Как Shopify организовала совместную работу более 1000 разработчиков

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


Сложно организовать совместную работу большой команды, тем более над общей кодовой базой, такой как Shopify. Наш монолит меняется по 40 раз на дню. Мы отслеживаем разработку в trunk-based рабочем процессе и ежедневно вливаем в мастер по 400 коммитов. У нас три правила безопасного деплоя, но с ростом масштаба разработки их становилось всё труднее соблюдать. Небольшие конфликты ломали основную ветку, медленные развёртывания увеличивали разрыв между ней и продакшном, а скорость деплоя критических изменений замедлилась из-за отставания пул-реквестов. Чтобы решить эти проблемы, мы обновили Merge Queue (наш инструмент для автоматизации и управления скоростью мержей в основную ветку). Теперь он интегрирован с GitHub, запускает непрерывную интеграцию (CI) перед слиянием с основной веткой, удаляет запросы, которые не вошли в CI, и увеличивает скорость развёртывания.
Читать дальше →

Legacy-сервисы в вашей инфраструктуре

Время на прочтение5 мин
Охват и читатели6.6K
Привет! Меня зовут Паша Черняк, я ведущий разработчик в QIWI, и сегодня я хочу поговорить о неизбежном. О Legacy.

Начнем с вопроса: что такое Legacy-сервис? Legacy-сервис — это сервис, которого разработчик не касался уже неделю/месяц/год? Или это сервис, который был написан менее опытным программистом, например, конкретно вами, но год назад? А теперь-то вы круче и опытнее. Или все-таки, Legacy-сервис — это сервис, который вы решили никогда больше не коммитить и потихоньку готовите ему замену? В любом случае, оставлять такой сервис без присмотра и не обновлять — это бомба замедленного действия, которая может взорваться попозже.



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

Но я, как и любой человек, люблю спать по ночам, поэтому пытался разобраться с эксплуатацией: «Ребята, а почему вы мне звоните?». На что получил вполне лаконичный ответ вида «А кому еще?». Потому что я сервисы чиню, а еще ребята банально не знают, кому звонить.

Поэтому на одной из ретроспектив команды бекэнда Кошелька мы решили, что нужно составить табличку, на которой написан список наших сервисов, микросервисов и монолитов кошелька, и ответственных за них. Таблички это вообще полезно, в разумных пределах.
Читать дальше →

PhpStorm 2019.3: поддержка PHP 7.4, PSR-12, WSL, MongoDB и многое другое

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


Всем привет! Мы рады представить вам третий мажорный релиз PhpStorm в этом году!
Под катом — подробный разбор всех заметных изменений и новых возможностей. Осторожно — очень много картинок.

Скачать новую версию можно на сайте или с помощью Toolbox App. Как всегда, доступна 30-дневная пробная версия. Полную же версию могут использовать обладатели действующей подписки на PhpStorm или All Products pack, а также бесплатно — студенты и разработчики проектов с открытым исходным кодом.

Axios или Fetch: чем пользоваться в 2019 году?

Время на прочтение3 мин
Охват и читатели175K
Axios — это широко известная JavaScript-библиотека. Она представляет собой HTTP-клиент, основанный на промисах и предназначенный для браузеров и для Node.js. Если вы работали в последние несколько лет JavaScript-программистом, то вы, совершенно определённо, этой библиотекой пользовались. В октябре 2019 года пакет Axios был загружен из npm 25 миллионов раз. Кажется, что будущее Axios безоблачно. Но что если я скажу вам, что Axios — это мёртвый проект. Именно этому было посвящено одно обсуждение на Reddit. А именно, речь идёт о следующем:

  • В GitHub-репозитории Axios наблюдается весьма низкий уровень активности разработчиков.
  • Проблемы и PR игнорируются.
  • Команда разработчиков хранит молчание.

Ситуацию ухудшает и широко обсуждаемая уязвимость. Об этой уязвимости сообщено 2017 году. Авторы проекта игнорировали её более двух лет.

Когда библиотека Axios стала популярной, в браузерах не было API, реализующего HTTP-клиент, основанный на промисах. Стандартный интерфейс XML HTTP Request (XHR) был неудобным, работать с ним было тяжело. Разработчики с радостью приняли Axios из-за того, что эта библиотека облегчала им жизнь.



В 2015 вышел API Fetch. Почему же мы, в 2019 году, до сих пор используем Axios? Давайте сравним эти две технологии.
Читать дальше →

Скидки от хостеров в Черную пятницу-2019

Время на прочтение8 мин
Охват и читатели6.5K
«Почему бы не сделать очередной сборник скидок к Черной пятнице в сфере хостинга», — подумал я… и сделал. Подборки прошлых лет тут и тут.



Host4.biz — скидка 90% на виртуальный или VIP-хостинг, скидка 50% на Linux VPS.
Hyperhost.ua — скидка 90% на виртуальный хостинг, 30% на виртуальные серверы.
Ntup.net — скидка 90% на виртуальный и DNS-хостинг, 50% на VPS/VDS и FTP-хостинг, 30% на выделенные серверы.
Itldc.com — скидка 80% на виртуальный хостинг, до 60% на VPS/VDS, 40% на выделенные серверы.
X5x.ru — скидка 60% на виртуальный хостинг, 30% на VPS/VDS.
Friendhosting.net — скидка 55% на VPS/VDS.
Bacloud.com — скидка 50% на OpenVZ VPS, 33% на виртуальный хостинг, 20% на выделенные серверы, 18% на KVM VPS.
Firstvds.ru — скидка до 50% на VPS/VDS.
Inferno.name — скидка до 50% на VPS/VDS, до 30% на выделенные серверы.
Nic.ru — скидка 50% на хостинг, почту для домена и DNS-хостинг, 25% на любые домены и SSL-сертификаты.
Fastfox.pro — скидка 40% на виртуальный хостинг, 35% на VPS/VDS.
Reg.ru — скидка 40% на виртуальный хостинг, снижение цен на домены, SSL-сертификаты, конструктор сайтов, 300 рублей в подарок для пользователей облачных серверов.
Renter.ru — скидка до 40% на выделенные серверы.
Selectel.ru — скидка до 35% на выделенные серверы.
E-planet.ru — скидка 30% на виртуальный хостинг и VPS/VDS.
Firstssl.ru — скидка 30% на SSL-сертификаты.
Hostens.com — скидка 30% на виртуальный хостинг.
Serv-tech.ru — скидка 30% на виртуальный хостинг, 20% на VPS/VDS, 15% на выделенные серверы.
Hostpro.ua — скидка 25% на домены, до 4 месяцев хостинга или VPS в подарок.
Webhost1.ru — скидка 15% на хостинг и виртуальные серверы.
Продолжение под катом

Динамическая CDN для WebRTC стриминга с низкой задержкой и транскодингом

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


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


Однако, кроме низкой задержки, важно обеспечить зрителям хорошее качество трансляции, ведь за это они и платят. В реальной жизни, каналы между Edge серверами и подписчиками могут быть разными по пропускной способности и качеству. Например, мы публикуем поток разрешением 720p с битрейтом 2 Мбит/с, а пользователь играет его на Android-смартфоне, используя 3G подключение в зоне неуверенного приема сигнала, и максимальное разрешение, при котором картинка будет плавной, всего 360p с битрейтом 400 Мбит/с.

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

Тестирование фронтенда

Время на прочтение11 мин
Охват и читатели33K
Эффективная стратегия автоматизированного тестирования кода чрезвычайно важна для обеспечения быстрой и качественной работы команд программистов, занимающихся поддержкой и развитием веб-проектов. Автор статьи говорит, что в компании StackPath, в которой он работает, с тестированием сейчас всё обстоит благополучно. У них имеется множество инструментов для проверки кода. Но из такого разнообразия нужно выбрать то, что лучше всего подойдёт в каждом конкретном случае. Это — отдельная проблема. А после того, как нужные инструменты выбраны, надо ещё принять решение по поводу порядка их использования.
image
Автор материала говорит, что компанию StackPath устраивает тот уровень уверенности в качестве кода, которого удалось достичь благодаря применяемой системе тестирования. Здесь он хочет поделиться описанием принципов тестирования, выработанных в компании, и рассказать об используемых инструментах.
Читать дальше →

Вышел PHP 7.4! Нюансы перехода на новую версию

Время на прочтение4 мин
Охват и читатели28K
Сегодня, наконец, опубликован релиз PHP 7.4!


Его новые фичи уже были многократно описаны, в том числе и на Хабре. Это стрелочные функции, типизированные свойства классов и ещё много всякого синтаксического сахара. Но больше всего мы ждали новый релиз из-за производительности: в версии 7.4 не только появился preload, но и сам PHP стал значительно быстрее.

Плохая (или хорошая?) новость — с выходом PHP 7.4 прекращается активная поддержка PHP 7.2. Его последний релиз запланирован на середину декабря. Мы давно проводим эксперименты с PHP 7.4, а недавно активно занялись переходом на него, так как сейчас мы на уже почти не поддерживаемой версии 7.2.

Поздравляю всех с долгожданным релизом! А ниже расскажу немного о том, как мы переходим на новую версию.
Читать дальше →

Как вы избавляетесь от неиспользуемого CSS-кода? Часть 2

Время на прочтение6 мин
Охват и читатели19K
Сегодня публикуем вторую часть перевода материала о борьбе с неиспользуемым CSS-кодом.



Первая часть
Читать дальше →

Пишем собственный CLI для React

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

Если вы делаете Ctrl+C каждый раз при создании нового компонента в реакте, то эта статья точно для вас!



У реакта нет своего CLI, и понятно почему. Не существует определенных правил, как именно должна выглядеть структура компонента, есть только общие рекомендации в документации. Все разработчики используют структуру, которая прижилась в их команде. А иногда и вовсе приходится поддерживать проекты в разных стилях.

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

Rust для веб-разработчика — быстрый старт и стремительный полет

Время на прочтение21 мин
Охват и читатели32K
Всем привет! Сегодня хочу поделиться опытом изучения языка и быстрой реализации высоконагруженного сетевого проекта, использующего так популярные и востребованные сейчас неблокирующие асинхронные сетевые соединения, на новом, красивом, элегантном и очень эффективном языке Rust.
Особый упор в посте сделаю на быстрое и ясное объяснение возможностей языка и платформы специалистам, имеющим большой опыт в веб-разработке, ибо сам таким и являюсь. Существует заблуждение, что кривая вхождения в Rust — очень-очень крутая. Но я покажу, что это далеко не так. Наливаем кофе и погнали!
Читать дальше →

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

Как вы избавляетесь от неиспользуемого CSS-кода? Часть 1

Время на прочтение7 мин
Охват и читатели53K
Автор статьи, первую часть перевода которой мы сегодня публикуем, хотел бы, чтобы читатели заранее знали о том, что избавление от ненужного CSS — это трудная задача. Если вы это читаете в надежде найти некий инструмент, запустив который, вы сможете узнать о том, какой именно CSS-код можно безбоязненно удалить из вашего проекта, то… Есть подобные инструменты, но их нужно использовать крайне осторожно, так как ни один из них не способен дать достойный ответ на вопрос о неиспользуемом CSS.



Несложно понять, что любому веб-разработчику хотелось бы взять некую утилиту, запустить её, и удалить тот ненужный CSS, о котором она сообщит. Пара минут — и сайт ускорен. Но не всё так просто. Автор этого материала полагает, что к подобным инструмента стоит относиться со здоровым скептицизмом. Ни один из них не лжёт разработчику. Эти инструменты обычно просто не обладают достаточным объёмом информации, позволяющим им выдать результаты, которым можно безоговорочно доверять. Но это не означает, что такими инструментами невозможно пользоваться. Не значит это и того, что от неиспользуемого CSS никак нельзя избавиться. Обсудим это.

→ Читать вторую часть
Читать дальше →

Первое знакомство с AssemblyScript

Время на прочтение9 мин
Охват и читатели20K
Поддержка технологии WebAssembly (Wasm) появилась в браузерах относительно недавно. Но эта технология вполне может серьёзно расширить возможности веба, сделав его платформой, способной поддерживать такие приложения, которые обычно воспринимаются как настольные.

Освоение WebAssembly может оказаться непростым делом для веб-разработчиков. Однако ситуацию способен улучшить компилятор AssemblyScript.


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

JavaScript не нужно ничем заменять — другие языки тоже столкнутся с теми же проблемами

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

«Существует только два вида языков: те, на которые жалуются и те, которыми никто не пользуется», — Бьёрн Страуструп, создатель C++

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

Но поскольку их не исправили, то это очевидно означает, что JavaScript — отстойный язык, который просто никак не исправишь. И что его нужно заменить, и желательно любимым языком очередного жалобщика.

Но действительно ли это так?

Как мы оказались в такой ситуации?


Не стоит ждать, что я назову JavaScript идеальным языком. У него есть странные причуды. Он был спроектирован за десять дней, а затем его изменили так, чтобы он напоминал Java. К сожалению, это наследие, с которым мы вынуждены жить.

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

Изучение Bootstrap с 10 полезными советами

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

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

Как работает Bootstrap?


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

WebStorm 2019.3: ускоренный запуск, усовершенствованная поддержка Vue.js и другие улучшения

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

Давненько на Хабре не было блог-постов от команды WebStorm. Что же, будем исправляться, тем более, есть отличный повод: мы только что выпустили последнее крупное обновление WebStorm в этом году.

webStorm-2019-3-released

Если у вас нет времени на чтение всей статьи, вот несколько слов о том, что появилось в WebStorm 2019.3:

  • Мы проделали серьезную работу над ускорением запуска IDE, и теперь WebStorm 2019.3 отображает экран приветствия и открывает ранее проиндексированные проекты приблизительно на 20% быстрее по сравнению с предыдущими версиями.
  • Благодаря автодополнению имен слотов, быстрой документации для символов Vue и поддержке компонентов, определенных в отдельных файлах, теперь вы можете создавать приложения с Vue.js еще быстрее.
  • Существующую функциональность стало удобнее использовать: теперь вы можете автоматически включать глобальные средства просмотра файлов для всех новых проектов, быстрее клонировать проекты из GitHub и не только.
  • Автодополнение кода для JavaScript и TypeScript стало еще умнее. Например, для новых переменных, функций, классов и интерфейсов WebStorm теперь подсказывает подходящие имена, которые уже использовались в той же области, но еще не были определены и отмечены как unresolved.

Это только часть улучшений. Чтобы попробовать их в деле, скачайте 30-дневную пробную версию WebStorm 2019.3 на сайте или с помощью Toolbox App. Полную версию могут использовать обладатели действующей подписки на WebStorm или All Products Pack, а также бесплатно студенты и разработчики проектов с открытым исходным кодом.

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

Профилирование кода Go-проекта и решение проблемы с выделением памяти

Время на прочтение7 мин
Охват и читатели8.5K
Пожалуй, каждому программисту известны слова Кента Бека: «Make it work, make it right, make it fast». Сначала надо сделать так, чтобы программа работала, дальше — надо заставить её работать правильно, а уже потом можно переходить к оптимизации. 



Автор статьи, перевод которой мы публикуем, говорит, что недавно он решил заняться профилированием своего опенсорсного Go-проекта Flipt. Он хотел найти в проекте код, который можно было бы без особых усилий оптимизировать и тем самым ускорить программу. В ходе профилирования он обнаружил некоторые неожиданные проблемы в популярном проекте с открытым исходным кодом, который в приложении Flipt использовался для организации маршрутизации и поддержки промежуточного ПО. В итоге удалось снизить объём памяти, выделяемой приложением в процессе работы, в 100 раз. Это, в свою очередь, привело к уменьшению количества операций по сборке мусора и улучшило общую производительность проекта. Вот как это было.
Читать дальше →

«Плюс к карме»: за что критикуют Stack Overflow и почему многие жалуются на токсичность сообщества

Время на прочтение3 мин
Охват и читатели14K
В сети можно встретить множество публикаций (в том числе в крупных СМИ), авторы которых критикуют Stack Overflow и поведение пользователей ресурса. Рассказываем, что к чему, разбираемся в ситуации, обсуждаем мнения и наиболее распространённые претензии к площадке.

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