#fullstackguy - Обучение IT-профессии
#fullstackguy - Обучение IT-профессии
  • Видео 28
  • Просмотров 44 588
Spring Boot 3: как создать свой стартер?
🔥 Получи скидку 50% при оформлении онлайн-курса "Создание сайтов с Hugo" school.fullstackguy.ru/courses/hugo?.com
# Описание
------------
Довольно часто в разработке микросервисов встаёт вопрос о использовании общей кодовой базы в разных сервисах. Некоторые дублируют код между микросервисами, другие выделяют код в отдельные библиотеки. В этом видео я расскажу о том, как создать отдельную библиотеку с Spring компонентами - стартер.
# Ссылки
----------
1️⃣ fullstackguy.ru/blog/2024/04/08/how-to-make-spring-boot-3-starter/ - сопроводительная статья к видео
2️⃣ school.fullstackguy.ru/courses/hugo - курс по созданию собственных страничек-визиток, блогов, лендингов
# Контакты
--------------------
Telegr...
Просмотров: 1 024

Видео

Gradle: Tips & Tricks - Как дебажить зависимости?
Просмотров 1318 месяцев назад
🔥 Получи скидку 50% при оформлении онлайн-курса "Создание сайтов с Hugo" school.fullstackguy.ru/courses/hugo?.com #gradle #java #javaprogramming Полезные ссылки: 1️⃣ Ссылка на документацию: docs.gradle.org/current/userguide/viewing_debugging_dependencies.html Тайм-коды: 0:00 - Введение 1:05 - Тестовый проект 3:21 - Команда #1 6:57 - Команда #2 💳Поддержать канал - (Сбер) - 2202 2023 7217 2415
Fullstackguy - 1 год 🎈
Просмотров 174Год назад
🔥 Получи скидку 50% при оформлении онлайн-курса "Создание сайтов с Hugo" school.fullstackguy.ru/courses/hugo?.com Boosty: boosty.to/fullstackguy Очередной выпуск поболтатушек. Обсуждаем проект FullStackGuy, что изменилось, как повлиял и на что, подводим итоги. Полезные ссылки: 1) Сайт проекта FullStackGuy: fullstackguy.ru 2) Мой личный сайт: anverbogatov.ru 3) Сайт проекта #НЕмузыкант: www.yout...
Gradle: Tips & Tricks - Как узнать есть ли обновления библиотек проекта?
Просмотров 319Год назад
🔥 Получи скидку 50% при оформлении онлайн-курса "Создание сайтов с Hugo" school.fullstackguy.ru/courses/hugo?.com #gradle #java #javaprogramming В Maven есть отличный способ узнать, какие зависимости в проекте пора бы обновить. А в Gradle таких способов нет... или есть? В этом видео, разбираемся с тем, как получить список библиотек Gradle проекта и их обновления. Полезные ссылки: 1️⃣ Ссылка на ...
Как разместить Hugo сайт в Яндекс Облаке? (Hugo + Yandex.Cloud = ❤️)
Просмотров 428Год назад
🔥 Получи скидку 50% при оформлении онлайн-курса "Создание сайтов с Hugo" school.fullstackguy.ru/courses/hugo?.com #gohugo #hugoweb #yandex #yandexcloud #yandexobjectstorage Двери AWS для россиян официально закрыты. Компания громко хлопнула ею перед нашим носом, и, самое время заняться поиском альтернатив. Я свои статические сайты перенёс на Яндекс Облако и, в этом туториале, спешу поделиться св...
Мобилизация и IT #2
Просмотров 2,1 тыс.Год назад
🔥 Получи скидку 50% при оформлении онлайн-курса "Создание сайтов с Hugo" school.fullstackguy.ru/courses/hugo?.com Вторая часть поболтатушек о главном. Обсуждаем апдейты от Минцифр. Полезные ссылки: 1) Приказ о перечне специальностей: digital.gov.ru/uploaded/files/712-graf.pdf 2) Инструкция по заполнению формы на Госуслугах: digital.gov.ru/uploaded/files/podachazayavleniya.pdf 3) Csv файл с шабл...
Мобилизация IT
Просмотров 3,8 тыс.Год назад
🔥 Получи скидку 50% при оформлении онлайн-курса "Создание сайтов с Hugo" school.fullstackguy.ru/courses/hugo?.com Очень неспокойная обстановка в последние дни, а когда говорят, что на душе камень - нужно высказаться. В этом видео, высказываю своё личное мнение о следующих вещах: - Мобилизация IT-шников в России - Отсрочка - не бронь - Почему IT-шникам дана отсрочка # Уточнение о отсрочке IT-шни...
Что такое CAP-теорема?
Просмотров 5 тыс.Год назад
🔥 Получи скидку 50% при оформлении онлайн-курса "Создание сайтов с Hugo" school.fullstackguy.ru/courses/hugo?.com Разбираемся в том, что такое CAP-теорема, и как с ней работать. Ссылка на статью: fullstackguy.ru/blog/2022/09/14/cap-theorem/ Тайм-коды: 0:00 - Начало 0:55 - Что такое CAP-теорема? 5:19 - Consistency или Согласованность 9:56 - Availability или Доступность 11:34 - Partition Toleranc...
Как начать делиться знаниями?
Просмотров 108Год назад
🔥 Получи скидку 50% при оформлении онлайн-курса "Создание сайтов с Hugo" school.fullstackguy.ru/courses/hugo?.com В этом видео, хочу порассуждать на такую тему, как "Как разработчику начать делиться знаниями?" Вот дорос ты до senior'а, а что дальше делать не уверен. Вроде есть тимлиды, но... там уметь коммуницировать нужно. Есть техлиды, но... там глубоко в технологии нужно. Есть архитектора, н...
Зачем разработчику делать свой курс?
Просмотров 79Год назад
🔥 Получи скидку 50% при оформлении онлайн-курса "Создание сайтов с Hugo" school.fullstackguy.ru/courses/hugo?.com В этом видео, хочу порассуждать на так нынче близкую мне тему - "Зачем профессиональному разработчику делать свой онлайн курс?" Тайм-коды: 0:00 - Интро 0:24 - Начало 0:51 - Первая причина это... 3:32 - А вторая... 4:34 - Третья... 5:34 - Мой опыт 💳Поддержать канал - (Сбер) - 2202 20...
Spring Boot: Как создать starter?
Просмотров 5 тыс.2 года назад
🔥 Получи скидку 50% при оформлении онлайн-курса "Создание сайтов с Hugo" school.fullstackguy.ru/courses/hugo?.com Рассказываю как создать собственный starter для Spring Boot проекта. Полезные ссылки: fullstackguy.ru/blog/2022/06/15/spring-starter-intro/ Тайм-коды: 0:00 - Приветствие 0:53 - Создание проекта 2:14 - Создание starter'а 12:26 - Сборка starter'а 13:05 - Используем свежесозданный star...
Модель памяти Java процесса
Просмотров 9 тыс.2 года назад
🔥 Получи скидку 50% при оформлении онлайн-курса "Создание сайтов с Hugo" school.fullstackguy.ru/courses/hugo?.com Рассуждаем о Java Memory Model и Garbage Collection'е. Визуализируем память Java приложения. Смотрим на красочный VisualGC. Всё ради того, чтобы разобраться как работает JVM с памятью. Полезные ссылки: fullstackguy.ru/blog/2022/05/24/jvm-process-memory-model/ - статья модели памяти ...
Docker: Tips & Tricks - Как упаковать Node.js приложение в контейнер?
Просмотров 1,9 тыс.2 года назад
Docker: Tips & Tricks - Как упаковать Node.js приложение в контейнер?
Intellij IDEA: Tips & Tricks - Анализ стектрейса
Просмотров 4562 года назад
Intellij IDEA: Tips & Tricks - Анализ стектрейса
Intellij IDEA: Tips & Tricks - Поиск в YAML
Просмотров 4982 года назад
Intellij IDEA: Tips & Tricks - Поиск в YAML
Maven: Tips & Tricks - Автоматическое версионирование
Просмотров 3292 года назад
Maven: Tips & Tricks - Автоматическое версионирование
Maven: Tips & Tricks - Архетипы
Просмотров 4562 года назад
Maven: Tips & Tricks - Архетипы
Maven: Tips & Tricks - Как сбежать из ада? (jar hell 🔥)
Просмотров 2032 года назад
Maven: Tips & Tricks - Как сбежать из ада? (jar hell 🔥)
Homebrew: Cask'и
Просмотров 1,9 тыс.2 года назад
Homebrew: Cask'и
Maven: Tips & Tricks - Как найти неиспользуемые зависимости
Просмотров 3812 года назад
Maven: Tips & Tricks - Как найти неиспользуемые зависимости
Maven: Tips & Tricks - Как найти устаревшие зависимости?
Просмотров 2082 года назад
Maven: Tips & Tricks - Как найти устаревшие зависимости?
Используем Homebrew
Просмотров 3,4 тыс.2 года назад
Используем Homebrew
Что такое Homebrew?
Просмотров 5 тыс.2 года назад
Что такое Homebrew?
String Pool в Java
Просмотров 2903 года назад
String Pool в Java
Что за Dependency Injection?
Просмотров 1413 года назад
Что за Dependency Injection?

Комментарии

  • @user-qq5od8ns2h
    @user-qq5od8ns2h 20 дней назад

    А когда я собираю, у меня ругается что нету main метода. Что делать?

  • @user-qq5od8ns2h
    @user-qq5od8ns2h 20 дней назад

    Попробуй сделать стартер по нормальному, с мультимодулями. Хрен знает как такой билдить и юзать ))

  • @alinaklishyna7931
    @alinaklishyna7931 Месяц назад

    Вы случайно попались мне в рекомендации - и я так с большим удовольствием смотрела Ваше видео и много нового для себя приобрела. Спасибо за Ваш труд!

    • @fullstackguy
      @fullstackguy Месяц назад

      Спасибо за теплые слова! Очень рад, что оказался полезен 🤝

  • @GM11
    @GM11 Месяц назад

    Спасибо, хороший человек! Кроме этого больше не нашел руссоязычных видео про VisualVM.

    • @fullstackguy
      @fullstackguy Месяц назад

      Всегда пожалуйста! Очень рад, что видео оказалось полезным! 🤝

  • @user-qm8zj9gg3c
    @user-qm8zj9gg3c Месяц назад

    спасибо, наконец понял

  • @user-uw7zl3gm5r
    @user-uw7zl3gm5r 2 месяца назад

    Спасибо большое, очень понятно и просто объяснили!!!!

    • @fullstackguy
      @fullstackguy 2 месяца назад

      Всегда пожалуйста! 🙏

  • @fierylifee
    @fierylifee 2 месяца назад

    круто!

    • @fullstackguy
      @fullstackguy 2 месяца назад

      Рад что видео оказалось полезным! 🤝

  • @jiamidqqkwjdjqwd7311
    @jiamidqqkwjdjqwd7311 2 месяца назад

    на каком обновлении стоит у вас мак? у меня sonoma и в intelliJ IDEA подлагивает, не понимаю почему

    • @fullstackguy
      @fullstackguy 2 месяца назад

      Sonoma 14.5. Полет нормальный 👍

  • @a.danilenko
    @a.danilenko 2 месяца назад

    Теорема не может "работать" или "не работать". Теорема может быть истинной или нет, иметь доказательство или не иметь.

  • @oleg-m
    @oleg-m 3 месяца назад

    большое спасибо за наглядное и понятное объяснение

    • @fullstackguy
      @fullstackguy 3 месяца назад

      Пожалуйста! Рад, что видео оказалось полезным.

  • @TheSemenFarada
    @TheSemenFarada 3 месяца назад

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

    • @fullstackguy
      @fullstackguy 3 месяца назад

      Вы все верно поняли - стартер это и есть jar, с вынесенной логикой. Единственное - этот jar содержит расширение Spring приложения. Он же может добавлять свои конфигурации и бины в контейнер спринга.

  • @user-bz1xx4ov6p
    @user-bz1xx4ov6p 3 месяца назад

    как убирать матречную заставку?

  • @artmcoder
    @artmcoder 3 месяца назад

    Супер, крутой гайд! Лайк и подписка автоматом

    • @fullstackguy
      @fullstackguy 3 месяца назад

      Рад, что понравилось! 🤝💪

  • @bulka6839
    @bulka6839 4 месяца назад

    Спасибо за видео. А какая судьба у стартера на реальных проектах? Он публикуется в мавен центарал или какие-то внутренние репозитории, или подключается по мере необходимости как .jar библиотека(которая тоже где-то должна храниться)? Далее на проекте есть какое-то описание уже созданных стартеров, какая то документация, с указанием что он делает и описанием параметров для подключения зависимости(групАйДи, версия и т.п) ? Или попросту говоря - я написал стартер, как он далее попадает в общее пользование на большом проекте? И еще один вопрос, при написании стартера мы можем так же использовать gradle ? Почему-то, большинство примеров, даже относительно свежих, с использованием мавена.

    • @fullstackguy
      @fullstackguy 4 месяца назад

      Отличный вопрос! Действительно, чтобы сделать стартер доступным другим его нужно где-то опубликовать. Можно это сделать в открытых maven репозиториях (например, maven central). В реальной коммерческой разработке компании обычно имеют свои хранилища артефактов - nexus, artifactory и т.п. для того, чтобы сделать зависимости доступными только внутри компании. Поэтому - в компании - когда Вы сделаете свой стартер, он публикуется в собственном хранилище артефактов. Что дальше? А дальше зависит от процессов в команде. Кто-то пишет в документациях, что есть такой стартер, вот что он делает. Кто-то прописывает его в своем сервисе, использует, и другие команды знать-не-знают что такой стартер есть. А кто-то делает свой корпоративный Spring Initilzr, который генерирует шаблоны проектов с уже включенной зависимостью на стартер.

  • @alexandr6055
    @alexandr6055 4 месяца назад

    лучшее объяснение, что мне приходилось слышать, спасибо!!

    • @fullstackguy
      @fullstackguy 4 месяца назад

      Приятно слышать! Спасибо за добрые слова! 🤝

  • @jirra1998
    @jirra1998 4 месяца назад

    Супер, спасибо. Это то что мне сейчас нужно.

    • @fullstackguy
      @fullstackguy 4 месяца назад

      Рад что материал оказался полезен! 🤝

  • @MrAPPOLON123
    @MrAPPOLON123 4 месяца назад

    а где гитхаб, ни в статье ни тут нет

    • @fullstackguy
      @fullstackguy 4 месяца назад

      Приветствую Вадим! Для этого урока я не делал репозитрия с кодом. Вроде бы весь код довольно прост для воспроизведения. Но Ваше пожелание учту. Я планирую опубликовать статью о создании стартеров для Spring Boot 3 в следующий вторник. Для неё прикреплю репозиторий с кодом. Надеюсь, это поможет Вам лучше разобраться с темой. Хорошего дня! 👋

    • @MrAPPOLON123
      @MrAPPOLON123 4 месяца назад

      @@fullstackguy спасибо, просто я несоклько раз создавал мавен квик старт и у меня нет помника, а вставить его неоткуда(

    • @fullstackguy
      @fullstackguy 4 месяца назад

      @@MrAPPOLON123 Вадим, приветствую! Как и говорил ранее - вот обновлённая статья о создании стартеров в Spring Boot 3: fullstackguy.ru/blog/2024/04/08/how-to-make-spring-boot-3-starter/ А также - репозиторий с примером на GitHub, для Вашего удоства: github.com/anverbogatov/spring-boot-3-starter-demo Если будут ещё вопросы - смело обращайся в моей группе ВК - vk.com/fullstackguy Помогу, расскажу, разберу. Хорошего вечера! 👋

    • @floydzxc
      @floydzxc 4 месяца назад

      @@fullstackguy приветствую , попробовал сделать точно так же как в вашей новой статье, всё написал, установил зависимость этого стартера в свой проект, я даже вижу в External libraries классы стартера которые я писал, но оно как будто не импортируется com.example.weather_spring_boot_starter.service.WeatherService weatherService; светится красным и класс не доступен, что может быть не так?

    • @fullstackguy
      @fullstackguy 4 месяца назад

      А можете залить на гитхаб проекты и дать ссылку? Попробую помочь

  • @mishaprokopovich5253
    @mishaprokopovich5253 4 месяца назад

    а как сделать СР систему, по идее, если какой-то узел выходит из строя или между узлами прерывается связь, то пользователям вообще должно быть запрещено взаимодействие с любым из узлов пока не устранится проблема?

    • @fullstackguy
      @fullstackguy 4 месяца назад

      Михаил, Вы все верно поняли. CP системы должны быть согласованы в любой момент времени. Это значит, что пока, например, запись данных не завершиться на всех узлах системы, система не вернет ответ пользователю и он будет ждать. Если запись на один или несколько узлов не удалась, происходит откат везде и сразу (пример: двухфазный коммит). Примером CP систем является Redis, например

  • @egoryakimov240
    @egoryakimov240 5 месяцев назад

    Крайне понятное и лаконичное объяснение темы. Один из лучших ресурсов про САР, что я видел. Большое вам спасибо!

    • @fullstackguy
      @fullstackguy 5 месяцев назад

      Большое спасибо Вам, Егор, за теплые слова! 🤝

  • @user-nr3ru4nv1z
    @user-nr3ru4nv1z 5 месяцев назад

    Consistency (согласованность) - это свойство, которое говорит, что система имеет согласованное состояние. Ага. Не поспоришь.

    • @fullstackguy
      @fullstackguy 5 месяцев назад

      Учился у лучших! От создателей «это вам не это» и «не только лишь все» 😀

  • @peta0982
    @peta0982 5 месяцев назад

    Хорошее объяснение. Благодаря видео и статье понял для чего и как делать стартеры. Для spring boot 3 вместо файла spring.factories нужен файл org.springframework.boot.autoconfigure.AutoConfiguration.imports.

    • @fullstackguy
      @fullstackguy 5 месяцев назад

      Рад, что материал пригодился! 🤝

  • @user-xp6mt4wf6j
    @user-xp6mt4wf6j 5 месяцев назад

    Хорошее видео, спасибо. У меня возник вопрос. А могу ли я в кастомном стартере использовать классы и пакеты основного проекта? Например, я хочу в кастомном стартере через аспект логгировать все методы в сервисах основного проекта. Мне для этого надо подключить основной проект в кастомный стартер?

    • @fullstackguy
      @fullstackguy 5 месяцев назад

      Илья, спасибо за интересный вопрос! Если честно, Я - не уверен, что так можно. Если стартер будет зависеть от классов проекта, а проект, затем от стартера, то у нас, технически, будет циклическая зависимость. Не буду гадать, как в этом случае себя поведут системы сборки. Однако, в Вашем сценарии есть нарушение самой сути стартеров. Дело в том, что стартер, подразумевает наличие общего кода или функционала, который, как строительные кубики, можно взять и переиспользовать в разных сервисах. Если Вы "завязываете" стартер на конкретном проекте, то зачем вообще, в таком случае, использовать стартер? Разместите общую логику в самом проекте, и не будет никаких проблем. Как правильно, на мой взгляд, разрешить Ваш сценарий с кастомным стартером? Добавить отдельную аннотацию (например, @Logged), и реализовать в стартере её обработку - логгировать вызовы всех методов, отмеченных этой аннотацией. Ну, а затем, в проекте, подключить стартер, раскидать использование аннотации и готово. Ну и наконец, о логгировании - на всякий случай тоже скажу, логгировать ВСЁ - очень плохой вариант. 1) тупо вызовы методов не дадут читающему быстрого понимания что происходит. Это слишком техническая информация. 2) на высоконагруженных сервисах, подобный подход к логгированию быстро "забьёт эфир". А дальше, либо система логгирования откажет, либо будет очень сильно оставать. На мой взгляд, логгировать нужно с умом - добавлять то, что действительно нужно, и исключать то, что не нужно. Как это сделать? Каждый раз, когда будете добавлять вызов логгера, задайте себе вопрос - если система откажет, поможет ли информация в логе понять, что произошло. Будет ли информация в логе давать дополнительный контекст или она бесполезна. Надеюсь информация выше Вас, Илья, не перегрузился. Если будут ещё вопросы - обращайтесь 🤝

    • @user-xp6mt4wf6j
      @user-xp6mt4wf6j 5 месяцев назад

      @@fullstackguy ничего себе, какой развёрнутый ответ, спасибо. Сделал так, как вы сказали через аннотацию, всё получилось Информация для меня, вкатыша, очень полезная, спасибо вам огромное, обязательно запомню. На самом деле у меня появился еще вопрос) Допустим, я пометил аннотацией из кастомного стартера методы, которые хочу логгировать. Могу ли я сделать так, чтобы этот стартер работал только при указании, например @EnableLoggedConfig, в основном проекте в классе, где @SpringBootApplication. Если @EnableXXX не указана, то аннотации @Logged над классами основного модуля просто игнорируются Я уже прописал в кастомном стартере аннотацию @EnableLoggedConfig с @Import(CustomLoggedConfig.class), но всё равно указание аннотации ни на что не влияет, в любом случае стартер отрабатывает. Может знаете какие-нибудь источники? Не хочу вас нагружать вопросами, но вы сами сказали "если будут вопросы - задавайте"))

  • @user-gn5nf7gd2g
    @user-gn5nf7gd2g 6 месяцев назад

    Хороший канал, жаль новые видео редко выходят

    • @fullstackguy
      @fullstackguy 6 месяцев назад

      Просто автор чуть чуть лентяй 😅

  • @user-qc5vz4zy2k
    @user-qc5vz4zy2k 6 месяцев назад

    Не всегда каждый символ 2 байта занимает. там флажок есть isLatin, если он true (т.е. если только ASCII символы), то тогда один байт.

  • @stas_v
    @stas_v 6 месяцев назад

    Очень интересно! Спасибо! Лайк-подписка всё такое.

    • @fullstackguy
      @fullstackguy 6 месяцев назад

      Все бы так сразу! 😂 Рад, что видео оказалось полезным! 🤝

  • @v.shinoxy
    @v.shinoxy 6 месяцев назад

    Очень понятно, с примерами и подробностями. Спасибо!

    • @fullstackguy
      @fullstackguy 6 месяцев назад

      Пожалуйста! Рад, что видео оказалось полезным! 🤝

  • @arkadiyhachikyan
    @arkadiyhachikyan 6 месяцев назад

    процентов на 90 работает. остальное допилить напильником

  • @user-fr2dw3qd4v
    @user-fr2dw3qd4v 6 месяцев назад

    По-моему Вы нередко меняли местами Injection и Inversion. Подразумевали-то одно, но вместо внедрения по контексту речь шла о инверсии.

  • @dmarsentev
    @dmarsentev 7 месяцев назад

    Простите, не очень понимаю. Кто мешает залезть в pom-файл в редакторе и изменить номер версии? Зачем таким извращённым способом его менять? Есть гипотеза у меня, что это на случай сильно автоматизированной сборки, когда Мавен из Дженкинса, к примеру, запускают. Верно ли понял? Всё равно это кажется неким извращением - с помощью плагина редактировать Pom.xml. Отредактировав, надо ведь закоммитить, не правда ли? Закоммитив, запушить. И всё это тоже с помощью плагинов делают? А если кормит или пуш не проходят, то вся сборка ломается. Не логичнее ли выставлять версии, коммитить и пушить руками?

    • @fullstackguy
      @fullstackguy 7 месяцев назад

      Дмитрий, спасибо за классный вопрос! Нет ничего криминального в том, чтобы идти в pom файл и редактировать номер версии руками. Действительно, все эти подходы с плагинами гораздо сложнее. И особенно это так - если версионирование проекта не важно. НО - для случаев, когда версионирование важно, давайте попробуем проскалировать подход с ручным редактированием версии. В случае, когда есть один разработчик на проекте - он отвечает за смену версии. Когда потребуется он пойдёт и обновит версию в pom-файле. Когда разработчиков в команде больше одного - потребуется определить кто и когда будет обновлять версию. Уже на этом этапе нужно будет менять процесс разработки - договариваться об условиях и ответственности. Идём дальше - если у нас монолит и его редактирует множество разработчиков из разных команд - договориться о правилах уже вряд ли получиться. Поэтому точно потребуется изменение процесса разработки - выделение релиз-инженера, например. Из примеров выше, Вы можете заметить всё возрастающую сложность версионирования проекта с изменением условий (масштабов) разработки. И вот для подобных случаев и нужны подходы, подобные описанному в моём ролике. Далее, как Вы верно подметили - коммит с новой сборкой, в случае использования плагинов, должен кем-то где-то делаться. Обычно, в командах разработки решается вопрос о том, а что такое "новая версия" - это каждое изменение вмёрженное в какую-то ветку (будь то master, или release-ветка) или же это целый кластер изменений. И в зависимости от выбора - добавляется шаг обновления версии в проекте в тот или иной этап pipeline'а на CI. Ну и конкретно про CI - действительно, если инкремент версии в CI будет провален, то весь процесс сборки будет провален. И на самом деле - это хорошо. И вот почему - после успешной сборки, зачастую, собранный артифкат публикуется где-то (nexus, артифактори и т.д.) где он становится доступен под какой-то версией. Соответсвенно - не получилось инкрементировать версию - нет артифакта в nexus. То есть - смена версии в pom, по хорошему, должна стать частью процесса сборки. У такого автоматизированного подхода есть ещё плюсы: - в автоматизацию достаточно заложить правила инкремента версии (commit hash, semver и т.д.) и автоматически все команды разработки ему следуют - разработчики концентрируются на выполнении бизнес-задач, не тратя когнитивный ресурс на процесс выпуска очередной версии ну и наконец, практика авто-обновления версии довольно распространена. Я рассказал лишь об одном. В gradle есть свои плагины - например - github.com/ajoberstar/reckon Ещё раз - спасибо за хороший вопрос. Мне понравилось на него отвечать! С наступающим Новым Годом! 🤝

    • @dmarsentev
      @dmarsentev 7 месяцев назад

      @@fullstackguy Анвер, благодарю вас за скорый, развёрнутый и доброжелательеый ответ! И вас с наступающим Новым Годом!

  • @AK-nb9cb
    @AK-nb9cb 7 месяцев назад

    Ссылка на статью not found

    • @fullstackguy
      @fullstackguy 7 месяцев назад

      Спасибо за наводку. Ссылку обновил 🤝

  • @araavanesyan4616
    @araavanesyan4616 7 месяцев назад

    Thanks a lot, it was very helpful

    • @fullstackguy
      @fullstackguy 7 месяцев назад

      I’m happy that it was useful for you 🤝

  • @user-yh7jj6jq7e
    @user-yh7jj6jq7e 8 месяцев назад

    Спасибо тебе большое! Выручило твое видео!

    • @fullstackguy
      @fullstackguy 8 месяцев назад

      Пожалуйста! Рад, что помог! 🤝

  • @iamusayev1337
    @iamusayev1337 8 месяцев назад

    Очень познавательно и интересно, спасибо больше за столь информативное видео

    • @fullstackguy
      @fullstackguy 8 месяцев назад

      Спасибо за добрые слова! Рад, что видео оказалось полезным! 🤝

  • @yuliyacher67
    @yuliyacher67 9 месяцев назад

    Спасибо!

  • @ITGorilla
    @ITGorilla 11 месяцев назад

    Добрый день, в версии Homebrew 4.1.7-56-gfc72dfc Homebrew/homebrew-cask (git revision 8cd3ca9a48; last commit 2023-08-15) brew upgrade --cask обновляет каски 🙂

    • @fullstackguy
      @fullstackguy 11 месяцев назад

      Ура! Наконец-то дождались!! 😂

  • @eapashkov
    @eapashkov 11 месяцев назад

    Что за непонятная вырезка, вообще никакой пользы не несет, просто вырвано из контекста

  • @Razumist
    @Razumist Год назад

    так где ответ а главный вопрос, НАHУЯ она нужна? проще тупо с сайтов качать у устанавливать нежели дрочиться с этим брю, еще и команды запоминать под эту дрочку

  • @user-ib9qs1oj4v
    @user-ib9qs1oj4v Год назад

    Классное видео!! Круто было бы увидеть как в новом Буте это делать вроде как уже factories не нужны

    • @fullstackguy
      @fullstackguy Год назад

      Как нибудь сделаю! Спасибо за теплые слова 🤝

  • @arayka492
    @arayka492 Год назад

    Как же четко и круто всё объяснили 🔥

    • @fullstackguy
      @fullstackguy Год назад

      Рад, что понравилось! 🤝

  • @user-ho9yz5fo5x
    @user-ho9yz5fo5x Год назад

    Это мега круто

    • @fullstackguy
      @fullstackguy Год назад

      Спасибо! Рад что материал оказался полезным! 🤝

  • @damka2011
    @damka2011 Год назад

    Спасибо автору за такой полезный контент! То,что нужно👍🔥

  • @damka2011
    @damka2011 Год назад

    Топчик, однозначно👍

  • @damka2011
    @damka2011 Год назад

    Спасибо, автору! Просто, доступно и и без лишней воды 🔥🔥🔥

  • @awesomefreeman7620
    @awesomefreeman7620 Год назад

    Этот плагин у меня показывает неиспользуемые зависимости хотя по факту они используются в проекте. После их удаления билд естественно падает

    • @fullstackguy
      @fullstackguy Год назад

      подобные плагины отлично работают на прямых зависимостях, и почти всегда "с особенностями" на транзитивных зависимостях. Боюсь что с этим серебрянной пули нет.

  • @brandish-so1rq
    @brandish-so1rq Год назад

    Ночью белый экран в глаза ммм

    • @fullstackguy
      @fullstackguy Год назад

      Ночью, примерно с 23:00, в организме происходит выработка мелатонина. Под действием этого гормона наш организм производит самообслуживание - регулирует свою работу и выносит мусор. Белый экран в глаза - это не удобство. Не спать ночью - урон своему организму. Задумайтесь.

    • @user-fr2dw3qd4v
      @user-fr2dw3qd4v 4 месяца назад

      @@fullstackguy Это чего, нейросеть прикручена для ответов?))

    • @fullstackguy
      @fullstackguy 4 месяца назад

      @@user-fr2dw3qd4v Это я козырнул корочками нутрициолога. Не зря ж получал)))

  • @user-uy5gk1jv3d
    @user-uy5gk1jv3d Год назад

    А что с сайтом?(( Хотел статью почитать...

    • @fullstackguy
      @fullstackguy Год назад

      Спасибо что обратили моё внимание! 🤝 Забыл обновить ссылку. Вот правильная: fullstackguy.anverbogatov.ru/cap-theorem/

    • @user-uy5gk1jv3d
      @user-uy5gk1jv3d Год назад

      @@fullstackguy Супер! Спасибо!

  • @user-wo3wx1fv1l
    @user-wo3wx1fv1l Год назад

    Очень хорошо подан материал!

    • @fullstackguy
      @fullstackguy Год назад

      Михаил, большое спасибо за отзыв! Я рад что моя работа оказалась полезной! 🤝

  • @konstantinz5058
    @konstantinz5058 Год назад

    Класс! Спасибо! Но есть пара вопросов: взаимодействие версии спринга в стартере и в приложении (могу ли я использовать свой стартер в приложениях с другой версией спринга и на что нужно обратить внимание). То же самое с версией java. То же самое о различии версий зависимостей

    • @fullstackguy
      @fullstackguy Год назад

      Константин, отличный вопрос! К сожалению, мажорные версии спринга обратной совместимости не имеют, поэтому использование разных версий в приложении и в стартере могут привести к конфликтам. Что делать в этом случае? Мигрировать приложение и стартер на одну версию.

  • @user-zm2mn1kr6q
    @user-zm2mn1kr6q Год назад

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

    • @eggrevolver
      @eggrevolver Год назад

      Вы всё верно поняли: если у вас нарушен механизм общения между двумя серверами или кластерами, но вы всё еще хотите получать со всех них данные, то должны мириться с тем, что данные будут неконсистенты. Если же вы хотите консистентные данные, то должны попрощаться с partition tolerance и получать данные только с того сервера, где они последней версии, либо попрощаться с availability и ждать, пока связь между двумя частями (в данном случае) восстановится и целостность данных восстановится. Всё куда проблемней, если у вас кластеров несколько и на одном одни данные свежие, а на другом другие :) Поэтому в некоторых системах никуда не уйти от одного класса, в других от другого. Скажем, если вы закинули в корзинку товар, которого уже нет, это, хоть и нехорошо, но допустимо, однако он на чекауте уже должен быть обязательно недоступен. Можете посмотреть еще что такое eventually consistent, тоже интересно и полезно в этом свете. Также, отсюда вырастает еще один серьезный класс проблем: т.н. "split brain", с которым тоже надо знать, как бороться.

  • @MrYura999
    @MrYura999 Год назад

    Как всё медленно, скорость 1.5 выручает

    • @fullstackguy
      @fullstackguy Год назад

      Целью этого канала Я ставлю просвещение. А сложные знания, вроде этих, торопежки не терпят.

    • @user-ho9yz5fo5x
      @user-ho9yz5fo5x Год назад

      Для меня скорость вполне комфортная. Есть возможность обдумать сказанное