Цикл жизни системы можно изобразить в виде условной параболы, где в начале находится ничто, либо более примитивная система. Вас позвали сделать дизайн-систему в компании? С чистого листа не начнёте, всегда есть что-то в начале: брендбук, старый ui-kit сделанный вашими предшественниками, наработки интерфейсов, или устаревшее легаси. А также есть вы, как источник силы для всех будущих изменений. С этим вы и начинаете.
Frontend
ИБ-аудит в финансовых организациях: что надо знать, чтобы не провалить или не затянуть
Привет! На связи Департамент консалтинга и аудита информационной безопасности Бастион. Не ожидали? А мы вот решили написать пост, потому что есть желание поделиться полезной информацией. Дело в том, что иногда мы выступаем в качестве внешних ИБ-аудиторов различных организаций, в том числе финансовых. И в последних мы часто сталкиваемся с почти полным отсутствием подготовки к проверке, а ведь это может повлечь за собой штрафы и всевозможные финансово-репутационные потери. Поэтому мы решили отсыпать немного лайфхаков тем из вас, кто занимается информационной безопасностью в финансовых организациях. Статья может быть интересной и другим читателям, интересующимся безопасностью в компаниях из финансового сектора.
Разбираем HTTP/2 по байтам
Откройте любую статью с обзором HTTP/1.1. Скорее всего, там найдётся хотя бы один пример запроса и ответа, допустим, такие:
GET / HTTP/1.1
Host: localhost
HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Content-Length: 38
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<h1>Привет!</h1>
Теперь откройте статью с обзором HTTP/2 или HTTP/3. Вы узнаете о мультиплексировании запросов, о сжатии заголовков, о поддержке push-технологий, но вряд ли увидите хоть одно конкретное сообщение. Ясно, почему так: HTTP/1.1 — текстовый протокол, тогда как сиквелы к нему бинарные. Это очевидное изменение открывает дорогу ко множеству оптимизаций, но упраздняет возможность просто и доступно записать сообщения.
Поэтому в этой статье предлагаю покопаться в кишках у HTTP/2: разобрать алгоритмы установки соединения, формат кадров, примеры взаимодействия клиента с сервером.
Делаем классные проекты, а кейсы получаются унылые. В чем проблема?
Рассказываю о 8 причинах, почему в рассказах о работе не выходит показать, какие вы на самом деле классные и профессиональные.
MVP – как сделать его круто
Создание MVP – дело полное противоречий. С одной стороны, нужно сделать его дешево, чтобы не тратить зря ресурсы, если вдруг продукт не найдет отклика. С другой стороны, нужно сделать его круто, чтобы потенциальные клиенты могли оценить его и захотеть такой продукт.
Что нужно делать, чтобы получилось MVP – тема не новая. Я же хочу порассуждать о том, КАК делать MVP, чтобы получилось одновременно результативно и недорого.
Приглашаю об этом почитать.
Продвижение IT-продуктов – как привлекать пользователей
Мало сделать крутой IT-продукт, нужно еще и научиться его круто продавать. И здесь огромную роль играет хороший маркетинг: упаковка продукта, правильные точки касания, эффективные каналы продвижения и т д.
Каналов много. Все они разные, каждый по своему хорош. Как выбрать правильные? Попробуем в этом разобраться. Приглашаю почитать.
13 вопросов для собеседования, на которые должен знать ответы каждый продакт
Кому будет полезна статья?
Middle и junior продактам — позволит найти свои зоны роста, а также подготовиться к собеседованиям в топовые IT компании.
Тем, кто хочет стать менеджером продукта, но не знает какие компетенции стоит прокачать, чтобы войти в профессию.
Нанимающим менеджерам — поможет составить требования к вакансии продакта и провести интервью.
5 интеграций в React: Контент + Дизайн + Разработка
Сколько раз вы уже сталкивались с запросами от бизнеса о необходимости ускорить разработку, внедряя интеграции со сторонними сервисами? И неужели не звучит заманчиво возможность менять дизайн и контент независимо, без необходимости привлекать разработчика?
В статье я продемонстрирую, как решить три задачи, связанные с интеграциями в React приложении:
1. Изменять контент страницы на React без необходимости привлечения разработчика;
2. Расширять функционал React приложения с помощью сторонних сервисов;
3. Создавать страницы с минимальными затратами на разработку.
Когда руководитель у нас может сам прийти к вам с повышением зарплаты
Представим, что ваше желание уволиться можно описать одним числом. Что будет влиять на него? Понятно, соответствие зарплаты ожиданиям. Потом — ваш комфорт в коллективе, адекватность руководителя. Расстояние до офиса, если вы ездите в офис, или до ЦОДа, если вы ездите в ЦОД, возраст, срок последнего повышения и так далее.
В этой модели всегда было слабое место — сложно посчитать совокупность влияния людей на вас. В целом-то всё просто: если вы работаете с теми, кто вам неприятен, то в зависимости от частоты взаимодействий желание уволиться растёт.
Следующий фактор: когда на новое место работы уходит кто-то, с кем вы сработались, ваш шанс на увольнение также резко растёт. Потому что он позовёт к себе — или потому что у вас уменьшится число людей, с кем вам было комфортно.
Мы не можем сказать, кто и с кем сработался. Таких источников данных у нас просто нет. Но мы сделали допущение о том, что если сотрудники плотно друг с другом взаимодействуют, то уход одного сотрудника увеличит вероятность ухода другого. И дальше на основании этого допущения составили граф всех сотрудников, в котором учли плотность взаимодействия между ними.
И знаете что? Наша модель начала предсказывать увольнения за 3 месяца с точностью около 70%. В смысле, из тех, кого модель разметила на месяц вперёд подтвердилось 73% случаев (точность), при этом модель находит 40% от всех увольнений (полнота).
Теперь мы можем с этим что-то делать.
Естественно, у этой модели огромное количество ограничений. Сейчас мы с DVAMM про всё это расскажем.
Как мемоизация влияет на производительность React-приложения
Почему необдуманное ковровое покрытие проекта мемоизацией хуже, чем её полное отсутствие? Мемоизация не дешёвая! Она замедляет TTI проекта, поэтому её необдуманное использование может навредить. Давайте разберём пять принципов оптимизации и посмотрим, когда от мемоизации будет реальный профит, а когда от её использования лучше воздержаться.
Привет, Хабр! Меня зовут Нугзар Гагулия. У меня 10 лет коммерческого опыта в компаниях различного масштаба, в том числе в Яндекс и Альфа-банк. Я выступаю на Google I/O и Google Dev Fest, пишу статьи на Хабре, контрибьючу и менторю. Эта статья написана по мотивам моего доклада для FrontendConf 2022. Чтобы найти и задать вопросы об этой и других статьях, меня легко можно найти по нику NookieGrey в соцсетях и Телеграм. Я с удовольствием на них отвечу.
Как построить систему, способную выдерживать нагрузку в 5 млн rps
Всем привет!
Меня зовут Владимир Олохтонов, я руковожу командой разработки в отделе Message Bus, который является частью платформы Ozon. Мы занимаемся разработкой самых разных систем вокруг Kafka, etcd и Vault. В этой статье я расскажу о том, как мы строили линейно масштабируемую gRPC-прокси перед Kafka, способную обслуживать миллионы запросов в секунду, используя Go.
Как утечки данных делают атаки на вашу компанию в 10 раз опаснее и как от них защититься
Только за первое полугодие 2022 года в России утекло 187 миллионов записей персональных данных. Во всем мире каждый год их утекает до 15 миллиардов. Но даже если утечки случились не у вас, компания все равно может быть под угрозой.
В статье расскажем, как данные из утечек могут помочь злоумышленникам в целевых атаках на вашу компанию, и что можно с этим сделать.
Автоматизация бизнес-процессов — стресс для компании
Когда в СССР организации стали переводить на электрические калькуляторы (которые от розетки), бухгалтеры, сметчики и плановики никак не могли уйти от своих больших деревянных счёт: им казалось, что машина непременно ошибётся и за ней нужно перепроверять. Когда у них на столах появились электронные CITIZEN, они оценили удобство лёгкого беспроводного устройства и не протестовали. А вот ПК с 1С на борту вызвали едва ли не революцию. Молодые мгновенно оценили все плюсы, а старая гвардия раскололась на три части: одни шли учиться и въедливо мучили внедренцев, вторые упёрлись и решили стоять на ручном труде до последнего, третьи просто-напросто уходили на пенсию или искали работу, не связанную с компьютерами. Как ни странно, привычка до конца так и не сформировалась: и сейчас в командах компаний можно найти противников корпоративного ПО, не умеющих в нём работать, причём и 1985, и 1990, и даже 1993 годов рождения. Для них любая новая рабочая программа — источник стресса, особенно если задевается их непосредственная работа (например, автоматизируются процессы).
Компонентный подход в вёрстке: подробный разбор для джунов и сочувствующих
Зачем использовать в вёрстке компонентный подход? Разбираемся, как и зачем верстать интерфейсы, используя этот подход, какие параметры и проблемы важно учесть. Разберём азы, забежим вперёд и подробно погрузимся в тему. Кстати, эта статья написана на основе одного из уроков курса «Профессиональная вёрстка на HTML и CSS» Яндекс Практикума.
Моделирование микросервисов. Часть 2
Предметно-ориентированный подход (DDD, Domain-Driven Design) в проектировании программного обеспечения является наиболее эффективным способом моделирования бизнес-процессов. Сегодня мы поговорим о стратегическом и тактическом проектировании, после чего рассмотрим инструмент ускорения проектирования под названием «событийный штурм» (event storming).
Моделирование микросервисов. Часть 1
Ключевой идеей микросервисов является возможность независимого изменения и развертывания отдельно взятой функциональности. Фактически, микросервисы - это еще одна форма модульной декомпозиции. Навыки правильного выделения границ модулей являются ключом к построению успешной микросервисной архитектуры. Выделяют три ключевые концепции, определяющих качество границ микросервисов.
TestOps: инструмент сбора метрик и визуализации в Grafana
У нас каждый день запускается больше 1 500 автотестов. Их-то нам и надо мониторить и анализировать в удобном и понятном виде. Есть ReportPortal, помогающий узнать причину падения и завести задачу в Jira (или в другой системе с API), но, к сожалению, он довольно тяжёлый, встроенные инструменты для анализа скудные, а историчность хранится всего несколько недель. Но у него есть отличный API, которым мы и будем пользоваться.
Как итог возникла необходимость в создании инструмента для мониторинга, анализа и оптимизации автотестов, который можно легко адаптировать под потребности бизнеса при минимальных затратах.
Асинхронность в JS: как выполнять долгие сетевые запросы без блокирования основного потока
Асинхронность – это способ координации поведения программы на протяжении какого-то временного отрезка. Разбираем, как в синхронном JavaScript вынести операции за рамки единого потока, чтобы не блокировать действие кода после тяжёлых операций.
React Content Elements
Примечание: авторский перевод статьи Web Content Elements
В HTML разработке мы используем тег в качестве дескриминатора - тег определяет элемент. Мы используем классы, чтобы применять стили к HTML элементам. Разработчик создает структуру и описывает стили руководствуясь правилами конкретного проекта, своим опытом и общепринятыми рекомендациями.
В результате мы получаем проекты состоящие из длинного списка кастомных решений в моменте принятых разработчиком лично, либо в составе команды, например после код ревью.
Проблему можно описать следующим образом: разработка HTML структуры и системы стилей для этой структуры недостаточно формализована для обеспечения единого и независимого от проекта, разработчика или этапа разработки стандарта.
Web Content Elements(WCE) - это концепция, шаблон проектирования, который позволяет описать любые решения подобного рода линейно и однообразно.
Согласно WCE, тег - это переменная для генерации синтаксической структуры элемента разметки.
Основная идея паттерна заключается в группировке элементов по роли, которую они представляют на странице.
? Элементы сгруппированы по их ролям на странице, а не тегам.
Основные роли:
Решение проблемы N+1 запроса с помощью группировки вызовов
Проблема N+1 запросов
Проблема N + 1 возникает, когда фреймворк доступа к данным выполняет N дополнительных SQL-запросов для получения тех же данных, которые можно получить при выполнении одного SQL-запроса.
Обычно это решается с помощью ленивой загрузки. В статье разбирается вариант с асинхронной группировкой вызовов.
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity