Różnica między frameworkiem a biblioteką, IDE, interfejsem API, SDK, zestawami narzędzi? [Zamknięte]

144

Potrzebuję przykładów. Zawsze jestem zdezorientowany, więc z kilkoma przykładami mógłbym lepiej to zrozumieć.

Ponadto: czy Eclipse to API czy IDE?

Manoj hans
źródło
1
eclipse to IDE
Thielicious

Odpowiedzi:

294

IDE to zintegrowane środowisko rozwoju - suped-up edytor tekstu z dodatkowym wsparciem dla rozwijających się (takich jak projektanci form, redaktorów zasobów, etc), kompilowania i debugowania aplikacji. np. Eclipse, Visual Studio.

Biblioteka jest kawałek kodu, który można dzwonić z własnego kodu, które pomogą Ci szybciej robić rzeczy / łatwo. Na przykład biblioteka Bitmap Processing zapewni narzędzia do ładowania i manipulowania obrazami bitmapowymi, dzięki czemu nie będziesz musiał pisać całego kodu dla siebie. Zazwyczaj biblioteka oferuje tylko jeden obszar funkcjonalności (przetwarzanie obrazów lub operowanie na plikach zip)

API (interfejs programowania aplikacji) to termin oznacza funkcji / metod w bibliotece, że można zadzwonić zapytać go do robienia rzeczy dla ciebie - interfejs do biblioteki.

SDK (Software Development Kit) jest biblioteką lub grupy bibliotek (często z aplikacji dodatkowych narzędzi, plików danych oraz przykładowy kod), które pomogą Ci w tworzeniu kodu, który wykorzystuje dany system (np kod rozszerzenie do korzystania z funkcji systemu operacyjnego ( Windows SDK), rysowanie grafiki 3D za pośrednictwem określonego systemu (DirectX SDK), pisanie dodatków rozszerzających inne aplikacje (Office SDK) lub pisanie kodu, aby urządzenie takie jak Arduino lub telefon komórkowy robiło, co chcesz). SDK będzie nadal zwykle skupiać się na jednym fokusie.

Zestaw narzędzi jest jak SDK - jest to grupa narzędzi (i często bibliotek kodu), których można użyć, aby ułatwić dostęp do urządzenia lub systemu ... Chociaż może bardziej skupia się na dostarczaniu narzędzi i aplikacji niż na samych bibliotekach kodu .

Ramy jest duża biblioteka lub grupa bibliotek, które zapewnia wiele usług (zamiast być może tylko jeden skoncentrowany umiejętność jak większość bibliotek / SDK zrobić). Na przykład .NET zapewnia strukturę aplikacji - ułatwia korzystanie z większości (jeśli nie wszystkich) różnych usług, których potrzebujesz (np. Windows, grafika, drukowanie, komunikacja itp.) Do pisania szerokiej gamy aplikacji - tak więc jedna „biblioteka” zapewnia obsługę prawie wszystkiego, co musisz zrobić. Często framework dostarcza kompletną bazę, na której tworzysz własny kod, zamiast budować aplikację, która zużywa kod biblioteki do wykonywania części swojej pracy.

Oczywiście istnieje wiele przykładów, które nie będą dokładnie pasować do tych opisów.

Jason Williams
źródło
3
Można powiedzieć, że SDK, biblioteka czy framework zawierają API.
Bastien Vandamme
6
SDK to implementacja specyficzna dla klienta, ułatwiająca korzystanie z API, np. Javascript SDK dla Facebook API. Często zobaczysz wiele języków reprezentowanych w sekcji SDK dokumentacji API, np. Twilio API ma python, ruby, C # i Java sdk dla ich API. Aby trochę bardziej zmylić, nazywają to Biblioteki API i SDK, a słyszałem, że oba te terminy są używane zamiennie.
Rob
97

Analogia samochodu

wprowadź opis obrazu tutaj

IDE: MS Office of Programming. To miejsce, w którym wpisujesz swój kod, plus kilka dodatkowych funkcji, które sprawiają, że jesteś szczęśliwszym programistą. (np. Eclipse, Netbeans ). Karoseria: to jest to, czego naprawdę dotykasz, widzisz i nad czym pracujesz.

Biblioteka: biblioteka to zbiór funkcji, często pogrupowanych w wiele plików programu, ale spakowanych w jeden plik archiwum. Zawiera programy stworzone przez innych ludzi, dzięki czemu nie musisz wymyślać koła na nowo. (np. junit.jar, log4j.jar ). Biblioteka generalnie odgrywa kluczową rolę, ale całą swoją pracę wykonuje za kulisami, nie ma GUI. Silnik samochodu.

API: dokumentacja wydawcy biblioteki. Oto jak powinieneś korzystać z mojej biblioteki. (np. log4j API , junit API ). Instrukcja obsługi samochodu - tak, samochody też są dostarczane!


Zestawy

Co to jest zestaw? Jest to zbiór wielu powiązanych elementów, które współpracują ze sobą, aby zapewnić określoną usługę. Kiedy ktoś mówi, że apteczka, dostajesz wszystko, czego potrzebujesz w nagłym wypadku: plastry, aspirynę, gazę, środek antyseptyczny itp.

wprowadź opis obrazu tutaj

SDK : McDonald's Happy Meal . Masz wszystko, czego potrzebujesz (i nie potrzebujesz) starannie zapakowane: danie główne, napój, deser i bonusowa zabawka. SDK to zbiór różnych komponentów oprogramowania połączonych w pakiet, tak że są „gotowe do działania” zaraz po wyjęciu z pudełka. Często zawiera wiele bibliotek i może , ale niekoniecznie, zawierać wtyczki, dokumentację API, a nawet samo IDE. (np. iOS Development Kit ).

Zestaw narzędzi : GUI. GUI. GUI. Kiedy słyszysz „zestaw narzędzi” w kontekście programowania, często będzie to odnosić się do zestawu bibliotek przeznaczonych do tworzenia graficznego interfejsu użytkownika. Ponieważ zestawy narzędzi są skoncentrowane na interfejsie użytkownika, często są dostarczane z wtyczkami (lub samodzielnymi IDE), które zapewniają narzędzia do malowania ekranu. (np. GWT )

Framework : chociaż nie jest to powszechne pojęcie, framework może być postrzegany jako zestaw. Posiada również bibliotekę (lub zbiór bibliotek, które współpracują), która zapewnia określoną strukturę i wzór kodowania (stąd słowo, framework ). (np. Spring Framework)

Jops
źródło
41
API to nie tylko dokumentacja. Właściwie to wcale nie jest dokumentacja. Rozumiem twoją analogię, ale dokumentacja lub dokumentacja API to podręcznik twojego samochodu, a API to raczej tablica i przyciski twojego samochodu.
Bastien Vandamme
1
Możesz zrobić różnicę między GUI a API. GUI (graficzny interfejs użytkownika) to interfejs dla końcowego użytkownika nieprofesjonalnego. API (Application Programming Interface) to interfejs dla innych programów. Podczas programowania i aplikacji możesz utworzyć GUI lub API lub oba. Możesz także tworzyć inne typy interfejsów.
Bastien Vandamme
Za GUI zawsze znajduje się API. GUI tylko upraszczają przypadek użycia. W IT jest to bardziej z powodów nieprofesjonalnych, takich jak interfejsy graficzne zamiast kodu. Ale jeśli chodzi o logikę samochodu: możesz nie być w stanie samodzielnie prowadzić samochodu, musisz się nauczyć i umieć jeździć (rozważ lekcje jazdy jako przewodnik lub dokumentację). Jeśli nie chcesz tego osiągnąć, możesz zamiast tego wsiąść do autobusu lub taksówki, ponieważ nie są wymagane żadne umiejętności prowadzenia pojazdu (w tym przypadku tutaj nie ma umiejętności programowania) - dlatego uważałbym publiczne środki transportu za GUI. Brzmi zabawnie, ale cholernie prawda.
Thielicious
Nie zgadzam się z twierdzeniem „[biblioteka] nie ma GUI”. W świecie JavaScript bardzo często biblioteki zawierają GUI.
user1505520
5

Rozważ programowanie na Androida:

IDE: Eclipse itp.

Biblioteka: biblioteka android.app.Activity (klasa z całym kodem)

API: Interfejs w zasadzie wszystkie funkcje, które wywołujemy

SDK: Android SDK zapewnia biblioteki API i narzędzia programistyczne niezbędne do tworzenia, testowania i debugowania aplikacji na Androida (---- narzędzia - DDMS, emulator ---- platformy - wersje systemu operacyjnego Android, ---- platforma- narzędzia - ADB, ---- dokumentacja API)

Zestaw narzędzi: może to być pakiet ADT

Framework: duża biblioteka, ale bardziej zorientowana na architekturę

ashishpinninti
źródło
3

Innymi słowy...

IDE Nawet twój notatnik to IDE. Każde oprogramowanie, za pomocą którego piszesz / kompilujesz kod, jest IDE.

Biblioteka Zbiór kodu, który upraszcza funkcje / metody do szybkiego użycia.

API Interfejs programistyczny dla funkcji / konfiguracji, z którymi pracujesz, jego użycie jest często udokumentowane.

Dodatki SDK i / lub do celów programistycznych / testowych.

ToolKit Małe aplikacje do szybkiego użycia, często GUI.

Aplikacje GUI z interfejsem graficznym nie wymagają znajomości programowania w przeciwieństwie do interfejsów API.

Framework Bunch of APIs / huge Library / Snippets opakowane w przestrzeń nazw / lub hermetyzowane z zewnętrznego zakresu w celu kompaktowej obsługi bez konfliktów z innym kodem.

MVC Wzorzec projektowy oddzielony w modelach, widokach i kontrolerach dla dużych aplikacji. Nie są od siebie zależne i można je zmieniać / ulepszać / zastępować bez zajmowania się innym kodem.

Przykład:

Samochód (model)
Prezentowany obiekt.
Przykład w IT: formularz HTML.


Kamera (widok)
Coś, co jest w stanie zobaczyć obiekt (samochód).
Przykład w IT: przeglądarka, która renderuje stronę internetową za pomocą formularza.


Kierowca (kontroler)
Ktoś, kto prowadzi ten samochód.
Przykład w IT: Funkcje obsługujące przesyłane dane formularza.

Fragmenty Małe kody składające się tylko z kilku wierszy mogą nie być nawet kompletne, ale warte szybkiego udostępnienia.

Wtyczki Wyłączne funkcje tylko dla określonych struktur / interfejsów API / bibliotek.

Dodatki Dodatkowe moduły lub usługi dla określonych graficznych interfejsów użytkownika.

Thielicious
źródło
2

SDK reprezentuje zestaw do tworzenia oprogramowania, a IDE reprezentuje zintegrowane środowisko programistyczne. IDE to oprogramowanie lub program używany do pisania, kompilowania, uruchamiania i debugowania, na przykład Xcode. SDK jest podstawowym silnikiem IDE i zawiera wszystkie biblioteki platformy, do których aplikacja musi mieć dostęp. Jest bardziej podstawowy niż IDE, ponieważ zwykle nie ma narzędzi graficznych.

Haitham
źródło