it-swarm-tr.com

Kütüphane mi çerçeve mi API mı?

Kitaplık, çerçeve ve API arasındaki fark nedir? Hepsi benim için aynı görünüyor. Halkların bunu düşündüğünü duymak isterim.

33
Bob Dole

Kütüphane, belirli bir amaca hizmet eden işlevlerin/nesnelerin bir koleksiyonudur. çeşitli projelerde bir kütüphane kullanabilirsiniz.

Çerçeve, bir uygulama oluşturmanıza yardımcı olacak bir desen ve kitaplık koleksiyonudur.

API, diğer programların doğrudan erişim olmadan programınızla etkileşim kurması için kullanılan bir arabirimdir.

Başka bir deyişle, bir kütüphaneyi uygulamanın bir eklentisi/parçası, uygulamanın iskeleti olarak bir çerçeve ve söz konusu uygulamanın dışa dönük bir parçası olarak bir API düşünün.

35
GSto

Şimdiye kadar iyi yanıtlar ama bir kilit noktayı kaçırıyorlar - bir çerçeve kullanıyor IoC . Kodunuz bir çerçeve ile çevrilidir. İçinde yaşıyor. Buna karşılık, kodunuz yalnızca bir kitaplık veya API kullanır . Onun dışında yaşıyor. IoC farktır.

14
Scant Roger

Kütüphane, ortak görevleri gerçekleştirmek için oluşturulmuş bir kod koleksiyonudur. Kütüphane kodu nispeten kararlı ve hatasız olma eğilimindedir. Uygun kitaplıkların kullanılması, yazılması gereken kod miktarını azaltabilir. Bir uygulamanın kod satır sayısını azaltma işlevselliğinin sunulma hızını artıracaktır. Çoğu durumda, bir kütüphane rutini kullanmak kendi kodunuzu yazmaktan daha iyidir.

Bir API (Uygulama Programlama Arayüzü), bir uygulamanın mevcut işlevselliğe erişmesine izin veren bazı işlevlerin arabirimidir. Bir API, Arayüz olarak adlandırılabilir. API, sistem, kütüphane, çerçeve, program ve uygulama dahil olmak üzere birçok düzeyde mevcuttur. API'lar, bunları uygulayan kod uygulanmadan önce tanımlanmalıdır.

API'lerin bölümleri çeşitli nedenlerle kullanımdan kaldırılabilse de, API'lar kararlı olmalıdır. API ne kadar yaygın kullanılırsa onu değiştirmek o kadar zor olur. Java 1.0 API'sının tümü olmasa da) çoğu yöntem hala kullanılmamasına rağmen.

Çerçeve, uygulamaların oluşturulmasını kolaylaştırmak için tasarlanmış bir API koleksiyonudur. Çerçeveler yeniden kullanılabilir bileşenler için uygulamalar sağlar. İyi çerçeveler, uygulamalarında uzmanlaşma eğilimindedir.

Java Koleksiyonlar Çerçevesi, koleksiyonları işlemek için kullanılabilecek çeşitli nesne türlerine yönelik bir API koleksiyonudur. Çeşitli koleksiyonlara bir API hiyerarşisi sağlar. Java Koleksiyonlar Çerçevesi SortedSet arabirimi, Koleksiyon arabirimini genişleten Set arabirimini genişletir.Bu API'ler soyut arabirimlerdir ve gerçek uygulamalar farklı adlara sahiptir Koleksiyonlar Çerçevesi koleksiyonları uygulamayı basitleştirir ve geliştirme sırasında uygulamaları değiştirmeyi basitleştirir.

Çerçeveler, Java J2EE geliştirmeyi hedefleyen Spring Framework'te görüldüğü gibi) daha küçük çerçevelerden oluşturulabilir. çerçeveler.

Uygun kitaplıkların, API'lerin ve çerçevelerin kullanılması geliştirmeyi basitleştirebilir. Bu bileşenler sık ​​karşılaşılan sorunları ele alır ve geliştirme ekibinin uygulamaya özgü sorunlara odaklanmasını sağlar.

3
BillThor

Bir çerçeve, kütüphaneden bir adım ötededir. Araç kutunuz bir kütüphane ise, atölyeniz bir çerçeve olacaktır.

Wikipedia diyor

API, bir yazılım sisteminin bileşenleri tarafından kullanılan bir dizi işlevle etkileşim için bir arabirimi açıklayan bir soyutlamadır

Bir API ve bir kullanıcı arayüzü arasındaki önemli fark, bir API'nin diğer yazılım/hizmetlerin çözümünüzle programlı olarak etkileşime girmesine izin vermesidir.

API'ler hem uygulamalar (dll'ler veya eklentiler aracılığıyla) hem de web siteleri ve hizmetler (REST ve web hizmetleri aracılığıyla) için oluşturulabilir

2
Homde

Bir kütüphaneye gidin ve kitap okumaya başlayın. Eğer uygulama iseniz kitap koleksiyonu kütüphanedir. Raflar, dolaplar ve tüm bunları barındıran bileşik, çerçeveyi oluşturmaktadır. Kitap okuma görevini yerine getirirken iletişim kurduğunuz her şey API'dir.

1
explorest

API'ler, bir nesneden hangi nesnelerin ve yöntemlerin kullanılabileceği açısından başka bir şeyin nasıl kullanılacağını tanımlar. Örneğin, Twitter veya Facebook'u bir siteye entegre etmek, doğru verilerin güncellenmesini sağlamak için Twitter veya Facebook'tan bir API kullanır.

Çerçeveler bir anlamda biraz daha hantal olma eğilimindedir, çünkü bu zaman zaman neredeyse kendi dilini oluşturabilir. jQuery, kendi sözdizimine sahip ve bir anlamda koduma girme açısından biraz daha fazla ağırlık taşıyan bir çerçeveye örnektir. Çerçeveler ayrıca onları bir anlamda API'lara benzer yapan platformlar olabilir, ör. Win32API veya .Net Framework'ün her birinin bir uygulama oluşturmak için çok sayıda yöntemi vardır, böylece içinde API'ler olan Çerçeveler ve aynı zamanda Çerçeveler olarak görüntülenen API'ler olabilir.

Kütüphaneler, bir API veya Framework uygulayan ikili dosyalar olma eğilimindedir ve bu nedenle bazı durumlarda bir API veya Framework kullanmanız gereken bitlerdir. En azından bu terimleri ve aralarındaki farkları bu şekilde görüyorum.

1
JB King

Uygulama, bir çerçeveye dayalı kütüphaneler kullanılarak geliştirilir ve bir API aracılığıyla iletişim kurar.

Bir uygulama oluşturuyorsanız çevrimiçi görüntü işleme uygulaması söyleyin,

  • Önceden yazılmış bazı görüntü işleme kitaplıklarını kullanabilirsiniz.
  • uygulamayı oluşturmak için size yol gösterecek herhangi bir çerçevede.
  • Eğer uygulama dış dünya ile etkileşim için bir yol sağlayacaktır .. bu dünyanın geri kalanı için uygulama API olurdu.

Başvurunuza bir çağrı geldiğinde

  • çerçevenin rehberliği ile tasarladığınız şekilde ele alınacaktır.
  • kütüphane tarafından yapılan çağrının işlenmesi
  • bu işlevlere API'nız dış dünyadan erişilir

arayan kişiye

bunların var olmasının nedenleri:

  • kütüphane: tekerleği yeniden icat etmekten kurtarır
  • çerçeve: çerçevenin kendisinde kusurlar yoksa sizi beklenmedik sistem tasarımı ve işleme tuzaklarından kurtarır
  • API: çekirdeği gerçek dünya erişiminden ayırarak uygulama güvenliğini sağlar
0
ganesh

Kütüphane, ortak görevleri basitleştirmek için kullanılan bir kod koleksiyonudur - sınıflar, işlevler veya dilinize veya platformunuza özgü herhangi bir şey olabilir. Bunun iyi bir örneği, ortak görevler (dizeleri oluşturma, bölme, arama veya sıralama vb.) İçin yardımcılar sağlayan bir dize düzenleme kitaplığı olabilir.

API (uygulama programlama arayüzü), başka bir uygulama, sistem veya teknolojiyle nasıl çalışılacağının bir tanımıdır ('arayüz'). Esasen, bu diğer sistemle etkileşime girebilecek işlemleri tanımlar. Bir API bir kütüphane olabilir (yani API bir kütüphaneye veya bir sınıf kümesine sarılır), ancak bir API'nın her zaman bir harici sistem - ister veritabanı, web hizmeti, başka bir uygulama veya işletim sisteminin kendisi olsun.

Bir Çerçeve daha büyük bir kavramdır - normalde ortak görevleri gerçekleştirmek için bir dizi kitaplık ve API içerir. Daha yüksek bir kavramsal düzeyde var - sadece bir araç koleksiyonu değil, aynı zamanda tasarım desenleri, en iyi uygulamalar ve metodolojilerin bir koleksiyonu. Yazılım Çerçevesi, genel bir çerçeve - uzantıları, şeylerin inşa edildiği bir temel olmayı, destek ve yapı sağlamayı ve gereksinimlere rehberlik ve tanım vermeyi içerir.

0
Kirk Broadhurst