![Bobocode](/img/default-banner.jpg)
- 231
- 690 237
Bobocode
Ukraine
Приєднався 14 сер 2017
Потенціал має кожен, але щоб стати успішним інженером не достатньо просто вчитися... Потрібно сформувати спосіб мислення націлений на вирішення проблем, співпрацю і зростання. А також відповідні навички і звички.
Звучить круто, але зробити це самостійно може далеко не кожен. Тому ми розробляємо відкриту навчальну систему, формуємо спільноту інженерів і показуємо усе це на каналі.
Звучить круто, але зробити це самостійно може далеко не кожен. Тому ми розробляємо відкриту навчальну систему, формуємо спільноту інженерів і показуємо усе це на каналі.
Дженеріки, Патерн Type Token і Огляд Вправи «Heterogeneous Max Holder»
👉 Приходь на вебінар «Дженеріки для Cіньйорів»: bit.ly/4cjgcVw
💻 Репозиторій з вправами: bit.ly/3VmSiSh
✨ Bobocode Community: bit.ly/3wWavxU
🙋🏻♂️ Тарас в LinkedIn: bit.ly/2ElWg8J
00:00 - Старт
02:10 - Початок вправи
07:18 - Реалізовуємо put()
11:21 - Чому треба писати "? super T"
13:23 - Перевантажений put()
16:40 - Реалізовуємо getMax()
19:54 - Type Token
23:05 - Гарантія результату
#opensource #java #education #навчання #community #engineer
💻 Репозиторій з вправами: bit.ly/3VmSiSh
✨ Bobocode Community: bit.ly/3wWavxU
🙋🏻♂️ Тарас в LinkedIn: bit.ly/2ElWg8J
00:00 - Старт
02:10 - Початок вправи
07:18 - Реалізовуємо put()
11:21 - Чому треба писати "? super T"
13:23 - Перевантажений put()
16:40 - Реалізовуємо getMax()
19:54 - Type Token
23:05 - Гарантія результату
#opensource #java #education #навчання #community #engineer
Переглядів: 1 840
Відео
Ти Справді Розумієш Значення O(log n) в Деревах Пошуку?
Переглядів 2,4 тис.21 день тому
✨ Приєднуйся до Bobocode Community: bit.ly/3wWavxU GitHub: github.com/bobocode-projects Telegram: t.me/bobocode LinkedIn: bit.ly/2RWPQF5 Twitter: bit.ly/3vaQiOl Patreon: www.patreon.com/bobocode Тарас в LinkedIn: bit.ly/2ElWg8J Тарас в Twitter: bit.ly/33Pmuwg #opensource #java #education #навчання #community #engineer
Досі Називаєш Hibernate Магією? - Давай Подивимось, що Там Під Капотом ⚙️
Переглядів 2,7 тис.28 днів тому
✨ Відеозапис вебінару доступний за підпискою Bobocode Community: www.bobocode.com/ 00:00 - Початок 01:56 - Основн ідеї ORM 05:17 - Починаємо створювати свій ORM 14:26 - Реалізовуємо findById 27:11 - Object-relational impedance mismatch 32:10 - Список функціоналу ORM 37:00 - Підсумок 🔗 Матеріали - Devoxx Ukraine 2019: Hibernate the Ripper - Taras Boychuk (ua-cam.com/video/tnbgTJ2zdL8/v-deo.htmls...
Приходь на презентацію Bobocode Community 👏
Переглядів 2,9 тис.2 місяці тому
👉 Реєструйся на презентацію: bit.ly/4aqfAgq Patreon: www.patreon.com/bobocode GitHub: github.com/bobocode-projects Telegram: t.me/bobocode LinkedIn: bit.ly/2RWPQF5 Twitter: bit.ly/3vaQiOl Тарас в LinkedIn: bit.ly/2ElWg8J Тарас в Twitter: bit.ly/33Pmuwg #opensource #java #education #навчання
7 Причин Інвестувати в «ДНК Успішного Інженера»
Переглядів 9003 місяці тому
👉 Реєструйся на воркшоп: bit.ly/3vlwvkV Patreon: www.patreon.com/bobocode GitHub: github.com/bobocode-projects Telegram: t.me/bobocode LinkedIn: bit.ly/2RWPQF5 Twitter: bit.ly/3vaQiOl Тарас в LinkedIn: bit.ly/2ElWg8J Тарас в Twitter: bit.ly/33Pmuwg #opensource #java #education #навчання
ДНК Успішного Інженера: Відкрий Свій Шлях до Експертизи в ІТ
Переглядів 1,5 тис.4 місяці тому
👉 Реєструйся тут: bit.ly/48GDkLD 00:00 - Початок 02:09 - ДНК 04:42 - Секретний елемент 10:25 - Воркшоп Patreon: www.patreon.com/bobocode GitHub: github.com/bobocode-projects Telegram: t.me/bobocode LinkedIn: bit.ly/2RWPQF5 Twitter: bit.ly/3vaQiOl Тарас в LinkedIn: bit.ly/2ElWg8J Тарас в Twitter: bit.ly/33Pmuwg #opensource #java #education #навчання
Як вирости до сіньйора за 2 роки, якщо тебе вигнали з першої роботи
Переглядів 2,7 тис.5 місяців тому
Як вирости до сіньйора за 2 роки, якщо тебе вигнали з першої роботи
Java Код Навиворіт - Майстерклас з Функціонального Програмування і Реактивних Фреймворків
Переглядів 6 тис.7 місяців тому
Java Код Навиворіт - Майстерклас з Функціонального Програмування Реактивних Фреймворків
Java Magic. Reflection API та Генерація байт-коду | Відеозапис вебінару
Переглядів 3,4 тис.8 місяців тому
Java Magic. Reflection API та Генерація байт-коду | Відеозапис вебінару
Як перемагати з Java | Відеозапис вебінару для ЗСУ 🇺🇦
Переглядів 3,5 тис.8 місяців тому
Як перемагати з Java | Відеозапис вебінару для ЗСУ 🇺🇦
Як навчитися програмувати за 10 років | Відеозапис вебінару
Переглядів 2,3 тис.10 місяців тому
Як навчитися програмувати за 10 років | Відеозапис вебінару
Що робить інженерів успішними і як цього можна навчитися | Java Ultimate 3.0
Переглядів 2,7 тис.11 місяців тому
Що робить інженерів успішними як цього можна навчитися | Java Ultimate 3.0
Крок вперед до розвитку, чи крок назад до безпеки
Переглядів 1,4 тис.11 місяців тому
Крок вперед до розвитку, чи крок назад до безпеки
"На останньому занятті я трошки плакав" | Як пройшли 6 місяців програми Java Ultimate 2.0
Переглядів 2,7 тис.Рік тому
"На останньому занятт я трошки плакав" | Як пройшли 6 місяців програми Java Ultimate 2.0
Чим більше буде таких людей, тим більший успіх матиме наша індустрія 🌟
Переглядів 3,8 тис.Рік тому
Чим більше буде таких людей, тим більший успіх матиме наша індустрія 🌟
«За 4 місяці ми доводимо людину до першої роботи в ІТ» | Роман Апостол | Mate academy
Переглядів 8 тис.Рік тому
«За 4 місяц ми доводимо людину до першої роботи в ІТ» | Роман Апостол | Mate academy
Наш останній шанс. Навчання у Бізнес-школі УКУ
Переглядів 1,5 тис.Рік тому
Наш останній шанс. Навчання у Бізнес-школ УКУ
Навчання в час війни. Тренувальна програма Java Ultimate
Переглядів 8 тис.Рік тому
Навчання в час війни. Тренувальна програма Java Ultimate
Підсумки програми Ultimate Enterprise Java. Що робити далі і як продовжити навчатись ефективно?
Переглядів 1,1 тис.Рік тому
Підсумки програми Ultimate Enterprise Java. Що робити дал як продовжити навчатись ефективно?
Як Стати Java Консультантом і Заробляти $12K
Переглядів 17 тис.Рік тому
Як Стати Java Консультантом Заробляти $12K
Контейнеризація та основи роботи з Docker. Docker(Image, Container, Compose, Hub)
Переглядів 4,3 тис.Рік тому
Контейнеризація та основи роботи з Docker. Docker(Image, Container, Compose, Hub)
Налаштування безпеки веб-сервісів. Авторизація і Аутентифікація в Spring Security (Oauth2, JWT)
Переглядів 4,9 тис.Рік тому
Налаштування безпеки веб-сервісів. Авторизація Аутентифікація в Spring Security (Oauth2, JWT)
Тренувальна Програма Java Ultimate 2.0
Переглядів 21 тис.Рік тому
Тренувальна Програма Java Ultimate 2.0
Асинхронна Комунікація між Сервісами. Event-driven Architecture. CQRS. Spring-Cloud-Stream/RabbitMq.
Переглядів 2,8 тис.Рік тому
Асинхронна Комунікація між Сервісами. Event-driven Architecture. CQRS. Spring-Cloud-Stream/RabbitMq.
Годний контент. Добре для українського ютубу.
Андрюха красавчик!
Дякую
Дякую Вам Тарасе! Дуже крутий тренажер
Дякую за відео. Хотів зробити вправу до перегляду відео, але помітив, що я її вже раніше зробив. Десь рік тому. Дякую за чудові завдання.
Дякую за науку та Ваш час
До більшості акцентів цього відео не виникло питань. Головне питання - це тест. Підозрюю, що там багато рефлексії. Треба глянути
Звісно. Всі тести до тренувальних вправ використовують рефлексію - інакше ми ніяк не зможемо зробити таку деталізовану інструкцію (перевірити, як називається параметр типу, чим він обмежений, скільки параметрів має метод і т.д. і т.п.). Якщо вас лякає рефлексія в тестах - то в нас на кожному тесті є javadoc з ремаркою, що використання рефлексії в тестах продакшн коду - це погана практика. Однак, для тренувальних вправ, рефлексія в тестах - це скарб! 😉
@@Bobocode , ні, рефлексія мене аж ніяк не лякає. "Треба глянути" - це означає побачити ваш код, бо Ви завжди красиво пишете. Впевнений, що знайду там щось неординарне
Дякую за відео. Було дуже цікаво.
Класно, дякую!
Дуже гарне відео, дякую!
🙌
Спасибо большое за видео! Упражнение сделал, хоть мозг размял немного)
👉 Приходь на вебінар «Дженеріки для Cіньйорів»: bit.ly/4cjgcVw
таку магію будемо розглядати? Collector<T, ?, M> toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper, BinaryOperator<U> mergeFunction, Supplier<M> mapFactory)
здається Тарас сам прозрів у цьому відео))) дуже дякую за працю!
Цікаве відео, дякую!
Дякую за відео. Мені як програмісту з досвідом 2.5 роки, в рамках повторення і засвоєння інформації, хотілось би побачити більш комплексне відео. У якому були б переваги та недоліки кожного алгоритма. "Дерево" теж має свої недоліки, наприклад час додавання елемента. Ви дуже багато уваги акцентуєте на алгоритмах. Чому б не пройтись по ним більш фундаментально? Зробити одне відео загальне про існуючі актуальні алгоритми із порівняльною таблицею переваг і недоліків (складністю виконання різних операцій), та по одному відео на кожний алгоритм із теорією та практикою. Було б корисно зробити прив'язку до Java. Я більш як впевнених, що дуже мало людей знає яке саме дерево використовується в TreeMap.
log(21258963464523i09347546329 ) = 34
Повністю Вас підтримую! Продовжуйте будь ласка цю справу.
Дякую! 🙌
Лайк є
Дякую! 🙂
у хеш таблицы есть классное свойство превращаться в дерево
Вперше в глибині душі відчув що таке насправді o(n), завдяки такому простому поясненню! Дякую!!! Лайк за корисний канал! 🎉
Круто!
Не ось, а от!!!
ок
Подобається підхід спочатку розуміння змісту а вже потім форма. Дякую
Дуже дякую за лецію. Піднялося цікаве питання з приводу структур даних під капотом, бо я думав що в залежності від типу індекску використовуєть або те, або те. Відео - супер, Підписався) Поліз дивитися що ще корисного є на каналі і що там за підписка. Ще раз дуже дякую за якісний україномовний контент і гарну, структуровану лекцію.
Дякую вам!
Чоловіче, величезна подяка тобі за цю лекцію! Нарешті у мене в голові вся ця інформація склалася в цілісну картину! І ще окрема подяка за лекцію по SOLID! Завдяки ній теж прийшло розуміння!)
Дякую, дуже радий, що допоміг. Тарас
Уоу, пошук по хеш таблиці не константний час, а лінійний. Якщо б був константний , то дерева б і не треба були )
Пошук по Хеш-Таблиці займає константний час з поправкою на колізії, які, за умови нормальної хеш-функції будуть мінімальні. Лінійний час можливий хіба коли ваша хеш-функція повертає однакове значення для всіх елементів.
Хоч одна стабільність в державі - стабільно цікаві і пізнавальні відео на Бобокод)))
Дякую за таку чудову рецензію 🙃
Дуже дякую, цікаво і натхненно! Єдине: дуже хотілось би побільше такого від вас і частіше )
Ми над цим працюємо 😉
Дякую, дуже пізнавально. Чи зможу я доєднатись до спільноти, якщо я ще не працюю, чи карще сказати, чи це буде легко для початківця ?
Привіт! Цільова аудиторія - це працюючі розробники. На тренінгах ми, зазвичай, робимо досить складні завдання, тому це навряд чи підійде для початківців.
@@Bobocode дякую, тоді буде + до мотивації знайти роботу і потрапити до вас
Хороший жарт😅
Мені чисто вирвалася фраза 😀
аххаха, за базу даних посміявся)))
Друг, спасибо тебе огромное! Ты ТОП! Счастлив, что могу понимать украинский язык. Героям Слава! Украина будет свободной!
Читав книгу Фейнмана, раджу всім теж почитать.
Так, гарна книга. Що вам найбільше запам’яталося?
Про яку саме книгу автора ви говорите? Закиньте будь ласка назву. Дякую!
@@user-ld9yz6xf2c Назва книги «Та ви жартуєте, містере Фейнман!"
@@Bobocode Запам’ятал те що він був звичайной людиной. Він був учасником якогось конкурсу самби в Ріо коли преподавал фізику в Бразілії. Не уявляю собі радянського фізика такого же рівня которий був би звичайной людиной можливо тількі Сахаров.
в java8+ Hashmap теж використовує почала використовувати замість Linkedlist binary search tree. Певно тому час на пошук однокавий.
Було би ще непогано чути рекомендації по книгам, де можна поглибити своє розуміння)
Книги самі мало що поможуть, бо ми навчаємося не тоді коли читаємо інформацію, а тоді коли дістаємо її з голови
@@Bobocode я розумію, але без знань, ти не зможеш їх якось практикувати) В книгах можна теорію прочитати, і намагатися її застосувати на практиці
Так, звичайно. Але типова ситуація для працюючих розробників - це дуже багато нового дізнаватися і майже все забувати. Ми стараємося використовувати інший підхід: сфокусуватися на практиці і якнайбільше дізнаватися з коду, експериментів і розвʼязування реальних задач.
Вельми дякую вам за змістовний контент, було дуже цікаво та пізнавально)
Дуже круте відео, дякую 👍 На цьому ж принципі побудований immutable sequence в багатьох фп мовах, починаючи з Closure. В ньому взяте дерево, тільки не binary, а 32 чайлдів. Весь int вкладається в глибину 5. Завдяки такому високому числу, його називають ~майже O(N), бо до 5 воно росте майже лінійно 😅
Класний інсайт. Дякую! 🔥
Все так - маленький додаток: індекс у вигляді дерева, краще оптимізований для бататопоточного запису і зчитування з диску ніж хеш структури. Але коли Ви згадували пам'ять, можливо, Ви саме це мали на увазі в контексті.
Дякую! Я мав на увазі цілий ряд властивостей, але не хотів вдаватися в деталі, щоб не ускладнювати відео.
Дякую за відео, дуже корисно!!!
Як раз вперше глянув Ваше відео "Реалізовуємо Бінарне Дерево Пошуку - Для чого потрібні дерева?" тепер ще і цим закріпити свіжі зняння киплячих мізків ))
На глибині дерева заглох, розумів, що треба обирати найбільше серед гілок, але точно не додумався до подвійної рекусрії в такй обгортці, мабуть точніше бінарної рекурсії )) Мізки досі киплять)) П.С. Дякую за такий наочний приклад з життя в кінці відео про БД, індекс. і пошук
Тримайтеся, легше не буде 😅
@@Bobocode 😅🤝😁
✨Хочеш регулярно поглиблювати своє розуміння розробки? - Приєднуйся до Bobocode Community: bit.ly/3wWavxU
Awesome!
в якій книжці це можна прочитати, дякую
17:56 - а допускається в методі clear() просетити null полю elements ?
Можна занулити елементи масиву, але сам масив нам ще потрібен, тому не треба сетити полю elements null. Ми ж можемо і далі використовувати ArrayList після виклику метода clear(), просто він буде пустий.
@@Bobocode зрозумів , дякую! Щоб не вляпатись в NPE зайвий раз 💡
@@ivankobyuk8385 саме так!
За пару часов ковыряния в коде, с функицональными интерфейсами стало работь куда легче и понятнее. Большое спасибо за урок!
Пропоную уривок про метод isEmpty() і оцей "майстерклас" в ютубшортс ;)
21:25 - по методу remove(...) написав свій варіант без додаткової перервіки if (first == null) і тести це пропустили. Було б непогано і такий кейс покрити в наявних тестах.
Так, дякую! Ви можете почекати, коли ми це виправимо, або можете самі покрити цей кейс і створити Pull Request. В цьому і сила open-source 😉
@@Bobocode не подумав про такий сценарій) окей, обіцяти не буду, але хотілось би зробити свій невелкий внесок ;)
Крутезний відос. Побільше б такого і про Спрінг теж
Дякую!
36:15 Основна проблема Hibernate як раз в тому, що він перевантажений фічами. З цього списку спільного у всіх ORM: CRUD і Mapping. Concurrency Control і Cascade Operations - це фічі баз даних, а не ORM. Caching, Lazy Loading, Dirty Checking - їх неможливо виключити 🤷♂ HQL - просто за межами добра і зла, Хібернейт здається єдиний фрейм де таке зробили. JOOQ, Linq, DjangoORM, Slick - зроблено набагато зручніше.
Optimistic Concurrency Control - це якраз фіча ORM, для БД - це просто колонка version, а Hibernate мусить запхати її в кожен UPDATE і зробити відповідні перевірки. Pessimistic Concurrency Control - так, це фіча БД, але, наприклад, тобі треба руками додавати до своїх SQL запитів "FOR UPDATE", чи "FOR SHARE", а тут Hibernate робить це за тебе. Cascade Operations - це не заміна фічі БД, а просто можливість робити каскад операції на рівні сутностей (типу зберігаю користувача, збережу ще й його картки...)
Погоджуюся з тим, що Hibernate перевантажений фічами, тому надто складний.
@@Bobocode OCC можна зробити і руками) я про це
@@Bobocode я дивуюся, чому Джава девелоперам він продовжує подобатись - маєш тримати купу нюансів в голові, а альтернативи в вакансіях всеодно трапляються рідше. Той же Spring Data, набагато простіший, але менш популярний
27:42 Це виглядає як замість того, щоб вирішити просту задачу з бойлерплейтом, самі собі придумали проблему (ООП), і героїчно її вирішуємо 💪
Привіт, Антон. Частково так і виглядає. :) З одного боку, ці фічі часом бувають дуже зручними. З іншого - це дуже складно і в загальному підсумку виникає питання, чи ми щось виграли за рахунок цих складних фіч.
22:20 іііііііі шо....
іііііі нічо 😂