개발/기타

Avoid Hasty Abstractions(AHA)

JonghwanWon 2023. 8. 28. 01:41

기존 코드가 복잡하고 이해하기 어려울수록(코드를 만드는 데 더 많은 투자가 이루어질수록) 코드를 유지해야 하는 압박감을 더 많이 느낀다. 여기서 매몰비용의 오류가 발생한다.

매몰비용의 오류?
미래에 발생할 한계 편익과 한계 비용을 비교하여 의사결정을 해야 함에도 불구하고 사람들이 과거에 지출된 매몰 비용을 고려함으로써 비합리적으로 선택하는 현상

 

성급한 추상화를 피하라

 

공유하는 코드를 통해 매개변수를 전달하고 조건부 경로를 추가하고 있다면 이미 추상화가 잘못된 것이다.

추상화가 잘못된 것으로 판단된다면 가장 좋은 전략은 다시 중복코드를 생산해 무엇이 옳은지 보는 것.

즉, 잘못된 추상화에 대처할 때 가장 빠른 방법은 되돌아가는 것이다.

이것은 후퇴가 아니라 더 나은 방향으로 나아가는 길이다.

 

중복된 부분을 발견하고 이를 추출하여 추상화 하는 것도 필요하지만, 관점을 바꾸고 현재의 요구 사항에 비추어 추상화를 다시 생각해 볼 수 있도록 하자.

어떤 요구 사항이 적용될지는 알 수 없다는 사실을 염두에 두고, 매몰비용을 두려워하지 말자.

 

참고

 

AHA Programming 💡

Stay up to date Subscribe to the newsletter to stay up to date with articles, courses and much more! Learn more Stay up to date Subscribe to the newsletter to stay up to date with articles, courses and much more! Learn more All rights reserved © Kent C. D

kentcdodds.com

 

The Wrong Abstraction — Sandi Metz

I've been thinking about the consequences of the "wrong abstraction."  My RailsConf 2014 "all the little things" talk included a section where I asserted: > duplication is far cheaper than the wrong abstraction And in the summary, I went on to advise: >

sandimetz.com