2018년 1월 9일 화요일

C# API Design #1

새해 강의를 찾다가 아래 강의를 듣게 됨.
https://www.udemy.com/api-in-csharp/learn/v4/overview

API design에 대한 책은 많지만 C#에 대해서 특화된 내용이 없어서 좀 아쉽던 차에
이런 강의를 보게 됨. 하지만 강의 내용은 평범하다.

보다가 기억에 남는 것을 간단히 정리함.
하지만 강의를 들어야 모든 내용을 이해할 수 있으니 필요하면 구입해서 듣는 것도 방법임.

. API는 functionality의 모음으로 볼 수 있다.
. Nice APIs, nasty APIs는 있지만 prefect, definitely APIs는 없다.
. Private API는 잘 관리되는 동물원과 같고 Public API는 정글과 같다.

괜찮은 API의 특성에 대해서 말하고 있음
. Simplicity, Expressiveness(표현력) and Compromises(타협), Extensibility, Open-Closed Principle (OCP), Consistency

. API의 Simplicity는 API 기능과 반비례함.
. Simplicity를 측정하는 방법은 없지만 동료에게 사용하게 해보고 API를 사용하는데 얼마의 시간이 걸리는지 확인해 보는 것도 방법
. API를 만들기 위한 resource들은 제한적이므로 적정한 선에서 API를 제공할 수 밖에 없음.
. Universal APIs 따위 만들 수 없음.

API design 방법을 말하고 있는데 몇개 추려보면
. API는 최대한 간단하게 만들어라.
. API를 간단히 배워 사용할 수 있게 하라.
. 간단한 constructor들을 제공하되 필요한 parameter들에 대해 기본값을 제공하는 것도 방법
. Exception을 발생 시킬 때는 뭘 고쳐야 할지 알려줘라.
. API 자체가 어떻게 사용할 수 있는지 알 수 있도록 만들어라.
. Decent documentation

댓글 없음:

댓글 쓰기