AHA — это аббревиатура от «Избегайте поспешных абстракций», придуманная Кентом К. Доддсом. И речь идет о том, чтобы разбить большую абстракцию на маленькие части. Таким образом, код более прост для понимания другими разработчиками программного обеспечения.

Давайте рассмотрим аналогию с использованием принципа AHA.

Это Адам, разработчик программного обеспечения XYZ Business Inc.

Его задача сделать функцию с валидацией для создания пользователя.

Итак, он кодирует так.

В результате createNewUser() — это обширный метод, потому что он имеет много кодов, и происходит множество проверок. Следовательно, если появятся дополнительные коды, касающиеся будущего обслуживания, этот код может вызвать дилемму.

Внезапно Адам осознает риск. Итак, он следовал принципу программирования AHA, а затем начал реорганизовывать свою реализацию.

Так вот, Его код выглядит так.

Судя по всему, код понятен, и если возникает проблема, его можно спокойно отладить. Кроме того, легко обновлять и добавлять новую логику.

В целом принцип AHA аналогичен принципу единой ответственности. Он направлен на то, чтобы функции несли одну ответственность, и основная идея состоит в том, чтобы избежать большой абстракции. Так что, в конце концов, кодовая база выглядит элегантно и удобно в обслуживании.

Автор: Марк Кеннет Ломио | Инженер-программист полного стека | BlastAsia, Inc.

Использованная литература:

https://medium.com/nerd-for-tech/dry-wet-or-aha-7c2132aaf047

https://kentcdodds.com/blog/aha-programming

https://dev.to/andreacanton/aha-programming-vs-single-responsibility-principle-4go

https://stephencharlesweiss.com/aha-avoid-hasty-abstraction