Java Portal | Программирование
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика Связь: @devmangx РКН: https://clck.ru/3H4WUg
Show more📈 Analytical overview of Telegram channel Java Portal | Программирование
Channel Java Portal | Программирование (@java_iibrary) in the Russian language segment is an active participant. Currently, the community unites 12 130 subscribers, ranking 10 377 in the Technologies & Applications category and 54 419 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 12 130 subscribers.
According to the latest data from 05 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -142 over the last 30 days and by -1 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 11.75%. Within the first 24 hours after publication, content typically collects 6.20% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 426 views. Within the first day, a publication typically gains 753 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 4.
- Thematic interests: Content is focused on key topics such as boot, string, void, архитектура, resttemplate.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика
Связь: @devmangx
РКН: https://clck.ru/3H4WUg”
Thanks to the high frequency of updates (latest data received on 06 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
findAll() — вызывает 1 запрос к авторам + по 1 запросу на книги каждого автора → N+1 запросов
☑JOIN FETCH в @Query — решает проблему, загружая авторов и их книги одним SQL-запросом
Показана разница в коде и как избежать лишних запросов при загрузке связанных сущностей (Author → Book)
👉 Java Portal$ mvn archetype:generate Создание нового Maven-проекта $ mvn clean Очистка директории target $ mvn compile Компиляция исходного кода $ mvn test Запуск unit-тестов $ mvn package Сборка проекта в JAR/WAR $ mvn install Установка артефакта в локальный Maven-репозиторий $ mvn install -DskipTests Пропустить тесты при сборке $ mvn spring-boot:run Запуск Spring Boot приложения (если используется spring-boot-maven-plugin) $ mvn dependency:resolve Обновление зависимостей $ mvn dependency:tree Вывод дерева зависимостей $ mvn clean compile package Запуск целей в указанной фазе $ mvn validate Проверка структуры проекта👉 Java Portal
class Vehicle {
public void startEngine() { ... }
}
class Bicycle extends Vehicle {
@Override
public void startEngine() {
throw new UnsupportedOperationException("Bicycles don't have engines!");
}
}
* Любой тест, который ожидает, что любой Vehicle сможет запустить двигатель, падает.
* Подкласс ведёт себя иначе, чем базовый класс — LSP нарушен.
✓ Как исправить
Разделить ответственность через интерфейсы:
interface Vehicle {}
interface Motorized {
void startEngine();
}
class Car implements Vehicle, Motorized {
public void startEngine() { ... }
}
class Bicycle implements Vehicle {
// без двигателя — всё корректно
}
Теперь только те объекты, которым действительно нужен двигатель, реализуют Motorized.
* Подклассы не должны ломать ожидания, заданные базовым классом
* Поведение лучше разделять, чем «затыкать» методы исключениями
* LSP делает код предсказуемым и безопасным для расширения
👉 Java Portalimport java.util.Date; // неиспользуемый импорт
import java.util.Scanner;
public class Greeting {
private int age; // неиспользуемая переменная
public void sayHello() {
Scanner sc = new Scanner(System.in);
System.out.println("Hello, world!");
sc.close();
}
}
После:
import java.util.Scanner;
public class Greeting {
public void sayHello() {
Scanner sc = new Scanner(System.in);
System.out.println("Hello, world!");
sc.close();
}
}
#Java #CleanCode
👉 Java Portal@ComponentScan аккуратно, чтобы не сканировать целые пакеты по ошибке.
Предположим, вы используете что-то вроде @ComponentScan("com.mycompany"):
❌Увеличивается время сканирования classpath
❌Замедляется запуск приложения
❌Могут подгружаться классы, не предназначенные быть Spring-компонентами
Лучшие практики:
✅Полагаться на значения по умолчанию:
@SpringBootApplication
public class MyApplication { }
По умолчанию сканируются только подпакеты пакета, где находится MyApplication
✅Сканировать конкретные подпакеты:
@ComponentScan({
"com.mycompany.myapp.product",
"com.mycompany.myapp.order"
})
👉 Java PortalSystem.lineSeparator().
👉 Java PortalCollections.frequency(...)
Пример:
int count = Collections.frequency(
List.of("red", "green", "red"),
"red"
);
System.out.println(count); // 2
👉 Java Portal
Available now! Telegram Research 2025 — the year's key insights 
