Java Portal | Программирование
11.4K subscribers
805 photos
60 videos
21 files
600 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
加入频道
Принципы проектирования программного обеспечения 👇

[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 | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Полезная подсказка по Linux 😏

Команда ls — это отличный инструмент командной строки для отображения файлов и каталогов в Linux.

Однако lsd — это ещё более современная альтернатива команде ls. Она предлагает иконки, цветной вывод и представляет информацию в более наглядном и удобном для чтения формате.

$ lsd -lah


Если команда lsd не предустановлена в вашей системе, обратитесь к документации вашей операционной системы, чтобы узнать, как её установить.

👉 Java Portal | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
GRADLE. Сборщик проектов. (Java Enterprise - полный курс)

Курс посвящен Gradle, его конфигурации, структуре, управлению зависимостями, созданию тасков, плагинов и работе с многомодульными проектами.

📲 Cмотреть источник: тут

👉 Java Portal | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
Как работает Java.

На изображении представлена схема работы Java. 🤯

1 Java-разработчик пишет код на Java, создавая .java файл.
2 Компилятор (javac) компилирует этот код, преобразуя его в байт-код и создавая .class файл.
3 Байт-код выполняется виртуальной машиной Java (JVM) на основе установленного Java Runtime Environment (JRE).
4.JVM начинает выполнение с метода public static void main.
5 Результатом выполнения программы является вывод.

Для работы требуется установка JDK, который обеспечивает необходимые инструменты и библиотеки. Код может запускаться на любой операционной системе и оборудовании, где доступна JVM.

👉 Java Portal | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram бот + ИИ Jlama своими руками

📖 Читать: ссылка

👉 Java Portal | #cтатья
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 года) — уже два года назад.

Они даже удалили старый класс KafkaController! Это был один из моих любимых классов в Kafka 😮

«Confluent Cloud теперь на 100% работает на KRaft, и вам тоже стоит перейти.»

Поздравления команде и спасибо за развитие Kafka!

👉 Java Portal | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Essential Java

Это бесплатная книга о языке программирования Java.

Книга написана, чтобы предоставить четкое и лаконичное объяснение тем как для начинающих, так и для опытных программистов.

Большинство примеров связаны с онлайн-песочницей, где можно изменять код и запускать его заново.

Вы также можете быстро перейти к нужному разделу, используя оглавление слева и поиск сверху ( для поиска можно использовать только клавиатуру, нажав /). 😏

Содержание основано на теперь уже заброшенном проекте StackOverflow Documentation, но было значительно переработано и улучшено.

📖 Читать: ссылка

👉 Java Portal | #книги
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 | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
Ментальная карта для изучения структур данных и алгоритмов

Карта помогает систематизировать знания о производительности и применении различных алгоритмов и структур данных. 🔥

👉 Java Portal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
Введение в реактивное программирование

📖 Читать: ссылка

👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
Запутались в терминах EntityManager, Hibernate Session, кэш первого уровня и PersistenceContext?

Ключ к их пониманию в том, что все они привязаны к транзакции. 🚬

Без @Transactional,каждый findById() запускает SQL-запрос SELECT.
С @Transactional выполняется только один SELECT.

👉 Java Portal | #tips
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
💡 Быстрый совет по Linux

Если вы не можете вспомнить название команды, можно использовать ключевые слова для поиска в мануалах. Синтаксис следующий:

$ man -k keyword

Например, чтобы найти команды, связанные с zip, введите:

$ man -k zip


👉 Java Portal | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Модульные тесты необходимы, но их написание занимает время.

Ускорьте кодинг и повысьте продуктивность, позволив AI Assistant писать модульные тесты за вас в IntelliJIDEA! 👩‍💻

🔜 Щелкните правой кнопкой мыши по методу и выберите «AI Actions | Generate Unit Tests» в контекстном меню.
🔜 Выберите «Accept All», если вас устраивают сгенерированные тесты, «Specify», чтобы добавить дополнительный запрос, или «Regenerate», чтобы попробовать снова.

👉 Java Portal | #ресурсы
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 | #видео
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
Путеводитель по техническим транзакциям с Camunda 8 и Spring

📖 Читать: ссылка

👉 Java Portal | #cтатья
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 | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM