Антипаттерны

Содержание

Слайд 2

Паттерн

Паттерн — это повторимая архитектурная конструкция для решения часто встречающихся проблем или

Паттерн Паттерн — это повторимая архитектурная конструкция для решения часто встречающихся проблем
ситуаций, возникающих при проектировании приложения.

2

Слайд 3

Антипаттерн

Антипаттерн — это распространенный подход к решению класса часто встречающихся проблем, который

Антипаттерн Антипаттерн — это распространенный подход к решению класса часто встречающихся проблем,
является неэффективным, рискованным или непродуктивным.

3

Слайд 4

Типы антипаттернов

Development Anti Pattern — антипаттерны архитектуры.
Management Anti Pattern — антипаттерны в

Типы антипаттернов Development Anti Pattern — антипаттерны архитектуры. Management Anti Pattern —
области управления.
Architectural antipatterns — антипаттерны проблемы разработки, возникающие при написании программы.

4

Слайд 5

God object

Божественный объект — антипаттерн, который описывает излишнюю концентрацию слишком большого количества

God object Божественный объект — антипаттерн, который описывает излишнюю концентрацию слишком большого
разношерстных функций, хранения большого количества разнообразных данных (объект, вокруг которого вращается приложение).

5

Слайд 6

Singleton

Одиночка — это самый простой паттерн, гарантирующий, что в однопоточном приложении будет

Singleton Одиночка — это самый простой паттерн, гарантирующий, что в однопоточном приложении
единственный экземпляр некоторого класса, и предоставляющий глобальную точку доступа к этому объекту.
Но паттерн ли это или антипаттерн?

6

Слайд 7

Минусы синглтона

Глобальное состояние.
Синглтон нарушает один из принципов SOLID — Single Responsibility Principle.
Зависимость

Минусы синглтона Глобальное состояние. Синглтон нарушает один из принципов SOLID — Single
обычного класса от синглтона не видна в интерфейсе класса.
Наличие синглтона снижает тестируемость.

7

Слайд 8

Poltergeist

Бесполезные (полтергейстные) классы – это классы без зависимостей, используются для вызова методов

Poltergeist Бесполезные (полтергейстные) классы – это классы без зависимостей, используются для вызова
другого класса или просто добавляют ненужный слой абстракции.

8

public class UserManager {
private UserService service;
public UserManager(UserService userService) {
service = userService;
}
User createUser(User user) {
return service.create(user);
}
String findEmailById(Long id) {
return service.findById(id).getEmail();
}
User findUserByEmail(String email) {
return service.findByEmail(email);
}
}

Слайд 9

Hard code

Суть данного антипаттерна в том, что код сильно привязан к конкретной

Hard code Суть данного антипаттерна в том, что код сильно привязан к
аппаратной конфигурации и/или системному окружению, что сильно усложняет перенос его на другие конфигурации. Данный антипаттерн тесно связан с магическими числами (они часто переплетаются).

9

public Connection buildConnection() throws Exception {
Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/someDb?character Encoding=UTF-8&characterSetResults=UTF- 8&serverTimezone=UTC", "user01", "12345qwert");
return connection;
}

Слайд 10

Boat anchor

Лодочный якорь в контексте антипаттернов означает хранение неиспользуемых частей системы, которые

Boat anchor Лодочный якорь в контексте антипаттернов означает хранение неиспользуемых частей системы,
остались после какой-то оптимизации или рефакторинга. Также некоторые части кода могли быть оставлены «на будущее», вдруг придётся ещё их использовать. По сути, это делает из кода мусорное ведро.

10

Слайд 11

Analytical paralysis

Аналитический паралич — суть паттерна заключается в чрезмерном анализировании ситуации при

Analytical paralysis Аналитический паралич — суть паттерна заключается в чрезмерном анализировании ситуации
планировании, так что решение или действие не предпринимаются, по сути парализуя разработку.

11

Слайд 12

Public Morozov

Шуточный антипаттерн паблик Морозов - это класс, который открывает доступ

Public Morozov Шуточный антипаттерн паблик Морозов - это класс, который открывает доступ
ко всем полям и методам класса-предка, не зависимо от их модификаторов видимости.

12

Слайд 13

Используемая литература

14

http://www.habr.com/
http://www.javenue.info/
https://javarush.ru/
https://yandex.ru/images/

Используемая литература 14 http://www.habr.com/ http://www.javenue.info/ https://javarush.ru/ https://yandex.ru/images/