Береги зависимости смолоду

17 марта 2022
March 2022 - Frontend

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

Отбиваемся от вредоносных NPM-пакетов

Open source победил. Но вместе с этой победой пришли и новые проблемы в виде атак на цепочки поставок. Современные приложения тянут за собой десятки зависимостей, каждая из которых может стать потенциальной уязвимостью. Вредоносный код в одной такой зависимости может попасть в готовое приложение и атаковать уже изнутри. За 2021 год количество подобных атак увеличилось кратно и существенно подорвало доверие к ПО с открытым исходным кодом.

Стало ясно, что придется дополнять существующие механизмы безопасности. Увы, внедрить их для каждого поставщика открытого ПО нереально. Нужен иной подход, отличный от традиционных сканеров уязвимостей. С учетом крайне быстрой выкатки новых фич — сканеры банально будут опаздывать. Давайте считать, что вообще весь Open source небезопасен и содержит в себе вредоносный код. Эта идея была реализована в платформе Socket, публично запущенной в начале месяца.

Платформа защищает от атаки на цепочки поставок, действуя по трём направлениям:

  1. Отслеживая изменения package.json в реальном времени

  2. Обнаруживая нестандартное поведение пакетов

  3. Проверяя на соответствие типичным маркерам риска

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

Веб-разработка в условиях цветовой слепоты

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

Де-факто цветовая слепота — результат различных заболеваний глаз, которые чаще всего встречаются у мужчин. Природа несправедлива, так что примерно 1 из 12 мужчин имеет ту или иную форму цветовой слепоты (и лишь у 1 из 200 женщин). Так что рассматривая пользовательский опыт стоит учитывать и этот фактор.

Существуют следующие особенности зрения:

  • Красно-зеленая цветовая слепота.

  • Сине-желтая цветовая слепота.

  • Полная цветовая слепота (очень редкий случай, примерно у 0,00003% мужчин во всём мире).

Теперь о насущном. Чтобы понять, как именно будут видеть ваше веб-приложение люди с такими особенностями зрения, можно «взять на вооружение» специализированный инструмент Polypane. Это симулятор цветовой слепоты, позволяющий на себе пережить опыт других людей. Внезапно может выясниться, что ваше веб-приложение плохо воспринимается. Кстати, этот инструмент ещё поможет проверить как будет видеть ваше приложение человек с туннельным зрением или глаукомой.

Контролируем параллелизм в NodeJS/JavaScript

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

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

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

Площадки для вдохновения дизайном

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

Frontend-разработчик Akanksha Keshari собрала в своем блоге на Medium отличную подборку платформ, которые действительно мотивируют создавать крутой дизайн. В нее вошли такие проекты, как Dribbble. Эта социальная сеть соединяет дизайнеров по всему миру и позволяет демонстрировать свои навыки бизнесу. Компании при этом могут не просто дать оценку, но и нанять понравившегося дизайнера в свою команду.

Что посмотреть

В марте мы провели первый в 2022 Evrone Meetup, где обсуждали frontend-разработку. Спикеры из ECOMMPAY и Skillbox рассказывали о статическом анализе кода и особенностях рендеринга в браузере. Для всех, кто интересовался, но не смог присоединиться онлайн, публикуем записи выступлений.

Руководитель департамента клиентских приложений ECOMMPAY Назим Гафаров рассказал, как использовать статический анализ в проекте, как выбрать современные инструменты и как стандартизация помогает масштабировать командную разработку. И почему недостаточно просто подключить eslint:recommended. Ведь точно так же, как вакцины нуждаются в длительных испытаниях, любой проект нуждается в анализе качества кода.

 

Обучение

Онлайн

Курс Python в Evrone Academy

60 учебных модулей 

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

 

Основа обучения в Evrone Academy — наши высокие требования к разработчикам и опыт в проектах. Мы записали лекции, подготовили текстовые версии, добавили практические задания — это позволит вам подтянуть знания до middle-уровня. На стажировке мы дополним теорию практикой, а после — добро пожаловать на «боевой» проект.

Сейчас академия доступна в режиме early access — можно пройти базовые части по Python или Ruby. Но мы уже готовим новые материалы и практические задания, подписывайтесь на нас в соцсетях, чтобы не пропустить обновления!

Регистрация

Конкурсы для разработчиков

Онлайн

Frontend Quiz

до 20 апреля 2022

Умеешь в React и не боишься Vue.js? Попробуй наш quiz для frontend-разработчиков. Внутри восемь вопросов от наших девелоперов. Проверь свой уровень!

Один участник, который правильно ответит на все вопросы, получит классный подарок — Яндекс Станцию. 

Митапы

Онлайн

Frontend Meetup

19:00 - Online

Рады сообщить, что следующий Frontend Meetup пройдет 6 июля. Его программа формируется, но регистрация уже открыта. Детальная информация о мероприятии будет опубликована позже, следите за наши новостями.

Если у вас есть что рассказать и вы хотите стать спикером, то пишите на почту andy@evrone.com.

Регистрация

Вакансии

Удаленка / Офис

Evrone 

Мы открыты для новых Frontend-разработчиков. В Evrone можно работать удалённо с первого дня, мы поддерживаем и оплачиваем участие в Open-source проектах, а расти в грейдах можно с помощью честной системы проверки навыков и менторства.

Подробнее

Подписаться
на Digest →
Важные новости и мероприятия без спама
Технологии которыми вы владеете и которые вам интересны
Ваш адрес электронной почты в безопасности - вот наша политика конфиденциальности.