Полезный репозиторий, в котором представлены все основные принципы чистой архитектуры: разделение ответственности, слоев, представления и данных.
Проект написан на Kotlin с применением Jetpack Compose и Coroutines. В нём есть юнит-тесты, интеграционные и анализ качества кода.
• Github
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Дайджест полезных материалов из мира Java за неделю
Почитать:
— Как потратить дни, чтобы сэкономить секунды: продвинутые коммиты в GitLab
— Разработка децентрализованных приложений на Spring Boot: инструменты Web3 Tech
— Асинхронный API First
— Как упростить себе жизнь: удобные юнит-тесты с JUnit и AssertJ
— Набор инструментов backend reliability инженера
— Использование записей в качестве проекций в JPA
— How to Connect Java Applications to Databases with JDBC
— Improving Code Quality in Java: Best Practices and Examples
— How Java works ?
— Tech Watch #3 — October, 20, 2023
— Lista em Java Sem Valores Repetidos
— Self-validated Java Objects
— Understanding the Strategy Design Pattern with Python and Java
— [Digest] Java, Kotlin, Spring, Cloud, and More - Episode 14
— Array Methods in Java
— Leveraging Java Reflection to Improve Code Quality in Spring Boot
Посмотреть:
🌐 Java's G1 Garbage Collector (⏱ 25:55)
🌐 Java 21… and Beyond (⏱ 48:30)
🌐 Brian Goetz Answers Your Java Questions (⏱ 33:08)
🌐 How can you invoke a method using the Reflection API? - Cracking the Java Coding Interview (⏱ 00:58)
🌐 What is a ConcurrentModification Exception? - Cracking the Java Coding Interview (⏱ 00:59)
🌐 Как не забыть программирование, если ты менеджер и больше не пишешь код (⏱ 01:07:54)
Хорошего дня!
@javatg
Почитать:
— Как потратить дни, чтобы сэкономить секунды: продвинутые коммиты в GitLab
— Разработка децентрализованных приложений на Spring Boot: инструменты Web3 Tech
— Асинхронный API First
— Как упростить себе жизнь: удобные юнит-тесты с JUnit и AssertJ
— Набор инструментов backend reliability инженера
— Использование записей в качестве проекций в JPA
— How to Connect Java Applications to Databases with JDBC
— Improving Code Quality in Java: Best Practices and Examples
— How Java works ?
— Tech Watch #3 — October, 20, 2023
— Lista em Java Sem Valores Repetidos
— Self-validated Java Objects
— Understanding the Strategy Design Pattern with Python and Java
— [Digest] Java, Kotlin, Spring, Cloud, and More - Episode 14
— Array Methods in Java
— Leveraging Java Reflection to Improve Code Quality in Spring Boot
Посмотреть:
🌐 Java's G1 Garbage Collector (⏱ 25:55)
🌐 Java 21… and Beyond (⏱ 48:30)
🌐 Brian Goetz Answers Your Java Questions (⏱ 33:08)
🌐 How can you invoke a method using the Reflection API? - Cracking the Java Coding Interview (⏱ 00:58)
🌐 What is a ConcurrentModification Exception? - Cracking the Java Coding Interview (⏱ 00:59)
🌐 Как не забыть программирование, если ты менеджер и больше не пишешь код (⏱ 01:07:54)
Хорошего дня!
@javatg
Динамическое программирование - это подход, позволяющий разбивать задачи на более мелкие подзадачи.
Это полезный навык для решения задач
min change, max path sum
и других вопросов на собеседовании по кодингу.В этом бесплатном курсе вы изучите методы динамического программирования на языке Java.
📌 Video
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
В этом руководстве подробно описано, как реализовать аутентификацию на основе токенов с помощью Spring Boot, Spring Security, JWT и базы данных MySQL.
https://www.javaguides.net/2023/05/spring-boot-spring-security-jwt-mysql.html
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Условие: даны две строки, необходимо выяснить являются они идентичными после удаления символов путем использования клавиши backspace (символ #).
Если строка пустая, то backspace оставляет её пустой.
Пример:
Ввод: s = "ab#c", t = "ad#c"
Вывод: true
Объяснение: обе строки после использования удаления символов образуют сроку "ac"
Ввод: s = "ab##", t = "c#d#"
Вывод: true
Ввод: s = "a#c", t = "b"
Вывод: false
📌 Решение задачи
Пишите свое решение в комментариях👇
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
#Java #JPA #Hibernate
Совет: show-sql - это самый простой (но не самый лучший!) способ увидеть SQL запрос, сгенерированный
Совет: show-sql - это самый простой (но не самый лучший!) способ увидеть SQL запрос, сгенерированный
Hibernate
. Это вывод можно немного улучшить, включив форматирование, показав JPQL Query,
сгенерировавший запрос и включив подсветку, которая делает выходит запросы в красивом виде.Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Как устроены языки Java, C++ и Python?
▪️Java сначала компилирует исходный код в байткод, который не зависит от платформы и выполняется виртуальной машиной
▪️Компилируемые языки, такие как C++ и Go, перед выполнением преобразуют исходный код в машинный код с помощью компилятора. Скомпилированный машинный код затем может непосредственно выполняться процессором.
▪️Интерпретируемые языки, такие как Javascript и Ruby, не подвергаются компиляции. Вместо этого их код построчно обрабатывается интерпретатором во время выполнения. Однако современные движки JavaScript, такие как V8, также используют JIT-компиляцию для повышения производительности.
▪️Python представляет собой смесь двух миров. Сначала исходный код компилируется в платформонезависимый байткод, который затем построчно выполняется платформонезависимым интерпретатором. Кроме того, такие реализации, как PyPy, используют
В целом компилируемые языки обладают преимуществами в скорости, однако благодаря современным методам оптимизации грань между компилируемыми и интерпретируемыми языками становится все более размытой.
@javatg
▪️Java сначала компилирует исходный код в байткод, который не зависит от платформы и выполняется виртуальной машиной
Java
(JVM). JVM
может дополнительно повысить производительность, используя компиляцию Just-In-Time
(JIT) для преобразования байткода в машинный код во время выполнения.▪️Компилируемые языки, такие как C++ и Go, перед выполнением преобразуют исходный код в машинный код с помощью компилятора. Скомпилированный машинный код затем может непосредственно выполняться процессором.
▪️Интерпретируемые языки, такие как Javascript и Ruby, не подвергаются компиляции. Вместо этого их код построчно обрабатывается интерпретатором во время выполнения. Однако современные движки JavaScript, такие как V8, также используют JIT-компиляцию для повышения производительности.
▪️Python представляет собой смесь двух миров. Сначала исходный код компилируется в платформонезависимый байткод, который затем построчно выполняется платформонезависимым интерпретатором. Кроме того, такие реализации, как PyPy, используют
JIT-компиляцию
для повышения скорости работы.В целом компилируемые языки обладают преимуществами в скорости, однако благодаря современным методам оптимизации грань между компилируемыми и интерпретируемыми языками становится все более размытой.
@javatg
Kotlin для начинающих
. Установка и настройка
1. Переменные. Базовые типы данных. Ввод/вывод
2. Арифметические операции
3. Логический тип данных
4. Оператор ветвления
5. Оператор if как выражение
6. Вложенные операторы if
7. Оператор множественного выбора
8. Операторы циклов. Цикл for
9. Цикл while
#video #kotlin
https://www.youtube.com/watch?v=4nupqVn6w38&list=PLjurg971KpKYw3H24of5vBnTsaZrYMDmL
@javatg
. Установка и настройка
1. Переменные. Базовые типы данных. Ввод/вывод
2. Арифметические операции
3. Логический тип данных
4. Оператор ветвления
5. Оператор if как выражение
6. Вложенные операторы if
7. Оператор множественного выбора
8. Операторы циклов. Цикл for
9. Цикл while
#video #kotlin
https://www.youtube.com/watch?v=4nupqVn6w38&list=PLjurg971KpKYw3H24of5vBnTsaZrYMDmL
@javatg
📢 Вышел релиз Spring Batch Notion 0.1.0-M2!
✨ Главной особенностью этого релиза является поддержка фильтрации через fluent API, которая имитирует опцию фильтрации базы данных в пользовательском интерфейсе Notion.
github.com/scordio/spring-batch-notion/releases/tag/v0.1.0-M2
@javatg
✨ Главной особенностью этого релиза является поддержка фильтрации через fluent API, которая имитирует опцию фильтрации базы данных в пользовательском интерфейсе Notion.
github.com/scordio/spring-batch-notion/releases/tag/v0.1.0-M2
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡Легкий способ получать свежие обновлении и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
Машинное обучение: www.tg-me.com/ai_machinelearning_big_data
Go: www.tg-me.com/Golang_google
Базы данных: www.tg-me.com/sqlhub
C++/ www.tg-me.com/cpluspluc
Data Science: www.tg-me.com/data_analysis_ml
Python: www.tg-me.com/pythonl
Хакинг: www.tg-me.com/linuxkalii
Devops: www.tg-me.com/devOPSitsec
C#: www.tg-me.com/csharp_ci
Java: www.tg-me.com/java_library
Linux: www.tg-me.com/+A8jY79rcyKJlYWY6
Мобильная разработка: www.tg-me.com/mobdevelop
Docker: www.tg-me.com/+0WdB4uvOwCY0Mjdi
Rust: www.tg-me.com/rust_code
Javascript: www.tg-me.com/javascriptv
React: www.tg-me.com/react_tg
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Big Data: www.tg-me.com/bigdatai
Тестирование:https://www.tg-me.com/+F9jPLmMFqq1kNTMy
Аналитика данных: https://www.tg-me.com/+mAXY9ppJwitkMDBi
😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
📕Ит-книги бесплатно: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy
ИИ: www.tg-me.com/vistehno
Книги по искусственному интеллекту
💼 Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
Папка Java разработчика: https://www.tg-me.com/addlist/ZM3J6oFNAnRlNWU6
Папка с вакансиями: www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi
Машинное обучение: www.tg-me.com/ai_machinelearning_big_data
Go: www.tg-me.com/Golang_google
Базы данных: www.tg-me.com/sqlhub
C++/ www.tg-me.com/cpluspluc
Data Science: www.tg-me.com/data_analysis_ml
Python: www.tg-me.com/pythonl
Хакинг: www.tg-me.com/linuxkalii
Devops: www.tg-me.com/devOPSitsec
C#: www.tg-me.com/csharp_ci
Java: www.tg-me.com/java_library
Linux: www.tg-me.com/+A8jY79rcyKJlYWY6
Мобильная разработка: www.tg-me.com/mobdevelop
Docker: www.tg-me.com/+0WdB4uvOwCY0Mjdi
Rust: www.tg-me.com/rust_code
Javascript: www.tg-me.com/javascriptv
React: www.tg-me.com/react_tg
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Big Data: www.tg-me.com/bigdatai
Тестирование:https://www.tg-me.com/+F9jPLmMFqq1kNTMy
Аналитика данных: https://www.tg-me.com/+mAXY9ppJwitkMDBi
😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
📕Ит-книги бесплатно: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy
ИИ: www.tg-me.com/vistehno
Книги по искусственному интеллекту
💼 Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
Папка Java разработчика: https://www.tg-me.com/addlist/ZM3J6oFNAnRlNWU6
Папка с вакансиями: www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi
Timefold Solver - ИИ-решатель с открытым исходным кодом для оптимизации операций и составления расписаний
👉 https://github.com/TimefoldAI/timefold-solver
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Spring Initializr
Initializr generates spring boot project with just what you need to start quickly!
🔥 Дайджест полезных материалов из мира Java за неделю
Почитать:
— Пишем минимальный ActivityPub-сервер с нуля
— Цикл постов про Keycloak. Часть вторая: Контроль доступа на уровне приложения
— Ускоряем запуск Spring Boot-приложений в контейнере
— Midjourney, DALL-E 3 и GPT-4 открыли мир безграничных возможностей.
— Эта неделя в мире Java (3 ноября)
— Трейсы в Spring Boot 3 с использованием Zipkin и Kafka в качестве транспорта
— Создание сервиса авторизации через систему ЕСИА
— Жук, нумерология, хеш или ничо? Оптимизация работы с путями
— На что способен КриптоПро JCP? Туториал по валидации отсоединенной электронной подписи
— Байт-код — это просто! Как сделать DI по-настоящему быстрым
— Жилье в 500м от сетевых продуктовых магазинов в Москве. Или как публикация на Лента.ру избегает Хабр и дезинформирует
— 11 Common Questions about Java and Spring Fundamentals (Part 2)
— My Intellij IDEA plugin for Maven support - GMaven
— Migrating an Springboot Java API: Part 2 - Azure Build
— Implementation of LinkedList
— Class loaders in JVM: An Overview
— Datafaker 2.0
— Step Builder Pattern to Enforce Client code to Provide data.
— Migrating an Springboot Java API: Part 1 - Docker
— Maximizando Eficiência e Tolerância a Falhas: Estratégias de Paralelismo e Divisão de Responsabilidades em Sistemas Complexos
— Dependency Inversion Principle (DIP)
Посмотреть:
🌐 Better Java Streams with Gatherers - Inside Java Newscast #57 (⏱ 08:56)
🌐 What is a race condition? - Cracking the Java Coding Interview (⏱ 01:00)
🌐 How can you check is a class is an extension of another? - Cracking the Java Coding Interview (⏱ 00:50)
🌐 Как в IT заработать больше денег? (⏱ 00:23)
Хорошего дня!
@javatg
Почитать:
— Пишем минимальный ActivityPub-сервер с нуля
— Цикл постов про Keycloak. Часть вторая: Контроль доступа на уровне приложения
— Ускоряем запуск Spring Boot-приложений в контейнере
— Midjourney, DALL-E 3 и GPT-4 открыли мир безграничных возможностей.
— Эта неделя в мире Java (3 ноября)
— Трейсы в Spring Boot 3 с использованием Zipkin и Kafka в качестве транспорта
— Создание сервиса авторизации через систему ЕСИА
— Жук, нумерология, хеш или ничо? Оптимизация работы с путями
— На что способен КриптоПро JCP? Туториал по валидации отсоединенной электронной подписи
— Байт-код — это просто! Как сделать DI по-настоящему быстрым
— Жилье в 500м от сетевых продуктовых магазинов в Москве. Или как публикация на Лента.ру избегает Хабр и дезинформирует
— 11 Common Questions about Java and Spring Fundamentals (Part 2)
— My Intellij IDEA plugin for Maven support - GMaven
— Migrating an Springboot Java API: Part 2 - Azure Build
— Implementation of LinkedList
— Class loaders in JVM: An Overview
— Datafaker 2.0
— Step Builder Pattern to Enforce Client code to Provide data.
— Migrating an Springboot Java API: Part 1 - Docker
— Maximizando Eficiência e Tolerância a Falhas: Estratégias de Paralelismo e Divisão de Responsabilidades em Sistemas Complexos
— Dependency Inversion Principle (DIP)
Посмотреть:
🌐 Better Java Streams with Gatherers - Inside Java Newscast #57 (⏱ 08:56)
🌐 What is a race condition? - Cracking the Java Coding Interview (⏱ 01:00)
🌐 How can you check is a class is an extension of another? - Cracking the Java Coding Interview (⏱ 00:50)
🌐 Как в IT заработать больше денег? (⏱ 00:23)
Хорошего дня!
@javatg
This media is not supported in your browser
VIEW IN TELEGRAM
Вот простая и структурированная дорожная карта Java разработчика с роликами youtube.
1. Основы Java
- Core Java
2. JDBC основы
JDBC
3. SQL
- SQL
4. JSP + Servlet
5.1. Core Spring Framework
5.2. Spring REST & Spring DATA
5.3. Spring Security
6. Hibernate Framework
7. Spring Boot
8. Basic DevOps
8.1. Learn to Use AWS & Deploy Java Apps
8.2. Learn Basic Docker:
8.3. Learn Basic Kubernetes:
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM