Береги зависимости смолоду
В новом выпуске дайджеста мы поговорим о том, как обеспечить безопасность кода и учесть факторы, о которых обычно не задумываются. Ещё поднимем важную тему эффективного управления параллельными задачами в JavaScript и покажем несколько крутых сайтов, где веб-дизайн не пустой звук, а основополагающая идея. На связи Evrone с самыми интересными материалами — читайте с удовольствием.
Отбиваемся от вредоносных NPM-пакетов
Open source победил. Но вместе с этой победой пришли и новые проблемы в виде атак на цепочки поставок. Современные приложения тянут за собой десятки зависимостей, каждая из которых может стать потенциальной уязвимостью. Вредоносный код в одной такой зависимости может попасть в готовое приложение и атаковать уже изнутри. За 2021 год количество подобных атак увеличилось кратно и существенно подорвало доверие к ПО с открытым исходным кодом.
Стало ясно, что придется дополнять существующие механизмы безопасности. Увы, внедрить их для каждого поставщика открытого ПО нереально. Нужен иной подход, отличный от традиционных сканеров уязвимостей. С учетом крайне быстрой выкатки новых фич — сканеры банально будут опаздывать. Давайте считать, что вообще весь Open source небезопасен и содержит в себе вредоносный код. Эта идея была реализована в платформе Socket, публично запущенной в начале месяца.
Платформа защищает от атаки на цепочки поставок, действуя по трём направлениям:
-
Отслеживая изменения package.json в реальном времени
-
Обнаруживая нестандартное поведение пакетов
-
Проверяя на соответствие типичным маркерам риска
Пока что используется только статический анализ, но разработчики платформы обещают в скором времени и динамический анализ. Надеемся, что этот способ защиты поможет сделать итоговый код безопаснее.
Веб-разработка в условиях цветовой слепоты
Мы привыкли мерять и судить людей по себе. Но когда речь о написании кода, которым будут пользоваться десятки тысяч других людей, стоит задуматься об их особенностях. Одна из таких особенностей — сложность или даже невозможность увидеть или различать некоторые цвета. Это называют цветовой слепотой или дальтонизмом.
Де-факто цветовая слепота — результат различных заболеваний глаз, которые чаще всего встречаются у мужчин. Природа несправедлива, так что примерно 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 проектах, а расти в грейдах можно с помощью честной системы проверки навыков и менторства.