Bir kütüphane, çerçeve ve API arasındaki fark nedir? Hepsi bana aynı görünüyor. İnsanların bunu düşündüğünü duymak istiyorum.
Bir kütüphane, çerçeve ve API arasındaki fark nedir? Hepsi bana aynı görünüyor. İnsanların bunu düşündüğünü duymak istiyorum.
Yanıtlar:
Bir kütüphane, belirli bir amaca hizmet eden işlevler / nesneler topluluğudur. bir kütüphaneyi çeşitli projelerde kullanabilirsiniz.
Bir çerçeve, bir uygulamanın oluşturulmasına yardımcı olacak bir desen ve kütüphane koleksiyonudur.
Bir API, diğer programların doğrudan erişime sahip olmadan programınızla etkileşime girmesi için bir arayüzdür.
Başka bir deyişle, bir kütüphaneyi bir uygulamanın ek / parçası olarak, uygulamanın iskeleti olarak bir çerçeve ve söz konusu uygulamanın dışa bakan bir parçası olarak bir API olarak düşünün.
Şimdiye kadar iyi cevaplar var ancak bir kilit noktayı kaçırıyorlar - bir çerçeve IoC kullanıyor . Kodunuz bir çerçeve ile çevrilidir. İçinde yaşıyor. Buna karşılık, kodunuz sadece kullanan bir kitaplık veya API. Dışında yaşıyor. IoC farktır.
Bir 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 kütüphanelerin kullanılması, yazılması gereken kod miktarını azaltabilir. Bir uygulamanın, işlevselliğin teslim edilme oranını artıracağı için kod satırını azaltma eğiliminde olacaktır. Çoğu durumda, bir kitaplık yordamı 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şlevlere arayüzdür. 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'ler, bunları uygulayan kod uygulanmadan önce tanımlanmalıdır.
API bölümleri, çeşitli nedenlerle kullanımdan kaldırılmasına rağmen, stabil olmalıdır. API ne kadar yaygın kullanılırsa, onu değiştirmek o kadar zorlaşır. Çoğu Java 1.0 API'sinin tamamı hala mevcut değilse de, birçok yöntem kullanımdan kaldırılmış olmasına rağmen.
Çerçeve, uygulamaların oluşturulmasını kolaylaştırmak için tasarlanmış bir API koleksiyonudur. Altyapılar, yeniden kullanılabilir bileşenler için uygulamalar sunar. İyi çerçeveler uygulamalarında uzmanlaşma eğilimindedir.
Java Collections Framework, koleksiyonları işlemek için kullanılabilecek çeşitli nesne türlerine yönelik bir API koleksiyonudur. Çeşitli koleksiyonlara API hiyerarşisi sağlar. Java Collections Framework'de SortedSet arayüzü, Collection arayüzünü genişleten Set arayüzünü genişletir. Bu API'ler soyut arayüzlerdir ve gerçek uygulamaların farklı isimleri vardır. Koleksiyonlar Çerçevesi, koleksiyonların uygulanmasını basitleştirir ve geliştirme sırasında değişen uygulamaları kolaylaştırır.
Çerçeveler, J2EE'nin geliştirilmesini hedefleyen Java Bahar Çerçevesinde görüldüğü gibi daha küçük çerçeveler inşa edilebilir. Bahar, çoğu kendi başına kullanılabilen veya başka çerçevelerle değiştirilebilen bir düzineden fazla çerçeveden oluşur.
Uygun kütüphanelerin, API'lerin ve çerçevelerin kullanımı gelişimi basitleştirebilir. Bu bileşenler ortak sorunlara dikkat eder ve geliştirme ekibinin uygulamaya özel konulara odaklanmasını sağlar.
Bir çerçeve kütüphaneden bir adım ötededir. Araç kutunuz bir kütüphane ise, çalıştayınız bir çerçeve olacaktır.
Wikipedia diyor
Bir API, bir yazılım sisteminin bileşenleri tarafından kullanılan bir dizi fonksiyon ile etkileşim için bir arayüz tanımlayan bir soyutlamadır.
Bir API ile bir kullanıcı arayüzü arasındaki önemli ayrım, 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 veya eklentiler aracılığıyla) hem de web siteleri ve hizmetler için (REST ve web servisleri aracılığıyla) oluşturulabilir.
API'ler, bir kaynaktan hangi nesnelerin ve yöntemlerin kullanılabileceği konusunda 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.
Altyapılar, zaman zaman neredeyse kendi dilini oluşturabildiği için biraz daha hantal olma eğilimindedir. jQuery, kendi sözdizimine sahip ve koduma girme anlamında biraz daha fazla ağırlık taşıyan bir çerçeve örneği olmak. Altyapılar aynı zamanda bunları bir anlamda API'lere benzer kılan platformlar olabilir, örneğin Win32API veya .Net Framework'ün her biri bir uygulama oluşturmak için çok sayıda yönteme sahiptir, böylece içinde API'ler bulunan Altyapılar ve ayrıca Çerçeveler olarak da görünen API'ler bulunabilir.
Kütüphaneler, bir API veya Framework uygulayan ikili dosyalar olma eğilimindedir ve bu nedenle, bazı durumlarda bir API veya Framework kullanmak zorunda olduğunuz bitlerdir. En azından bu şartları ve aralarındaki farkları böyle görüyorum.
Bir 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ü olan şeyler olabilir. İyi bir örnek, ortak görevler için yardımcı olan (dizeleri oluşturma, bölme, arama veya sıralama vb.) Bir dize işleme kitaplığı olabilir.
Bir API (uygulama programlama arayüzü), başka bir uygulama, sistem veya teknoloji ile nasıl çalışılacağının bir tanımıdır ('arayüz'). Esasen o sistemle etkileşime girebilecek işlemleri tanımlar. Bir API olabilir (API bir kütüphane sarılmış veya sınıfların ayarlandığını anlamına gelir) bir kütüphane olabilir, fakat ayrım bir API daima harici bir sistem başvuran olmasıdır - bir veritabanı, web hizmeti, başka bir uygulamayı veya işletim sistemini olsun kendisi.
Bir Çerçeve daha büyük bir konsepttir - normalde ortak görevleri yerine getirmek için birkaç kütüphane ve API içerir. Daha yüksek bir kavramsal düzeyde var - bu sadece bir araç koleksiyonu değil, aynı zamanda tasarım kalıpları, en iyi uygulamalar ve metodolojiler topluluğu. Yazılım Çerçevesi, genel bir çerçevenin bir uzantısıdır - anlamları, şeylerin inşa edildiği bir temel olmak, destek ve yapı sağlamak ve gereksinimlere rehberlik ve tanım vermekdir.
Uygulama, bir çerçeveye dayanan kütüphaneler kullanılarak geliştirilmiştir ve bir API aracılığıyla iletişim kurar.
Bir uygulama oluşturuyorsanız, çevrimiçi bir görüntü işleme uygulaması diyorsanız,
Uygulamanıza bir çağrı geldiğinde
arayan kişiye
Bunların var olmasının sebepleri: