Обновить

Фронтенд

Сначала показывать
Порог рейтинга

ИИ-агенты могут убить привычный нам Интернет, e-commerce и заодно порушить весь рекламный рынок

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

Но с приходом в нашу жизнь ИИ-агентов эта модель устаревает:

  • ИИ-агенты не реагируют на рекламу так, как люди. Они не подвержены эмоциям, не кликают на баннеры и не нуждаются в вдохновляющих слоганах.

  • Они совершают покупки рационально, сравнивая цены, характеристики и сроки доставки автоматически, без влияния брендинга и маркетинговых трюков.

  • Сайты становятся интерфейсом для ботов, а не для людей: ИИ-агенты требуют структурированных данных, а не красивых витрин и описаний.

И по мере того, как ИИ-агенты будут все чаще совершать покупки в интернете вместо нас, встает вопрос изменений не только привычной инфраструктуры E-commerce, но и в ценности диджитал рекламы в сети.

Руководители e-commerce-компаний уже называют массовое появление ИИ-агентов «экзистенциальной угрозой» для всей отрасли. Стартап New Gen предлагает решение, позволяющее адаптироваться к этой новой реальности, предоставляя разные интерфейсы для людей и агентов, что помогает брендам хоть на первых порах не потерять позиции на рынке электронной коммерции.

И поскольку первый уровень коммуникации, будь то контент или продукты, все больше будет обрабатываться ИИ-агентами, для бизнеса теряется самое главное, вовлеченность и прямая связь с клиентом. А живые люди так давно все в замкнутых экосистемах и комьюнити живут (соцсети, мессенджеры).

И тогда, возможно (это гипотеза), последней точкой коммуникации с клиентом станут голосовые интерфейсы, о важности которых, говорю не только я в Новых парадигмах создания продуктов, но и уважаемый Эндрю Ын, профессор Стэнфордского университета, исследователь робототехники, машинного обучения и искусственного интеллекта.

А еще в этом же видео профессор Эндрю Ын говорит о подходе "кубиков Лего", как о современном принципе построения сложных систем из множества готовых инструментов и модулей, о чем я буквально на днях писал на Хабре, правда в другом контексте, как о способе создавать и монетизировать свои микро-продукты.

И если скорость роста когнитивности моделей останется прежней, то это все уже не просто технологическая эволюция, а скорее фундаментальный сдвиг, который может разрушить привычный нам Интернет, E-com, цифровую рекламу и заставить бренды пересмотреть все свои подходы к продаже и коммуникации.

Контент сайтов будет генерироваться ИИ в реальном времени под конкретного пользователя или агента. А интерфейсы станут «невидимыми», взаимодействие будет происходить через голос, а там глядишь и через нейроинтерфейсы.

Теги:
Всего голосов 9: ↑9 и ↓0+9
Комментарии7

Доступен простой и понятный учебник для начинающих веб-разработчиков для обучения HTML и CSS. Информация на ресурсе подана максимально понятно, сопровождается графиками и примерами использования технологии.

Теги:
Рейтинг0
Комментарии0

Опять попробовали React Native и снова решили, что не хотим его внедрять у себя 🧐

Олег и Денис, наши фронтенд-разработчики, рассказали, почему отказались от этого фреймворка, несмотря на то что потратили на погружение в него немало времени. Это был хороший эксперимент, который дал нам много полезных инсайтов. ✍️

Перед нашей командой стояла задача: написать код один раз, собрать под три платформы и встроить в существующие нативные и веб-приложения. Решили поэкспериментировать с React Native: до этого мы «щупали» фреймворк в 2018-м, но делали новое приложение, опыта разработки SDK у нас не было. Отправились гуглить и узнавать, как это сделать. Начали с разработки под Android, потом подключили в веб, и уже финально — iOS, в котором практически всё заработало по дефолту.

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

Вот что мы поняли при разработке:

● Обязательно нужна единая дизайн-система под все три платформы под React Native и библиотека компонентов. А ещё — команда из фронтенд и мобильных разработчиков под iOS и Android: одни будут поддерживать часть React Native, которая относится к нативной платформе, другие — писать бизнес-логику и UI.

● React Native может подойти для проектов, которые начинаешь с нуля и нужно охватить мобильные платформы и веб сразу.

Результаты нашего эксперимента

Хоть и ушло на работу с React Native несколько кварталов, мы решили не внедрять его. Было ли нам обидно? Нет, потому что благодаря эксперименту мы:

✔ Закрепили опыт, что фронтенд-разработчики могут писать на React Native.

✔ Поняли, как всё работает изнутри, какие у фреймворка плюсы и минусы.

Будет ли применимо для нас в будущем — время покажет. Возможно, для новых продуктов это рабочая схема, сейчас — экономически неоправданно.

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

😎 Кастомный signal в Angular

Мы, как разработчики, использующие в работе самый крутой фреймворк (по моему мнению🙂), немного избалованы обилием его возможностей, особенно в последнее время. Но иногда хочется либо побаловаться, либо возникает реальная потребность в функционале, которого нет, но очень хотелось бы. 


И вот, как-то я в очередной раз писал подобные строки:

isOpened = signal(false);

toggle() {

  this.isOpened.update(value => !value);

}


#isOpenedEffect = effect(() => {

  console.log('New state:', this.isOpened())

})

- и подумал: 'Было бы удобно, если бы был булевый signal с методом toggle'


В этом не было прям сильной необходимости, однако было бы немного удобнее (процентов на 10 😅). И появилась идея написать свой сигнал (реализация на фото)


Пример, согласен, так себе. 

👍🏼 меньше кода, более аккуратно

👎🏼 всей команде придется подстроится


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

💬 А какого сигнала не хватает вам?

Больше об 🅰️ngular в моём Telegram-канале

Теги:
Рейтинг0
Комментарии3

Google выпустила свой бесплатный генератор сайтов и приложений Stitch:

  • генерит простые, но стильные дизайны; 

  • под капотом мощнейшая модель Gemini; 

  • экспорт в Figma буквально парой кликой 

  • есть специальная фича Copy to Figma; 

  • любой элемент можно отредактировать.

Теги:
Рейтинг0
Комментарии1

RxJS: Почему shareReplay(1) может вызывать утечки памяти

Если вы используете shareReplay(1) в RxJS, будьте осторожны — в некоторых случаях это может привести к утечкам памяти! Давайте разберёмся, почему так происходит и как это исправить.

❌ Проблема с shareReplay(1). По умолчанию:

  • Сохраняет последнее значение в бесконечном буфере, даже если подписчиков больше нет

  • Не отписывается от источника, когда никто не слушает (например, interval, Subject, HTTP-запросы)
    Это означает, что данные могут накапливаться, а ненужные Observable продолжают работать в фоне

✅ Решение: shareReplay({ bufferSize: 1, refCount: true })

  • Добавление refCount: true решает проблему:

  • Автоматически отписывается, когда не остаётся подписчиков

  • Очищает буфер, предотвращая утечки памяти

💡 Ключевые выводы:

  1. shareReplay(1) - Может оставлять "висящие" подписки

  2. shareReplay({ bufferSize: 1, refCount: true }) - Безопасная альтернатива

Я обнаружил эту проблему во время code review вчера, а впервые узнал о ней из видео Dmytro Mezhenskyi.

🔗 P.S. Самое время быстро исправить это в наших проектах!)

Больше об 🅰️ngular в моём Telegram-канале

Теги:
Рейтинг0
Комментарии0

"mergeMap: Секрет управления параллелизмом в RxJS"

Вы знаете mergeMapconcatMapexhaustMap и switchMap — но знали ли вы, что только один из них принимает второй аргумент?

👉 mergeMap уникален благодаря параметру concurrent, который ограничивает параллельные подписки. Это как "регулятор скорости" для ваших Observable.

_____

Пример использования (контролируемая загрузка файлов):

Представьте, что вам нужно:
1️⃣ Обработать несколько файлов
2️⃣ Избежать перегрузки браузера/API
3️⃣ Сохранить порядок загрузки

В этом случае второй аргумент mergeMap становится незаменимым:

from(fileList).pipe(
  mergeMap(
    file => uploadFile(file), // функция загрузки
    3                        // одновременно только 3 файла
  )
).subscribe();

_____

Преимущества mergeMap с concurrent:
✅ Предотвращает перегрузку API
✅ Оптимизирует нагрузку на сеть
✅ Сохраняет отзывчивость интерфейса
_____

Знали ли об этой возможности? 😉

Больше об Angular в телеграмм-канале

Теги:
Рейтинг0
Комментарии0

Управление методами в зависимости от окружения в 🅰️ngular

Бывают случаи, когда нужно, чтобы определенные методы работали только:

  • 🛠️ В dev-режиме (например, фича-тогглы, дебаг-логи, экспериментальные функции)

  • 🚀 В prod-режиме (аналитика, мониторинг, продакшен-логика)

Вместо того чтобы писать if (isDevMode()) {...} везде, можно использовать декораторы Angular для более чистого и декларативного подхода.

_____

Одно из решений:

export function EnvMode(mode: 'dev' | 'prod') { return function (_: unknown, __: string, descriptor: PropertyDescriptor) { const originalMethod = descriptor.value; descriptor.value = function (...args: unknown[]) { const shouldExecute = mode === 'dev' ? isDevMode() : !isDevMode(); if (!shouldExecute) return; return originalMethod.apply(this, args); }; return descriptor; }; }

_____

Как использовать:

@EnvMode('dev') public setFeatureToggle(): void { // Сработает только в dev-режиме } @EnvMode('prod') public sendAnalytics(): void { // Сработает только в prod-режиме }

_____

🤔 А вы создавали кастомные декораторы? Зачем?

Больше про Angular в тг канале

Теги:
Рейтинг0
Комментарии0

Я сделал своего первого Telegram-бота — WebCheck. Мониторинг сайтов прямо в Telegram⁠⁠

Привет!

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

Знакомьтесь: WebCheck — бот, который следит за доступностью сайтов, SSL-сертификатами и доменами.

🧠 Что умеет бот

  • Проверяет, доступен ли сайт (HTTP-код);

  • Показывает, сколько дней осталось до окончания SSL-сертификата;

  • Проверяет, когда истекает регистрация домена;

  • Присылает уведомление, если:

    • сайт стал недоступен;

    • до окончания SSL-сертификата осталось 14 дней или меньше;

    • до окончания регистрации домена осталось 14 дней или меньше;

  • Позволяет экспортировать логи и список сайтов в CSV;

  • Есть админ-интерфейс для контроля всех добавленных сайтов.

⚙️ Как пользоваться

  1. Открываете бота 👉 @ITSync_WebCheckBot

  2. Жмёте «Start» или пишете /start

  3. Просто отправляете ссылку на сайт (например: example.comozon.ru или https://wildberries.ru)

  4. Получаете оповещения, если с ресурсом что-то не так

Бот абсолютно бесплатный, ничего не требует — просто добавил сайт, и бот сам всё контролирует.

👨‍💻 Технически

Бот написан на Python с использованием:

  • aiogram v3

  • PostgreSQL

  • APScheduler

  • Shell-команд (whois, curl, openssl) для большей точности

Контейнеризирован в Docker, база хранится вне контейнера, а вся логика максимально простая и прозрачная.

🔐 А ещё я сделал бот для дешифровки VNC

Если вдруг работаете с .vnc файлами или UltraVNC — может пригодиться мой мини-инструмент:
@DecryptVNC_bot — он расшифровывает VNC-пароли прямо в Telegram.

🙏 Буду рад, если протестируете

Это мой первый бот, и я был бы благодарен за фидбек.
Если найдёте баг, захотите предложить улучшение — пишите. Буду дорабатывать и развивать.

Спасибо, что прочитали.
Бот тут 👉 @ITSync_WebCheckBot
И ещё один на всякий 👉 @DecryptVNC_bot

Теги:
Рейтинг0
Комментарии0

🚀 291 установка за месяц. Как мы запустили браузерное расширение «Rar File Opener»

Расскажу про создание нового продукта — расширения для открытия RAR-архивов прямо в браузере. Простое решение проблемы, когда средствами ОС RAR не открыть.

Результаты за 30 дней:

- 291 установка

- 185 активных пользователей

Все это без каких-либо вложений в маркетинг.

Как мы это сделали?

1️⃣ Нашли идею в https://chrome-stats.com.

2️⃣ Проверили запросы в Google и Chrome Store. Люди ищут способы извлечения RAR архивов по запросам "rar extractor", "rar file opener" и т.д. Конкуренция в Chrome Store при этом низкая.

3️⃣ Разработали простое расширение, которое:

- Открывает RAR прямо в браузере (а также ZIP, 7z, TAR, GZ, TAR.GZ и другие форматы)

- Не крадёт данные (работает локально)

- Работает с несколькими архивами

У нас процесс уже отлажен:

✅ Разработали MVP

✅ Сделали иконки, промо картинки и лендинг

✅ Сделали SEO-описание + перевод на 55 языков

✅ Тесты и фикс багов

На все 3-4 недели.

Копаем ил дальше в поисках идеи нового продукта! 😁

Инди-хакеры: стартапы из 💩 и 🥢 - канал про то, как два простых IT-шника запускают стартапы без инвестиций и смузи.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Angular Hack: Цикл без данных (в тэмплейте)

Иногда нужно отобразить несколько одинаковых элементов чисто для ui-целей: скелетоны загрузки, звёзды рейтинга, пустые таблицы и т.д., но без реальных данных для итерации.

Вот мой способ (по крайней мере, я нигде такого не видел):

@for (_ of [].constructor(10); track $index) {
<div class="item"></div>
}

Используется Array.constructor, чтобы создать пустую массив фиксированной длины, который @for может перебрать по индексам.

Плюсы ✅

  • Чудо-код (удивит коллег)

  • Минимум кода (не нужно объявлять массив в компоненте)

Минусы ⚠️

  • Чудо-код (может ненадолго ввести в ступор чающего код человека)

Конечно, можно просто использовать Array.from({length: 10})... но так все делают, не интересно)

Норм тема? Как считаете?

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии3

Эвристики Нильсена помогали нам строить интерфейсы прошлого.
Но с приходом ИИ, интерфейс это результат.

Старые интерфейсы мертвы (ну почти 😉).
Но почему тогда продукты продолжают строиться так, будто ничего не изменилось?

ИИ не просто дал новые инструменты, он изменил ожидания. Пользователи теперь мыслят иначе и ожидают другого.

Я собрал 10 новых эвристик — ориентиров, по которым сегодня должен проектироваться каждый современный продукт.

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

Новые Эвристики

О пользовательском опыте в мире, где удобство интерфейса уступает место скорости и точности результата

Для: продактов, аналитиков, архитекторов, дизайнеров, команд разработки, стратегов, консультантов и всех, кто так или иначе причастен к созданию новых продуктов

Введение

ИИ-технологии радикально изменили не только способ решения задач, но и глубинные ожидания пользователей. Современный пользователь — это человек с новой "прошивкой": он уже знает, как быстро и эффективно может быть выполнена задача, если задействован ИИ. Он ждёт не функциональности, а результата. Не интерфейса, а исполнения. Не фич, а магии.

Этот манифест формулирует 10 новых эвристик, отражающих сдвиг в пользовательском восприятии ценности, удобства и нормы. 

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

1. Результат вместо функции

Пользователь хочет видеть не инструменты, а выполненную задачу. Если раньше продукт помогал делать — теперь он должен сделать.

Продукт не инструмент — он должен полностью решать задачу.

2. Мгновенная реакция как базовый UX

Время ожидания воспринимается как сбой. Даже если операция требует времени, реакция должна быть немедленной.

Если пользователь может подумать: "почему это ещё не сделано?" — вы уже опоздали.

3. Нулевая кривая обучения

Продукт должен быть понятен с первого контакта. Объяснение это уже трение.

Лучший онбординг — это его отсутствие.

4. Контекст из коробки

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

Контекст — это теперь задача системы, а не человека. Это задача и ответственность продукта, а не пользователя.

5. Адаптация, а не навигация

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

Нет смысла в грамотной структуре продукта, если есть интуитивный маршрут.

6. Автоматизация на лету

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

Максимальная автоматизация — не функция, а базовое обязательство продукта.

7. Оплата за результат, а не доступ

Модель монетизации должна соответствовать восприятию ценности. Пользователь хочет платить за решенные задачи, а не за лицензии или фичи. 

Деньги платят не за возможности, а за результаты.

8. Минимизация интерфейса

Интерфейс не должен быть в фокусе. Лучший интерфейс — это невидимый интерфейс, максимально простой интерфейс.

Чем меньше пользователю приходится изучать интерфейс, тем лучше продукт.

9. Проактивная коммуникация

Система должна предлагать шаги и помощь до того, как пользователь их запросит. Ожидание инициативы от системы — новая норма.

Пассивный продукт — это продукт прошлого.

10. В ожидании чуда

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

Если ваш продукт не удивляет, о нем уже забыли.

***

Открыт для ваших замечаний и предложений по улучшению.

За два года научился проектировать и создавать новые продукты за 6 дней с помощью нейросетей, теперь всем показываю как я это делаю => 6 дней

Теги:
Всего голосов 5: ↑5 и ↓0+5
Комментарии7

Devin - первый "полноценный" junior AI-разработчик

Чуть больше года назад интернет взбудоражила новость о повялении первого AI-инженера по имени Devin. Некоторые отнеслись к идее скептически, в том числе и я, тогда казалось, что это больше похоже на хайп. Хотя инвесторы поверили в идею, стартап привлек 175 млн. $ (а чуть ранее 21 млн.$). В марте этого года был еще один раунд, но сумму не нашел.

Но на днях посмотрел интервью с основателем Cognition (компания, которая создала Девина), и изучил их прогресс, и теперь кажется, что за этим явно что-то есть.

Вообще, лучше любого интервью и пресс-релизов расскажут клиенты, а их, судя по сайту, довольно много. Какие-то компании я знаю, какие-то нет. Как пример, среди них есть Nubank (крупнейший банк в Латинской Америке), их CTO говорит, что благодаря Devinу ускорились в 8 раз при миграции и рефакторинге старого кода, и это на проектах с миллионами строк.

А вот CTO Microsoft Кевин Скотт называет Devin "absolutely amazing tool".
Также посмотрел демо одного из их клиентов. У него комбинация: сначала прототипирует с помощью v0 (это аналог Bolt), затем использует связку Devin и Cursor для полноценного запуска, но надо отметить, что у него инженерный бэкграунд, потому все получается легко и просто, я как не разработчик, точно бы так не смог.

Что он умеет сейчас?

-Понимает бэклог и может сам брать задачи в Jira
-Сам пишет и запускает тесты
-Делает pull requests с комментариями
-Разворачивает окружение и деплоит код
-Общается с командой в Slack
-Задает уточняющие вопросы

В общем, это не просто GitHub Copilot, который дописывает строчки, или даже Bolt, который делает часть работы. Это полноценный член команды.
В компании сейчас всего 15 разработчиков, но каждый из них "тимлид" с 5 Девинами в команде. По словам основателя, за год Devin эволюционировал от уровня "студента старшего курса по информатике" до "джуниор-инженера". К концу года они планируют, что половина кода компании будет написана AI, сейчас это 25 %. И если прогресс пойдет такими темпами, "мидл-инженер" это вопрос месяцев.

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

Я только не очень разобрался с тарификацией. Есть тариф Pay As You Go, надо закинуть от 20$. Следующий тариф начинается от 500$ полагаю, что это примерно один разработчик, но правда тариф называется Team. В любом случае, 500$ даже за одного джуна выглядит неплохо.
Я думаю, CTO всех компаний стоит приглядеться к подобным решениям и нанять хотя бы одного "стажера" на пару месяцев, чтобы потестировать, тем более он, не выгорает, не "токсичит", но скорее всего жестко "тупит" 🙂.

P.S. Про другие интересные стартапы можно почитать на моем канале StartupHunt

Теги:
Рейтинг0
Комментарии0

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

Приглашаем вас на бесплатный вебинар «TypeScript за час: основы, плюсы и практика». Познакомим вас с TypeScript. Расскажем, зачем он появился, в чём его преимущества и как он помогает писать понятный и надёжный код. Подойдёт и новичкам, и практикам.

⁉️ На вебинаре вы сможете задать вопросы спикеру.

📅 Дата: 13.05.2025

Время: 17:00-18:00 (Мск)

На вебинаре:

✔️ История возникновения TypeScript

✔️ Преимущества использования TypeScript

✔️ Пример написания кода на TypeScript

👨‍🎓 Спикер: Кучин Евгений — разработчик на Java и JavaScript.

✍️Записаться на вебинар

Возможно, вам будет интересен курс «Язык программирования TypeScript». Вы освоите TypeScript, изучив типизацию, интерфейсы и классы. Узнаете, как использовать статическую типизацию, интегрировать TypeScript с существующим JavaScript и настраивать окружение разработки. Это поможет сделать ваш код более безопасным и структурированным.

Старт: 19 мая

Цена: 14 900 8 940 ₽ (-40%)

✍️ Записаться на курс

Теги:
Всего голосов 3: ↑1 и ↓2+1
Комментарии0

Почему классический мониторинг не работает для микросервисов и облаков? Переход к Observability

Современные системы давно перестали быть монолитами — теперь это сложные экосистемы из микросервисов, облачных сервисов и распределенных баз. Но если ваш мониторинг всё ещё фокусируется только на CPU и RAM, вы рискуете пропустить критические сбои.

Главные проблемы классического подхода:

  1. Невидимые бизнес-сбои: Сервер «живой», но конверсия платежей падает.

  2. Поиск иголки в стоге сена: При ошибке в цепочке из 10 микросервисов метрики инфраструктуры не укажут на источник проблемы.

  3. Ручная настройка: Часы на алерты для каждого сервиса вместо автоматизации.

Решение — Observability:

Объедините метрики (Prometheus), логи (EFK) и трейсы (Jaeger), чтобы система сама «объясняла» свои сбои.

Пример кода

Отслеживание конверсии платежей в .NET-сервисе:

// Отслеживание конверсии платежей  
using App.Metrics;  
public class PaymentService  
{  
    private readonly IMetrics _metrics;  
    public PaymentService(IMetrics metrics) => _metrics = metrics;  

    public void ProcessPayment()  
    {  
        try  
        {  
            // Логика обработки платежа...  
            _metrics.Measure.Counter.Increment(MetricsRegistry.PaymentSuccessCounter);  
        }  
        catch  
        {  
            _metrics.Measure.Counter.Increment(MetricsRegistry.PaymentFailedCounter);  
        }  
    }  
} 

Код автоматически фиксирует успешные и неудачные платежи. Эти метрики интегрируются в Grafana для анализа бизнес-показателей.

📖 Нужны подробности? Читайте статью на хабре: «Эффективная стратегия мониторинга: ключевые метрики для успешного наблюдения»

Теги:
Рейтинг0
Комментарии0

Научите, как пользоваться Хабром

К примеру, открыл я сайт. Увидел статью (оказалось пост)

Статья и Пост
Статья и Пост

Решил поставить комментарий под постом. Просит залогиниться. Жму залогиниться...

И всё, нет поста. Потерялся видимо в моих "рекомендациях". Необоснованные трудности для пользователя на пустом месте.

При этом пост не имеет простой ссылки открываемой кликом по заголовку или тип того

Решил вопрос, нажав - поделиться, скопировал. Залогинился. Вставил ссылку. Перешёл....

Мне кажется не такой должен быть пользовательский путь

Теги:
Всего голосов 8: ↑7 и ↓1+9
Комментарии3

Как тестировать фронтенд?

Для меня уже нет вопроса - нужны ли тесты на фронтенде? Личный опыт подсказал, что нужны, как и согласованный цельный подход к архитектуре. Тому есть несколько причин:

  • Без unit-тестов и автоматических e2e-тестов ручное тестирование занимает много времени. К тому же человек, скорее всего, при регрессионном тестировании что-то пропустит, и баги попадут в production. Особенно это актуально для больших проектов с большой кодовой базой.

  • Без автоматических тестов страшно рефакторить код. А если нет выстроенной архитектуры с соблюдением low coupling/high cohesion, то этот страх вполне оправдан. А без регулярного пересмотра кода приложение рано или поздно превратится в большой комок грязи.

  • У unit-тестов есть интересный побочный эффект. Если пользоваться подходом TDD и писать тесты сразу вместе с кодом (и даже перед написанием кода), то качество модулей и архитектуры в целом повышается. Это происходит, потому что с позиции написания теста мы думаем не только о том, как нам побыстрее завершить работу над модулем, но и о том, как этот модуль будет выглядеть снаружи, удобно ли будет его использовать внутри других модулей, так как тест в этом случае служит ещё и образцом вызывающего модуля.

  • Тесты - это дополнительная документация к коду. Причём такую документацию не получится держать в неактуальном состоянии, иначе упавшие тесты не пропустят код в production при наличии настроенного шлюза проверки качества в CI/CD пайплайне.

Это всё прекрасно и, как показывает практика, работает, как ожидается, но остаются вопросы.

  • Как тестировать уровень представления приложения? Например, в случае с каким-нибудь фреймворком с использованием React это будут React-компоненты, виджеты, представляющие отдельные элементы пользовательского интерфейса. Тестировать там, по сути, нужно функцию. Передали ряд аргументов (пропсов или состояний) - получили одно представление. Передали другие аргументы - другое. Зависимость результата от набора аргументов - однозначная. Чтобы это проверить, можно использовать тесты со скриншотами. Я предпочитаю snapshot-тесты, они дают больше контроля, но работают довольно медленно и могут быть хрупкими, если недостаточно грамотно отделять слой представления от логики.

  • А что со временем написания кода вместе с тестами? Будем ли мы вовремя успевать сдавать новые модули и радовать наших пользователей и руководство? Я думаю, что это не совсем правильные вопросы. Спрашивать надо о том, сколько будут стоить ошибки, попавшие на production из-за отсутствия тестов? Если ваше приложение - landing page с минимумом логики, то вряд ли цена ошибки будет высока. В небольшой кодовой базе её будет легко локализовать и исправить. А если вы работаете с финансами и у вас миллионы пользователей? В этом случае цена ошибки на production будет намного выше.

  • Как донести необходимость тестов до команды и правильно включить автоматизацию тестирования в процесс разработки? Это на самом деле серьёзный вопрос. Не все разработчики понимают, зачем вообще тесты на фронтенде и обоснование их необходимости может вылиться в не слишком продуктивный холивар. А если продавливать такое решение сверху, то без понимания и принятия командой этого решения будут попытки обойти систему и снижение мотивации. Мне когда-то в подобной ситуации помогла практика парного программирования и выстраивание инженерной культуры в команде (совместное чтение технической литературы, архитектурные встречи с использованием white board).

А какие практики для тестирования применяете вы?

Теги:
Рейтинг0
Комментарии0

Yahoo - давно забытый гигант, пытающийся вернуть былую славу

На днях появилась занятная новость, Google могут заставить продать Chrome. И вот среди потенциальных покупателей вдруг всплыло имя Yahoo. Реакция в сети была примерно такая: "Ого, а они вообще ещё живы?" Спойлер: живы! И, что ещё интереснее, Yahoo переживает некий "ренессанс", до былой славы пока далеко, но в родной Америке они по-прежнему большие ребята. По трафику новостей №1, в спорте №2, в email №2, а в финансах снова №1. 8 из 10! американцев хотя бы раз в месяц заходят на сервисы Yahoo. Неплохо для "призрака прошлого" 👻.

Немного истории. Yahoo появилась в 1994 году, когда многие из нас даже не знали, что такое интернет. На пике капитализация компании превышала 125 млрд. $, а Google им в своё время предлагали купить себя за... 1 млн. $. Отказались. А ведь мы могли Яхить, а не Гуглить. Тем интереснее возможность текущей покупки, тут явно будет сумма на несколько порядков выше.

Потом долго были на вершине, и началось стремительное падение. Ошибок было много: неудачные покупки вроде Tumblr, упущенные тренды вроде мобильных приложений, бесконечная чехарда с руководителями... В итоге Yahoo в 2017 году продали Verizon за символические 4,5 миллиарда долларов.

И вот теперь - вторая молодость. Новый CEO Джим Ланзон в недавнем интервью рассказал, что, когда он пришёл, каждый продукт Yahoo требовал апгрейда. Аудитория огромная, но всё выглядело устаревшим, а монетизация слабой.

Что они делают сейчас:

  • Сокращение штата, закрытие старых рекламных платформ.

  • Новые версии всех ключевых продуктов (новости, спорт, финансы, почта).

  • Найм новых лидеров.

  • Развитие сильных направлений и внедрение AI-решений.

  • Ищут новые источники дохода помимо классической рекламы.

По сути, Yahoo снова строят компанию внутри старого бренда.

В современном интернете Yahoo воспринимается как "винтаж", а конкуренция за внимание пользователей безумная. Тем не менее, если им удастся превратить этот "камбэк" в устойчивый рост, Yahoo точно попадёт в учебники по бизнесу, как из один примеров перезапуска 💪

P.S. Про другие интересные стартапы можно почитать на моем канале StartupHunt

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии1

Substack - "переизобретение" интернета с помощью e-mail.

Представьте: на дворе 2017 год. Соцсети на пике — у главной соцсети почти 2 млрд. пользователей, у WhatsApp 1,5 млрд, у YouTube 1 млрд. MAU. Все бегут за видео, сторис и мемами, умными лентами. И вдруг… два молодых парня говорят: «А давай сделаем бизнес на e-mail», на технологии, которой почти 50 лет, которой уже не первый год предвещают закат. Звучит как идеальный способ провалиться. Но это начало очень классного стартапа Substack.

Идея была простая: вернуть интернету "человеческий голос". Без «лайкни, подпишись, оставь комментарий». Substack стал местом, где писатели, журналисты и просто умные люди могли напрямую говорить с аудиторией. Без редакторов, без рекламных отделов, без алгоритмов, решающих, кто что увидит. Только автор и его читатель.

Один из сооснователей, Хэмиш Маккензи, говорил:

Главное, что мы увидели, было то, что писатели, у которых была аудитория, на самом деле не имели власти над своей судьбой. Они были во власти платформ и изданий, которые их нанимали. Мы хотели создать систему, в которой писатели могли бы иметь прямые отношения со своими читателями и могли бы владеть своей судьбой

Вот что делает Substack особенным:

  • У каждого автора — собственная платформа.

  • Возможность брать деньги напрямую с подписчиков.

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

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

  • Комьюнити и дискуссии.

Я сам подписан на несколько рассылок. Две из них платные, и я отдаю за это 300$ в год. Кто бы мне сказал в 2017 году, что я буду платить такие деньги за e-mail — я бы посмеялся. А теперь это мой любимый контент, стараюсь все прочитать.

И я не один. У Substack сейчас > 3 млн платных подписчиков (это оценка по состоянию на 2023 год). За всё время стартап привлёк около 100 млн. $Последняя оценка — 600 млн $, выручка за 2023 — 29 млн. $ Да, это не миллиарды соцсетей, но это деньги за "живой" контент.

Substack переизобрёл интернет не с помощью новой технологии, а с помощью старой идеи: говорить по делу с теми, кто тебя действительно слушает.
А еще недавно один из основателей был на подкасте (https://a16z.com/podcast/building-substack-reinventing-culture-through-subscriptions/) a16z, выпуск получился очень интересным.

P.S. Про другие интересные стартапы можно почитать на моем канале StartupHunt

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

Positive Technologies использует ITSM-систему SimpleOne

Компания Positive Technologies, лидер в области результативной кибербезопасности, мигрировала на российскую систему управления ИТ-услугами от SimpleOne, входит в корпорацию ITG. ITSM-система позволила организовать поддержку более 10 000 пользователей и 60 бизнес-процессов. Проект реализовали команды системных интеграторов ITGLOBAL.COM, корпорация ITG, и «Медиа-тел»‎.

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

«SimpleOne позволила реализовать гибкие процессы поддержки, учитывающие специфику продуктов и сервисов в сфере кибербезопасности. Особенно важным для нас стало внедрение функциональности по управлению лицензиями, инсталляциями и продуктами, реализованной на базе модуля CMDB», — отмечает Олег Замощин, директор сервисного центра Positive Technologies.

Интеграция SimpleOne ITSM от начала активного внедрения до запуска системы в промышленную эксплуатацию заняла 6 месяцев. В ходе проекта команды клиента и интеграторов дополнительно реализовали уникальные решения, например, систему управления многоуровневыми SLA для разных продуктов и категорий клиентов. Для бесшовного процесса обработки обращения была настроена двусторонняя интеграция с клиентским порталом Positive Technologies. Теперь клиенты могут отправлять заявки на обслуживание, получать информацию о лицензиях и давать обратную связь.

«Хотя изначально планировалось использовать максимально коробочное решение, гибкость платформы позволила реализовать все пожелания без компромиссов. Мы существенно доработали пользовательский интерфейс, добавив визуализацию элементов управления и настроив удобную навигацию», — комментирует Владимир Лялеко, директор центра управления ИТ-услугами «Медиа-тел».

SimpleOne ITSM используют все сотрудники Positive Technologies, занимающиеся поддержкой продуктов и лицензий, а также частично специалисты R&D-департамента. Более 10 000 пользователей взаимодействуют с системой через клиентский портал. Объем обращений достигает 40 000 в месяц.

«Решение SimpleOne оказалось оптимальным вариантом, отвечающим всем потребностям компании к гибкости и функциональности. Уверен, что внедренная система поможет Positive Technologies и далее поддерживать высокое качество сервиса», — отметил Василий Белов, исполнительный директор ITGLOBAL.COM.

«В современных условиях компании уделяют все большее внимание сервисным процессам. Важно не только поставить качественный продукт, но и организовать его дальнейшую поддержку на высочайшем уровне. Мы как вендор решений понимаем это очень хорошо, поэтому и разрабатываем продукт, который способен закрыть любую потребность»‎, — комментирует Сергей Чуканов, генеральный директор SimpleOne.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0