Framework vs Library vs IDE vs API vs SDK vs Toolkits arasındaki fark? [kapalı]


144

Bazı örnekler istiyorum. Her zaman kafam karışıyor, bu yüzden bazı örneklerle daha iyi anlayabilirim.

Ayrıca: Eclipse bir API veya IDE mi?


1
tutulma bir IDE'dir
16:48

Yanıtlar:


294

Bir IDE (örneğin formlar tasarımcılar, kaynak editörler, vb gibi) gelişmekte derlemek ve uygulamalarında hata ayıklama için ek destek ile bir suped-up metin editörü - entegre bir geliştirme ortamıdır. Eclipse, Visual Studio gibi.

Bir Kütüphane Eğer kendi kodundan çağırabilir kolayca / daha çabuk şeyler yapmak yardım etmek olduğunu bir kod grubudur olduğunu. Örneğin, bir Bitmap İşleme kütüphanesi, bitmap görüntülerini yüklemek ve işlemek için olanaklar sunarak tüm bu kodu kendiniz yazmak zorunda kalmanızı sağlar. Genellikle bir kütüphane yalnızca bir işlev alanı sunar (görüntüleri işlemek veya zip dosyalarında çalışmak)

Bir API kütüphanesine arayüz - (uygulama programlama arayüzü) sizin için bir şeyler yapması gerektiğini sormak için arayabileceğiniz bir kütüphanede işlevleri / yöntemleri anlamına gelen bir terimdir.

Bir SDK (yazılım geliştirme kiti), belirli bir sistemi (örneğin bir işletim sisteminin özelliklerini kullanmak için uzatma kodu) geliştirmenize yardımcı olan bir kitaplık veya kütüphane grubudur (genellikle ekstra araç uygulamaları, veri dosyaları ve örnek kod ile). Windows SDK), belirli bir sistemle (DirectX SDK) 3D grafikler çizme, diğer uygulamaları genişletmek için eklentiler yazma (Office SDK) veya Arduino veya cep telefonu gibi bir cihazı istediğinizi yapmak için kod yazma). Bir SDK'nın genellikle tek bir odağı olacaktır.

Bir araç seti bir SDK'ya benzer - bir aygıta veya sisteme erişmeyi kolaylaştırmak için kullanabileceğiniz bir araç grubu (ve genellikle kod kitaplıkları) ... .

Bir çerçeve , birçok hizmet sunan büyük bir kütüphane veya kütüphane grubudur (çoğu kütüphanenin / SDK'nın yaptığı gibi belki de sadece bir odaklanmış yetenek yerine). Örneğin, .NET bir uygulama çerçevesi sağlar - geniş bir uygulama yelpazesi yazmak için ihtiyacınız olan farklı hizmetlerin çoğunu (hepsi değilse de) kullanmayı kolaylaştırır (örneğin, Windows, grafik, yazdırma, iletişim vb.) "kütüphane" yapmanız gereken hemen hemen her şey için destek sağlar. Genellikle bir çerçeve, işinin bir bölümünü yapmak için kütüphane kodunu tüketen bir uygulama oluşturmak yerine, kendi kodunuzu oluşturduğunuz eksiksiz bir temel sağlar.

Tabii ki vahşi doğada bu tanımlarla tam olarak eşleşmeyecek birçok örnek var.


3
SDK, kütüphane veya çerçevenin API içerdiğini söyleyebilirsiniz.
Bastien Vandamme

6
Bir SDK, bir API'nin, örneğin Facebook API için javascript SDK'sının tüketimini kolaylaştırmak için istemciye özgü bir uygulamadır. Genellikle API belgelerinin SDK bölümünde temsil edilen birden fazla dil görürsünüz, örneğin, twilio API'sı API'ları için bir python, ruby, C # ve Java sdk'ye sahiptir. Sadece biraz daha kafa karıştırmak için API Kütüphaneleri ve SDK'lar diyorlar ve her iki terimin de birbirinin yerine kullanıldığını duydum.
Rob

97

Araba Analojisi

resim açıklamasını buraya girin

IDE: MS Programlama Ofisi. Kodunuzu yazdığınız yer ve sizi daha mutlu bir programcı yapmak için bazı ek özellikler. (örn. Eclipse, Netbeans ). Araba gövdesi: Gerçekten dokunduğunuz, gördüğünüz ve üzerinde çalıştığınız şey bu.

Kütüphane: Kütüphane , genellikle birden fazla program dosyasında gruplandırılmış, ancak tek bir arşiv dosyasında paketlenmiş bir işlevler topluluğudur. Bu, diğer kişiler tarafından oluşturulan programları içerir, böylece tekerleği yeniden icat etmek zorunda kalmazsınız. (örneğin junit.jar, log4j.jar ). Bir kütüphane genellikle kilit bir role sahiptir, ancak tüm çalışmalarını sahne arkasında yapar, GUI'si yoktur. Otomobilin motoru.

API: Kütüphane yayıncısının belgeleri. Kitaplığımı bu şekilde kullanmalısınız. (ör. log4j API , junit API ). Otomobilin kullanım kılavuzu - evet, arabalar da bir tane ile geliyor!


Setleri

Kit nedir? Belirli bir hizmet sunmak için birlikte çalışan birçok ilgili öğenin bir koleksiyonudur. Birisi ilaç seti dediğinde, acil bir durumda ihtiyacınız olan her şeyi alırsınız: sıvalar, aspirin, gazlı bez ve antiseptik, vb.

resim açıklamasını buraya girin

SDK : McDonald's'ın Mutlu Yemeği . İhtiyacınız olan her şeye sahipsiniz (ve ihtiyacınız yok) düzgün bir şekilde kutulu: ana yemek, içecek, tatlı ve bonus oyuncak. Bir SDK, bir pakete monte edilmiş bir grup farklı yazılım bileşenidir, öyle ki bunlar kutudan çıkar çıkmaz "harekete geçmeye hazır" olur. Genellikle birden fazla kütüphaneler ve içerir kutu , ancak mutlaka eklentileri, API belgelerini, hatta bir IDE kendisi içeremez. (örneğin iOS Geliştirme Kiti ).

Araç seti : GUI. GUI. GUI. Bir programlama bağlamında 'araç seti' duyduğunuzda, genellikle GUI geliştirme amaçlı bir dizi kütüphaneye atıfta bulunulur. Araç setleri UI merkezli olduğundan, genellikle ekran boyama yardımcı programları sağlayan eklentiler (veya bağımsız IDE'ler) ile birlikte gelirler. (örn. GWT )

Çerçeve : Yaygın bir kavram olmasa da, bir çerçeve kit olarak görülebilir. Ayrıca, belirli bir kodlama yapısı ve modeli (dolayısıyla kelime, çerçeve ) sağlayan bir kütüphaneye (veya birlikte çalışan bir kütüphane koleksiyonuna ) sahiptir. (örneğin Spring Framework)


41
Bir API yalnızca belgeler değildir. Aslında bu hiç bir dokümantasyon değil. Benzetmenizi anlıyorum, ancak belgeler veya API belgeleri aracınızın el kitabı ve API daha çok arabanızın kartı ve düğmeleri.
Bastien Vandamme

1
GUI ve API arasındaki farkı yapabilirsiniz. GUI (Grafik Kullanıcı Arayüzü), profesyonel olmayan son kullanıcı için arayüzdür. API (Uygulama Programlama Arayüzü) diğer programlar için arayüzdür. Geliştirdiğinizde ve uyguladığınızda bir GUI veya API veya her ikisini birden oluşturabilirsiniz. Ayrıca başka tür arayüzler de oluşturabilirsiniz.
Bastien Vandamme

GUI'nin arkasında her zaman bir API vardır. GUI'ler yalnızca kullanım durumunu basitleştirir. BT'de daha çok kod yerine grafik arayüzler gibi profesyonel olmayan nedenlerle. Yine de araba mantığınız hakkında: Kendi başınıza araba süremeyebilirsiniz, nasıl süreceğinizi öğrenmeniz ve bilmeniz gerekir (dersleri bir eğitim veya doküman olarak kullanmayı düşünün). Bunu başarmak istemiyorsanız, bunun yerine bir otobüse veya taksiye binmek isteyebilirsiniz, çünkü sürüş becerileri gerekli değildir (bu durumda burada hiçbir programlama becerisi yoktur) - bu nedenle toplu taşıma araçlarını GUI'ler olarak düşünürüm. Kulağa komik ama lanet gerçek.
17:26

"[Kütüphane] 'nin GUI'si yok" fikrine katılmıyorum. JavaScript dünyasında kütüphanelerin GUI içermesi çok yaygındır.
user1505520

5

Android Geliştirme'yi düşünün:

IDE: Tutulma vb.

Kütüphane: android.app.Aktivite kütüphanesi (Tüm kodlu sınıf)

API: Arayüz temelde çağırdığımız tüm fonksiyonlar

SDK: Android SDK, Android için uygulamalar oluşturmak, test etmek ve hata ayıklamak için gereken API kitaplıklarını ve geliştirici araçlarını sağlar (---- araçlar - DDMS, Emulator ---- platformları - Android işletim sistemi sürümleri, ---- platform- araçları - ADB, ---- API dokümanları)

ToolKit: ADT Paketi olabilir

Çerçeve: Büyük kütüphane ancak mimariye yönelik


3

Diğer bir deyişle...

IDE Not defteri bile bir IDE'dir. Kod yazdığınız / derlediğiniz her yazılım bir IDE'dir.

Kütüphane Hızlı kullanım için fonksiyonları / yöntemleri basitleştiren bir grup kod.

API Çalıştığınız işlevler / yapılandırma için bir programlama arabirimi, kullanımı genellikle belgelenir.

SDK Ekstraları ve / veya geliştirme / test amaçlı.

Hızlı kullanım, genellikle GUI'ler için ToolKit Tiny uygulamaları.

Grafik arayüzlü GUI Uygulamaları, API'lerin aksine programlama bilgisi gerektirmez.

iskelet Bir ad alanına sarılmış / veya başka kodlarla çakışma olmadan kompakt kullanım için dış kapsamdan kapsüllenmiş API / dev Kütüphane / Parçacıklar.

MVC Büyük uygulamalar için Modeller, Görünümler ve Kontrolörlerde ayrılmış bir tasarım deseni. Birbirlerine bağımlı değildirler ve diğer kodlarla ilgilenmeksizin değiştirilebilir / geliştirilebilir / değiştirilebilirler.

Misal:

Araba (Model)
Sunulan nesne.
BT Örneği: Bir HTML formu.


Kamera (Görünüm)
Nesneyi (araba) görebilen bir şey.
BT Örneği: Form içeren bir web sitesi oluşturan tarayıcı.


Sürücü (Denetleyici)
O arabayı kullanan biri.
BT'de örnek: Gönderilen form verilerini işleyen işlevler.

Parçacıklar Sadece birkaç satırlık küçük kodlar, tam olmayabilir, ancak hızlı bir paylaşım için değer olabilir.

Eklentiler Yalnızca belirli çerçeveler / API'ler / kitaplıklar için özel işlevler.

Eklentiler Belirli GUI'ler için ek modüller veya hizmetler.


2

SDK yazılım geliştirme kitini, IDE ise entegre geliştirme ortamını temsil eder. IDE yazılımdır veya program Xcode gibi yazmak, derlemek, çalıştırmak ve hata ayıklamak için kullanılır. SDK, IDE'nin temel motorudur ve bir uygulamanın erişmesi gereken tüm platform kitaplıklarını içerir. Genellikle grafik araçlara sahip olmadığı için bir IDE'den daha basittir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.