Константин Козловский
Константин Козловский
  • 60
  • 139 454
Вы пишете логи неправильно! Всё о логах в коммерческой разработке
В крупных организациях и командах, работающих с высоконагруженными системами, требования к логированию значительно строже, чем в обычных приложениях. Часто разработчики не осознают важности качественного логирования и добавляют в логи избыточную или неинформативную информацию. Это не только усложняет диагностику и решение проблем, но и может привести к перегрузке систем и нехватке места на жестких дисках. В этом видео мы обсудим распространенные ошибки в логировании и способы их устранения, а также акцентируем внимание на ключевых аспектах и некоторых правилах, которые помогут сделать ваши логи более эффективными и полезными.
Тайм коды:
00:00 Интро
00:48 Уровни логирования
02:56 Бесполезные логи
03:22 Полезные логи
04:10 Логирование ошибок
05:29 Бесполезные и полезные логи ошибок
07:20 Напутствия :)
09:20 Немного про трейсинг
09:50 Подстановка переменных в логах
11:00 Бизнес и технические ошибки
11:54 Заключение
Переглядів: 3 330

Відео

Feature Toggles! Безопасные релизы с фича флагами
Переглядів 580Місяць тому
В этом видео мы погружаемся в мир фиче тогглов (feature toggles) и исследуем, как они могут значительно улучшить процесс разработки программного обеспечения. Вы узнаете, что такое фиче тогглы и как они позволяют командам гибко управлять функциональностью приложений, минимизируя риски при развертывании новых функций. Мы обсудим, как правильно ошибаться и учиться на своих ошибках, а также рассмот...
Обратная совместимость в Backend Разработке
Переглядів 6792 місяці тому
Расскажу на практических примерах о необычайно важном аспекте разработки - принципе сохранения обратной совместимости. Каждый профессиональный разработчик должен соблюдать этот принцип и заботиться не только о том как выглядит и работает код, а еще и о том как будет устанавливаться очередная версия программного обеспечения в продакшен среду. Обсудим две практические задачи, которые я часто испо...
Как научиться учиться в IT и не сгореть?
Переглядів 5883 місяці тому
Расскажу про обучение и дам пару советов о том как выстроить процесс эффективного обучения в IT сфере, никакой рекламы и промывания мозгов =) Поделюсь личным опытом. Поговорим про игры, гейм-дев и пет-проекты. Обучение в жизни очень похоже на прокачку в играх!
Базы данных в HighLoad. Советы и рекомендации по работе с БД в крупных проектах
Переглядів 9 тис.3 місяці тому
Мы работаем в большой высоконагруженной транзакционной системе, что добавляет определенные особенности в процесс разработки. Путём проб и ошибок, мы вывели для себя ряд стандартов и правил для работы с реляционными базами данных, которых придерживаемся уже длительное время. Эти рекомендации позволяют значительно снизить количество инцидентов и сосредоточиться на решении бизнес задач. Тайминги: ...
Главная КИБЕРБИТВА страны. Standoff. Хакеры против хакеров
Переглядів 1,6 тис.4 місяці тому
Хочу рассказать об очень эффектном и интересном событии, проходящем в России каждый год - Standoff. Главная кибербитва страны - место где хакеры соревнуются с хакерами. Поделюсь информацией о том, как проходит это мероприятие, каких правил придерживаются участники, как проходит кибербитва. Покажу впечатляющие моменты с публичной части данного мероприятия - киберполигона. Тайминги: 00:00 Вступле...
Сеть и сокеты. База для backend разработчика.
Переглядів 51 тис.5 місяців тому
Поговорим про базовые понятия, связанные с сетью. Сокеты, что это такое и как с ними подружиться. Базовые протоколы TCP / UDP и чем они отличаются. Прикладные протоколы HTTP/SMTP/POP3/IMAP/FTP/SSH/SFTP и другие. Коснемся пулов соединений и таймаутов. Всё что необходимо понимать backend разработчику и еще немного! Тайм коды: 00:00 Интро 00:15 Сокеты 02:20 Протоколы 04:00 TCP и UDP 05:24 Прикладн...
Spring Boot. БЫСТРЫЙ старт. Backend
Переглядів 9976 місяців тому
База по Spring Boot, немного истории, плюсы и минусы, что хорошо, а что плохо =) и в придачу топ 100 аннотаций, которые используются в моей команде. Класс приложения @SpringBootApplication @EnableScheduling @EnableCaching @EnableJms @EnableJpaRepositories @EnableAutoConfiguration @EnableAdminServer @EnableConfigServer @EnableDiscoveryClient @EnableEurekaServer @EnableFeignClients @EnableReactiv...
Как мы обновления в PRODUCTION ставим. В банке!
Переглядів 2,5 тис.6 місяців тому
Делюсь опытом нашей команды в установке обновлений и релизов. Вся боль, переживания, победы и поражения в одном видео. История развития процесса установки релизов с нуля. От хаоса до эры технологий. От ручной установки до полной автоматизации. От высоких рисков к высокой стабильности! Тайм коды: 00:00 Интро 00:40 Требования к обновлениям 01:11 Релизная политика 01:35 ХАОС 02:10 Как оценивать ре...
Теги к вашему видео бесплатно через нейросеть!
Переглядів 2916 місяців тому
Учимся продуктивно работать с Chat GPT на примере заполнения описания к шортсам на youtube. Всего лишь немного контекста, субтитры к видео и Chat GPT любезно подготовит для вас рыбу с текстом, который останется лишь отредактировать, немного оживить и готово. Дополнительно можно попробовать сгенерировать название и теги, в неограниченном количестве. Тайм коды: 00:00 Интро 00:56 Описание и теги к...
Java & Kotlin с нуля. Настройка окружения. Backend
Переглядів 7267 місяців тому
Один из самых сложных и запутанных моментов на старте любой профессии - настроить рабочее место и окружение. В этом ролике расскажу, как подготовить компьютер к backend разработке на Java & Kotlin, как скачать и установить JDK, какую среду разработки использовать и как ее настроить. Покажу простейший способ создать и запустить Spring Boot приложение, а также механизмы настройки сборщика Gradle....
Как я пережил DDOS атаку школьников? Backend
Переглядів 17 тис.8 місяців тому
Как я пережил DDOS атаку школьников? Backend
ТОП 4 ошибок в резюме айтишника. Почему не берут на работу?
Переглядів 1,2 тис.8 місяців тому
ТОП 4 ошибок в резюме айтишника. Почему не берут на работу?
ЭТО позволит тебе писать код быстрее. Скоростная разработка!
Переглядів 1,7 тис.8 місяців тому
ЭТО позволит тебе писать код быстрее. Скоростная разработка!
Git Gitlab Bitbucket Курс Для Новичков
Переглядів 2,1 тис.9 місяців тому
Git Gitlab Bitbucket Курс Для Новичков
Как стать спикером в IT? 3 шага!
Переглядів 4139 місяців тому
Как стать спикером в IT? 3 шага!
ArchiBox. Интеграция со SpringBootAdmin
Переглядів 320Рік тому
ArchiBox. Интеграция со SpringBootAdmin
ArchiBox. IDE для архитекторов, аналитиков, разработчиков.
Переглядів 1,4 тис.Рік тому
ArchiBox. IDE для архитекторов, аналитиков, разработчиков.

КОМЕНТАРІ

  • @artorios5192
    @artorios5192 2 дні тому

    Совсем пунктами согласен, но по поводу enumов есть ньюанс,по крайней мере в mySQL. Там с субпартицианированием могут быть проблемы. Не получится разделить таблицы. Например,я хотел разделить таблицу по дате - полугодия и по статусам. Статусы были строки: published и deleted. Для этого используется list of, а с ним range ограничен(

  • @MessirAvgur
    @MessirAvgur 2 дні тому

    Ручки, ручки..... Бля! Яндекс насадил свой кривой перевод и теперь это как зараза везде.

  • @TcheburTcheburashka
    @TcheburTcheburashka 5 днів тому

    Логирование для разных случаев делается по разному...

  • @rediskavet
    @rediskavet 6 днів тому

    "Переливать данные между полигонами" типа скорпировать часть данных с прода на QA сервер? как это технически делают? Как принято делать в больших конорах?

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 5 днів тому

      Данные с прода на тестовые полигоны не заливают, это нарушает десятки правил) с теста на прод бывает, настраивают сложный договор на тесте, проверяют и переносят. Также распространена миграция данных между разными тестовыми полигонами

    • @rediskavet
      @rediskavet 5 днів тому

      @ ну зависит от данных наверное, личные данные может и не заливают. Но рейты акций, почему нет?

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 5 днів тому

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

  • @VladimirRoytman
    @VladimirRoytman 6 днів тому

    Очень хороший обзор, но я бы добавил: 1. Не интерполируй данные в лог текст: разделяй все данные в отдельный лог контекст. 2. Обязательно implement поддержку для correlation id; чтобы отслеживать виртуальные threads. 3. Используйте позитивный logging, чтобы понять что происходит.

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 5 днів тому

      Позитивный логгинг? Что это:)

    • @VladimirRoytman
      @VladimirRoytman 5 днів тому

      @@konstantin.kozlovskiy Positive Logging - это когда вы последовательно добавляете что было сделано, включая мельчайшие операции, результаты условий и любые действия. Когда просматривается лог, вы видите полную картину до мельчайших подробностей. Такие логи желательно включать в общий лог техт как отдельное предложение (аннотацию). Это же уменьшает количество логов, т.е. вы просто читаете один лог как телеграфную ленту о проделанной работе.

  • @andreyselin8076
    @andreyselin8076 6 днів тому

    Вы неправильно видео снимаете. Люди с айкью 1, которым оно адресовано, не пишут бэкенд приложения. Где хотя бы объяснения ПОЧЕМУ не писать в инфо все что хочешь? Ноль пользы

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 5 днів тому

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

  • @mississippi_blues
    @mississippi_blues 6 днів тому

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

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 5 днів тому

      ничего личного, это лишь один из многих механизмов привлечения внимания пользователя

    • @mississippi_blues
      @mississippi_blues 5 днів тому

      @@konstantin.kozlovskiy а зачем? Интересный контент не нуждается в клик бейтах.

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 5 днів тому

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

  • @spyacc3584
    @spyacc3584 7 днів тому

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

  • @olegchumin6634
    @olegchumin6634 8 днів тому

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

  • @jecky432
    @jecky432 8 днів тому

    Константин так рассказывает, будто он сам читает наши логи и уже устал от того, как мы плохо логируем 😂

    • @olegchumin6634
      @olegchumin6634 8 днів тому

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

    • @mississippi_blues
      @mississippi_blues 6 днів тому

      ​@@olegchumin6634у него опыт? Но надо ещё неплохо бы допускать мысль, что у кого-то тоже может быть опыт, а потому не выебываться и писать нормальный заголовок к видео.

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 5 днів тому

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

  • @Mr.Shokoladniy
    @Mr.Shokoladniy 8 днів тому

    О, это камень в лицо разработчиков Trassir

  • @vitalkolesnik2558
    @vitalkolesnik2558 8 днів тому

    А Вы пишете "пишите" неправильно.

  • @aleksandrivanov3822
    @aleksandrivanov3822 8 днів тому

    Едите, пишите, думайте головой.

  • @leobreydo9318
    @leobreydo9318 8 днів тому

    ПишИте - это повелительное наклонение, школота безграмотная…

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 5 днів тому

      Желаю и вам никогда не опечатываться

  • @kl45gp
    @kl45gp 8 днів тому

    "есть логи которые не нужны в продакшене", - в том то и дело что никогда не знаешь какая именно инфа на продакшене тебе понадобится. Нормальное логирование сейчас это когда все логи подряд льются в консоль(в логах присутствует сквозной traceId), там их забирает стек логирвоания типа ELК, все это дело ораничивается скажем 1TB SSD(для фирмы стоит копейки), а дальше через веб морду типа графаны ты можешь глянуть что происхдило на проме во всех подробностях в любой момент времени(в приделах месячной давности), при этом все фильтруя как угодно. Единственное ограничение бывает, это когда сама запись в логах замедляет работу и следует ее поубавить, но обычно этого не просиходит так как приложение всеравно выводит логки в STDOUT(RAM) , а затем сбрщик асинхронно это дело забирает

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 8 днів тому

      В нашей системе генерируется около 400-500гб логов в день, держать логи в активном хранилище необходимо на протяжении 3 месяцев минимум, и это уже далеко не 1ТБ. В 99.9% случаев операции проходят штатно и не требуется в логах наблюдать детальную информацию, и только 0.01% требует разбора, где эта информация бы пригодилась. В таком случае (в рантайме, без перезагрузки) включаем debug, воспроизводим проблему и отключаем debug.

    • @kl45gp
      @kl45gp 7 днів тому

      @@konstantin.kozlovskiy А если событие уже было, и ты не знаешь когда тебе включать дебаг? Ну то есть вот требуется разбор именно того самого события? У меня как-то был случай случайного списания с клиента пол мульта рублей, и поверь тогда нужны были все возможные данные которые только можно достать почему так произошло) Причем это был уникальный кейс который больше не повторялся, а связан он был с глюком оборудования

    • @ryanlashkevich9615
      @ryanlashkevich9615 6 днів тому

      "Нормальное логирование сейчас это когда все логи подряд льются в консоль" - абсолютно дилетантское утверждение.

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 5 днів тому

      вероятно в таком случае не помогли бы никакие логи :)

    • @kl45gp
      @kl45gp 5 днів тому

      @@ryanlashkevich9615 в противном случае само приложение занимается логирвоанием, чего быть не должно, так как нефиг ему тратить ресурсы еще и на передачу логов куданить по сети

  • @tomervercetti
    @tomervercetti 9 днів тому

    Спасибо, очень полезно

  • @Alex.Shalda
    @Alex.Shalda 9 днів тому

    Давно не виделись 🎉

  • @user-sleep-mode
    @user-sleep-mode 10 днів тому

    Больше 10-ти минут слушать откровенный бред - это перебор Автору советую связаться с разработчиками из OpenWay Group и "научить их уму-разуму" - они ведь всего то занимаются процессинговым ПО 🤣🤣🤣 Короче мальчик - NoSQL тебе в руки и не морочь голову начинающим

  • @eclipsium_msk
    @eclipsium_msk 11 днів тому

    Слушай, это все прикольно, но что делать с миграциями? Ну вот считай меняется структура таблицы, и предыдущие фичи по сути перестают работать после релиза этой миграции, что тогда?

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 11 днів тому

      @@eclipsium_msk это тебе в соседний ролик про обратную совместимость, там я подробно рассказываю что все миграции должны быть с сохранением обратной совместимости

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 11 днів тому

      Обратная совместимость в Backend Разработке ua-cam.com/video/rXQsXlUzV70/v-deo.html

    • @eclipsium_msk
      @eclipsium_msk 11 днів тому

      @@konstantin.kozlovskiy Хм, логично :D От души

  • @wamikgildiev6632
    @wamikgildiev6632 17 днів тому

    Просто есть такой тип разработчиков, которые поделили весь мир на правильно и неправильно, на чужих и своих, на хуево и грамотно...Но они не понимают, что мир не делится на черное и белое в абсолюте. Они не понимают, что мир гораздо больше и шире, и что в нем на самом деле гораздо больше красок - целый диапазон и огромные палитры. И в разработке так же, как и во всем, не бывает абсолютно правильных и неправильных решений. Где-то комментарии действительно нужно, где-то они избыточны. Где-то есть смысл использовать ManyToOne, а где-то нет. Поля бывают обязательные и необязательные. Ситуации разные и нельзя применять один подход ко всем. Нужно быть гибким и руководствоваться разумным смыслом. Я встречал разрабов, которые не принимают Lombok, Hibernate, Spring и др. Они готовы написать собственный велосипед. Аргументируя это тем, что уж они-то точно знают как он работает. Но это глупость и нежелание развиваться, идти в ногу со временем...Вот, закипел мой пукан!!

  • @wamikgildiev6632
    @wamikgildiev6632 17 днів тому

    Комментарии везде и это удобно....Просто браво....Особенно это удобно в полях типа fio, name, surname, middlename, age, status и тд....Действительно, если бы не было комментариев, хер бы кто догадался что это такое!!!

  • @wamikgildiev6632
    @wamikgildiev6632 17 днів тому

    Не использовать @ManyToIne, OneToMany и тд....Может тогда еще не лошадях обратно будем ездить? Все равно куча людей нарушают правила за рулем. Очень много проблем, смертей, убытков и тд....Если у вас разработчики не умеют их использовать, зачем вы берете таких разработчиков?? Если ваши вам, чтобы решить ваши бизнес-процессы, нужно то тут, то там расставлять Lazy, Eager и тд, и при этом у вас постоянно проблемы, то может быть вы спроектировали неправильно приложуху?

  • @wamikgildiev6632
    @wamikgildiev6632 17 днів тому

    Поля в таблице обязаны быть Nullable. Это ведет к тому, что в коде все поля тоже Nullable. Аргумент того, что бизнес-процесс меняется, и эти поля не нужны - очень абстрактный. С таким подходом можно сказать, разрабатывая архитектуру системы ни в чем нельзя быть уверенным. А вдруг через полгода придет бизнес и скажет, теперь мы отправляем транзакции не через партнера А, а через партнера Б. Да произойти может вообще все, что угодно. И только из-за этого ставить Nullable, это какая-то плохая идея. Ставить костыли, если изменится бизнес-процесс, это конечно плохо. Но ставить бесчисленное количество проверок в коде на null - еще хуже. С таким кодом почти невозможно работать! К тому же, есть бизнес-процессы, в которых железно есть NotNull поля. Например, Swift переводы, переводы на карту, заполнение анкетных данных и еще много чего. Если Имя Фамилия может быть пустое, зачем тогда вообще нужна эта сущность?? Swift переводы - много полей обязаны быть не Null. Нахрена там Nullable и лишний геморой с проверками??

  • @nikolayk402
    @nikolayk402 21 день тому

    :D ты собесы проводишь такие, чтобы забайтить людей на просмотр твоих видосов?)feature toggles изучено)

  • @artemshumeiko
    @artemshumeiko 28 днів тому

    а как правильно?

  • @ИванУсольцев-з3ь
    @ИванУсольцев-з3ь Місяць тому

    Послушал, было интересно. Таких тем немного. Нехватает подробных разборов в глубину. Было бы интересно послушать про безопаность и практические примеры, например как получить к нему доступ извне, что говорилось в этом видео про "хакнуть" сканером

  • @svitboomer8840
    @svitboomer8840 Місяць тому

    Мда, это тебе не на галере без тестов и с верой в Бога заливать фичи в прод... Смотрю тебя и всё больше узнаю о качественной разработке продукта, спасибо!

  • @RoKaLeNo
    @RoKaLeNo Місяць тому

    Вот бы в жизни были фиче-тоглы, взял да откатил что либо

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy Місяць тому

      Включил новую работу на 1% попробовать?)

    • @eclipsium_msk
      @eclipsium_msk 11 днів тому

      А можно отдельного разрабочтика под фича тогл спрятать ? (=

  • @olegchumin6634
    @olegchumin6634 Місяць тому

    Помнится когда то лет 5-6 назад попались уроки Евгения Волосатова там создавались на Java сокет серверы , рекомендую для практики

  • @olegchumin6634
    @olegchumin6634 Місяць тому

    nicht schlecht

  • @olegchumin6634
    @olegchumin6634 Місяць тому

    nicht schlecht

  • @VladMaximov-zw8ii
    @VladMaximov-zw8ii 2 місяці тому

    Какая чушь... вот, что бывает, когда ты школьник, которому для "бизнеса" хватило только на сервера и деплой. Диджитал оушен тут не причем. Ддос можно осуществить на любой провайдер. В вашем случае всему виной школоподход к бизнесу))

  • @НикитаШокуров-н3д
    @НикитаШокуров-н3д 2 місяці тому

    Насчет странного пункта про фото и возраст в резюме - это скорее всего особенность банков, там довольно нестандартные методы работы все-таки

  • @madcalm2024
    @madcalm2024 2 місяці тому

    Очень необычные, половинчатые советы. Например про UUIID id... Во первых, нет математической гарантии их неповторямости... и использовать UUID рационально только как дополнительное поле в качестве вторичного ID для связей между фрагментами распределенной БД... а для связей в локальных БД ясен перед должен использоваться быстрый и компактный INTEGER id... и самое главное для большой БД особенно на механических HDD - во избежание будущих тормозов на SELECT-запросах ни в коем случае нельзя создавать индексы по полям и функциям, которые участвуют в запросах и одинаковые значения которых равномерное распылены по всему объему записей - например по кодам операторов, по типам документов, по суммам платежей и т.д.

  • @kuqmua755
    @kuqmua755 2 місяці тому

    вы зачем даете доступ аналитикам напрямую в базу? пусть ходят по апи.

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 2 місяці тому

      у нас в системе более 300 таблиц, API на всё не сделаешь

  • @Helloworld-m2y6d
    @Helloworld-m2y6d 2 місяці тому

    А не проще использовать nvim, там все горячее клавиши

  • @Alex.Shalda
    @Alex.Shalda 2 місяці тому

    Крутой ролик! Спасибо 🎉

  • @Torbjorn-ph7rt
    @Torbjorn-ph7rt 2 місяці тому

    Спойлер - в конце концов он объяснил что такое сокеты в 17:15

  • @Евгений-ы4м3ж
    @Евгений-ы4м3ж 2 місяці тому

    Если не ошибаюсь некоторые бд даже не позволяют создавать вторичные ключи

  • @simpleguitar7932
    @simpleguitar7932 2 місяці тому

    Жизненное, Костя. Спасибо!

  • @kl45gp
    @kl45gp 2 місяці тому

    непонятно с фигали инстаны приложения обновляются по одному? когда кубер например гасит их все разом не допуская такой ситуации чтобы разные версии одновременно существовали на сервере

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 2 місяці тому

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

  • @rustamismailov7594
    @rustamismailov7594 2 місяці тому

    Немного не в тему видео, но я бы API сделал бы POST /api/v1/contract а не POST /api/v1/create-contract, я бы избегал verb'а в названии endpoint без крайней необходимости

  • @Novikovrus
    @Novikovrus 2 місяці тому

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

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 2 місяці тому

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

    • @theLoneCodesman
      @theLoneCodesman 2 місяці тому

      @@konstantin.kozlovskiy В таком случае, звучит так что нужно миграции на БД делать вручную, а не через embedded Liquibase. Верно? Или есть какие способы повлиять на установку при старте приложения?

  • @OleksiiVasylenko-r1j
    @OleksiiVasylenko-r1j 2 місяці тому

    9:52 - все, не прошел я собес((

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 2 місяці тому

      Надеюсь информация в видео пригодится тебе на пути :))

  • @OleksiiVasylenko-r1j
    @OleksiiVasylenko-r1j 2 місяці тому

    5:00 - @JsonAlias над полем в dto???

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 2 місяці тому

      Интересно, не сталкивался с таким решением, думаю для частного случая может подойти

  • @andrewgreenfild764
    @andrewgreenfild764 2 місяці тому

    Видео называется сокеты и сеть, и собственно где сокеты? Где по большому счету сеть? Перечислить протоколы и? Автор не зачёт.

  • @SpitefulEngineer
    @SpitefulEngineer 2 місяці тому

    [ˈsɒkɪt] -- сокит

  • @v9m-n7n
    @v9m-n7n 2 місяці тому

    Пожалуйста, поставь поп-фильтр на микрофон

  • @stone8905
    @stone8905 3 місяці тому

    UUID пойдет только для малого количества проектов. UUID занимает больше места, проблемы с индексацией (index fragmentation) будет все хуже и хуже. рандомность uuid боком обернется при инсертах, индексы будут корявые а не по порядку. а ведь есть еще понятие clustered and non clustered index, если вы сделали UUID pk то записи будут создаваться бардачно. nullable - это норм, какая разница менять валидацию в сервисах или nullable на true сделать? комментарии - а если это мне не удобно???????????????????????????? (говоришь как будто это всем удобно) не использования аннотации ManyToOne OneToMany и ManyToMany и тд, я согласен, без них жизнь становится все лучше и лучше. это единственный хороший совет а остальное это для веганов.

  • @Novikovrus
    @Novikovrus 3 місяці тому

    11:40 Еее ботоводы здесь) Что за игра была?

    • @konstantin.kozlovskiy
      @konstantin.kozlovskiy 3 місяці тому

      много игр было, Granado Espada, Black Desert, Albion и другие )