1. Логируйте бизнес-события, а не трассировку кода
Логи вида «функция отработала» никому не помогают. Гораздо полезнее фиксировать результат: «создан заказ», «оплата не прошла», «внешний сервис не ответил».
2. Исключите персональные и конфиденциальные данные
Пароли, токены и платежные реквизиты не должны попадать в системы агрегации (Sentry, Datadog), к которым есть доступ у широкого круга сотрудников.
3. Соблюдайте семантику уровней логирования
Используйте debug для локальной отладки. На уровне info фиксируйте ключевые бизнес-события. Уровень warn применяйте для отклонений от нормы, не остановивших работу, а error - для сбоев, требующих срочной реакции.
4. Используйте только структурированный формат (JSON)
Склеивание строк делает невозможной автоматическую фильтрацию. Передача данных объектом позволяет системам аналитики (допустим, Grafana) индексировать поля и находить корреляции.
5. Включайте сквозной контекст (Trace/Request ID)
Каждая запись должна содержать идентификаторы пользователя, запроса или операции. Это единственная возможность отследить цепочку событий при сбое.
6. Агрегируйте логи при пакетной обработке
Запись каждого элемента в циклах на тысячи итераций переполняет диски и израсходует лимиты сервисов мониторинга. Логируйте итоговый результат пакета: количество обработанных записей и ошибки.
7. Фиксируйте ошибки в месте их возникновения
Логирование на верхнем уровне (в глобальных перехватчиках) теряет локальный контекст операции. Перехватывайте и логируйте исключение там, где известны детали выполнения.
8. Удаляйте отладочные логи
Временные записи, добавленные в процессе разработки, засоряют продакшен. Они должны вычищаться на этапе самопроверки и код-ревью.
9. Избегайте дублирования одной ошибки
Не логируйте одно исключение на каждом слое архитектуры (сервис —> контроллер —> глобальный хендлер). Одно событие должно порождать ровно одну запись в логе.
10. Единый стандарт логов на уровне всей системы
Все сервисы и модули проекта должны использовать единую схему (обязательные поля
timestamp, level, service, context). Иначе ни одна система агрегации логов не сможет их нормально распарсить и связать в единую картину.#ПолезностиДляКодера
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20🔥8👍4👏1
Приветствую всех! Сегодня у меня день рождения! 🎉
Мне исполняется 16 лет, и я решил приобрести себе вот такой вот аппарат.
Спасибо всем, кто со мной и поддерживает то, что я делаю! Дальше - больше🚀
Мне исполняется 16 лет, и я решил приобрести себе вот такой вот аппарат.
Спасибо всем, кто со мной и поддерживает то, что я делаю! Дальше - больше
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3🎉126❤29🍾12❤🔥1
Поздравляю вас с днем программиста! 🥳
Знаю, что давно сюда ничего не постил и это надо исправлять. И первое, что скажу: скоро начну снимать новый монументальный курс!🫡
Знаю, что давно сюда ничего не постил и это надо исправлять. И первое, что скажу: скоро начну снимать новый монументальный курс!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤52🎉18🔥10👍6🤩1
На чём бы вы хотели, чтобы был написан бэкенд для следующего большого проекта (сервис по аренде, клон Суточно.ру)?
Anonymous Poll
82%
NestJS
18%
ElysiaJS
👍9🔥6🏆3
Министерство юстиции РФ включило блогера «TeaCoder» в реестр иностранных агентов. Вслед за этим решением Роскомнадзор оперативно внес связанные с ним доменные имена и IP-адреса в реестр запрещенных ресурсов, полностью заблокировав доступ к его интернет-площадкам на территории Российской Федерации.
🪓 Топор. Подписаться.
🪓 Топор. Подписаться.
😁32🤣16😢7😨2👍1🔥1
Результаты касательно проекта для нового видео, уже реализовал функционал авторизации и сейчас делаю модули связанные с объявлениями и календарем.
Авторизация тут на сессиях, в качестве основного хранилища для сессий используется бд + они кэшируются в редиске.
Ещё тут будет использоваться PostGIS для гео-поиска по радиусу и по области карты.
Авторизация тут на сессиях, в качестве основного хранилища для сессий используется бд + они кэшируются в редиске.
Ещё тут будет использоваться PostGIS для гео-поиска по радиусу и по области карты.
3🔥40❤12👍4
Закончил переписывать бэкенд TeaCoder с Nest.js на Elysia.js + Bun.
Основная причина перехода - скорость разработки. В несте меня не устраивали скорость hot reload и время перезапуска приложения при изменениях. Bun и Elysia.js позволяют быстрее запускать проект и работать с кодом.
Это один из этапов крупного обновления платформы. Дальше планирую сделать редизайн, улучшить UI и подготовить TeaCoder к обновлённой бизнес-модели перед выходом нового большого курса на ютубе.
Если вам интересен проект, буду рад звёздочке на Github: https://github.com/teacoder-team/backend
Основная причина перехода - скорость разработки. В несте меня не устраивали скорость hot reload и время перезапуска приложения при изменениях. Bun и Elysia.js позволяют быстрее запускать проект и работать с кодом.
Это один из этапов крупного обновления платформы. Дальше планирую сделать редизайн, улучшить UI и подготовить TeaCoder к обновлённой бизнес-модели перед выходом нового большого курса на ютубе.
Если вам интересен проект, буду рад звёздочке на Github: https://github.com/teacoder-team/backend
🔥14❤7🤩2
Мысли программиста / TeaCoder
Закончил переписывать бэкенд TeaCoder с Nest.js на Elysia.js + Bun. Основная причина перехода - скорость разработки. В несте меня не устраивали скорость hot reload и время перезапуска приложения при изменениях. Bun и Elysia.js позволяют быстрее запускать…
TeaCoder
Образовательная платформа для программистов и IT-специалистов. Здесь вы найдёте качественные курсы по веб-разработке, актуальные новости IT-сферы, полезные статьи и активное сообщество разработчиков.
Рад представить вам большое обновление платформы TeaCoder! Я полностью переработал сайт и перевёл его на новый бэкенд - это фундамент, на котором будет расти всё остальное.
1. Полностью новый дизайн платформы
Интерфейс переделан с нуля: новая дизайн-система, обновлённые главная, каталог, страницы курса и урока, личный кабинет и страницы входа.
2. Сайт работает на новом бэкенде
Фронтенд полностью переписан под новый API.
3. Вход через ВКонтакте и ключи доступа
Добавил вход и регистрацию через ВКонтакте. Также появилась авторизация по ключам доступа (passkeys) - можно входить по отпечатку пальца, лицу или аппаратному ключу, без пароля.
4. Яндекс SmartCaptcha вместо Cloudflare Turnstile
Защита от ботов теперь работает на Яндекс SmartCaptcha - она стабильнее работает в России.
5. Улучшено управление подпиской
В личном кабинете стало проще следить за статусом подписки и управлять автопродлением.
6. Резервный способ оплаты из РФ
ЮKassa сейчас периодически работает с перебоями, поэтому добавил резервный способ оплаты банковскими картами РФ и через СБП.
7. Фундамент для больших курсов
Подготовил основу для будущих объёмных курсов: уроки теперь можно делить на модули (разделы) , чтобы большие программы было удобно проходить.
Frontend репозиторий, Backend репозиторий
#TeaCoderUpdates
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥14❤12