TGViewer
Java Portal | Программирование Java Portal | Программирование @java_iibrary · 11.6K subscribers
Post #1545 2.51K
Плохие практики в коде, которые кажутся безобидными (но это не так)

1) Чрезмерное использование private-методов, скрывающее сложность

Когда private-методов слишком много, это ломает читаемость и разносит логику по коду. Визуально всё выглядит «чисто», но важные логические шаги оказываются скрытыми.

Когда это плохо:
Вы выносите код в private-методы просто ради самого факта выноса, а не потому что они переиспользуемы или несут отдельный смысл.

Как лучше:
Выделяйте разные зоны ответственности в отдельные классы или сервисы, которые сотрудничают между собой.

2) Автоматическое добавление private + геттеров/сеттеров по умолчанию

Бездумное добавление геттеров и сеттеров превращает ООП в просто «структуры с методами». Это нарушает инкапсуляцию, а не сохраняет её.

Вместо этого:

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

3) Чрезмерное использование static-методов и переменных

static-методы кажутся удобными, но убивают тестируемость и гибкость. Они привязывают код к жёсткому глобальному состоянию.

Как лучше:
Используйте внедрение зависимостей или передавайте нужную конфигурацию явно туда, где она требуется.

4) Слишком большой класс (“God Object”)

Огромный класс, который делает всё подряд, превращается в чёрный ящик — его сложно тестировать, менять и понимать.

Как лучше:

● Применяйте принцип единственной ответственности (Single Responsibility Principle): у класса должна быть только одна причина для изменения.

● Разделяйте обязанности между меньшими по размеру классами или модулями.

5) Скрытие семантики null / Optional

Возврат null или скрытое использование Optional приводит к неожиданным ошибкам во время выполнения. Отсутствие или наличие значения должно быть выражено явно.

Как лучше:

● Используйте Optional<T> или другой задокументированный способ, чтобы показать, что результат может отсутствовать.

● Если это действительно ошибка — выбрасывайте чётко определённое исключение.

👉 Java Portal
  • 👍 10
  • ❤ 5
  • 🔥 1
More from @java_iibrary
  1. Sep 30, 2026Почему один и тот же Java-файл .class запускается на Windows, Linux и macOS без перекомпил…
  2. Sep 30, 2026Docker прост, пока всё работает. Но что делать, если контейнер постоянно перезапускается,…
  3. Sep 29, 2026Эволюция языков программирования 1940-е → Машинный код ⬇️ 1950-е → Ассемблер ⬇️ 1960-е → F…
  4. Sep 29, 2026Большинство Java-разработчиков используют эти термины каждый день. Удивительно, но многие…
  5. Sep 28, 2026💡 Java: не создавайте ресурсоёмкие объекты, пока они действительно не понадобятся. ✅ Иниц…
  6. Sep 28, 2026Проблема в продакшене. Приложение зависло. Вы запускаете: jstack <pid> Через несколько сек…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →