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

  Рет қаралды 4,365

Bobocode

Bobocode

Күн бұрын

👉 Приєднуйся до 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 Жыл бұрын
мистецтво пояснити це дар! база.
@Bobocode
@Bobocode Жыл бұрын
Дякую!
@leetovetz
@leetovetz 2 жыл бұрын
Важкувато заходить. Ще вчитися та вчитися. до цих курсів.
@Bobocode
@Bobocode 2 жыл бұрын
Хіба хтось казав, що буде легко? ;)
@Beetle_in_the_Anthill
@Beetle_in_the_Anthill Жыл бұрын
Дивлюсь і чим далі тим більше тягне до цієї " магії " і порівняно з неї звичайна розробка стає сірою і менш цікавою а побудова інструментів чимсь неймовірним. І якось самому хочеться написати щось що буде мати широке використання і стане чудовим інструментом
@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 а я вже хочу розвиватись в цьому і ставати професіоналом хоча не маю багато можливостей , щоб попросту мати змогу і шанс в майбутньому
@tsuket11
@tsuket11 2 жыл бұрын
👏👏👏
@andriikukuruza6844
@andriikukuruza6844 2 жыл бұрын
було б цікаво дізнатися різницю між проксі та декоратором з твоєї точки зору :)
@user-wv7pk5sh3h
@user-wv7pk5sh3h Жыл бұрын
На мою думку одним з головних стовпів для роботи в команді повинна бути чесність. Це зовсім не просто, тому що брехня це клей для нашого суспільства з усіма його протиріччями. Але на мою думку, поки команда не чесна це не команда. Для перевірки можна використовувати ситуацію коли сіньйор має визнати перед джуніором що він щось не знає, в чомусь помилився або знає менше в темі ніж джуніор.
@caffeinejavacode1475
@caffeinejavacode1475 2 жыл бұрын
Що таке активна частина заняття? Що на ній відбувається?
@Bobocode
@Bobocode 2 жыл бұрын
Це частина заняття, на якій учасники роблять різні індивідуальні, або командні практичні завдання.
@goodvin8554
@goodvin8554 Жыл бұрын
Щось cglib не хоче працювати на Java 17. Падає ще на "new Enhancer()" з "CodeGenerationException, InaccessibleObjectException"
@Bobocode
@Bobocode Жыл бұрын
Його підтримує тільки Spring... Тому підключіть собі через мавен не cglib напряму, а spring-context і тоді буде працювати.
@goodvin8554
@goodvin8554 Жыл бұрын
@@Bobocode так з "org.springframework.cglib.proxy.Enhancer" працює, дякую. Цікаво як в spring обійшли цю проблему, бо як я зрозумів це якась проблема з безпекою кода.
@Bobocode
@Bobocode Жыл бұрын
@@goodvin8554 якщо цікаво, - подивіться. Весь код Spring відкритий ;)
@goodvin8554
@goodvin8554 Жыл бұрын
@@Bobocode для цього потрібно бути дуже зацікавленим 😀
@user-nq4bt9lm2d
@user-nq4bt9lm2d Жыл бұрын
29 хвилина, приклад Proxy. Такий приклад порушує SOLID принцип - Liskov substitution.
@Bobocode
@Bobocode Жыл бұрын
Та насправді не порушує. Клієнт мого рандомайзера, в нашому випадку статичний метод testRandomize, не змінюється і не залежить від того, яку саме реалізацію я передам. Тому тут немає порушення.
@user-nq4bt9lm2d
@user-nq4bt9lm2d Жыл бұрын
@@Bobocode Мова йде про класс RandomizerProxy. Він наслідується від Randomizer і змінює логіку не абстрактного метода.
@Bobocode
@Bobocode Жыл бұрын
​@@user-nq4bt9lm2d патерн Proxy для того і є, щоб змінювати логіку не абстракного метода. (Прицьому, на мою думку, він не морушує згаданий вами принцип.)
@NaturalId | JavalinUa | Java | Hibernate | Postgresql
13:10
FOUND MONEY 😱 #shorts
00:31
dednahype
Рет қаралды 3,5 МЛН
【獨生子的日常】让小奶猫也体验一把鬼打墙#小奶喵 #铲屎官的乐趣
00:12
“獨生子的日常”YouTube官方頻道
Рет қаралды 108 МЛН
ООП. SOLID. Курс Enterprise Java. Заняття 2
43:54