Принципы проектирования программного обеспечения 👇
[1.] KISS (Keep It Simple, Stupid)
▶ Программное обеспечение должно быть максимально простым.
▶ Используйте понятный и лаконичный код, избегайте излишней сложности и сосредотачивайтесь на основных функциях.
[2.] DRY (Don't Repeat Yourself)
▶ Код не должен дублироваться.
▶ Используйте функции и классы для объединения общего кода.
▶ Применяйте переменные и константы для хранения значений, которые используются в нескольких местах.
[3.] YAGNI (You Ain't Gonna Need It)
▶ Не добавляйте в программное обеспечение функции, которые не нужны.
▶ Поддерживайте простоту и удобство сопровождения.
[4.] SOLID
▶ Принцип единственной ответственности – класс должен выполнять только одну задачу.
▶ Принцип открытости/закрытости – классы должны быть открыты для расширения, но закрыты для изменения.
▶ Принцип подстановки Барбары Лисков – объекты дочернего класса должны заменять объекты базового класса без нарушения функциональности.
▶ Принцип разделения интерфейса – клиенты не должны зависеть от методов, которые они не используют.
▶ Принцип инверсии зависимостей – зависимости должны внедряться в класс, а не быть жёстко закодированными.
[5.] Принцип наименьшего удивления**
▶ Разрабатывайте программное обеспечение так, чтобы оно соответствовало ожиданиям пользователя.
▶ Используйте знакомую терминологию и соглашения, предоставляйте понятные инструкции.
▶ Применяйте четкие и лаконичные сообщения об ошибках.
[6.] Принцип модульности**
▶ Проектируйте программное обеспечение как набор независимых модулей.
▶ Это упрощает понимание, сопровождение и тестирование кода.
[7.] Принцип абстракции
▶ Скрывайте детали реализации от пользователя.
▶ Это делает программное обеспечение более понятным и удобным.
[8.] Принцип инкапсуляции
▶ Программное обеспечение должно скрывать внутреннее состояние объекта от внешнего мира.
▶ Это повышает устойчивость и удобство сопровождения.
[9.] Принцип наименьшего знания
▶ Проектируйте программное обеспечение так, чтобы минимизировать объем знаний модуля о других модулях.
▶ Это помогает повысить модульность и гибкость системы.
[10.] Принцип низкой связности и высокой когезии
▶ Связность – это степень зависимости элементов модуля друг от друга.
▶ Модуль с низкой связностью имеет мало зависимостей, и его элементы слабо зависят друг от друга.
❗ Когезия – это степень, с которой элементы модуля относятся к одной цели.
▶ Модуль с высокой когезией имеет одну четко определенную задачу, и все его элементы связаны с её выполнением.
👉 Java Portal | дать буст
[1.] KISS (Keep It Simple, Stupid)
[2.] DRY (Don't Repeat Yourself)
[3.] YAGNI (You Ain't Gonna Need It)
[4.] SOLID
[5.] Принцип наименьшего удивления**
[6.] Принцип модульности**
[7.] Принцип абстракции
[8.] Принцип инкапсуляции
[9.] Принцип наименьшего знания
[10.] Принцип низкой связности и высокой когезии
Please open Telegram to view this post
VIEW IN TELEGRAM
Полезная подсказка по Linux 😏
Команда
Однако
❗ Если команда
👉 Java Portal | дать буст
Команда
ls
— это отличный инструмент командной строки для отображения файлов и каталогов в Linux.Однако
lsd
— это ещё более современная альтернатива команде ls. Она предлагает иконки, цветной вывод и представляет информацию в более наглядном и удобном для чтения формате.$ lsd -lah
lsd
не предустановлена в вашей системе, обратитесь к документации вашей операционной системы, чтобы узнать, как её установить.Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
GRADLE. Сборщик проектов. (Java Enterprise - полный курс)
Курс посвящен Gradle, его конфигурации, структуре, управлению зависимостями, созданию тасков, плагинов и работе с многомодульными проектами.
📲 Cмотреть источник: тут
👉 Java Portal | #видео
Курс посвящен Gradle, его конфигурации, структуре, управлению зависимостями, созданию тасков, плагинов и работе с многомодульными проектами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как работает Java.
На изображении представлена схема работы Java.🤯
1 Java-разработчик пишет код на Java, создавая
2 Компилятор (javac) компилирует этот код, преобразуя его в байт-код и создавая
3 Байт-код выполняется виртуальной машиной Java (JVM) на основе установленного Java Runtime Environment (JRE).
4.JVM начинает выполнение с метода
5 Результатом выполнения программы является вывод.
Для работы требуется установка JDK, который обеспечивает необходимые инструменты и библиотеки. Код может запускаться на любой операционной системе и оборудовании, где доступна JVM.
👉 Java Portal | дать буст
На изображении представлена схема работы Java.
1 Java-разработчик пишет код на Java, создавая
.java
файл.2 Компилятор (javac) компилирует этот код, преобразуя его в байт-код и создавая
.class
файл.3 Байт-код выполняется виртуальной машиной Java (JVM) на основе установленного Java Runtime Environment (JRE).
4.JVM начинает выполнение с метода
public static void main
.5 Результатом выполнения программы является вывод.
Для работы требуется установка JDK, который обеспечивает необходимые инструменты и библиотеки. Код может запускаться на любой операционной системе и оборудовании, где доступна JVM.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Коллекция реализаций разных алгоритмов и структур данных на Java
Эта подборка пригодится для подготовки к собеседованию, в частности для секции "Алгоритмы".
Здесь есть примеры реализаций графовых алгоритмов, имплементация структур данных, таких как очередь, куча, задания на алгоритмы Кнута-Морриса-Пратта, Ахо-Корасик и много других задач
⛓ Ссылка: https://github.com/indy256/codelibrary
👉 Java Portal | #ресурсы
Эта подборка пригодится для подготовки к собеседованию, в частности для секции "Алгоритмы".
Здесь есть примеры реализаций графовых алгоритмов, имплементация структур данных, таких как очередь, куча, задания на алгоритмы Кнута-Морриса-Пратта, Ахо-Корасик и много других задач
Please open Telegram to view this post
VIEW IN TELEGRAM
Confluent только что завершила крупнейшую в мире миграцию Kafka-кластеров с ZooKeeper на KRaft.
Они переместили тысячи кластеров на KRaft «без простоя».
«Миграция тысяч кластеров в KRaft в Confluent Cloud была одной из самых значимых операционных задач, с которыми мы когда-либо сталкивались.»
На это у них ушел примерно год, но в итоге это упростило их облачные операции.
Вам тоже стоит готовиться к переходу на KRaft.👇
В следующем релизе 4.0 поддержка ZooKeeper будет полностью убрана.😆
И этот релиз уже на подходе — сейчас решают последние проблемы.
Кроме того, KRaft был признан готовым для производства с Kafka 3.3 (ноябрь 2022 года) — уже два года назад.
Они даже удалили старый класс😮
«Confluent Cloud теперь на 100% работает на KRaft, и вам тоже стоит перейти.»
Поздравления команде и спасибо за развитие Kafka!
👉 Java Portal | дать буст
Они переместили тысячи кластеров на KRaft «без простоя».
«Миграция тысяч кластеров в KRaft в Confluent Cloud была одной из самых значимых операционных задач, с которыми мы когда-либо сталкивались.»
На это у них ушел примерно год, но в итоге это упростило их облачные операции.
Вам тоже стоит готовиться к переходу на KRaft.
В следующем релизе 4.0 поддержка ZooKeeper будет полностью убрана.
И этот релиз уже на подходе — сейчас решают последние проблемы.
Кроме того, KRaft был признан готовым для производства с Kafka 3.3 (ноябрь 2022 года) — уже два года назад.
Они даже удалили старый класс
KafkaController
! Это был один из моих любимых классов в Kafka «Confluent Cloud теперь на 100% работает на KRaft, и вам тоже стоит перейти.»
Поздравления команде и спасибо за развитие Kafka!
Please open Telegram to view this post
VIEW IN TELEGRAM
Essential Java
Это бесплатная книга о языке программирования Java.
Книга написана, чтобы предоставить четкое и лаконичное объяснение тем как для начинающих, так и для опытных программистов.
Большинство примеров связаны с онлайн-песочницей, где можно изменять код и запускать его заново.
Вы также можете быстро перейти к нужному разделу, используя оглавление слева и поиск сверху ( для поиска можно использовать только клавиатуру, нажав😏
➖ Содержание основано на теперь уже заброшенном проекте StackOverflow Documentation, но было значительно переработано и улучшено.
📖 Читать: ссылка
👉 Java Portal | #книги
Это бесплатная книга о языке программирования Java.
Книга написана, чтобы предоставить четкое и лаконичное объяснение тем как для начинающих, так и для опытных программистов.
Большинство примеров связаны с онлайн-песочницей, где можно изменять код и запускать его заново.
Вы также можете быстро перейти к нужному разделу, используя оглавление слева и поиск сверху ( для поиска можно использовать только клавиатуру, нажав
/
). Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Этот ресурс имба для создания баз данных!
✓ Создавай и модифицируй таблицы с помощью естественного языка
✓ Рисуй диаграммы с отношениями
✓ Используй ИИ, чтобы запросить все, что хочешь
✓ Разворачивай с одним кликом
🔜 ссылка
👉 Java Portal | дать буст #ресурсы
✓ Создавай и модифицируй таблицы с помощью естественного языка
✓ Рисуй диаграммы с отношениями
✓ Используй ИИ, чтобы запросить все, что хочешь
✓ Разворачивай с одним кликом
Please open Telegram to view this post
VIEW IN TELEGRAM
Полный курс по Spring Boot с проектами за 15 часов.
Видео представляет собой полный курс по Spring Boot, который включает в себя создание и настройку проектов, разработку REST API, работу с JSON, обработку параметров и исключений, а также построение реальных приложений, таких как системы управления сотрудниками и банковские приложения.😤
📲 Cмотреть источник: тут
👉 Java Portal | #видео
Видео представляет собой полный курс по Spring Boot, который включает в себя создание и настройку проектов, разработку REST API, работу с JSON, обработку параметров и исключений, а также построение реальных приложений, таких как системы управления сотрудниками и банковские приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
Ментальная карта для изучения структур данных и алгоритмов
Карта помогает систематизировать знания о производительности и применении различных алгоритмов и структур данных.🔥
👉 Java Portal | #ресурсы
Карта помогает систематизировать знания о производительности и применении различных алгоритмов и структур данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Запутались в терминах EntityManager, Hibernate Session, кэш первого уровня и PersistenceContext?
Ключ к их пониманию в том, что все они привязаны к транзакции.🚬
Без
С
👉 Java Portal | #tips
Ключ к их пониманию в том, что все они привязаны к транзакции.
Без
@Transactional,
каждый findById() запускает SQL-запрос SELECT. С
@Transactional
выполняется только один SELECT.Please open Telegram to view this post
VIEW IN TELEGRAM
Туториал по Spring Boot + jOOQ - серия из 5 частей 🔥
Начни прямо сейчас: ссылка
Узнай, как:
☑ Начать работать с jOOQ
☑ Интегрировать jOOQ с Spring Boot
☑ Генерировать код для типобезопасных запросов
☑ Обрабатывать отношения «один ко многим», «многие к одному» и «многие ко многим»
👉 Java Portal | #cтатья
Начни прямо сейчас: ссылка
Узнай, как:
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы не можете вспомнить название команды, можно использовать ключевые слова для поиска в мануалах. Синтаксис следующий:
$ man -k keyword
Например, чтобы найти команды, связанные с zip, введите:
$ man -k zip
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Модульные тесты необходимы, но их написание занимает время.
Ускорьте кодинг и повысьте продуктивность, позволив AI Assistant писать модульные тесты за вас в IntelliJIDEA!👩💻
🔜 Щелкните правой кнопкой мыши по методу и выберите «
🔜 Выберите «
👉 Java Portal | #ресурсы
Ускорьте кодинг и повысьте продуктивность, позволив AI Assistant писать модульные тесты за вас в IntelliJIDEA!
AI Actions
| Generate Unit Tests
» в контекстном меню.Accept All
», если вас устраивают сгенерированные тесты, «Specify
», чтобы добавить дополнительный запрос, или «Regenerate
», чтобы попробовать снова.Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Руководство по CompletableFuture в Java с примерами | Асинхронные операции в Java
Видео объясняет использование CompletableFuture в Java, его преимущества перед Future, создание, обработку результатов, комбинирование и обработку исключений.
📲 Cмотреть источник: тут
👉 Java Portal | #видео
Видео объясняет использование CompletableFuture в Java, его преимущества перед Future, создание, обработку результатов, комбинирование и обработку исключений.
Please open Telegram to view this post
VIEW IN TELEGRAM
Инструменты, которые использует или должен знать каждый Java-разработчик.
🟢 IDE (например, Eclipse, IntelliJ)
🟢 Веб-сервисы (RESTful, SOAP)
🟢 Документация API (Swagger, JavaDoc)
🟢 Безопасность (OAuth 2.0, Kerberos, JWT)
🟢 Инструменты сборки (Maven, Gradle)
🟢 Контроль версий (Git)
🟢 Юнит-тестирование (JUnit, Mockito)
🟢 Облачные платформы (AWS, Google Cloud, Microsoft Azure)
🟢 Базы данных (SQL, MongoDB, Oracle)
🟢 CI/CD (Jenkins, GitLab)
🟢 Разработка фронтенда (HTML, CSS, JavaScript, Angular/React)
🟢 Логирование и мониторинг (Logback, JMX)
🟢 Контейнеризация и оркестрация (Docker, Kubernetes)
🟢 Сообщения и брокеры (Kafka, RabbitMQ)
🟢 Качество кода (SonarQube, PMD)
🟢 Доступ к базам данных (JPA, Hibernate)
👉 Java Portal | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
В Java есть необычная конструкция, называемая «Квалифицированный вызов конструктора суперкласса».
Она может понадобиться, если суперкласс является внутренним классом.
🔜 Эта конструкция отвечает за передачу суперклассу его внешнего экземпляра.
👉 Java Portal | #tips
Она может понадобиться, если суперкласс является внутренним классом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Flyway + Spring Boot | Настройка и написании миграций баз данных
Spring Boot приложении. В начале объясняется, зачем нужно версионирование БД, затем показывается обзор приложения через Amplicode Explorer. Далее демонстрируется процесс подключения Flyway, генерации скриптов инициализации и миграции для синхронизации JPA-модели с базой данных.
📲 Cмотреть источник: тут
👉 Java Portal | #видео
Spring Boot приложении. В начале объясняется, зачем нужно версионирование БД, затем показывается обзор приложения через Amplicode Explorer. Далее демонстрируется процесс подключения Flyway, генерации скриптов инициализации и миграции для синхронизации JPA-модели с базой данных.
Please open Telegram to view this post
VIEW IN TELEGRAM