Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
В Google search console теперь можно добавлять соцсети
Google добавил в Search Console поддержку аккаунтов соцсетей: теперь можно отслеживать ключевые запросы, источники и географию переходов, показы и клики по ссылкам. Функция подключается там же, где и сайты, доступны четыре соцсети на выбор. Rollout постепенный — доступ получают не все сразу.
➡️ Читайте на сайте: https://aff.top/blog/v-google-search-console-teper-mozhno-dobavliat-socseti
🧠 Ещё больше инсайтов → в канале AFF.top
Google добавил в Search Console поддержку аккаунтов соцсетей: теперь можно отслеживать ключевые запросы, источники и географию переходов, показы и клики по ссылкам. Функция подключается там же, где и сайты, доступны четыре соцсети на выбор. Rollout постепенный — доступ получают не все сразу.
➡️ Читайте на сайте: https://aff.top/blog/v-google-search-console-teper-mozhno-dobavliat-socseti
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Google стал помечать креативы, созданные ИИ
Google объявил, что начнёт помечать рекламные креативы, созданные нейросетями. Причина — ИИ-баннеры и видео стали слишком похожи на настоящие.
Формат и заметность маркировки будут зависеть от законов конкретного региона: где-то предупреждение появится прямо на креативе, где-то — в его информации.
Что это значит для арбитражников и когда правила …
➡️ Читайте на сайте: https://aff.top/blog/google-stal-pomechat-kreativy-sozdannye-ii
🧠 Ещё больше инсайтов → в канале AFF.top
Google объявил, что начнёт помечать рекламные креативы, созданные нейросетями. Причина — ИИ-баннеры и видео стали слишком похожи на настоящие.
Формат и заметность маркировки будут зависеть от законов конкретного региона: где-то предупреждение появится прямо на креативе, где-то — в его информации.
Что это значит для арбитражников и когда правила …
➡️ Читайте на сайте: https://aff.top/blog/google-stal-pomechat-kreativy-sozdannye-ii
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Компания Meta выпустила Muse Spark 1.1
Meta выпустила Muse Spark 1.1 почти одновременно с новой ChatGPT-5.6. Это мультимодальный агент, который сам дробит задачу на подзадачи и распределяет их между субагентами.
Стоимость тоже заметно ниже топовых западных моделей: $1.25 за миллион входных токенов и $4.25 за миллион выходных.
Но главный вопрос — насколько она реально сильна на фоне к…
➡️ Читайте на сайте: https://aff.top/blog/kompaniia-meta-vypustila-muse-spark-1-1
🧠 Ещё больше инсайтов → в канале AFF.top
Meta выпустила Muse Spark 1.1 почти одновременно с новой ChatGPT-5.6. Это мультимодальный агент, который сам дробит задачу на подзадачи и распределяет их между субагентами.
Стоимость тоже заметно ниже топовых западных моделей: $1.25 за миллион входных токенов и $4.25 за миллион выходных.
Но главный вопрос — насколько она реально сильна на фоне к…
➡️ Читайте на сайте: https://aff.top/blog/kompaniia-meta-vypustila-muse-spark-1-1
🧠 Ещё больше инсайтов → в канале AFF.top
7 ошибок в python-скриптах, из-за которых автоматизация ломается в самый неудобный момент
Скрипт «работает у меня» — плохой критерий. В проде обычно падают не из-за сложной логики, а из-за мелочей: путь к файлу другой, переменная не задана, сеть моргнула, формат входа чуть сместился.
— Жёстко прошитые пути и логины. Вынеси конфиг в env или отдельный файл, иначе перенос на другой сервер превращается в ручной ремонт.
— Нет проверки входных данных. Если CSV пустой, JSON битый, а поле пропало, скрипт должен завершаться с понятной ошибкой, а не молча портить результат.
— Игнор исключений через голый except. Так теряется причина сбоя. Лови конкретные ошибки и пиши в лог, что именно сломалось.
— Нет idempotency. Повторный запуск не должен дублировать записи, пересылать одно и то же или ломать промежуточное состояние.
Ещё два частых провала: отсутствует таймаут на запросы и нет нормального логирования. Без таймаута скрипт зависает, без логов его невозможно разбирать после инцидента.
Если скрипт нужен не для демо, а для работы, проверяй вход, фиксируй ошибки, делай повторный запуск безопасным и сразу добавляй логи. Это экономит часы на каждом сбое.
Скрипт «работает у меня» — плохой критерий. В проде обычно падают не из-за сложной логики, а из-за мелочей: путь к файлу другой, переменная не задана, сеть моргнула, формат входа чуть сместился.
— Жёстко прошитые пути и логины. Вынеси конфиг в env или отдельный файл, иначе перенос на другой сервер превращается в ручной ремонт.
— Нет проверки входных данных. Если CSV пустой, JSON битый, а поле пропало, скрипт должен завершаться с понятной ошибкой, а не молча портить результат.
— Игнор исключений через голый except. Так теряется причина сбоя. Лови конкретные ошибки и пиши в лог, что именно сломалось.
— Нет idempotency. Повторный запуск не должен дублировать записи, пересылать одно и то же или ломать промежуточное состояние.
Ещё два частых провала: отсутствует таймаут на запросы и нет нормального логирования. Без таймаута скрипт зависает, без логов его невозможно разбирать после инцидента.
Если скрипт нужен не для демо, а для работы, проверяй вход, фиксируй ошибки, делай повторный запуск безопасным и сразу добавляй логи. Это экономит часы на каждом сбое.
7 проверок Tilda перед запуском, чтобы не ловить баги на ровном месте
Перед публикацией в Tilda чаще всего ломается не «дизайн», а мелочи: дубли в шапке, кривые якоря, мусор в формах, пустые alt у картинок. Это потом вылезает в заявках, SEO и в поддержке клиента.
— Проверь, нет ли дублей блоков на десктопе и мобиле: часто правят один экран и забывают второй.
— Пройдись по всем формам: обязательные поля, маски телефона, редирект после отправки, уведомления на почту и в CRM.
— Открой сайт в инкогнито и проверь меню, якоря, попапы, внешние ссылки, 404-страницы.
— Если есть SEO-задачи, посмотри title, description, H1 и alt у изображений: в Tilda это легко оставить «на потом».
— Убедись, что кастомный код не конфликтует с Zero Block и не ломает адаптив после публикации.
Отдельно проверь скорость не глазами, а поведением: если первый экран тяжёлый, анимации дергаются, а картинки тянутся с задержкой, пользователь уйдёт раньше формы.
Хорошая привычка — держать короткий чек-лист перед каждым запуском. На Tilda он экономит не часы, а переписку после сдачи.
Перед публикацией в Tilda чаще всего ломается не «дизайн», а мелочи: дубли в шапке, кривые якоря, мусор в формах, пустые alt у картинок. Это потом вылезает в заявках, SEO и в поддержке клиента.
— Проверь, нет ли дублей блоков на десктопе и мобиле: часто правят один экран и забывают второй.
— Пройдись по всем формам: обязательные поля, маски телефона, редирект после отправки, уведомления на почту и в CRM.
— Открой сайт в инкогнито и проверь меню, якоря, попапы, внешние ссылки, 404-страницы.
— Если есть SEO-задачи, посмотри title, description, H1 и alt у изображений: в Tilda это легко оставить «на потом».
— Убедись, что кастомный код не конфликтует с Zero Block и не ломает адаптив после публикации.
Отдельно проверь скорость не глазами, а поведением: если первый экран тяжёлый, анимации дергаются, а картинки тянутся с задержкой, пользователь уйдёт раньше формы.
Хорошая привычка — держать короткий чек-лист перед каждым запуском. На Tilda он экономит не часы, а переписку после сдачи.
Scrapy ломается не на сайтах, а на мелочах в самом пауке
Чаще всего проблемы не в парсинге, а в дисциплине проекта:
— не отделён parsing от storage;
— в item-processor тащат тяжёлую логику;
— селекторы завязаны на один шаблон верстки;
— retry и таймауты настроены «по умолчанию»;
— логирование не показывает, где именно пропали данные.
Для живого паука полезно держать три слоя: получение ответа, извлечение полей, запись результата. Если в spider уже есть нормализация, дедупликация и работа с БД — при первом изменении HTML вы чините сразу всё, а не один участок. Это особенно больно в проектах, где данные идут в ETL или CRM.
Ещё одна типовая ошибка — ждать, что CSS/XPath селекторы будут жить вечно. Надёжнее собирать их по смысловым признакам: атрибуты, стабильные контейнеры, fallback-ветки для пустых блоков, проверка обязательных полей перед записью. Пустой item лучше залогировать и пропустить, чем сохранить мусор.
Если Scrapy-проект начинает «сыпаться», первым делом режьте связность и добавляйте наблюдаемость: понятные имена полей, отдельные пайплайны, явные ошибки на пропавших данных. Тогда паук чинится за минуты, а не за вечер.
Чаще всего проблемы не в парсинге, а в дисциплине проекта:
— не отделён parsing от storage;
— в item-processor тащат тяжёлую логику;
— селекторы завязаны на один шаблон верстки;
— retry и таймауты настроены «по умолчанию»;
— логирование не показывает, где именно пропали данные.
Для живого паука полезно держать три слоя: получение ответа, извлечение полей, запись результата. Если в spider уже есть нормализация, дедупликация и работа с БД — при первом изменении HTML вы чините сразу всё, а не один участок. Это особенно больно в проектах, где данные идут в ETL или CRM.
Ещё одна типовая ошибка — ждать, что CSS/XPath селекторы будут жить вечно. Надёжнее собирать их по смысловым признакам: атрибуты, стабильные контейнеры, fallback-ветки для пустых блоков, проверка обязательных полей перед записью. Пустой item лучше залогировать и пропустить, чем сохранить мусор.
Если Scrapy-проект начинает «сыпаться», первым делом режьте связность и добавляйте наблюдаемость: понятные имена полей, отдельные пайплайны, явные ошибки на пропавших данных. Тогда паук чинится за минуты, а не за вечер.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Российские букмекеры увеличили закуп трафика с мобильных приложений
Российские букмекеры в 1 квартале 2026 года заметно нарастили закупку трафика из мобильных приложений. На фоне ужесточения регулирования они смещают бюджеты в новые каналы, где ещё есть живой трафик.
По данным UMG, доля in-app-рекламы выросла с 3-4% до 5-6% при объёме рынка около 10 млрд рублей. Но это может быть только начало — в блоге разбираем…
➡️ Читайте на сайте: https://aff.top/blog/rossiiskie-bukmekery-uvelichili-zakup-trafika-s-mobilnykh-prilozhenii
🧠 Ещё больше инсайтов → в канале AFF.top
Российские букмекеры в 1 квартале 2026 года заметно нарастили закупку трафика из мобильных приложений. На фоне ужесточения регулирования они смещают бюджеты в новые каналы, где ещё есть живой трафик.
По данным UMG, доля in-app-рекламы выросла с 3-4% до 5-6% при объёме рынка около 10 млрд рублей. Но это может быть только начало — в блоге разбираем…
➡️ Читайте на сайте: https://aff.top/blog/rossiiskie-bukmekery-uvelichili-zakup-trafika-s-mobilnykh-prilozhenii
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Mia Khalifa стала амбпссадором 1win
Mia Khalifa снова засветилась рядом с 1win: в Instagram она показала цепочку с логотипом бренда и статус «VIP 1win».
Параллельно всплыла история с ее ставкой на Испанию на ЧМ — по данным поста, выигрыш мог составить 200к$.
Официального подтверждения амбассадорства пока нет, но для арбитражников это уже повод для новых креативов. Что именно здесь…
➡️ Читайте на сайте: https://aff.top/blog/mia-khalifa-stala-ambpssadorom-1win
🧠 Ещё больше инсайтов → в канале AFF.top
Mia Khalifa снова засветилась рядом с 1win: в Instagram она показала цепочку с логотипом бренда и статус «VIP 1win».
Параллельно всплыла история с ее ставкой на Испанию на ЧМ — по данным поста, выигрыш мог составить 200к$.
Официального подтверждения амбассадорства пока нет, но для арбитражников это уже повод для новых креативов. Что именно здесь…
➡️ Читайте на сайте: https://aff.top/blog/mia-khalifa-stala-ambpssadorom-1win
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from КРАВЧЕНКО
Дорогие коллеги и партнеры,
Наш маршрут конференций за последние недели, получился особенно насыщенным.
Со стендами PoshFriends мы побывали на MAC и GGate, а затем продолжили встречи уже в полях iGB Live в Лондоне.
В Ереване увиделись с любимыми SEO-командами, попробовали местные вина, обменялись новостями и зарядились энергией УБТ-команд.
В Тбилиси обсуждали тренды, новые связки и совместные планы, встречались с действующими партнерами и знакомились с новыми. А за настроение на стенде отвечала Черемша, которая чуть не стала маскотом одного из наших продуктов. С этой задачей, кажется, справилась лучше всех.
В Лондоне все было уже по-деловому. Провели серию встреч с топ-партнерами, обсудили Японию, бурж и новые точки роста. География интересов растет, планы становятся амбициознее. Воротники, как выяснилось, нагладили не зря.
Спасибо всем, с кем удалось увидеться на этом маршруте. За открытые разговоры, новые идеи, доверие и планы, которые постепенно превращаются в реальные проекты.
Конференционный сезон продолжается. Скоро увидимся снова.
Всегда ваши, Команда Posh Friends 🤝
Наш маршрут конференций за последние недели, получился особенно насыщенным.
Со стендами PoshFriends мы побывали на MAC и GGate, а затем продолжили встречи уже в полях iGB Live в Лондоне.
В Ереване увиделись с любимыми SEO-командами, попробовали местные вина, обменялись новостями и зарядились энергией УБТ-команд.
В Тбилиси обсуждали тренды, новые связки и совместные планы, встречались с действующими партнерами и знакомились с новыми. А за настроение на стенде отвечала Черемша, которая чуть не стала маскотом одного из наших продуктов. С этой задачей, кажется, справилась лучше всех.
В Лондоне все было уже по-деловому. Провели серию встреч с топ-партнерами, обсудили Японию, бурж и новые точки роста. География интересов растет, планы становятся амбициознее. Воротники, как выяснилось, нагладили не зря.
Спасибо всем, с кем удалось увидеться на этом маршруте. За открытые разговоры, новые идеи, доверие и планы, которые постепенно превращаются в реальные проекты.
Конференционный сезон продолжается. Скоро увидимся снова.
Всегда ваши, Команда Posh Friends 🤝
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Короткий домен Telegram перестал работать
Telegram лишился домена t.me: он разделегирован и больше не работает на уровне регистратора. Платформа срочно переезжает на telegram.me, а владельцам крупных каналов стоит обновить публичные ссылки. Сроки восстановления неизвестны, и есть риск, что t.me не вернётся вовсе на фоне давления на Telegram.
➡️ Читайте на сайте: https://aff.top/blog/korotkii-domen-telegram-perestal-rabotat
🧠 Ещё больше инсайтов → в канале AFF.top
Telegram лишился домена t.me: он разделегирован и больше не работает на уровне регистратора. Платформа срочно переезжает на telegram.me, а владельцам крупных каналов стоит обновить публичные ссылки. Сроки восстановления неизвестны, и есть риск, что t.me не вернётся вовсе на фоне давления на Telegram.
➡️ Читайте на сайте: https://aff.top/blog/korotkii-domen-telegram-perestal-rabotat
🧠 Ещё больше инсайтов → в канале AFF.top
5 типовых ошибок в Django-проекте, которые потом ломают поддержку
За неделю в репах обычно всплывает одно и то же: бизнес-логика расползается по views, сериализаторам и сигналам. В итоге непонятно, где менять правило и почему один и тот же сценарий работает по-разному в админке, API и фоновой задаче.
• Толстые models: в модель кладут всё подряд, включая HTTP-логику и доступ к внешним сервисам. Модель должна держать инварианты и доменные правила, а не знать про запросы и ответы.
• Сигналы как скрытая магия: удобны до первого дебага. Если действие важно для сценария, его лучше вызывать явно из сервиса или use-case слоя.
• Разные источники истины: когда статус объекта меняют и в форме, и в celery-task, и в ручном скрипте без единой функции, рано или поздно появится рассинхрон.
Ещё одна частая проблема — QuerySet по всему коду без ограничений. Когда фильтры и аннотации размазаны по шаблонам и контроллерам, оптимизировать запросы становится почти невозможно. Гораздо проще держать набор репозиторных методов или менеджер с понятными именами.
Правило простое: если изменение нельзя объяснить одной фразой, вынесите его в отдельный слой. Django хорошо терпит быстрый старт, но хуже всего переживает проект, где логика живёт везде сразу.
За неделю в репах обычно всплывает одно и то же: бизнес-логика расползается по views, сериализаторам и сигналам. В итоге непонятно, где менять правило и почему один и тот же сценарий работает по-разному в админке, API и фоновой задаче.
• Толстые models: в модель кладут всё подряд, включая HTTP-логику и доступ к внешним сервисам. Модель должна держать инварианты и доменные правила, а не знать про запросы и ответы.
• Сигналы как скрытая магия: удобны до первого дебага. Если действие важно для сценария, его лучше вызывать явно из сервиса или use-case слоя.
• Разные источники истины: когда статус объекта меняют и в форме, и в celery-task, и в ручном скрипте без единой функции, рано или поздно появится рассинхрон.
Ещё одна частая проблема — QuerySet по всему коду без ограничений. Когда фильтры и аннотации размазаны по шаблонам и контроллерам, оптимизировать запросы становится почти невозможно. Гораздо проще держать набор репозиторных методов или менеджер с понятными именами.
Правило простое: если изменение нельзя объяснить одной фразой, вынесите его в отдельный слой. Django хорошо терпит быстрый старт, но хуже всего переживает проект, где логика живёт везде сразу.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Youtube тестирует поиск с AI
YouTube начал тестировать Ask YouTube — поиск с ИИ, где можно задавать вопросы обычным языком и получать не список ссылок, а готовую подборку видео и фрагментов.
Фича уже доступна в США и работает на сложные запросы: если нужно, ИИ уточняет вопрос и подсказывает следующий шаг.
Что это значит для поиска на YouTube и когда новинка дойдёт до других…
➡️ Читайте на сайте: https://aff.top/blog/youtube-testiruet-poisk-s-ai
🧠 Ещё больше инсайтов → в канале AFF.top
YouTube начал тестировать Ask YouTube — поиск с ИИ, где можно задавать вопросы обычным языком и получать не список ссылок, а готовую подборку видео и фрагментов.
Фича уже доступна в США и работает на сложные запросы: если нужно, ИИ уточняет вопрос и подсказывает следующий шаг.
Что это значит для поиска на YouTube и когда новинка дойдёт до других…
➡️ Читайте на сайте: https://aff.top/blog/youtube-testiruet-poisk-s-ai
🧠 Ещё больше инсайтов → в канале AFF.top
FastAPI ломают не роуты, а границы между схемой, логикой и БД
За неделю в репах: один и тот же набор проблем повторяется почти в каждом сервисе на FastAPI. Путь красивый, а внутри handler делает всё сразу: валидирует, ходит в БД, собирает ответ, ловит исключения. Такой код быстро растёт, а потом любое изменение превращается в цепочку правок по всему проекту.
Рабочая схема проще:
— router принимает запрос и отдаёт его в сервис;
— service держит бизнес-логику;
— repository/DAO прячет SQLAlchemy, Redis или внешнее API;
— pydantic-схемы отвечают только за контракт входа и выхода.
Есть наблюдение которое стоит проверить: если в endpoint больше 20-30 строк, он уже просит разбиения. Второй красный флаг — когда тест на один маршрут требует поднять половину приложения. Это обычно значит, что зависимости зашиты не через DI, а напрямую.
Не смешивайте async и blocking без явного контроля. Любой requests, тяжелый файл-IO или CPU-задача внутри async-обработчика может убить конкурентность. Для таких мест нужен отдельный поток, воркер или вынос в очередь. И ещё: не тащите ORM-модели наружу как response_model, если потом придётся объяснять, почему утекли лишние поля.
В FastAPI лучше всего живут тонкие роуты, явные схемы и сервисы, которые можно тестировать без HTTP.
За неделю в репах: один и тот же набор проблем повторяется почти в каждом сервисе на FastAPI. Путь красивый, а внутри handler делает всё сразу: валидирует, ходит в БД, собирает ответ, ловит исключения. Такой код быстро растёт, а потом любое изменение превращается в цепочку правок по всему проекту.
Рабочая схема проще:
— router принимает запрос и отдаёт его в сервис;
— service держит бизнес-логику;
— repository/DAO прячет SQLAlchemy, Redis или внешнее API;
— pydantic-схемы отвечают только за контракт входа и выхода.
Есть наблюдение которое стоит проверить: если в endpoint больше 20-30 строк, он уже просит разбиения. Второй красный флаг — когда тест на один маршрут требует поднять половину приложения. Это обычно значит, что зависимости зашиты не через DI, а напрямую.
Не смешивайте async и blocking без явного контроля. Любой requests, тяжелый файл-IO или CPU-задача внутри async-обработчика может убить конкурентность. Для таких мест нужен отдельный поток, воркер или вынос в очередь. И ещё: не тащите ORM-модели наружу как response_model, если потом придётся объяснять, почему утекли лишние поля.
В FastAPI лучше всего живут тонкие роуты, явные схемы и сервисы, которые можно тестировать без HTTP.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Z.ai анонсировала новую GLM-5.5
Z.ai готовит релиз флагманской GLM-5.5: модель обещают показать в августе 2026 года.
Главная интрига — рост до 1 трлн параметров при том же контекстном окне в 1 млн токенов. Новинка снова будет заточена под код и агентные задачи.
Почему версия сразу 5.5, без 5.3 и 5.4, и что это может означать для рынка — в блоге.
➡️ Читайте на сайте: https://aff.top/blog/z-ai-anonsirovala-novuiu-glm-5-5
🧠 Ещё больше инсайтов → в канале AFF.top
Z.ai готовит релиз флагманской GLM-5.5: модель обещают показать в августе 2026 года.
Главная интрига — рост до 1 трлн параметров при том же контекстном окне в 1 млн токенов. Новинка снова будет заточена под код и агентные задачи.
Почему версия сразу 5.5, без 5.3 и 5.4, и что это может означать для рынка — в блоге.
➡️ Читайте на сайте: https://aff.top/blog/z-ai-anonsirovala-novuiu-glm-5-5
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Telegram запустил собственный сервер для ботов
Telegram запустил собственный сервер для ботов и мани-приложений: теперь backend можно размещать прямо внутри инфраструктуры мессенджера.
Сервер работает на JavaScript/TypeScript, через вебхуки, и позволяет подключать SQL-базу для сбора контактов без посредников.
Пока неясны цена и ограничения — что именно уже можно тестировать, а где скрыт подв…
➡️ Читайте на сайте: https://aff.top/blog/telegram-zapustil-sobstvennyi-server-dlia-botov
🧠 Ещё больше инсайтов → в канале AFF.top
Telegram запустил собственный сервер для ботов и мани-приложений: теперь backend можно размещать прямо внутри инфраструктуры мессенджера.
Сервер работает на JavaScript/TypeScript, через вебхуки, и позволяет подключать SQL-базу для сбора контактов без посредников.
Пока неясны цена и ограничения — что именно уже можно тестировать, а где скрыт подв…
➡️ Читайте на сайте: https://aff.top/blog/telegram-zapustil-sobstvennyi-server-dlia-botov
🧠 Ещё больше инсайтов → в канале AFF.top
FastAPI ломается не на запросах, а на границах: где их проверить заранее
FastAPI любят за скорость разработки, но в проде чаще всего падают не роуты, а границы между слоями. Если сразу не отделить HTTP, домен и доступ к данным, то любой рефакторинг превращается в раскопки по всему проекту.
— В роуте держите только валидацию входа, вызов сервиса и формат ответа. Логику бизнес-правил туда не тащить.
— В Pydantic-моделях не прячьте поведение приложения: это контракт, а не место для сценариев.
— Сервисный слой должен быть независим от FastAPI, чтобы его можно было дернуть из теста, воркера или скрипта.
— Репозиторий отвечает за запросы к БД, а не за решение, можно ли вообще менять объект.
Еще одна типовая ошибка — смешивать async и sync без правил. Если внутри async-эндпоинта дергать блокирующий клиент, приложение формально работает, но под нагрузкой начинает «залипать». Для внешних API, БД и файловых операций заранее решите: либо везде async-стек, либо аккуратные sync-вставки через отдельные исполнители.
Тестируйте не эндпоинты по одному, а связки: схема → сервис → репозиторий. Тогда ловятся не только ошибки валидации, но и плохие границы между слоями. Хороший FastAPI-проект читается по структуре: роут тонкий, сервисы переиспользуемые, зависимости явные.
FastAPI любят за скорость разработки, но в проде чаще всего падают не роуты, а границы между слоями. Если сразу не отделить HTTP, домен и доступ к данным, то любой рефакторинг превращается в раскопки по всему проекту.
— В роуте держите только валидацию входа, вызов сервиса и формат ответа. Логику бизнес-правил туда не тащить.
— В Pydantic-моделях не прячьте поведение приложения: это контракт, а не место для сценариев.
— Сервисный слой должен быть независим от FastAPI, чтобы его можно было дернуть из теста, воркера или скрипта.
— Репозиторий отвечает за запросы к БД, а не за решение, можно ли вообще менять объект.
Еще одна типовая ошибка — смешивать async и sync без правил. Если внутри async-эндпоинта дергать блокирующий клиент, приложение формально работает, но под нагрузкой начинает «залипать». Для внешних API, БД и файловых операций заранее решите: либо везде async-стек, либо аккуратные sync-вставки через отдельные исполнители.
Тестируйте не эндпоинты по одному, а связки: схема → сервис → репозиторий. Тогда ловятся не только ошибки валидации, но и плохие границы между слоями. Хороший FastAPI-проект читается по структуре: роут тонкий, сервисы переиспользуемые, зависимости явные.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Google картинки станут конкурентом Pinterest
Google Картинки начали превращать в полноценную платформу с персональной лентой по прошлым запросам — по сути, в аналог Pinterest.
Во вкладке For you уже тестируют подборки, а ещё обещают коллекции и генерацию изображений во встроенной Nano Banana.
Как это будет работать и когда новинка дойдёт до других стран — в блоге.
➡️ Читайте на сайте: https://aff.top/blog/google-kartinki-stanut-konkurentom-pinterest
🧠 Ещё больше инсайтов → в канале AFF.top
Google Картинки начали превращать в полноценную платформу с персональной лентой по прошлым запросам — по сути, в аналог Pinterest.
Во вкладке For you уже тестируют подборки, а ещё обещают коллекции и генерацию изображений во встроенной Nano Banana.
Как это будет работать и когда новинка дойдёт до других стран — в блоге.
➡️ Читайте на сайте: https://aff.top/blog/google-kartinki-stanut-konkurentom-pinterest
🧠 Ещё больше инсайтов → в канале AFF.top
Starlette ломается не из-за ASGI, а из-за пары привычек в проекте
Starlette часто берут как «лёгкий каркас», но проблемы обычно не в нём, а в том, как собирают приложение:
— смешивают бизнес-логику с обработчиками;
— вешают тяжёлые sync-вызовы прямо в async endpoint;
— забывают про единый слой ошибок и ответов.
Если проект растёт, сразу отделяйте routing, services и dependencies. Роут должен принимать request, вызывать сервис и возвращать response. Всё остальное — не его задача. Так проще тестировать, менять transport и не тащить веб-слой в доменную логику.
Для фоновых задач и внешних запросов держите отдельные адаптеры. Внутри Starlette удобно делать тонкие endpoint’ы, а тяжёлое выносить в threadpool, очередь или отдельный worker. Иначе любой «быстрый» хендлер начинает блокировать соседей, а диагностика превращается в угадайку.
Ещё одна частая ошибка — игнорировать middleware и lifespan. Именно там обычно живут логирование, метрики, соединения с БД и кэшом. Если это раскидано по ручкам, сопровождение быстро дорожает.
Хорошая проверка простая: если endpoint нельзя переписать без знания деталей БД, очереди и HTTP-клиента, архитектура уже течёт.
Starlette часто берут как «лёгкий каркас», но проблемы обычно не в нём, а в том, как собирают приложение:
— смешивают бизнес-логику с обработчиками;
— вешают тяжёлые sync-вызовы прямо в async endpoint;
— забывают про единый слой ошибок и ответов.
Если проект растёт, сразу отделяйте routing, services и dependencies. Роут должен принимать request, вызывать сервис и возвращать response. Всё остальное — не его задача. Так проще тестировать, менять transport и не тащить веб-слой в доменную логику.
Для фоновых задач и внешних запросов держите отдельные адаптеры. Внутри Starlette удобно делать тонкие endpoint’ы, а тяжёлое выносить в threadpool, очередь или отдельный worker. Иначе любой «быстрый» хендлер начинает блокировать соседей, а диагностика превращается в угадайку.
Ещё одна частая ошибка — игнорировать middleware и lifespan. Именно там обычно живут логирование, метрики, соединения с БД и кэшом. Если это раскидано по ручкам, сопровождение быстро дорожает.
Хорошая проверка простая: если endpoint нельзя переписать без знания деталей БД, очереди и HTTP-клиента, архитектура уже течёт.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Россияне не смогут покупать стейблкоины
Россиянам могут закрыть доступ к покупке стейблкоинов: в новой версии закона их приравняли к иностранным активам.
Купить такие токены смогут только квалифицированные инвесторы — например, с активами от 24 млн рублей или доходом от 12 млн в год.
Что это значит для обычных пользователей и когда правило заработает — в блоге.
➡️ Читайте на сайте: https://aff.top/blog/rossiiane-ne-smogut-pokupat-steiblkoiny
🧠 Ещё больше инсайтов → в канале AFF.top
Россиянам могут закрыть доступ к покупке стейблкоинов: в новой версии закона их приравняли к иностранным активам.
Купить такие токены смогут только квалифицированные инвесторы — например, с активами от 24 млн рублей или доходом от 12 млн в год.
Что это значит для обычных пользователей и когда правило заработает — в блоге.
➡️ Читайте на сайте: https://aff.top/blog/rossiiane-ne-smogut-pokupat-steiblkoiny
🧠 Ещё больше инсайтов → в канале AFF.top
23-24 июля встречаемся в Лимассоле! 🔥
Команда AdsCard врывается на Conversion Conf в статусе HOOKAH LOUNGE SPONSOR! Мы готовим для вас идеальное пространство для неформального общения и обсуждения серьезных дел.
Ищете платежное решение, которое не подведет в самый ответственный момент? Хотите масштабировать свои рекламные кампании без головной боли? Давайте обсудим это в расслабленной атмосфере.
Что ждет вас в нашей лаунж-зоне?
0️⃣ Поделимся инсайдами и свежими кейсами по заливу с наших карт на самых требовательных источниках.
0️⃣ Обсудим наши эксклюзивные условия для команд и расскажем, как получить максимум от нашего сервиса.
0️⃣ Познакомим с топами индустрии, угостим дымным кальяном и просто отлично проведем время.
Присоединяйтесь к нам, чтобы совместить приятное с полезным: качественный нетворкинг и эффективные платежные решения.
📍 Где искать: Parklane Hotel, HOOKAH LOUNGE от AdsCard
Ждем всех на Conversion Conf для незабываемого ивента и крутых знакомств! До встречи! 😎
Команда AdsCard врывается на Conversion Conf в статусе HOOKAH LOUNGE SPONSOR! Мы готовим для вас идеальное пространство для неформального общения и обсуждения серьезных дел.
Ищете платежное решение, которое не подведет в самый ответственный момент? Хотите масштабировать свои рекламные кампании без головной боли? Давайте обсудим это в расслабленной атмосфере.
Что ждет вас в нашей лаунж-зоне?
Присоединяйтесь к нам, чтобы совместить приятное с полезным: качественный нетворкинг и эффективные платежные решения.
📍 Где искать: Parklane Hotel, HOOKAH LOUNGE от AdsCard
Ждем всех на Conversion Conf для незабываемого ивента и крутых знакомств! До встречи! 😎
Please open Telegram to view this post
VIEW IN TELEGRAM