ООП з точки зору корпоративної розробки на Java

Поділитися
Вставка
  • Опубліковано 22 тра 2024
  • 👉 Приєднуйся до Bobocode Community: www.bobocode.com/
    ____________________________________________
    𝙋𝙖𝙩𝙧𝙚𝙤𝙣: / bobocode
    𝙂𝙞𝙩𝙃𝙪𝙗: github.com/bobocode-projects
    Telegram-канал: t.me/bobocode​
    Linkedin: bit.ly/2RWPQF5
    Twitter: bit.ly/3vaQiOl
    Тарас в LinkedIn: bit.ly/2ElWg8J
    Тарас в Twitter: bit.ly/33Pmuwg
    ____________________________________________
    6-те заняття тренувальної програми Ultimate Enterprise Java (2021).
    УВАГА! Відеозапис не містить активної частини заняття.
    00:00 - Початок
    00:15 - План заняття
    01:28 - Як економити час, говорячи правду?
    03:38 - ОБʼЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ
    04:30 - Для чого потрібен дизайн (ООП)?
    07:20 - Приклад поганого дизайн
    09:14 - Приклад хорошого дизайну
    10:57 - Інверсія залежностей - принцип хорошого дизайну
    13:10 - Інкапсуляція. Наслідування. Поліморфізм
    13:21 - Для чого потрібна абстракція?
    14:59 - Інкапсуляція, яка допомагає
    16:54 - Підсумки основних принципів ООП
    17:23 - ДИЗАЙН ПАТЕРНИ
    19:56 - Чому потрібні патерни?
    21:11 - Тривіальні патерни
    23:56 - Патерн проксі (Proxy)
    25:30 - Реалізація патерна проксі (Приклад коду)
    32:24 - Рефлексія VS. CGlib
    33:24 - Як створити проксі за доп. CGLib? (Приклад коду)
    #opensource #java #education

КОМЕНТАРІ • 25

  • @Bobocode
    @Bobocode  2 роки тому

    👉 Навчання від Bobocode: bit.ly/3IRrJhj

  • @RS23
    @RS23 Рік тому +1

    мистецтво пояснити це дар!
    база.

  • @leetovetz
    @leetovetz 2 роки тому +2

    Важкувато заходить. Ще вчитися та вчитися. до цих курсів.

    • @Bobocode
      @Bobocode  2 роки тому +4

      Хіба хтось казав, що буде легко? ;)

  • @Beetle_in_the_Anthill
    @Beetle_in_the_Anthill Рік тому +1

    Дивлюсь і чим далі тим більше тягне до цієї " магії " і порівняно з неї звичайна розробка стає сірою і менш цікавою а побудова інструментів чимсь неймовірним. І якось самому хочеться написати щось що буде мати широке використання і стане чудовим інструментом

    • @Bobocode
      @Bobocode  Рік тому

      Так, це дуже цікаво. Ми на програмі Java Ultimate пишемо свій Dependency Injection контейнер Bring (аналог Spring), а також свій ORM фреймворк Bibernate (аналог Hibernate) і це, зазвичай, учасникам дуже заходить.

    • @Beetle_in_the_Anthill
      @Beetle_in_the_Anthill Рік тому

      @@Bobocode а неповнолітніх на курс ви приймаєте?

    • @Bobocode
      @Bobocode  Рік тому

      @@Beetle_in_the_Anthill програма для досвідчених Java-розробників, тому навряд. Маю на увазі, що не можна бути неповнолітнім і прицьому бути досвідченим інженером. Хоча, напевно, можуть бути і вийнятки. 🙂

    • @Beetle_in_the_Anthill
      @Beetle_in_the_Anthill Рік тому

      @@Bobocode просто дуже важко вчитися коли не маєш ніякого досвіду. На курсах можуть хоча б спрямувати , а так мною керує якась невпевненість. Я вивчив основи і відточив основи та jpa давно , але як далі вчити веб , мікросервіси вчитись вибудовувати архітектуру не знаю. Дуже важко систематизувати і усвідомити що за чим і як потрібно вчити , хоча по 2 години в день в джаву залипати круто, але треба система.

    • @Beetle_in_the_Anthill
      @Beetle_in_the_Anthill Рік тому

      А все просто із-за страху майбутнього почалось бо я не знаю що буде і як потім, от мені тільки як 15 а я вже хочу розвиватись в цьому і ставати професіоналом хоча не маю багато можливостей , щоб попросту мати змогу і шанс в майбутньому

  • @andriikukuruza6844
    @andriikukuruza6844 2 роки тому +2

    було б цікаво дізнатися різницю між проксі та декоратором з твоєї точки зору :)

  • @tsuket11
    @tsuket11 2 роки тому

    👏👏👏

  • @user-wv7pk5sh3h
    @user-wv7pk5sh3h Рік тому

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

  • @goodvin8554
    @goodvin8554 Рік тому

    Щось cglib не хоче працювати на Java 17. Падає ще на "new Enhancer()" з "CodeGenerationException, InaccessibleObjectException"

    • @Bobocode
      @Bobocode  Рік тому +1

      Його підтримує тільки Spring... Тому підключіть собі через мавен не cglib напряму, а spring-context і тоді буде працювати.

    • @goodvin8554
      @goodvin8554 Рік тому

      @@Bobocode так з "org.springframework.cglib.proxy.Enhancer" працює, дякую. Цікаво як в spring обійшли цю проблему, бо як я зрозумів це якась проблема з безпекою кода.

    • @Bobocode
      @Bobocode  Рік тому +1

      @@goodvin8554 якщо цікаво, - подивіться. Весь код Spring відкритий ;)

    • @goodvin8554
      @goodvin8554 Рік тому

      @@Bobocode для цього потрібно бути дуже зацікавленим 😀

  • @caffeinejavacode1475
    @caffeinejavacode1475 2 роки тому

    Що таке активна частина заняття? Що на ній відбувається?

    • @Bobocode
      @Bobocode  2 роки тому

      Це частина заняття, на якій учасники роблять різні індивідуальні, або командні практичні завдання.

  • @user-nq4bt9lm2d
    @user-nq4bt9lm2d Рік тому

    29 хвилина, приклад Proxy. Такий приклад порушує SOLID принцип - Liskov substitution.

    • @Bobocode
      @Bobocode  Рік тому +1

      Та насправді не порушує. Клієнт мого рандомайзера, в нашому випадку статичний метод testRandomize, не змінюється і не залежить від того, яку саме реалізацію я передам. Тому тут немає порушення.

    • @user-nq4bt9lm2d
      @user-nq4bt9lm2d Рік тому

      @@Bobocode Мова йде про класс RandomizerProxy. Він наслідується від Randomizer і змінює логіку не абстрактного метода.

    • @Bobocode
      @Bobocode  Рік тому

      ​@@user-nq4bt9lm2d патерн Proxy для того і є, щоб змінювати логіку не абстракного метода. (Прицьому, на мою думку, він не морушує згаданий вами принцип.)