Co sprawia, że świetne interfejsy API sprawiają, że są one świetne? Myślę, że przestrzeganie mantry „rób jedną rzecz i rób to dobrze” jest dobrym znakiem, a bycie dobrym mapowaniem do dziedziny problemów jest ważne, ale co mają ze sobą wspólnego świetne interfejsy API?
api-design
dan_waterworth
źródło
źródło
Odpowiedzi:
Trzeba uważać, aby nie dodawać nowego słownictwa tylko ze względu na interfejs API. Moje ulubione interfejsy API wyjaśniają mi słownictwo, które już rozumiem. Wzdłuż tych linii:
Nie dodawaj zbyt wielu abstrakcji do tego, co budujesz. Nie komplikuj.
Już muszę pomyśleć o pół tuzinie warstw abstrakcji. Nie każ mi myśleć o dodatkowych warstwach. Nie dawaj mi zbyt wielu nowych rzeczy do nauczenia, które nie zwiększą wartości mojego końcowego celu. Na przykład unikaj używania własnej specjalnej klasy plików, która działa inaczej niż typ pliku języka, tylko dlatego, że uważasz, że Twoja droga jest lepsza niż ogólnie akceptowana metoda. Trzymaj się ogólnie przyjętego sposobu, przynajmniej na swoich interfejsach, na lepsze lub na gorsze.
Trzymaj się konkretnych pomysłów
Na przykład nie próbuj ukrywać faktu, że część „modelowa” frameworka MVC stanowi interfejs użytkownika bazy danych. Skorzystaj ze znanego słownictwa dotyczącego „baz danych”. Wiem, jakie są klucze obce. Wiem, jakie są wiersze i kolumny. Porozmawiaj ze mną w tych warunkach.
Nie pobieraj niezbędnej wiedzy
Podobne do pracy z konkretnymi pomysłami. Nie ukrywaj, że mamy do czynienia z plikami, bazami danych lub wierszami w bazach danych. Znam te rzeczy. Jeśli mam do czynienia z kontenerem, takim jak Lista, istnieje duża szansa, że muszę znać złożoność algorytmiczną typowych operacji. Możesz to bardzo uprościć, po prostu mówiąc mi, że jest to „lista połączona” lub „tablica”. Ogromny zestaw pomysłów zostanie nagle zastosowany do tego, co robisz i nagle wszystko to będzie miało sens. Nie twórz własnego zestawu pomysłów, których muszę się nauczyć, gdy będę już dysponować bogatym i użytecznym zestawem terminologii, aby zastosować się do problemu.
Zmniejsz liczbę potrzebnych terminów w moim słowniku
Jeśli używam twojego API do otwierania dowolnego pliku obrazu, nie powinienem zbytnio myśleć o pngs vs. gifs vs. jpgs. Zrobisz to dla mnie. To twoja podstawowa kompetencja, nie moja. Mam niejasne zrozumienie, że masz dla mnie trochę magii.
źródło
Przydatny interfejs API ma następujące funkcje:
X
ta różni się całkowicie od konwencji ustawionej przez resztę interfejsu API.źródło
Świetne interfejsy API mają świetną dokumentację.
źródło
źródło
To pytanie jest omówione w „Praktycznym projektowaniu API: Wyznania architekta Java Framework” autorstwa Jaroslava Tulacha z zespołu NetBeans.
źródło
Najprostszy użyteczny interfejs i dobre konwencje nazewnictwa.
źródło