May Code

May Code

Привет программистское комьюнити и не только.
На этом канале не будет фундаментальной информации которая поможет вам стать программистом, здесь вас не будут учить программировать с нуля, в этом месте можно просто расслабиться, взять чаек и посмотреть как автор кодит, изучает новые фреймворки (в том числе возможно сами что-то изучите, с чем ещё не встречались), так же принять участие в обсуждении тех или иных участков кода, или вообще обвинить автора в говнокоде) Впрочем думаю здесь будет интересно, возможно вы сможете выявить для себя какие-то фишки, или хитрости которые юзает автор, или вообще научить его своим. Я всегда открыт новым знаниям и готов делиться своими с остальными)
Ах да, информация о сущности Автор:
Меня зовут Влад, мне 22 года, я 5 года работаю Java программистом, из них 3 года очень плотно разрабатываю приложения на Spring+Java+PostgreSQL стеке, на этом канале планирую изучать новые технологии (Spring Reactive, GraphQL и прочую дичь). Ну что, May Code?)

Пікірлер

  • @SPORTCITYRU
    @SPORTCITYRU17 күн бұрын

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

  • @maycode0
    @maycode017 күн бұрын

    Постараюсь ;)

  • @hybi666
    @hybi66618 күн бұрын

    Отличная информация, но 4 часа меня добили. Подача и энтузиазм автора понравились, как он так выдерживает?)

  • @maycode0
    @maycode018 күн бұрын

    Не знаю, сам в шоке как он это делает)

  • @blackmania05
    @blackmania0527 күн бұрын

    Дядя, ебашь дальше видеВо пожалуйста!

  • @JohnDoe-lw1uv
    @JohnDoe-lw1uvАй бұрын

    Начало было неплохое, но потом ппц наговнокодил)

  • @liuyr4659
    @liuyr4659Ай бұрын

    Чел, ты реально лучший и очень четко все поясняешь и объясняешь, было бы здорово если бы ты вернулся.

  • @user-kz5ci7kq1k
    @user-kz5ci7kq1kАй бұрын

    Спасибо большое за контент! Смотрел на одном дыхании. Шутки, связанные с темой работы, зашли почти все)) Прикольно, что устраиваешь интерактив, бывает смотришь, задумаешься о чем то, и буквально 5-10 секунд и что-то пропустишь, а интерактив помогает быть в тонусе 🙂

  • @user-pt2lq1ik7i
    @user-pt2lq1ik7iАй бұрын

    @Column пишем, если не хотим чтоб в коде название переменных было например с нижним подчеркиванием. Нижнее подчеркивание я использую в названии колонок, но в коде кэмелкейс @Column(name = "total_hours") private Double totalHours; @Column(name = "hourly_rate") private Double hourlyRate; @Column(name = "total_salary") private Double totalSalary;

  • @maycode0
    @maycode0Ай бұрын

    Разве по дефолту camelCase название поле не конвертируется в snake_case для БД? У нас требования чтобы был snake_case в БД и camelCase в коде, но я никогда не пишу @Column для переопределения имени.

  • @user-yf2er5vr8q
    @user-yf2er5vr8qАй бұрын

    будет ли что-нибудь новое?

  • @asgzxbaasg9766
    @asgzxbaasg97662 ай бұрын

    Чтоб разработчик не знал что за вкладкой Structure скрывается, выглядит забавно А для того чтоб бликов не было есть занавески и шторы

  • @user-uq4ms9xk7x
    @user-uq4ms9xk7x2 ай бұрын

    спасибо за урок, объяснения и вправду понятные. Постараюсь усвоить весь плейлист

  • @djadjaandrey
    @djadjaandrey2 ай бұрын

    👍👍👍

  • @user-hm3zr4vf4o
    @user-hm3zr4vf4o2 ай бұрын

    Автор, какой же вы молодец. Вы не представляете как много вы сделали для людей. <3 Вы какой-то очень позитивный человек, успехов вам во всем!

  • @maycode0
    @maycode02 ай бұрын

    Благодарю

  • @themistocies50
    @themistocies502 ай бұрын

    Привет, а для чего используется метод saveAndFlush в классе TaskStateController, если мы не получаем обратно сохраненное значение из бд? (Например, в методах replaceOldTaskStatePosition и changeTaskStatePosition в некоторых местах достаточно использовать save?) Еще хотел спросить по поводу подхода маппинга сущностей в DTO, в данном случае используется фабрика + билдер. Насколько я знаю, для этого широко применяется MapStruct. Можешь пару слов рассказать, почему выбран именно первый подход здесь и в чем его преимущества перед MapStruct?

  • @maycode0
    @maycode02 ай бұрын

    Про MapStruct - уже отвечал. Подход ручной конвертации гибок и всегда контролируется до мелочей. Мне так привычнее. По поводу saveAndFlush так просто не скажу, давно был стрим) Видимо мне надо было в рамках транзакции пропихнуть изменения в БД раньше, чем сама транзакция закончится

  • @themistocies50
    @themistocies502 ай бұрын

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

  • @user-kv6gy8kc9k
    @user-kv6gy8kc9k2 ай бұрын

    Этот чел просто спас и дал много нужной инфы для разработки сайтов. Я участвую в кокурсе и разрабатываю свйт первый раз. Я раньше с плагинами для майна работал и теперь представьте какого это перейти из 3 часового проекта в глобал проект целой командой работы

  • @o_qbert_o603
    @o_qbert_o6033 ай бұрын

    А почему вместо factory классов не использовать MapStruct? Там же идет преобразование entity в dto, и мне кажется что лучше повесить аннотацию, чем каждый раз описывать логику руками.

  • @maycode0
    @maycode03 ай бұрын

    Привычка все контролировать вручную. Так все механизмы конвертации становятся намного прозрачнее

  • @user-sn5sw5hq8z
    @user-sn5sw5hq8z3 ай бұрын

    Спасибо за видео, новички тебя не забудут :)

  • @slonichev
    @slonichev3 ай бұрын

    О май гад. Для тех кто не создаёт сервисы, предлагаю все приложение через один java файл реализовывать, даже в одном классе. То есть dto решил сделать, а логику транзакций совместил с обработкой http запросов. Я правильно понимаю, что если будут проверки безопасности, фильтры и прочее все стерпит контроллер ? Solid в помощь

  • @maycode0
    @maycode03 ай бұрын

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

  • @stonmix6808
    @stonmix68084 ай бұрын

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

  • @maycode0
    @maycode04 ай бұрын

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

  • @stonmix6808
    @stonmix68084 ай бұрын

    благодарю)

  • @user-hm8wx2us8l
    @user-hm8wx2us8l4 ай бұрын

    про вечер пятницы угарнул)

  • @maycode0
    @maycode04 ай бұрын

    А что там было?) Освяжи память))))

  • @user-hm8wx2us8l
    @user-hm8wx2us8l4 ай бұрын

    То, что нормальные люди в пятницу вечером идут отдыхать, а не писать микросервисы 😁

  • @ivankuzmin4132
    @ivankuzmin41324 ай бұрын

    Мне кажется вместо создания дополнительных factories, легче создать конструктор в дто TaskDto(Task task), где принимать в качестве аргумента модель и на её основе билдить поля дтошки

  • @maycode0
    @maycode04 ай бұрын

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

  • @ivankuzmin4132
    @ivankuzmin41324 ай бұрын

    понял спасибо@@maycode0

  • @MarvinMatters
    @MarvinMatters4 ай бұрын

    Надо поменять в названии "микросервис" на "сервис". Потому что новичков отталкивает, а остальных вводит в заблуждение, они ожидают что-то про микросервисную архитектуру и смотрят 4 часовое видео зря

  • @sxnks6593
    @sxnks65934 ай бұрын

    Привет. Спасибо огромное за видео. Я сейчас смотрю первый стрим, но в планах уже есть просмотреть и все остальные. Очень помогает твое грамотное объяснение каждого шага и небольшие углубления. Очень тяжело двигаться без ментора, и твои видео стали просто отдушиной и позволяют двигаться вперед без упадка мотивации. Буду с нетерпением ждать новых видео, а пока продолжу смотреть!

  • @TooGoolka
    @TooGoolka4 ай бұрын

    нужно было в настройках в SDKs поменять на 11))

  • @novikovdanila7
    @novikovdanila74 ай бұрын

    Узнал из данного материала больше чем из платных курсов по Spring’y, а ведь я посмотрел только один ролик всего лишь…. Продолжай в том же духе, дружище, отличная подача материала

  • @playtopgames3261
    @playtopgames32614 ай бұрын

    Видео оч круто, но будет ли вторая часть? Почти 3 года уже прошло, но вижу автор почти на все комментарии отвечает P.S. Увидел, вроде в трансляциях должно что-то быть)

  • @ElnazAusArdSkelig
    @ElnazAusArdSkelig4 ай бұрын

    Хороший стрим, но я не могу понять почему ты всю логику пишешь в контроллерах. Возможно требование со стороны компаний, но когда я проходил обучение, нас учили писать логическую часть в Service, в отдельном классе. А далее вызывать ее в контроллерах. Таким образом мы не заполняем ее лишними вещами

  • @maycode0
    @maycode04 ай бұрын

    Все верно. Ранее это не было принципиальным вопросом, но лучше писать в сервисах)

  • @ElnazAusArdSkelig
    @ElnazAusArdSkelig4 ай бұрын

    @@maycode0 Ясно)) Благодарю за стрим и вот вопрос, какой у тебя грейдинг и сколько лет опыта? Как долго ты учил Java, по курсам или сам?

  • @maycode0
    @maycode04 ай бұрын

    @ElnazAusArdSkelig Java учил по книге Герберта Шилдта. Но до этого выучил C++ и перейти с него на Java было не сложно. Грейдинг - уже не знаю честно говоря, последний раз был мидл) Опыт работы - 5.5 лет

  • @maycode0
    @maycode04 ай бұрын

    @ElnazAusArdSkelig Java выучил где-то за неделю, две. Но это после того как за месяца 3 изучил C++

  • @ElnazAusArdSkelig
    @ElnazAusArdSkelig4 ай бұрын

    @@maycode0 Ого,как интересно! Спасибо большое за ответ!

  • @IvanIvanov-gj5su
    @IvanIvanov-gj5su5 ай бұрын

    Ты на каждого юзера в чате создаешь отдельный топик, если у тебя будет >100 юзеров в >100 чатах, то это >100*100 топиков - ахтунг

  • @Max13297
    @Max132976 ай бұрын

    укникальный топ контент! скажи а есть у тебя видео где несколь микросервисов вместе работают? спасибо за труд.

  • @maycode0
    @maycode06 ай бұрын

    Только через RabbitMQ. Посмотри на канале

  • @3dfightling737
    @3dfightling7376 ай бұрын

    У меня вопрос по поводу Intelij idea.Вы тоже пробную версию абузите или через студент клейм как то, а может быть платите?

  • @maycode0
    @maycode06 ай бұрын

    Раньше студентской пользовался, сейчас оплачиваю

  • @3dfightling737
    @3dfightling7376 ай бұрын

    @@maycode0 понял спасибо

  • @mikegrig903
    @mikegrig9037 ай бұрын

    смотрю уже пол часа на скорости 1,5 столько лишнего пиздежа. Только остальные положительные комменты заставляют смотреть дальше

  • @maycode0
    @maycode07 ай бұрын

    Ничего не могу поделать, это формат живого общения, а не конспектированное видео:)

  • @user-qw1mo2lc8i
    @user-qw1mo2lc8i3 ай бұрын

    Согласен. Меня хватило на почти час и вырубил. Смотрел тоже из-за положительных комментов

  • @ThomasRomanov
    @ThomasRomanov7 ай бұрын

    Спасибо за контент, вопрос, спустя 2 года автор так же хейтит сервисы?))

  • @maycode0
    @maycode07 ай бұрын

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

  • @Wansery
    @Wansery8 ай бұрын

    Если информация не слишком конфиденциальная, то хотелось бы узнать. Ты на работе выполняешь задачи похожей сложности, или они легче/сложнее?

  • @maycode0
    @maycode08 ай бұрын

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

  • @Wansery
    @Wansery8 ай бұрын

    @@maycode0 спасибо за ответ. Когда запустишь следущий стрим? Много полезного из них узнаю)

  • @maycode0
    @maycode08 ай бұрын

    @Wansery пока в поисках этого самого полезного) Крутить одно и то же смысла мало

  • @user-yf2er5vr8q
    @user-yf2er5vr8qАй бұрын

    а реактивное вы применяете на работе - flux mono?

  • @eugenz2334
    @eugenz23348 ай бұрын

    53:20 Частенько раньше встречались на сайтах такие сговоры хитрых бэкендеров с фронтовиками, когда после удаления объекта обновляешь страницу, а он снова там)) Т.к. из-за глюка в бэкенде удаление не произошло, а фронт отрисовал удаление, не ориентируясь на подтверждение бэка)

  • @Wansery
    @Wansery8 ай бұрын

    Кодить на белой теме💀

  • @maksimmakarov9541
    @maksimmakarov95414 ай бұрын

    Белая днем, темная вечером🎉

  • @nightmason4588
    @nightmason45888 ай бұрын

    Вначале подумал что не будет ничего полезного, но за всю трансляцию нашёл столько прикольных микрофишек, в общем спасибо!

  • @maycode0
    @maycode08 ай бұрын

    Здорово, если напишешь какие-то из них - буду благодарен!)

  • @alexandr6055
    @alexandr60558 ай бұрын

    добрый день. Объясните плиз в чем тут вообще микросервис? Это обычный монолит

  • @sfx6248
    @sfx62488 ай бұрын

    1:49:26 у меня таблицп не сгенерировалась что делать😅

  • @maycode0
    @maycode08 ай бұрын

    А в пропертях приложения указано ddl-auto: update?

  • @pascalmynativelanguage1015
    @pascalmynativelanguage1015Ай бұрын

    Тебе удалось решить проблему?

  • @champion_of_the_light
    @champion_of_the_light9 ай бұрын

    Transactional на уровне контроллера это конечно мем. А что не на уровне сразу сервиса?

  • @maycode0
    @maycode09 ай бұрын

    Захотелось :)

  • @SergeiCherkai
    @SergeiCherkai10 ай бұрын

    Джун: - " Как ??? " Синьер: - "Я тебе щаз покажу, но ты просто не бойся" )))))))

  • @maycode0
    @maycode010 ай бұрын

    Это какой таймкод?)

  • @muhammadrizoyuldashev9813
    @muhammadrizoyuldashev9813 Жыл бұрын

    я ничего не изучил про микросервисов из твоего видео. Я проста патратил свои временны. Ты проста сделал маленький Rest api в течение 4 часов. Нет никакога микросервисе

  • @maycode0
    @maycode011 ай бұрын

    А что такое микросервис в вашем понимании?)

  • @AlexGrimaldo-tr8dp
    @AlexGrimaldo-tr8dp Жыл бұрын

    :)

  • @user-sx7cq2cg7d
    @user-sx7cq2cg7d Жыл бұрын

    kzread.info/dash/bejne/fKJ8pZeQm5q5pbQ.html

  • @user-sx7cq2cg7d
    @user-sx7cq2cg7d Жыл бұрын

    kzread.infoJnHC5Wk7SuQ?feature=share&t=3175

  • @user-qm2vs8kj2x
    @user-qm2vs8kj2x Жыл бұрын

    Спасибо. Очень ценно

  • @MarselGaisin
    @MarselGaisin Жыл бұрын

    39:19

  • @MarselGaisin
    @MarselGaisin Жыл бұрын

    28:04

  • @denisnurdinov9400
    @denisnurdinov9400 Жыл бұрын

    Автору большое спасибо за контент 👍 +подписка

  • @wildjoe6259
    @wildjoe6259 Жыл бұрын

    Спасибо за видео! Весьма познавательно!

  • @yevheniirudenko8181
    @yevheniirudenko8181 Жыл бұрын

    my vote for stream about testing!

  • @user-br4gt7xu2j
    @user-br4gt7xu2j Жыл бұрын

    Сорри, сперва подумал, что ты исползуеш Hystrıx как CB, а оказывается для батчинга. Но честно говоря ест странные моменты: 1. У тебя тут нет по сути никакого батчинга запросов(просто ты в первый раз зачем-то запрашивал у прайссервиса по одной сущности в то время, как у тебя уже был готовый эндпоинт запроса батчем всех цен(вот как раз на стороне прайссервиса и определяется можно ли осуществит батч запрос или нет, если бы там можно было получит толко одну цену то никакого батча ты бы не сделал)). 2. То что ты в реалности делаеш это просто асинхронную джобу через хистрикс - отсюда и возможност более быстрой обработки запросов с такими сервисами, где не предусмотрены настоящие батч запросы(сразу все в одном реквесте), толко через хистрикс эти джобы очен криво делаются, с обработкой кучи ненужных исключений и без обработки реално нужных. Ест же прекрасный сервис для этих целей Spring Batch - почему им не ползоватся, не понятно.. 3. Ну и вцелом так не исползуются инструменты (не разобравшис толком), ты просто первую попавшуюся библиотеку тулиш в код, даже не понимая толком как она работает, как ее настраиват, просто ознакомившис бегло с гетстартед. Это очен плохая практика. Стоит ознакамливатся с принципами работы того, что ты исползуеш, немного более терпеливо, - болше времени сэкономиш себе, исключив судорожные поиски в гугле причин отказа работы в будущем, и еще болше времени сэкономиш тому кто будет твои копипасты разбират в далнейшем. В целом код приятный, чистый более-менее (про замеры через currentTimemillis и обращение из контроллеров напрямую в репозиторий уже не буду ничего говорит, Бог таких людей сам покарает). И видео хорошо делаеш, смотрет приятно, рассказываеш интересно, толко не торопис, когда ознакамливаешся с технологией, за кадром разбирай новое деталнее и посвящай этому поболше времени, а то много где говориш не совсем корректные вещи P.S. сорри за ошибки - мягкий знак, сука, не работает на клаве какого-то хера))

  • @maycode0
    @maycode0 Жыл бұрын

    1. Как это нет?) Согласен, без метода в PriceServic батчинг никак не организовать, но и без группировки данных в конечном сервисе батчинг тоже никак не сделать. То что я показывал - пример того как последовательно возникает проблема и как решается. 2. А чем это плохо? Это один из возможных инструментов, я не говорил что это Best Practice и все мои стримы - это пища для размышлений, они не ставят в задачу кого-то чему-то научить от и до, и если ты уважающий себя разработчик - ты не будешь копипастить) 3. Сложно адекватно думать непрерывно после 8 часов работы и 4 часа подряд обсуждая какие-то вещи на стриме. Я согласен, много было моментов в которых я говорил не совсем связанные вещи или некорректные (я так и говорил - что заговариваюсь уже), но поверьте мне - с хистриксом я провел чуть больше времени - чем написать что-то по гайду Get Started :) Но так как мы все реальные люди и запомнить все сразу невозможно, то естественно мы взываем к Гуглу и к документации в своих поисках и это в том числе нормальная практика. Просто не стоило все таки запускать стрим уставшим чтобы не нести чепушню иногда, с этим согласен. Насчет замеров не вижу ничего плохого, я просто добавил ясности тем, кто не понимает происходящего и причины из-за которой у нас появляется высокая задержка, указав что явно дело не в репозитории (конечно, такие профи как вы сразу поймут причину, но не только же вы меня смотрите:)). Можете подробнее направить куда капать в Spring Batch? Когда я смотрел в сторону этого инструмента я только понял то - что он для обработки пачек данных, но организацию асинхронного батчинга запросов, с возможностью ожидать результат на месте (в вызывающей функции, как было на стриме) я там не нашел.

  • @maycode0
    @maycode0 Жыл бұрын

    На Hystrix в контексте батчинга меня навел мой начальник и после того, как я услышал слово батчинг, моментальная ассоциация с Spring Batch) Если есть пример как можно использовать Spring Batch в контексте того, как это использовалось на стриме - было бы шикарно.