IT story

API 설계를위한 모범 사례 및 지침

hot-time 2020. 9. 1. 08:01
반응형

API 설계를위한 모범 사례 및 지침


API를 설계하는 동안 준수 할 수있는 몇 가지 지침과 모범 사례는 무엇입니까? 최소한 API는 사용하기 쉽고 유연해야한다는 것을 알고 있습니다. 불행히도 이러한 용어는 다소 주관적 일 수 있으므로 좋은 API 디자인과 관련된 구체적인 지침을 찾고있었습니다.


Joshua Bloch- 좋은 API를 디자인하는 방법과 중요한 이유

예제는 Java에 있지만 여전히 병렬을 그릴 수 있습니다. 특정 기술을 언급하지 않았기 때문에; 나는 당신이 틈새 솔루션을 원하지 않는다고 가정합니다.


수많은 API를 사용해야하는 사람으로서 ...

일관된 방식으로 API를 작성하십시오.

  1. API 자체 내에서 일관된 이름 지정. 동사, 명사, 키워드를 정확히 같은 스타일로 사용하십시오.

  2. 사용되는 대상 환경과 일치합니다. .NET 인 경우 Microsoft의 명명 지침을 참조하십시오.

  3. 일관된 개념. 공장 패턴? 빌더 패턴? 정적 방법? 인터페이스? 하나만 골라서 고수하십시오. 정말. 규칙에 대한 작은 예외 는 없습니다 . 엄지 손가락이 크게 튀어 나올 것입니다. 예외가 2 개 이상입니까? 귀하의 API는 점점 더 아마추어입니다.

여기에 또 다른 것이 있습니다 : 특이성.

  1. 내가 구현할 수있는 기본 클래스를 제공하기로 선택한 경우 구현할 잘 정의 된 함수가 거의 없어야합니다. "GetData ()"가 "object []"를 반환하고이를 구현할 것이라고 말하지 말고 string []으로 캐스트해야하는 이유를 파악한 다음 20 번 호출되는 이유를 디버깅하십시오. DataPoint [] GetChartData (), string [] GetLabelData () 등을 사용하는 것이 훨씬 낫고 구현해야 할 항목을 선택하도록합니다.

  2. PostRenderColorWheelModifyHSVBaseHandler라는 이름으로 어리석게 굴지 마십시오. 종종 매우 특정한 것을 더 일반적인 이름 + 매개 변수로 리팩터링 할 수 있습니다.

  3. 문자열 매개 변수는 절대 아닙니다! 열거를 사용하십시오. 다음과 같은 핸들러를 사용하고 싶지 않습니다.

    PostRenderHandler ( "ColorWheel", "HSV", someDelegate);

조사 할 수있는 열거 형을 선호합니다.

PostRenderHandler(ModuleType.ColorWheel, Options.ColorWheelHSV, someDelegate);

이봐, 난 계속할 수있어 ... Josh Bloch에게 힘을 실어 주죠. 잘 작성된 API는 정말 멋질 수 있습니다 ... 나쁜 API는 정말 고통 스러울 수 있습니다.


좋은 프리젠 테이션 여호수아 블로흐에서이 주제에 대한이. 프레젠테이션은 Java를 사용하지만 아이디어는 언어에 독립적입니다. 빠른 개요를위한 또 다른 소스 (pdf) .


이것은 Microsoft의 링크입니다. http://msdn.microsoft.com/en-us/library/ms229042.aspx

다음 책도 있습니다. 프레임 워크 디자인 지침 : 재사용 가능한 .NET 라이브러리의 규칙, 관용어 및 패턴


귀하의 질문은 귀하가 제공하는 정보의 양으로이 정도의 공간에서 답변되지 않을 것이라고 생각합니다. Google에 'api design'을 입력하여 여러 링크를 넣었고 첫 페이지에서 꽤 좋아 보이는 것을 얻습니다.

http://web.archive.org/web/20151229055009/http://lcsd05.cs.tamu.edu/slides/keynote.pdf

http://www.artima.com/weblogs/viewpost.jsp?thread=142428

http://web.archive.org/web/20090520234149/http://chaos.troll.no/~shausman/api-design/api-design.pdf

참고 URL : https://stackoverflow.com/questions/2619854/best-practices-and-guidelines-for-designing-an-api

반응형