소프트웨어 개발자라면 누구나 API 디자이너다.
...
좋은 프로그램은 모듈(혹은 패키지, 혹은 클래스) 단위로 분리되어 있기 마련이고 이 모듈 사이의 인터페이스가 사실상 API이기 때문이다. 어떤 경우든 소프트웨어 개발자에게 API 디자인은 일상적인 일이다.
- 마소 10월호(프로그래밍 실전노트) -

마소 10월에 '좋은 API 디자인 개념잡기' 이야기가 실렸습니다.

지금은 다른 일들로 정신없지만..
이 시간이 지나가면 몇가지 API를 개발해야 하기 때문에 관심을 가지고 읽었습니다. 꼭 기억해야 할 내용들을 잘 정리해 주셨네요.
책에 있는 이야기들을 모두 적어놓고 늘상 살펴보고 싶지만..
출판업계를 위하여 몇가지만 적어봅니다.

좋은 API의 특징

1. 배우기 쉽다

2. (문서가 없는 경우에조차) 사용하기 쉽다. 즉, 단순휘 문서를 읽고 이해할 수 있는 수준이 아니라, 문서 없이도 사용 할 수 있는 정도로 외우기 쉬워야 한다.

3. 실수하기 어렵다. 어떻게 코드를 작성하든지 실수할 가능성이 거의 없어야 한다.

4. 해당 API를 사용해 작성된 코드는 가독성이 높고 유지보수가 쉽다.

5. 요구사항을 충족시킬 만큼 충분히 강력해야 한다. 하지만 요구사항 이상의 일을 할 수 있을 필요는 없다. 너무 강력한 API는 보통 필요 이상으로 복잡해지기 때문이다.

6. 진화할 수 있어야 한다. 시간이 지나면 새로운 요구사항이 나올 텐데, 이렇게 변화하는 요구사항을 API에 반영할 수 있도록확장의 여지를 남겨두어야 한다.

7. 실제 사용자에게 맞춰야 한다. 일례로, 과학자들을 위한 수치 연산 라이브러리와 일반적인 개발자들을 위한 간단한 수학 라이브러리의 API디자인이 동일할 수는 없다

- 마소 10월호(프로그래밍 실전노트) -


몇가지 이야기들은 최근에 읽은 '린 소프트웨어 개발:애자일 실천 도구 22가지'와 함께 이야기 될 수 있을 듯합니다. (사뭇 어려웠던 책이라서 다시 한번 더 읽어야 겠다고 생각하고 있습니다.)

그리고 마지막으로 꼭 기억해야 할 것은..
'지금 하고 있는 모든 프로그램이 API라는 생각' 이겠죠..
Posted by 달빛변신
,