В видео я показываю несколько возможных оптимизаций вашего рабочего процесса. Станет удобнее и проще использовать ваш основной инструмент для работы.
Раз. Убираем Activity Bar. В нем есть три типа иконок: нужные нам часто, нужные иногда, совсем ненужные. Логика такая: для нужных мы создаем горячие клавиши (или пользуемся существующими). Для средне-нужных используем cmd+p и выбор команды. Ненужными – не пользуемся :)
Кастомные настройки для горячих клавиш для управления разными View (плюс к стандратным):
Два. Убираем Side Bar. Большую часть времени он не нужен. В основном нам просто нужно читать и реже писать код. Зачем нам Side Bar? Убирается основной по cmd+b, а второй по cmd+alt+b.
Но если оставить Side Bar справа, то его появление / скрытие будет двигать код. Что будет мешать. Потому – убираем его вправо.
Три. И не забудьте поместить Command Palette в центр рабочей области. Так будет удобнее: появяться она будет сразу перед глазами. Просто перетаскиваем мышкой.
Говорим на языке событий: что даёт ивент-шторминг и как его правильно провести
Привет! Я Иван Чернов, системный архитектор, в этом посте расскажу про ивент-шторминг.
В Островке есть набор сервисов, который разбит на логические блоки так, чтобы в рамках блока можно было итерировать: Островок, Островок B2B и Островок Командировки. При этом запускать новые фичи, которые будут сквозь эти слои прорезаться.
Мы растём по количеству и продуктов, и людей, нанятых для их разработки. Недавно начали толкаться локтями: не понимали, как качественно контрибьютить в большие кодовые базы, как они должны эволюционировать. Поэтому пришли к ивент-штормингу.
Что это за практика? На встрече с одной стороны сажаем бизнес, с другой — разработку. Просим бизнес рассказать, что и как он делает в работе с клиентом.
Ивент-шторминг проводится с фокусом на цикличную реактивность: происходит событие, которое визуально меняет что-то для пользователя, тот принимает решение и отдаёт команду, команда приводит к новому событию.
На этих циклах фокусируемся на доске в Miro во время встречи.
В ивент-шторминге 3 этапа:
1. Сейлзы выстраивают по циклам цепочку событий: от «клиента у нас ещё нет» до «клиент нас окончательно покинул». Даже в простых цепочках 20–30 действий. В готовом таймлайне есть happy pass: клиент успешно прошёл весь путь. И альтернативные пути: что-то пошло не так.
2. Проходим по таймлайну с конца, ищем ошибки. Выделяем ключевые события, которые нельзя откатить: клиент зарегистрировался, совершил бронирование, провёл оплату. Здесь происходит стык сервисов. На стыках обогащаем цепочку. Пишем, кто и что делает: актор-клиент зарегистрировался, подключился сервис юзер-менеджмента.
3. Выявляем, какие агрегаты работают с событием. Мапим команды: клиент регистрируется, в работе участвует команда регистрации.
Цепочка готова, мы получили полезный контекст, все одинаково понимают процессы и видят, что нужно делать, чтобы их улучшить.
Во время встречи составляем словарик. Если сейлз говорит непонятное разработчикам слово — мы его добавляем в словарь, и оно просасывается в наш интерфейс и кодовую базу. Всё это учит разработчиков понимать, на какие рычажки они влияют своим кодом.
Поделюсь советами, как круто провести ивент-шторминг.
Онлайн-формат
● Для проведения онлайн достаточно доски в Miro.
● Разбивайте встречу на три части, каждая встреча — один этап.
● На последней встрече отпустите бизнес, выявите агрегаты и сервисы, задействованные в таймлайне с разработкой.
● Максимум людей для успешной фасилитации онлайн — 8–10 человек.
● Ищите представителей бизнеса в оргчате выбранного домена: спрашивайте у руководства, «кто тут самый инициативный».
● Вам нужны работники «с полей», которые лучше всего шарят в процессах, и тимлиды первого уровня.
● Берите людей из разных направлений домена.
● Бизнес-участники должны понимать: ивент-шторминг — процесс обучения, они эксперты, а разработка — ученики. Им нужно говорить на своём языке, а не подстраиваться под разработку.
● Дайте участникам базовый словарь. Четыре самых важных слова: актор, команда, событие, термин.
● Важны вводные по времени и цели: на сессию уйдёт суммарно 6–8 часов, она даст единое понимание процессов.
Фасилитация
● На старте не бойтесь повторить все вводные.
● Дайте сейлзсам 10 минут на то, чтобы каждый выстроил индивидуальный таймлайн, дальше начинайте мёржить таймлайны с общим обсуждением.
● Событие — факт в прошедшем времени, его не отмотать. Следите, чтобы так и записывали.
● Первым делом простройте happy pass, иначе у вас не выстроится цельное видение процесса. Альтернативные ветки обозначьте на первом этапе, а достраивайте на втором, проверяя таймлайн с конца.
● Если бизнес утверждает, что два события происходят одновременно, это важная точка обсуждения.
● Организуйте пост-процессинг: важно передать разработке результаты, объяснить, какие процессы у нас уже верно реализованы, а где нужно обновление и дополнительное внедрение.
Как провести идеально бесполезное собеседование для фронтендера!
Шаг 1: Берем «элитный» шаблон Яндекс.Мультитрека.
Шаг 2: Удаляем всё ценное — оставляем только хаотичный набор вопросов.
Шаг 3: Делаем вид, что это «специально под вакансию» (спойлер: одни и те же 40 вопросов получают все — от стажера до лида).
Главные хиты программы:
— «Назови 5+ способов центрировать div» (ведь React-лид должен уметь это с закрытыми глазами). — «Расскажи про Event Loop как стихотворение» (иначе как проверить лидерские качества?). — «SOLID наизусть, включая историю создания каждого принципа». — Секретный прием: задаем общие вопросы, но с видом эксперта ждем «правильного» ответа (который знает только интервьюер).
Философский бонус: пока такие собеседования существуют, «прохождение собеседований» остаётся отдельным навыком в вакууме — где побеждает не тот, кто лучше код пишет, а тот, кто научился угадывать, что имел в виду интервьюер.
Гарантированный результат:
Кандидат либо засыпает, либо пишет гневный пост.
Ваша компания экономит на зарплатах — никто не доходит до оффера.
Вы получаете статус «самое запоминающееся собеседование в карьере». Если узнали свою компанию — не переживайте, вы не одиноки в этом увлекательном квесте!
Представлена бесплатная платформа Pagy, которая позволяет создавать лендинги и небольшие веб-проекты за секунды. Работает в браузере и собирает сайты или визитки без привлечения дизайнера, верстальщика. Не требует никакой установки ПО. Все просто: выбираете шаблон и сразу его редактируете, пишите текст, вставляете ссылки и пикчи. Ни одной строчки кода писать не нужно, хостинг не требуется. Есть аналитика метрик сайта и сотни уже готовых дизайнов от разрабов и коммьюнити.
Чужой товарный знак в TITLE вашего сайта: есть ли риск судебного иска?
Сайт - средство привлечения клиентов и сопровождения продаж. Инструмент мощный, но зависимый: нужна поисковая оптимизация, иначе сайт затеряется среди миллиарда похожих ресурсов.
Такая оптимизация подталкивает поискового робота к тому, чтобы он приблизил к пользователю конкретную веб-страницу - поместил ссылку на нее как можно выше в выдаче по запросу.
Место страницы сайта в поисковой выдаче выше за счет текста внутри элемента TITLE.
Элемент TITLE размещается вверху кода веб-страницы между служебными символами <title></title>. Внутри элемента - текст, который отражает ключевую мысль всего контента страницы.
Пользователю не виден код сайта, но код видит поисковый робот. Он переходит на веб-страницу, изучает сведения внутри TITLE и помещает ссылку на эту страницу в выдачу по соответствующему запросу пользователя. Повыше.
В чем проблема? Давайте на примере.
Сайт моей адвокатской практики включает страницу "Главная", которая знакомит с моей юридической помощью: сообщает предложение, показывает его ценность, описывает пользу для каждого профиля и так далее.
Моя специализация - юридическая помощь по интеллектуальной собственности. Поэтому в код элемента TITLE этой веб-страницы я поместил ключевую мысль: "Защита интеллектуальной собственности | Адвокат С.В. Пропастин".
Поисковый робот считывает код и учитывает текст из TITLE при выдаче ссылки на веб-страницу. По запросу пользователя "защита интеллектуальной собственности".
Я порылся в реестре товарных знаков Роспатента и нашел комбинированный товарный знак условного конкурента. На нем изображены щит и словосочетание: Патентное бюро "Защита интеллектуальной собственности" (заявка 2019763408).
Ключевая мысль "защита интеллектуальной собственности" в TITLE кода моего сайта и словесный элемент товарного знака бюро сильно похожи!
Отсюда вопрос -
Застрахован ли я от судебного иска на том лишь основании, что фрагмент чужого товарного знака прописан в невидимом для пользователя месте - коде сайта?
Вопрос не праздный.
Гипотетически я могу отбирать клиентов у бюро: пользователи ищут в интернете именно бюро, за счет моего title наталкиваются на мой сайт и переходят на него, оценивают преимущества и обращаются ко мне за помощью.
Бюро вправе защищаться - подать на меня в суд. Потребовать, чтобы я перестал нарушать их права на товарный знак и возместил ущерб.
С такой ситуацией может столкнуться любой бизнес: малый, средний или крупный...
Ответ на вопрос мне не нравится, но истина дороже -
Маскировка чужого товарного знака в элементе TITLE кода веб-страницы не защищает меня от иска правообладателя знака. Почему?
1. Товарный знак включает словесный элемент "защита интеллектуальной собственности". Ключевая мысль в TITLE моего сайта тоже сформулирована в словесной форме с таким же наполнением.
Словесная форма товарного знака и ключевой мысли, их одинаковый текст - аргумент в пользу использования на сайте именно товарного знака, принадлежащего бюро.
2. Один из способов использования товарного знака - его размещение в сети "Интернет".
Сайты являются обязательным звеном этой сети. Без них линии связи теряют смысл: нечего соединять. Именно использование товарного знака без согласия его владельца - повод для судебного иска.
3. Без специальных сервисов элемент TITLE в коде сайта невидим пользователю. Но именно в случае с TITLE пользователь видит результат исполнения кода, так как ключевая мысль:
1) выводится в виде заголовка и подсвечивается системой на странице выдачи по поисковому запросу;
2) выводится на персональном компьютере в адресной строке браузера при переходе на главную страницу сайта.
Поговорите со своим адвокатом. Он назовет условия, когда допустимо использовать чужой товарный знак без ущерба для кошелька. В моей ситуации, например, такие условия есть.
Интересно, вы проговариваете в процессе SEO тему использования чужих товарных знаков?
Язык Go называют одним из самых удобных для бэкенда. Дело тут не в примитивности: его специально стремились сделать простым и лаконичным, чтобы пользователям было легко работать с синтаксисом и понимать чужой код.
Если вы уже знакомы с Go, но не хватает практики, приглашаем пройти новый курс в Академии Selectel. С ним вы научитесь писать простые сервисы на Go и использовать его в некоторых рабочих задачах, а еще получите большую подборку ресурсов для погружения в этот язык.
Что делает данный код? Читает сообщения из first-topic, парсит из них поле user типа str, выполняет вашу логику обработки, отправляет новое сообщение в another-topic. Просто? Удобно? Да!
Что нам дает такой подход?
Декларативное описание, чего мы хотим. Не надо руками создавать коннекты и рулить потоком выполнения
— Слушай, я посмотрел у Тинькоффа — у них такие крутые анимации. Давайте и нам такие сделаем!
— Ну, у нас не финтех, мобильного приложения нет, и вообще — у нас CRM для логистов…
— Ну и что? Люди любят, когда красиво! Сделаем плавные графики, чтобы всё оживало. UX, UI, ты же понимаешь!
— У нас при этом не работают фильтры, отчёты формируются вручную, и у клиента падает система при импорте Excel. Может, сначала это починим?
— Ладно… Только кнопки тогда сделай с закруглениями, как в Тинькоффе. Хоть что-то красивое будет.
Выглядит лучше. Работает — так же плохо.
Потому что копировать обёртку, когда продукт внутри разваливается — это мёртворождение дизайна.
Вдохновение — не преступление.
Но копирование без понимания контекста — худший выбор.
У Тинькоффа и команда дизайнеров, и исследования юзабилити, и огромный бюджет, и полгода на rollout.
Сначала надо решить боль клиента, а не украсить страдание. Сделай стабильный функционал, и только потом — красивый. Иначе копирование по цене тех долга выйдет.
При оформлении заявлений в детский сад на детей на uslugi.mosreg.ru столкнулся с тем, что если ранее было подано заявление и нужно какие-то данные в нём поправить, то выбрать год зачисления ребёнка в ДС можно только следующий. То есть, мы подали в 2024, а теперь можно выбрать только 2026 год, потому что текущий нельзя.
Мне показалось это не очень удобным, решил немножко изучить фронтенд сайта и обнаружил, что валидации на простановку года нет :)
В видео подробнее, как обойти ограничение
P.S. На записи не видно контекстного меню в браузере, когда нажимаешь ПКМ, нас интересует последний пункт "Просмотреть код"
Над CMS Joomla постоянно ведётся работа: создаётся новый функционал, исправляются ошибки, делаются мелкие правки. Разработка ведётся на GitHub. Изменения оформляются в виде Pull Request (PR). Для того, чтобы изменения могли войти в ядро - их обязательно должны успешно протестировать минимум 2 человека КРОМЕ автора изменений. А помочь с большинством PR можно очень и очень быстро, это не занимает много времени, чему подтверждением служит это видео.
Разберёмся, где заканчивается компонент и начинается сервис, как уменьшить связанность и повысить читаемость. Завершим практикой: проведем пошаговый рефакторинг на реальном примере.
📅 Дата: 11.07.2025
⏰ Время: 17:00-18:30 (Мск)
На вебинаре:
✔️ Разделение ответственности между компонентами и сервисами
✔️ Уменьшение связанности и повышение читаемости
✔️ Паттерны и антипаттерны в архитектуре Angular
✔️ Практический рефакторинг на примере «грязного» компонент
👨🎓 Спикер: Погорелов Павел — эксперт в области фронтенд-разработки.
Узнайте, как выстроить архитектуру Angular-приложения, которая выдержит рост команды и кода!
Привет, Хабр! Делюсь своим простым, но мощным инструментом: веб-интерфейс для чтения данных с UART-сенсоров прямо через браузер. Да, без установки чего-либо. Просто открываешь страницу — и видишь, что творится в воздухе.
🤔 Зачем всё это?
Если ты возишься с датчиками качества воздуха, то знаешь, как это бывает: подключил — и пошёл искать minicom, Ultra, какой-нибудь Python-скрипт, или ещё чего. А если ты просто хочешь посмотреть, дышит ли твой сенсор — зачем столько движений?
И тут пришла идея: а почему бы не сделать всё в браузере?
🌐 HTML + JS + JSON = 👌
Ты заходишь на sensor.pollutants.eu, выбираешь нужный сенсор из списка (если в JSON их несколько), подключаешься к COM-порту — и данные потекли.
Без установки. Просто HTML-страница, в которой уже всё встроено:
работа с Web Serial API,
парсинг бинарных фреймов по структуре из JSON,
визуализация данных через Chart.js,
конфигурация через внешний JSON-файл.
скачивание статистики в CSV
⚙️ Конфигурация сенсоров
Конфиг грузится с GitHub и содержит несколько сенсоров. Можeте загрузить свой JSON. Проект на hackaday
Представлен сайт, где можно летать по миру на самолётике — благодаря Google Картам. Города полностью трёхмерные — для полётов доступны Париж, Токио, Рио, Брюссель и другие города.
1-2 августа в Перми мы проведем уже традиционную конференцию про разработку и управление в IT-компаниях — Ural Digital Weekend 2025. Сейчас уже готова программа всех секций.
Запустили продажу SSL-сертификатов для комплексной защиты сайтов и почтовых сервисов
SSL-сертификаты — цифровые решения, обеспечивающих безопасность передачи конфиденциальных данных пользователей. Они создают защищенное HTTPS-соединение, которое шифрует логины, пароли, банковские реквизиты и личную информацию.
У нас вы сможете приобрести все популярные типы SSL-сертификатов для бизнес-сайтов, личного блога, почтовых сервисов, финансовых организаций и других проектов, работающих с персональными данными пользователей, в частности из России и Беларуси:
🔑 DV — быстрая проверка домена.
🔑 OV/EV — расширенная проверка организации.
🔑 Wildcard — защита неограниченного количества поддоменов.
🔑 SAN — решение для мультидоменных проектов и почтовых сервисов.
Повышайте доверие своих пользователей и улучшайте поисковую оптимизацию!
Опубликована база по веб-разработке от Microsoft. В учебном курсе от компании представлено 24 урока, где разбирается всё от основ веба, работы браузеров, сетевых протоколов до HTML, CSS и JS. Всё обучение ориентировано на практику. После каждого раздела есть тесты и интерактивные кодинг-задачи. Также есть несколько пет-проектов, которые можно реализовать после обучения и положить себе в портфолио.