Belirli bir sorun için doğru araç veya teknolojiyi seçmek, programlamanın en önemli yönlerinden biridir. Doğru araç, bir projenin başarısının anahtarıdır. Çoğu programcının başarısız olduğu yer burasıdır, çünkü genellikle birçok araçla ilgilenirler. Bu, “başvurunuzu bir kütüphane veya bir çerçeve ile oluşturmalı mısınız?” Gibi nihai soru ile ilgilidir. Bu, programcılar topluluğundaki en tartışmalı tartışma başlıklarından biridir ve çoğu zaman karışıklık kaynağıdır. Bir avuç geliştiriciye sahip küçük bir ekip, çoğunlukla yeni başlayanlar bir çerçeve ile çalışmaktan daha iyi olabilirken, kütüphaneler her yerde kullanılabilen ve daha fazla esneklik ve kontrol sağlayan yapı taşlarıdır..
Bir kütüphane ve bir çerçeve arasındaki temel fark “Kontrolün Tersinmesi” (IoC). Çerçeve kütüphanelerin bir koleksiyonu olduğunu söyleyebiliriz, ancak tüm fikir bir şekilde farklıdır.
Kütüphane, bilgisayar programları tarafından kullanılan, sınıfları, altyordamları, önceden derlenmiş kodu, mesaj şablonlarını, vb. İçerebilecek yeniden kullanılabilir işlevlerin bir koleksiyonudur. özel kütüphaneler. Başka geliştiriciler tarafından yazılan ve herhangi bir yerde yeniden kullanılabilen bir kod parçasıdır. Bir API kullanarak daha fazla erişebileceğiniz işlevsellik eklemek için kütüphaneler mevcut projelere sorunsuz bir şekilde dahil edilebilir. Başlamak için biraz bilgi gerekiyor.
Çerçeve, projenin nasıl yapılandırılması ve çalıştırılması gerektiğini belirleyen bir kod parçasıdır. Projenizin mimarisini bir uygulamanın tasarım parametrelerini tanımlamak gibi projenin şartlarını belirler, böylece projenin özelliklerine odaklanabilir, böylece kodun yeniden kullanılabilirliği yerine tasarımın yeniden kullanılabilirliğine vurgu yapabilirsiniz. Kütüphanelerden farklı olarak kontrol, çerçeveler durumunda ters çevrilir ve kod asla bir çerçeveye çağrılmaz, bunun yerine çerçeve sizi çağırır. Kütüphanelerden farklı olarak, çerçeveler yapıya ve standartlara vurgu yapar.
Programlamada kütüphane, bilgisayar programları tarafından kullanılan yeniden kullanılabilir işlevlerin (yeniden kullanabileceğiniz kaynaklar anlamına gelir) bir koleksiyonudur. Bazen modül olarak da adlandırılan kaynaklar genellikle nesne biçiminde depolanır. Çoğu programlama dilinin kendi standart kütüphaneleri vardır, ancak programcılar kendi özel kütüphanelerini de oluşturabilirler. Basit bir ifadeyle, bir kütüphane arayabileceğiniz bir dizi işlevdir, bir çerçeve ise projenizin mimarisini belirleyen bir kod parçasıdır. Bir bakıma, birlikte bilgisayar programlarına yardımcı olan çerçeveler ve programlama dilleri iç içedir.
“Denetimi Tersine Çevirme”, bir çerçeveyi bir kütüphaneden ayıran temel farktır. Kütüphane, diğer programlar tarafından kullanılan bir dizi işlev ve rutindir ve kütüphaneden bir yöntem çağırdığınızda tam kontrol sizdedir. Ancak, bir çerçeve söz konusu olduğunda kontrol tersine çevrilir. Projenizin yapısını belirler ve kod asla bir çerçeveye girmez, bunun yerine sizi çağırır. Basitçe söylemek gerekirse, kütüphaneyi bir uygulamanın bir fonksiyonu, bir çerçeveyi de uygulamanın kendi özelliklerini tanımladığı uygulamanın iskeleti olarak düşünebilirsiniz..
Kütüphaneler herhangi bir yerde kullanılabilen bir dizi işlevdir, yani diğer geliştiriciler tarafından yeniden kullanılabilen bir kod parçasıdır. API kullanarak erişebileceğiniz işlevler eklemek için mevcut projelere sorunsuz bir şekilde dahil edilirler. Çoğunlukla sık kullanılan modüller için kullanılırlar, çünkü bunları açıkça kullanan her programa bağlamanız gerekmez. Program bağlama ve bağlama sürecinde önemlidirler. Öte yandan çerçeveler, uygulamaları oluşturmak ve dağıtmak için standart bir yol sağlar ve çoğunlukla mevcut projelere entegre olmak yerine yeni bir projeye başlarken kullanılabilir.
Bir kütüphane ve bir çerçeve arasındaki farkı daha iyi anlamak için, jQuery ve AngularJS'ye bakalım. jQuery, CSS manipülasyonu, HTML olay yöntemleri, AJAX çağrıları vb.Gibi diğer karmaşık şeylerle birlikte DOM manipülasyonunu basitleştiren çapraz platformlu bir JavaScript kütüphanesidir. jQuery'nin amacı, web sitenizde JavaScript kullanımını basitleştirmektir. Öte yandan AngularJS, dinamik web uygulamaları oluşturmak için kullanılan MVC mimarisine dayanan yapısal bir çerçevedir. Tamamen HTML ve JavaScript'e dayanır ve jQuery'den farklı olarak mevcut projelere entegre edilemez, çünkü bir çerçeve olarak kodunuzun nasıl yapılandırılacağını ve çalıştırılacağını belirler.
Bir uygulama oluşturmak için bir kütüphane mi yoksa bir çerçeve mi kullanmanız gerektiğine karar verme konusunda karışıklık olduğunda, her şey kontrol altına alınır. Kütüphaneler arayabileceğiniz bir dizi işlevdir ve her çağrı bazı görevler gerçekleştirir ve kontrolü size geri verir. Mevcut projelere sorunsuz bir şekilde dahil edilebilirler ve başlamanız için biraz bilgi gerekir. Öte yandan çerçeveler, projenizin genel yapısını dikte eder ve kütüphanelerin aksine çerçeveler sizi çağırır ve kod hiçbir zaman bir çerçeveyi çağırmaz. En önemli fark elbette Kontrolün Tersinmesi. Basit bir ifadeyle, kütüphaneler daha fazla kontrol derecesi ile daha esnektir, ancak çerçeveler yapı ve standartları uygular.