* 일반 애플리케이션 개발과 API 개발의 차이점
- API 개발에서는 변경 관리에 대해 더 많은 노력이 필요하다는 사실
- 소프트웨어 개발에서 변경은 피할 수 없는 요소
- 새로운 요구사항, 기능 개발 요청, 그리고 버그 수정 이들 모두는
프로젝트가 처음 시작했을 때 논의되지 않았던 다양한 방법들로 소프트웨어를 발전시김
- 수백명의 최종 사용자 프로그램이 사용 중인 API 에서의 변경이란 커다란 영향력을 발생시키고
심지어는 클라이언트가 API를 더 이상 사용하지 않는 상황까지 초래
- 클라이언트가 필요로 하는 기능을 제공하면서 동시에
새로운 버전이 릴리즈 될 때 가장 이상적인 것은 클라이언트에게 어떤 영향도 미치지 않는 것이지만
이것이 힘든 경우라면 최소한의 영향만을 미치게 하는 것
* 왜 이 책이 필요한가?
- 여러분이 작성하는 코드 중 인터페이스는 가장 중요
- 왜냐하면 인터페이스에서 발생하는 문제는 구현 코드에서 버그를 수정하는 것보다 더 많은 비용을 초래
- 인터페이스의 변경은 여러분의 코드를 기반으로 하는 또 다른 모든 애플리케이션에 영향을 미칠 수 있는 반면
구현 코드의 변경은 새로운 버전의 API를 사용할 때 큰 노력을 들이지 않고 투명하게 쉽게 통합
- 어떻게 하면 고수준의 인터페이스를 생성할 수 있는지를 학습하는 것이 목표
- 구현, 테스트, 문서화, 릴리즈, 버전 관리, 유지 보수와 API의 소멸 전 과정에 걸쳐 API 개발의 내용들을 설명
- 자동화된 API 테스트에 집중
* C++ 에 집중하기
- API는 특정 프로그래밍 언어에서 표현되어야만 함
- 이런 이유로, API 설계에 충분히 기여할 수 있을 만큼 특정 언어에 제공하는 기능들을 제대로 이해
- 템플릿, 추상화, 상속, 네임스페이스, 연산자, 상수 교정 그리고 메모리 관리, STL의 사용, Pimple 관용법
댓글