좋은 코드, 나쁜 코드 북스터디 - chap09. 코드를 재사용하고 일반화할 수 있도록 하라

9. 코드를 재사용하고 일반화할 수 있도록 하라

초기에 노력이 좀 더 필요할 수 있지만(대개의 경우 아주 많이 필요하지는 않다) 장기적으로 보면 자신과 팀 동료들의 시간과 노력을 절약할 수 있다.

추상화 계층을 만들고 코드를 모듈화하는 것이 재사용성을 높이며, 이 장에서는 그 외의 방법에 대해 이야기 한다.

9.1. 가정을 주의하라

코드 작성 시 가정을 하면 코드가 더 단순해지거나, 더 효율적으로 되거나, 둘 다일 수도 있다. 그러나 이러한 가정으로 인해 코드가 더 취약해지고 활용도가 낮아져 재사용하기에 안전하지 않을 수 있다.

재사용 될 가능 성이 있는 코드일 수록 가정을 하지 않는 것이 바람직하다. 가정, 특히 섣부른 최적화를 위한 가정은 최대한 피하고, 가정을 해야 한다면, 그 가정에 벗어난 호출은 유효하지 않은 것으로 취급한다.

9.2. 전역 상태를 주의하라

전역 상태는 프로그램의 여러 부분 간에 정보를 공유하는 빠르고 쉬운방법으로 보이기때문에 사용하고 싶어질 경우가 있다. 하지만 전역 상태에 의존하고 있는 코드를 재사용하는 경우, 이상한 동작과 버그가 발생할 수 있다.

전역 상태 대신에 의존성 주입을 이용하는 것이 더 안전하다.

9.3. 기본 반환값을 적절하게 사용하라

상위 수준의 코드는 특정 사용 사례에 더 밀접하게 결합하므로 코드의 모든 용도에 맞는 기본값을 선택하기가 더 쉽다. 반면에 낮은 수준의 코드는 보다 근본적인 하위 문제를 해결하여 여러 사용 사례에 더 광범위하게 재사용되는 경향이 있다. 따라서 낮은 층위에서는 모든 용도에 적합한 기본값을 선택하기가 훨씬 더 어렵다.

9.4. 함수의 매개변수를 주목하라

함수가 한두 가지 정보만 필요로 할 때는 객체나 클래스의 인스턴스를 매개변수로 사용하는 것은 코드의 재사용성을 해칠 수 있다.

9.5. 제네릭의 사용을 고려하라

다른 클래스를 참조하는 코드를 작성하지만 그 클래스가 어떤 클래스인지 신경 쓰지 않는다면 제네릭의 사용을 고려해야 한다. 제네릭을 사용하면 아주 적은 양의 추가 작업이 있긴 하지만 코드의 일반화가 크게 향상된다.

Hugo로 만듦
JimmyStack 테마 사용 중