JavaScript kitaplığı veya çerçevesi seçin

Ömer Hansa
Umar Hansa

Bu makalede, web uygulamanızda kullanmak üzere bir kitaplık veya çerçeveyi nasıl seçebileceğinizle ilgili bilgiler paylaşılmaktadır. Buradaki tartışmalar, çözmeye çalıştığınız işletme sorunu için doğru JavaScript kitaplığını veya çerçevesini bulmanın artılarını ve eksilerini değerlendirmenize yardımcı olacaktır. Farklı durumlarda hangi avantaj ve dezavantajların geçerli olduğunu anlamak, mevcut çok sayıda JavaScript kitaplığı seçeneğini değerlendirmek için çok önemlidir.

JavaScript kitaplıkları ve çerçeveleri nedir?

JavaScript kitaplığı nedir? En basit haliyle, JavaScript kitaplığı belirli bir görevi gerçekleştirmek için projenizin kodunda çağırabileceğiniz önceden yazılmış koddur.

Bu yayında daha çok "kitaplıklardan" bahsediliyor. Bununla birlikte, tartışmaların çoğu çerçeveler için de geçerlidir. Temel olarak, ikisi arasındaki fark şu şekilde özetlenebilir:

  • Kitaplık söz konusu olduğunda, uygulama kodunuz kitaplık kodunu çağırır.
  • Çerçeveler için uygulama kodunuz bu çerçeve tarafından çağrılır.

Aşağıdaki pratik örnekler, farklılıkları açıklamaya yardımcı olur.

JavaScript kitaplığına örnek çağrı

JavaScript kitaplığı belirli bir görevi gerçekleştirir ve ardından kontrolü uygulamanıza geri döndürür. Bir kitaplık kullanırken uygulama akışını kontrol edebilir ve kitaplığın ne zaman çağrılacağını seçebilirsiniz.

Aşağıdaki örnekte uygulama kodu, lodash kitaplığından bir yöntemi içe aktarır. İşlev tamamlandıktan sonra kontrol, uygulamanıza döndürülür.

import capitalize from 'lodash.capitalize';
capitalize('hello'); // Hello

lodash.capitalize yöntemi yürütüldüğünde, bir dizenin ilk karakterinin ilk harfini büyük yapan önceden yazılmış JavaScript kodunu çağırır.

JavaScript Çerçevesi için örnek kullanım

JavaScript çerçevesi, içinde uygulamanızın davranışını yapılandırdığınız önceden tanımlanmış bir kod şablonudur. Yani bir çerçeve kullandığınızda çerçeve, uygulama akışını kontrol eder. Bir çerçeve kullanmak için özel uygulama kodunuzu yazarsınız, ardından çerçeve uygulama kodunuzu çağırır.

Aşağıdaki örnekte Preact JavaScript çerçevesini kullanan bir kod snippet'i gösterilmektedir:

import { createElement } from 'preact';

export default function App() {
  return (
    <p class="big">Hello World!</p>
  )
}

Örnekte, çerçevenin yazdığınız kod üzerinde çok daha fazla kontrole sahip olduğunu ve bazı durumlarda, çerçevenin kodunuzun ne zaman yürütüleceğini bile kontrol ettiğini unutmayın.

Neden kitaplık kullanmalısınız?

JavaScript kitaplığı kullanmak, gereksiz kod tekrarlarından kaçınmanıza yardımcı olabilir. Kitaplıklar, tarih manipülasyonu veya finansal hesaplamalar gibi karmaşık mantığı soyutlayabilir. Kitaplık, tüm kodları sıfırdan yazmak yerine ilk ürününüzü kullanıma sunmanıza da yardımcı olabilir. Bu işlem zaman alabilir.

Bazı istemci taraflı JavaScript kitaplıkları, web platformunun ilginç yönlerini soyutlamaya yardımcı olur. Kitaplık da bir öğrenim aracı işlevi görebilir. Örneğin, animasyon yumuşak geçiş işlevlerine aşina değilseniz bir kitaplığın kaynak kodu size bu tür yumuşatmaların nasıl çalıştığını öğretebilir.

Bazı kütüphaneler, kitaplıkları güncel ve güvenli tutmak için zaman ve para harcayan büyük şirketler tarafından desteklenir. Çoğu kütüphaneyle birlikte kapsamlı dokümanlar bulunur. Bu belgeler, size ve ekibinize kütüphanenin kullanımını hızlı bir şekilde öğrenmenize olanak tanır.

Sonuç olarak, JavaScript kitaplığı kullanmak size zaman kazandırır.

Kitaplık kullanımına neden önem vermelisiniz?

Teknik olarak, web uygulamanızı sıfırdan geliştirebilirsiniz, ama ücretsiz (açık kaynaklı) yazılım kullanabilecek veya uzun vadede zaman ve paradan tasarruf edebilecek bir çözüm satın alabilecekken neden sorun yaşayacaksınız? Her biri sorunların çözümünde benzersiz bir yaklaşım sunan ve her biri farklı özelliklere sahip olan çok sayıda JavaScript kitaplığı ve çerçevesi vardır. Örneğin:

  • Kitaplık bir üçüncü taraf yerine dahili olarak yazılabilir ve yönetilebilir.
  • Bir kütüphane, kendisini web uygulamanıza uygun veya uygunsuz hale getiren belirli yasal lisanslara sahip olabilir.
  • Kitaplık eski veya bakımsız olabilir.
  • Kitaplık, bir dizi karmaşık görevi basitleştirip zamandan ve paradan önemli ölçüde tasarruf etmenizi sağlayabilir.
  • Kitaplık, toplulukta yaygın olarak kullanılabilir ve geliştiriciler arasında iyi tanınabilir.

Şüphelendiğiniz gibi, farklı özellikler web uygulamanızı farklı şekillerde etkileyebilir. Bazen çok dikkatli bir karar verilir. Hoşunuza gitmeyen bir kitaplığı, güvenli bir şekilde değiştirebilirsiniz. Ancak bazen bir kütüphanenin çalışmanız ve web uygulamanız üzerinde önemli bir etkisi olabilir. Bu da daha bilinçli bir yaklaşımın gerekli olabileceğini gösterir.

Sunucu (bulut ortamında çalıştırılır) veya Raspberry Pi gibi istemci taraflı olmayan bazı JavaScript ortamları vardır. Kitaplıkları ve çerçeveleri incelemek için kullandığınız ölçütleri ayarlamanız gerekebilir.

Performans

JavaScript kitaplığının istemci taraflı web uygulaması üzerindeki performans etkisi göz ardı edilmemelidir. Büyük bir JavaScript kitaplığı, sayfanızın yükleme performansını kesintiye uğratabilir; milisaniyelerin milyonlar kazandırdığını unutmayın.

Animasyon için JavaScript kitaplığı kullandığınız bir senaryo düşünün. Bazı kitaplıklar kolaylıkla onlarca kilobayt ve bazı durumlarda yüzlerce kilobayt ekleyebilir. Bunun gibi JavaScript kaynakları, tarayıcının kodu indirmesi, ayrıştırması, derlemesi ve yürütmesi gerektiğinden sayfa yüklemenizde önemli bir gecikmeye yol açabilir.

JavaScript kitaplığı ne kadar büyükse kullanıcılarınız üzerindeki performans etkisi de o kadar büyük olur.

Bir JavaScript kitaplığını veya çerçevesini değerlendirirken ya da kullanırken performansı artırmak için aşağıdaki önerileri dikkate alın:

  • Büyük bir JavaScript kitaplığı göz önünde bulundurulduğunda, daha küçük bir alternatif kullanmayı düşünün. Örneğin date-fns, diğer bazı seçeneklere göre daha makul bir boyutta birçok işlev sunar.
  • Önceki date-fns örneğinden sonra devam ederek, yalnızca ihtiyacınız olan işlevleri içe aktarın. Örneğin: import { format } from 'date-fns'. Minimum bir JavaScript yükü oluşturulması ve kullanıcılarınıza gönderilmesi için bu yaklaşımı ağaç sallama yöntemiyle birleştirdiğinizden emin olun.
  • Belirli bir JavaScript kitaplığını kullanmanın performans üzerindeki etkisini gözlemlemek için Lighthouse gibi performans testi araçlarını kullanın. Bir kitaplık, sayfanızın yüklenme süresine bir saniyelik gecikme eklerse (test sırasında ağınızı ve CPU'nuzu kısıtlamayı unutmayın), seçtiğiniz kitaplığı yeniden değerlendirmeniz gerekebilir. Sayfa yükleme işlemini kontrol etmeye ek olarak, söz konusu kitaplıktan kod çağıran tüm web sayfası davranışlarının profilini seçtiğinizden emin olun. Sayfa yükleme performansı hikayenin tamamını anlatmaz.
  • Kütüphanenin yazarı yorumları memnuniyetle karşılıyorsa performans gözlemlerinizi, önerilerinizi ve hatta projeye katkılarınızı gönderin. Açık kaynak topluluğu burada öne çıkıyor! Katkıda bulunmaya karar verirseniz önce işvereninize danışmanız gerekebilir.
  • Kitaplıkta beklenmedik derecede büyük güncellemeler olup olmadığını görmek için bundlesize gibi otomatik bir paket izleme aracı kullanın. Bir JavaScript kitaplığının zaman içinde büyümesi yaygın bir durumdur. Özellik eklemeleri, hata düzeltmeleri, uç durumlar ve diğer özelliklerin tümü kitaplığın dosya boyutuna eklenebilir. Ekibiniz ve siz kitaplık kullanmayı kabul ettikten sonra, kitaplığı güncellemek artık daha az sorun yaratabilir ve neredeyse hiç soru sormamanıza neden olabilir. Bu noktada otomasyondan yararlanmak faydalıdır.
  • Kitaplık için gereksinimlerinizi inceleyin ve web platformunun aynı işlevi yerel olarak sunup sunmadığını değerlendirin. Örneğin, web platformunda zaten aynı işlevi uygulamak için üçüncü taraf JavaScript kitaplığı kullanma ihtiyacını ortadan kaldıran bir renk seçici bulunmaktadır.

Güvenlik

Üçüncü taraf modülü kullanmak, bazı doğal güvenlik riskleri taşır. Web uygulamanızın kod tabanındaki kötü amaçlı bir paket, hem geliştirme ekibinizin hem de kullanıcılarınızın güvenliğini riske atabilir.

NPM ekosisteminde yayınlanan bir kitaplığı düşünün. Böyle bir paket meşru olabilir. Ancak zaman içinde paketin güvenliği ihlal edilebilir.

Üçüncü taraf kodlarını kullanırken veya değerlendirirken dikkate almanız gereken bazı güvenlik ipuçlarını aşağıda bulabilirsiniz:

  • GitHub kullanıyorsanız kodun güvenlik tekliflerini (ör. Dependabot) değerlendirin. Alternatif olarak, kodunuzdaki güvenlik açıklarını tarayan snyk.io gibi alternatif hizmetleri de kullanabilirsiniz.
  • Kullandığınız üçüncü taraf kodu manuel olarak denetleyebilen mühendislerden oluşan bir ekip olan kod denetimi hizmetlerini kullanmayı düşünebilirsiniz.
  • Bağımlılıklarınızı belirli bir sürüme kilitlemeniz mi yoksa sürüm denetiminiz kapsamında üçüncü taraf kodunuzu kaydetmeniz mi gerektiğini değerlendirin. Bu, bağımlılığınızı muhtemelen güvenli sayılan belirli bir sürüme kilitlemenize yardımcı olabilir. İronik olan, kütüphanedeki önemli güncellemeleri kaçırmanıza neden olabileceği için bunun güvenlik açısından da karşı etkisi olabilir.
  • Proje ana sayfasını veya varsa GitHub sayfasını tarayın. Çözülmemiş güvenlik sorunlarının olup olmadığını ve önceki güvenlik sorunlarının makul bir süre içinde çözülüp çözülmediğini araştırın.
  • Başka üçüncü taraf kodları kullanan üçüncü taraf kodları, sıfır bağımlılığı olan bir kitaplıktan daha fazla risk taşıyabilir. Bu riske dikkat edin.

Erişilebilirlik

Yazılım kitaplıklarının web erişilebilirliği ile nasıl ilişkili olduğunu merak ediyor olabilirsiniz. Bir yazılım kitaplığı farklı ortamlarda kullanılabilir. Ancak istemci taraflı JavaScript tabanlı bir kitaplık bağlamında, web erişilebilirliği çok önemlidir.

İstemci tarafı JavaScript tabanlı bir kitaplık (ya da söz konusu bağlamda çerçeve) web sitenizin erişilebilirliğini artırabilir veya azaltabilir. Sayfaya resim kaydırma çubuğu ekleyen üçüncü taraf bir JavaScript kitaplığını düşünün. Resim kaydırıcısı web erişilebilirliğini hesaba katmıyorsa, web geliştiricisi olarak siz de böyle önemli bir özelliği gözden kaçırabilir ve kaydırma çubuğunun klavyeyle gezilebilir olması gibi kritik özellikleri kaçıran bir ürün yayınlayabilirsiniz.

  • Duyarlı tipografi eklentisi, sayfayı yakınlaştıran veya uzaklaştıran kullanıcıları destekliyor mu?
  • Dosya yükleyici eklentisi, yardımcı cihazlardan dosya yüklemelerini destekliyor mu?
  • Animasyon kitaplığı az hareket etmeyi tercih eden kullanıcılar için destek sağlıyor mu?
  • Etkileşimli haritalar eklentisi yalnızca klavye kullanımını destekliyor mu?
  • Ses çalar kitaplığı, ekran okuyucularda uygun deneyim sunuyor mu?

Bu erişilebilirlik gereksinimlerini karşılamak için web geliştiricisi olarak sizden bir miktar katkıda bulunmanız beklenir. Örneğin:

  • Eksik özellikler varsa, söz konusu kitaplığı kullanmaya devam ederken bile bu özellikleri kod tabanınızda uygulayabilirsiniz.
  • Kütüphane yazarının böyle bir katkıya izin vermesi halinde, işvereninizin desteğiyle, eksik bir özelliği kitaplığa katkıda bulunabilirsiniz.
  • Kitaplık yazarıyla bir iletişim kutusu açabilirsiniz. Örneğin, yol haritanızda bu belirli erişilebilirlik özellikleri var mı? Bunların kitaplıkta yer aldığını kabul ediyor musunuz?
  • Popüler kullanım alanlarında, daha erişilebilir alternatif kitaplık seçeneklerini keşfedebilirsiniz. Bu seçenekler mevcut olsa da bulunması daha zordur.
  • Ekstrem durumda, bir kitaplığı tamamen kaldırmanız ve özelliklerinizi en baştan uygulamanız gerekebilir. Bu durum, bir kitaplık veya çerçeve ilk kullanımda düşük bir erişilebilirlik deneyimi yaşadığında ve kitaplığın ya da çerçevenin size ücretsiz olarak sunduğu sözde birçok şeyi geri almanız gerektiğinde ortaya çıkabilir.

Kongreler

Yerleşik kodlama kurallarının kullanıldığı bir yazılım kitaplığıyla çalışmak daha kolaydır. Bir kütüphane daha önce duyulmamış bir kodlama kuralı kullanıyorsa siz ve ekibiniz için böyle bir kütüphaneyle çalışmanız zor olabilir.

Bir kitaplık genel kodlama kurallarına uymuyorsa (örneğin, ortak stil kılavuzu) hemen düzeltmek için yapabileceğiniz pek bir şey yoktur. Ancak birkaç seçeneğiniz de vardır:

  • Kitaplık kaynak kodu ile kitaplık kullanıcısı olarak size sunulan API arasında ayrım yaptığınızdan emin olun. Dahili kaynak kodu alışılmadık kurallar kullanıyor olabilir ancak API (kitaplığın etkileşimde bulunduğunuz bölümü) tanıdık kurallar kullanıyorsa endişelenecek bir durum olmayabilir.
  • Kitaplık API'si genel kodlama kurallarına uymuyorsa kitaplıkla olan tüm etkileşimleri kod tabanındaki tek bir dosyaya sarmalamak ve dahil etmek için proxy kalıbı gibi bir JavaScript tasarım kalıbı kullanabilirsiniz. Böylece proxy'niz, kod tabanınızdaki kodun diğer kısımları için daha sezgisel bir API sunabilir.

Kullanım kolaylığı konusunda kurallar önemli bir rol oynar. Sezgisel bir API içeren kitaplık, üzerinde çok fazla deneme yapılması gereken, sezgisel olmayan bir API ile karşılaştırıldığında saatler, hatta günlerce zaman kazandırabilir.

Güncellemeler

Örneğin, birkaç matematiksel hesaplama gerçekleştiren, tam olarak çalışır durumda bir kitaplık söz konusu olduğunda, bu tür bir kitaplık nadiren güncelleme gerektirebilir. Gerçekten de tüm özellikleri içeren kitaplık, web geliştirmenin sürekli değişen dünyasında nadir görülen bir şeydir! Bununla birlikte, bazen kitaplık yazarının yanıt vermesini ve güncellemeler yapmaya istekli olmasını isteyebilirsiniz. Yeni araştırma ve bulgular, işleri yapmanın daha iyi yollarını ortaya çıkarabilir. Bu nedenle, kütüphanelerde ve çerçevelerde kullanılan teknikler daima değişime tabidir.

Kitaplık veya çerçeve seçerken güncellemelerin nasıl ele alındığına dikkat edin ve bu tür kararların sizi etkileyebileceğini unutmayın:

  • Kütüphanenin makul bir yayın planlaması var mı? Örneğin, kaynak kod deposunda güncellemeler sık sık gerçekleşebilir. Ancak bu tür güncellemeler uygun şekilde "yayınlanmaz" veya "yayınlanmazsa", bu tür güncellemeleri indirmede sıkıntı yaşayabilirsiniz.
  • Kitaplık, makul bir yazılım sürümü oluşturma şemasıyla güncelleme yayınlıyor mu? Kitaplık size zaman kazandırır. Kitaplık sürümünü her güncellediğinizde kodunuzu beklenmedik bir şekilde değiştirmek zorunda kalırsanız ilk başta bu kitaplığı kullanma amacınız ortadan kalkabilir. Zarar veren değişiklikler bazen kaçınılmaz olur. Ancak ideal dünyada, değişimler nadiren gerçekleşir ve kütüphane tüketicilerine zorlanmaz.
  • Kitaplık geriye dönük uyumluluk için çaba gösteriyor mu? Bazen yazılım güncellemeleri zarar veren değişikliklerle birlikte gelebilir, ancak aynı zamanda geriye dönük uyumluluk katmanı da sağlar. Bu, kitaplık tüketicisinin kitaplığın en son sürümünü, kodunda çok az değişiklik yaparak kullanmasına olanak tanır.

Lisanslar

Yazılım lisanslama, üçüncü taraf yazılım kitaplıklarını kullanmanın önemli bir özelliğidir. Bir kütüphane yazarı kendi kitaplığına lisans atayabilir. Kitaplığı kullanmayı düşünüyorsanız lisans seçimi sizi etkileyebilir.

Örneğin, bir JavaScript kitaplığı, onu ticari olmayan bir ortamda kullanmanıza izin veren bir yazılım lisansına sahip olabilir. Kişisel bir hobi projesi için bu mükemmel bir seçim olabilir. Projenizin ticari bir öğesi varsa kurumsal lisans kullanmanız gerekebilir.

Şüpheye düştüğünüzde profesyonel yasal danışmanlık hizmeti alabilir veya şirketinizin hukuk departmanına danışabilirsiniz.

Topluluk

Geniş bir kullanıcı/katkıda bulunan kullanıcı topluluğuna sahip bir kitaplık veya çerçeve faydalı olabilir ancak bu bir garanti değildir. Genel olarak, bir kitaplık veya çerçeve ne kadar çok kullanıcıya sahipse o kadar çok fayda sağlar. Bir geliştirme topluluğuna katılmanın şu avantajlarını ve dezavantajlarını göz önünde bulundurun:

Artıları:

  • Geniş bir kullanıcı tabanı, hataların erken ve sık yakalanma şansını artırabilir.
  • Büyük bir etkin topluluk, söz konusu kütüphane veya çerçeve hakkında daha fazla eğitici, kılavuz, video ve hatta kurs içerebilir.
  • Büyük bir aktif topluluk, forumlarda ve soru-cevap web sitelerinde daha fazla destek anlamına gelebilir ve destek sorularının yanıtlanma olasılığını artırabilir.
  • Etkileşimli bir topluluk, kitaplığa veya çerçeveye dışarıdan daha fazla katkıda bulunan anlamına gelebilir. Bunlar, yazarın yol haritasında olmayan özelliklerin sunulmasına yardımcı olabilir.
  • Bir kitaplık veya çerçeve bir toplulukta popüler olduğunda, meslektaşlarınızın ve iş arkadaşlarınızın böyle bir kitaplığı veya çerçeveyi duyma, hatta aşina olma olasılığı artar.

Eksileri:

  • Geniş ve çeşitli bir kullanıcı tabanına sahip olan bir projeye sürekli özellik eklemek aşırıya kaçabilir. Şişmiş kitaplıklar web performansına zarar verebilir.
  • Aktif ve katılımcı bir topluluğa sahip bir proje yazarlar ve destekleyiciler için stres yaratabilir ve topluluğun büyük bir moderasyonunu gerektirebilir.
  • Hızla büyüyen ancak gerekli desteğin sağlanmadığı projeler, kirli bir topluluğun varlığına işaret etmeye başlayabilir. Örneğin, yeni veya kıdemsiz web geliştiricileri, belirli bir toplulukta denetim nedeniyle kötü hissedilebilir.

Belgeler

Bir JavaScript kitaplığı veya çerçevesi ne kadar basit ya da karmaşık olursa olsun, yazılım belgeleri her zaman size yardımcı olabilir. Çok deneyimli geliştiriciler bile kodu çözmek yerine dokümanları kullanırlar. Belgelerde, kullanmanız gereken API ve nasıl kullanılacağı açıklanmaktadır.

Belgeler örnek kod bile sağlayabilir, böylece hızlı bir başlangıç yapmanız kolaylaşır. Bir kitaplığı veya çerçeveyi değerlendirirken şu sorulardan bazılarını sorabilirsiniz:

  • Kitaplıkta doküman var mı? Bulunmuyorsa bir şeyleri kendi başınıza çözmek için rahat olmanız gerekir.
  • Belgeler net, kolay anlaşılır ve belirsizlik içermiyor mu? Birçok geliştirici dokümantasyona çok zaman ayırır. Bu küçük görünebilir, ancak metin biçimindeki belgelerde anlaşılır olması üretkenliğinizi büyük ölçüde etkileyebilir.
  • Dokümanlar tamamen otomatik olarak mı oluşturuldu? Bu tür belgelerin anlaşılması daha zor olabilir ve API'lerin nasıl kullanılacağına dair her zaman net bir rehberlik sağlamaz.
  • Dokümanlar güncel mi? Belge bakımı bazen sonradan düşünülen bir konu olarak ele alınır. Kitaplık güncellenir ancak dokümanlar güncellenmezse bu durum, geliştirme zamanının boşa harcanmasına yol açabilir.
  • Dokümanlar kapsamlı mı ve birden fazla biçimde sunuluyor mu? Kullanıcı kılavuzları, örnek kod, referans belgeler, canlı demolar ve eğiticilerin hepsi, bir kitaplık veya çerçeveyi başarıyla kullanmanıza yardımcı olabilecek değerli doküman biçimleridir.

Belgeleme her zaman eksiksiz olmayabilir; bu bir sorun değildir. Kuruluşunuzun ihtiyaçlarını, proje gereksinimlerini ve yazılımınızın karmaşıklığını değerlendirmeniz ve bunu kullanarak ihtiyacınız olan belge düzeyini belirlemeniz gerekir.

Sonuç

İlk kez bir kitaplık veya çerçeve seçerken boğuk hissetmek normaldir. Tıpkı diğer her şey gibi, bir görevi ne kadar çok öğrenir ve pratik yaparsanız o kadar iyi olursunuz. Bundan sonra kullanılacak bir kitaplık veya çerçeve seçerken bu yayına göz atmak yararlı olabilir. Bu yayındaki başlıkları bir kontrol listesi olarak kullanabilirsiniz. Örneğin: Bu kitaplık iyi performans gösteriyor mu? Bu kitaplık, web erişilebilirliği işletme standartlarımı karşılıyor mu?

Kitaplıkların ve çerçevelerin göz önünde bulundurmak isteyebileceğiniz başka yönleri vardır, ancak bu gönderide fazla değinilmemiştir:

  • Genişletilebilirlik: Kitaplığı özel mantık ve/veya davranışla genişletmek ne kadar kolay?
  • Araçlar: Varsa, kitaplıkta kod düzenleyici eklentileri, hata ayıklama araçları ve sistem eklentileri derleme gibi araçlar var mı?
  • Mimari: Açık kod önemli olsa da kitaplığın genel mimarisi mantıklı mı?
  • Testler: Projenin bir test paketi var mı? Proje web sitesinde test paketinin son kayıtta başarılı olduğu rozetler veya göstergeler kullanılıyor mu?
  • Uyumluluk: Kitaplık, şu anda kullandığınız diğer kitaplıklarla ve/veya çerçevelerle iyi çalışıyor mu?
  • Maliyet: Bir çerçevenin maliyeti nedir? Açık kaynaklı mı yoksa satın alınabilir mi?
  • Özel metrikler: Bu, kriter listenizde aşağılarda yer almalı, hatta tamamen yok sayılmalıdır. Yine de proje "oylarını", projeyi temsil eden sosyal medya hesaplarını ve/veya proje sayfasında kaç tane açık hata/sorun bulunduğunu göz önünde bulundurmak isteyebilirsiniz.