Можливості нової Java 17. Огляд CompletableFuture. JVM мови.

Поділитися
Вставка
  • Опубліковано 18 чер 2024
  • 👉 Приєднуйся до Bobocode Community: www.bobocode.com/
    ____________________________________________
    Patreon: / 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
    ____________________________________________
    10-те заняття тренувальної програми Ultimate Enterprise Java (2021).
    УВАГА! Відеозапис не містить активної частини заняття.
    00:00 - Нарізка основних моментів
    03:04 - Початок
    05:32 - Нові методи в Optional
    06:45 - Метод toList() в Stream
    12:22 - Текстові блоки
    14:20 - Що таке Record?
    18:11 - Покращений instanceof
    19:29 - Новий switch + pattern matching
    24:46 - Що таке Sealed class?
    29:10 - Для чого запускати код в новому потоці?
    30:57 - Огляд CompletableFuture
    34:25 - Код в асинхронному стилі
    45:07 - Інші JVM мови
    52:16 - Огляд Kotlin
    54:02 - Приклади коду на Kotlin
    55:02 - Функції (Kotlin)
    59:41 - Декларативна робота з колекціями (Kotlin)
    01:01:09 - Ключове слово it (Kotlin)
    01:01:46 - Data класи (Kotlin)
    01:01:46 - Функції розширення (Extension function)
    01:01:46 - let - функція перетворення (Kotlin)
    01:09:55 - Що важливо памʼятати про мову?
    01:10:50 - Огляд модуля Fundamentals
    01:12:37 - Для чого нам потрібні основи?
    01:14:54 - Як правильно вирішувати робочі задачі? 🔥
    01:17:03 - Алгоритм вирішення проблеми
    01:20:47 - У вас є все для того, щоб навчитися!
    #opensource #java #education

КОМЕНТАРІ • 34

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

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

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

    Це відео змотивувало мене почитати про Кложур. Дуже цікава мова, з дуже крутим автором Річ Хіккі. Раджу його доклад "Simple made easy". Дискусійно, але розширює світогляд

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

    Дякую, чекаєм наступний епізод :)

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

    Дякую за відео. До цього момента не знав про клас CompletableFuture.

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

      Будь ласка, насправді він був доданий ще в Java 8.

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

    ДЗ:
    Закінчити роботу над ДЗ по модулю Funamentals.

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

    17:47 в java є анонімні класи особисто мені це сама цікава фіча, яка колись змусила мене битись головою об стіл

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

    В Котлін змінні та дефолтні значення оголошуються так же як в Паскалі. Тепер зрозуміло чому по дефолту в Idea хоткеї такіж як в Delphi. Мабуть розрозбники з intellij поклонники Delphi.

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

    Clojure - так це ж улюблен мова Uncle Bob! Останні пʼять років він піарить його у своєму блозі, розказуючищо усі джави, типи не потрібні, а саме лісп на jvm найкраще що могло статися)

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

      🤷🏻‍♂️я думаю, що він дуже розумний дядько. Просто не має смаку 🙂

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

      @@Bobocode на вкус і цвєт товаріщєй нєт 😅

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

    Зараз би io bounded операції виконувати б на комон пулі….

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

    На 43 хв, коли додали checked exception до метода, чому не можна прямо в supplyAsync() прописати лямбду з try-catch? Я от прописав і все нормально запускається і працює. Чи не в цьому взагалі було питання? Бо щось я зовсім догнати не можу.

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

      Технічно можна, але писати в лямбді try-catch - це погана практика з точки зору чистоти коду. Якщо в лямбді є щось складніше, ніж один рядок, то треба виносити цю логіку в допоміжний метод.

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

      @@Bobocode буду знати, дякую.

  • @viktors.4844
    @viktors.4844 2 роки тому +1

    Погляд збоку. В мене мало досвіду, а з котлін так взагалі нема, але він мені здається перенасиченим спеціями/солодощами, що губиться сама структура/суть.
    Ну немає в джава функцій розширення, так унаслідуй все в новому класі й добав свій метод, і ніхто не буде плутатись, буде ясна логіка абстракцій і не буде підводних каменів та течій. Гадаю що це навантаження на синтаксис небезкоштовне для ресурсів.
    Таке питання. Якщо ту саму річ в котлін можна робити багатьма способами, чи не призводить це до різних(і іноді неоптимальних) байт-кодів?
    Дякую за відео.

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

      Я не спец. в Котліні. Але, коли я з ним працював, то по відчуттях він повільніший ніж Java. І це тому, що всі ці фічі дійсно не безкоштовні.

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

      > Ну немає в джава функцій розширення, так унаслідуй все в новому класі й добав свій метод
      Приблизно так компілятор Котліну, Скали і Груві і працює. Якщо клас фінальний, то створюється wrapper. Як приклад, Скала використовує джавовий String, але методів в ньому набагато більше. Хоча клас закритий для розширення.

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

      > Гадаю що це навантаження на синтаксис небезкоштовне для ресурсів.
      JIT сам знаходить гарячі точки і оптимізує їх. Та й програмісти компіляторів цих мов теж постійно покращують байткод. При появі invokedynamic у Java 8, зарелізили Scala 2.12, котра переписала усі лямбди з анонімних класів на нову конструкцію байт коду. Kotlin ще більш активний у цьому плані. Але байткод пухкіший, так

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

    Було б добре додати помітку, що тут використовується preview 17 jdk. Не усі помітять в консолі помітку "--enable-preview". Не усі фічі доступні в релізній версії.

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

      А що саме з відео недоступне у релізнутій версії Java 17?

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

      @@Bobocode switch з логічними опереторами

    • @baibula
      @baibula 3 місяці тому

      Вони переробили ці guarded patterns в 21+ джавах. Тепер воно виглядає як "case Long l when l > 1000 -> ...". Ось нашо вони ці preview роблять.))

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

    Перепрошую. Хиба сигнатура метода - це не аргументи і їх порядок? Я вчив, що значення, що повертаються та throws в сигнатуру не входить. Що правда?

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

      Правда на нашому боці ;)

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

    Щодо records - на твою думку, на скільки вони органічно виглядають в Java? Якби вони на рівні JVM були, це була б одна історія. А по факту це синтаксичний цукор, з котрим не можна працювати в Hibernate :/

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

      Хм.. Я ще з ними толком не працював. А от Котлін з Hibernate не дружить :)

    • @feoktant
      @feoktant 2 роки тому +1

      @@Bobocode це по тій самій причині) data classes мали б бути мутабельні, а тоді розвалюється уся ідея

    • @User-vr6if
      @User-vr6if 2 роки тому +1

      records для DTO саме то

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

      Мені здалось концептуально records дуже схожий на деструктуризацію в js. Там воно використовуэться типу як у в джаві дто. Тобто для того щоб прокинути в якусь логіку частину початкового объекта.

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

    Такого плана языки как Котлин при всей его простоте при неправильном использование дорого а такой говнокод... Ух