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

Umar Hansa
Umar Hansa

Bu makalede, web uygulamanızda kullanacağınız kitaplığı veya çerçeveyi nasıl seçebileceğinizle ilgili bilgiler paylaşılmaktadır. Buradaki tartışmalar, çözmeye çalıştığınız işletme sorununa uygun JavaScript kitaplığını veya çerçevesini bulmanın avantajlarını ve dezavantajlarını değerlendirmenize yardımcı olacaktır. Farklı durumlarda hangi avantajların ve dezavantajların geçerli olduğunu anlamak, mevcut çok sayıda JavaScript kitaplığı seçeneğini incelemenin anahtarıdır.

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 çoğunlukla "kütüphaneler"den bahsediliyor. Bununla birlikte, tartışmaların çoğu çerçeveler için de geçerlidir. Temel olarak, bu ikisi arasındaki fark şu şekilde özetlenebilir:

  • Uygulama kodunuz, kitaplık kodunu çağırır.
  • Bir çerçeve için uygulama kodunuz ç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ıkları belirli bir görevi gerçekleştirir ve ardından kontrolü uygulamanıza döndürür. Bir kitaplık kullandığınızda uygulama akışını kontrol eder ve kitaplığın ne zaman çağrılacağını seçersiniz.

Aşağıdaki örnekte, uygulama kodu lodash kitaplığından bir yöntem içe aktarmaktadır. İşlev tamamlandıktan sonra kontrol, uygulamanıza geri 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 büyük harfle yazılmasını sağlayan önceden yazılmış JavaScript kodunu çağırır.

JavaScript çerçevesinin örnek kullanımı

JavaScript çerçevesi, uygulamanızın davranışını oluşturduğunuz önceden tanımlanmış bir kod şablonudur. Yani bir çerçeve kullandığınızda uygulama akışını çerçeve kontrol eder. Bir çerçeveyi kullanmak için özel uygulama kodunuzu yazarsınız ve 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>
  )
}

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

Kitaplığı neden kullanmalısınız?

JavaScript kitaplığı kullanmak, gereksiz kod tekrarını önlemeye yardımcı olabilir. Kitaplıklar, tarih değiştirme veya finansal hesaplamalar gibi karmaşık mantık işlemlerini soyutlayabilir. Ayrıca kitaplık, tüm kodu sıfırdan yazmak zorunda kalmadan ilk ürününüzü yayınlamanıza da yardımcı olabilir. Bu işlem zaman alabilir.

Bazı istemci tarafı JavaScript kitaplıkları, web platformunun tuhaflıklarını ortadan kaldırmaya yardımcı olur. Kütüphaneler öğrenme aracı olarak da kullanılabilir. Örneğin, animasyon kolaylaştırma işlevlerine aşina değilseniz bir kitaplığın kaynak kodu, bu tür kolaylaştırmaların nasıl çalıştığını size öğretebilir.

Bazı kitaplıklar, kitaplıkların güncel ve güvenli kalmasını sağlamak için zaman ve para harcayan büyük şirketler tarafından desteklenir. Birçok kütüphaneye kapsamlı belgeler eşlik eder. Böylece, siz ve ekibiniz kitaplığın kullanımını hızlıca kavrayabilmeniz için size ve ekibinize hızlı bir şekilde yardımcı olur.

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

Kitaplık kullanımını neden önemsemelisiniz?

Teknik olarak, web uygulamanızı sıfırdan geliştirebilirsiniz. Peki ücretsiz (açık kaynaklı) yazılım kullanabildiğinizde veya uzun vadede zaman ve paradan tasarruf etmenizi sağlayacak bir çözüm satın aldığınızda neden sorun yaşamazsınız? Her biri sorunları çözmek için benzersiz bir yaklaşım sunan ve farklı özelliklere sahip çok sayıda JavaScript kitaplığı ve çerçevesi vardır. Örneğin:

  • Kitaplıklar, üçüncü taraflar yerine şirket içinde yazılabilir ve yönetilebilir.
  • Bir kitaplığın, web uygulamanız için uygun veya uygunsuz olmasını sağlayan belirli yasal lisansları olabilir.
  • Bir kitaplık güncelliğini yitirmiş veya bakımsız olabilir.
  • Kitaplıklar, karmaşık görevleri basitleştirebilir ve size çok fazla zaman ile para kazandırabilir.
  • Bir kitaplık, toplulukta yaygın olarak kullanılabilir ve geliştiriciler arasında iyi bilinebilir.

Tahmin edebileceğiniz gibi, farklı özellikler web uygulamanızı farklı şekillerde etkileyebilir. Bazen bu karar o kadar da önemli değildir ve beğenmediğiniz kitaplıkları güvenle değiştirebilirsiniz. Ancak bazen bir kitaplık, çalışmanız ve web uygulamanız üzerinde önemli bir etkiye sahip 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 tarafı olmayan bazı JavaScript ortamlarında, kitaplıkları ve çerçeveleri incelemek için kullandığınız ölçütleri ayarlamanız gerekebilir.

Performans

Bir JavaScript kitaplığının istemci tarafı web uygulaması üzerindeki performans etkisi göz ardı edilmemelidir. Büyük bir JavaScript kitaplığı, sayfanızın yükleme performansını bozabilir. Milisaniyelerin milyonlarca avroya mal olabileceğini unutmayın.

Animasyon için bir JavaScript kitaplığı kullandığınızı varsayalım. Bazı kitaplıklar kolayca onlarca kilobayt, hatta bazı durumlarda yüzlerce kilobayt eklenebilir. Tarayıcının kodu indirmesi, ayrıştırması, derlemesi ve yürütmesi gerektiğinden bu tür JavaScript kaynakları sayfanızı yüklerken önemli bir gecikme oluşturabilir.

JavaScript kitaplığı ne kadar büyük olursa 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ı iyileştirmek için aşağıdaki önerileri göz önünde bulundurun:

  • Büyük bir JavaScript kitaplığı kullanıyorsanız daha küçük bir alternatif kullanmayı düşünün. Örneğin, date-fns, diğer bazı seçeneklerden daha makul bir boyutta birçok işlev sunar.
  • Önceki date-fns örneğinden devam ederek, yalnızca ihtiyacınız olan işlevleri içe aktarın. Örneğin: import { format } from 'date-fns'. Bu yaklaşımı ağaç sallama ile birlikte kullandığınızdan emin olun. Böylece, minimum JavaScript yükü oluşturulur ve kullanıcılarınıza gönderilir.
  • Belirli bir JavaScript kitaplığının kullanılmasının performans üzerindeki etkisini gözlemlemek için Lighthouse gibi performans testi araçlarını kullanın. Bir kitaplık, sayfa yükleme sürenize bir saniyelik gecikme eklerse (test sırasında ağınızı ve CPU'nuzu kısıtlamayı unutmayın) tercih ettiğiniz kitaplığı yeniden değerlendirmeniz gerekebilir. Sayfa yüklemeyi kontrol etmenin yanı sıra, ilgili kitaplıktan kod çağıran herhangi bir web sayfası davranışının profilini de incelediğinizden emin olun. Sayfa yükleme performansı tüm hikayeyi anlatmaz.
  • Kütüphanenin yazarı yorumları beğenirse performans gözlemlerinizi, önerilerinizi ve hatta projeye yaptığınız katkıları gönderin. Açık kaynak topluluğu işte tam da bu noktada ortaya çıkıyor. Katkıda bulunmaya karar verirseniz önce işvereninizle görüşmeniz gerekebilir.
  • Bir kitaplıkta beklenmedik şekilde büyük güncellemeler olup olmadığını izlemek için bundlesize gibi otomatik bir paket izleme aracı kullanın. JavaScript kitaplıklarının zaman içinde büyümesi yaygın bir durumdur. Özellik eklemeleri, hata düzeltmeleri, uç durumlar ve diğer tüm özellikler kitaplığın dosya boyutunu artırabilir. Siz veya ekibiniz bir kitaplığı kullanmayı kabul ettikten sonra kitaplığı güncellemek daha az sorunlu olabilir ve çok az soru ortaya çıkabilir. Bu noktada otomasyondan yararlanmak faydalı olabilir.
  • Kitaplıkla ilgili gereksinimlerinizi inceleyin ve web platformunun aynı işlevi yerel olarak sunup sunmadığını değerlendirin. Örneğin, web platformu zaten bir renk seçici sunar. Bu sayede, aynı işlevi uygulamak için üçüncü taraf JavaScript kitaplığı kullanma ihtiyacı ortadan kalkar.

Güvenlik

Üçüncü taraf modüllerini kullanmak bazı güvenlik riskleri de beraberinde getirir. Web uygulamanızın kod tabanında bulunan kötü amaçlı bir paket hem geliştirme ekibinizin hem de kullanıcılarınızın güvenliğini tehlikeye 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 kodunu kullanırken veya değerlendirirken dikkate almanız gereken bazı güvenlik ipuçları aşağıda verilmiştir:

  • GitHub kullanıyorsanız kodun güvenlik tekliflerini (ör. Dependabot) değerlendirin. Alternatif olarak, kodunuzdaki güvenlik açıklarını tarayan snyk.io gibi hizmetleri de kullanabilirsiniz.
  • Kullanmakta olduğunuz üçüncü taraf kodu manuel olarak denetleyebilecek mühendislerden oluşan bir ekip olan kod denetleme hizmetlerini kullanmayı düşünün.
  • Bağımlılıklarınızı belirli bir sürüme mi kilitlemeniz gerektiğini veya üçüncü taraf kodunuzu sürüm kontrolünüze dahil etmeniz gerekip gerekmediğini değerlendirin. Bu, bağımlılığınızı güvenli olduğu varsayılan belirli bir sürüme kilitlemenize yardımcı olabilir. Kütüphanedeki önemli güncellemeleri kaçırmanız nedeniyle bu durum, ironik bir şekilde güvenlik açısından ters etki yaratabilir.
  • Projenin ana sayfasını veya varsa GitHub sayfasını tarayın. Çözülmemiş güvenlik sorunlarının mevcut olup olmadığını ve önceki güvenlik sorunlarının makul bir zaman aralığı içinde çözülüp çözülmediğini araştırın.
  • Diğer üçüncü taraf kodlarını 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ılabilse de istemci tarafı JavaScript tabanlı bir kitaplık bağlamında web erişilebilirliği büyük önem taşır.

İstemci tarafı JavaScript tabanlı bir kitaplık (veya bu bağlamda çerçeve), web sitenizin erişilebilirliğini artırabilir veya azaltabilir. Bir sayfaya resim kaydırma çubuğu ekleyen üçüncü taraf JavaScript kitaplıklarını kullanabilirsiniz. Resim kaydırma çubuğu web erişilebilirliğini hesaba katmıyorsa web geliştiricisi olarak bu kadar önemli bir özelliği gözden kaçırabilir ve kaydırma çubuğunun klavyeyle gezinilebilir olması gibi kritik özellikleri eksik olan 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üklemeyi destekliyor mu?
  • Animasyon kitaplığı, az hareket tercih eden kullanıcılara destek sunuyor mu?
  • Etkileşimli haritalar eklentisi yalnızca klavye kullanımını destekliyor mu?
  • Ses oynatıcı kitaplığı, ekran okuyucularda uygun bir deneyim sunuyor mu?

Bu tür erişilebilirlik gereksinimlerini karşılamak için web geliştiricisi olarak sizin de belirli bir seviyede katılım halinde olmanız makuldür. Örneğin:

  • Eksik olan özellikleri, söz konusu kitaplığı kullanmaya devam ederken bile kod tabanınızda uygulayabilirsiniz.
  • İşvereninizin desteğiyle, kütüphanenin yazarı böyle bir katkıya izin veriyorsa, kütüphanenize böyle bir özelliği eklemeniz için katkıda bulunabilirsiniz.
  • Kitaplığın yazarı ile iletişime geçebilirsiniz. Örneğin, yol haritanızda bu erişilebilirlik özellikleri var mı? Kitaplıkta yer almalarına katılıyor musunuz?
  • Popüler kullanım alanları için daha erişilebilir alternatif kitaplık seçeneklerini keşfedebilirsiniz. Bu seçenekler mevcut olabilir ancak daha zor bulunabilir.
  • En kötü durumda, bir kitaplığı tamamen terk etmeniz ve özelliklerinizi sıfırdan uygulamanız gerekebilir. Bu durum, bir kitaplık veya çerçevenin ilk kullanımda erişilebilirlik deneyimi düşük olduğunda ve kitaplık ya da çerçevenin size ücretsiz olarak sunduğu birçok şeyi geri almanız gerektiğinde ortaya çıkabilir.

Kongreler

Yerleşik kodlama kuralları kullanan bir yazılım kitaplığıyla çalışmak daha kolaydır. Bir kitaplıkta hiç duyulmamış bir kodlama kuralı kullanılıyorsa sizin ve ekibinizin bu tür bir kitaplıkla çalışması zor olabilir.

Kitaplık genel kodlama kurallarına uymuyorsa (örneğin, ortak stil kılavuzu) hemen bir çözüm olarak yapabileceğiniz pek bir şey yoktur. Ancak yine de birkaç seçeneğiniz vardır:

  • Kitaplık kaynak kodu ile kitaplık kullanıcısı olarak size sunulan API'yi birbirinden ayırt ettiğinizden emin olun. Dahili kaynak kodunda alışılmadık kurallar kullanılıyor olsa da API'de (kitaplığın etkileşim kurduğunuz kısmı) alışılmış kurallar kullanılıyorsa endişelenmenize gerek yoktur.
  • Kitaplık API'si yaygın kodlama kurallarına uymuyorsa kitaplıkla olan tüm etkileşimleri kod tabanındaki tek bir dosyada sarmalamak ve içermek için proxy kalıbı gibi bir JavaScript tasarım kalıbı kullanabilirsiniz. Proxy'niz daha sonra kod tabanınızdaki kodun diğer kısımları için daha sezgisel bir API sunabilir.

Kullanım kolaylığı açısından kurallar büyük rol oynar. Kullanıcı dostu bir API içeren bir kitaplık, anlaşılması için çok fazla deneme gerektiren kullanıcı dostu olmayan bir API'ye kıyasla çok sayıda saat hatta gün tasarrufu sağlayabilir.

Güncellemeler

Örneğin, birkaç matematiksel hesaplama yapan ve tamamen çalışan bir kitaplığın nadiren güncellenmesi gerekebilir. Hatta, eksiksiz özelliklere sahip bir kitaplık, sürekli değişen web geliştirme dünyasında nadir bir keşiftir. Bununla birlikte, kitaplık yazarının güncelleme yapmak için istekli ve duyarlı olmasını istediğiniz zamanlar olabilir. Yeni araştırmalar ve bulgular, işleri yapmanın daha iyi yollarını ortaya çıkarabilir. Bu nedenle, kitaplıklarda ve çerçevelerde kullanılan teknikler her zaman değişebilir.

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

  • Kitaplığın makul bir yayın programı var mı? Örneğin, kaynak kod deposunda sık sık güncellemeler yapılabilir ancak bu tür güncellemeler uygun şekilde "yayınlanmazsa" veya "sürüm olarak sunulmazsa" bu güncellemeleri indirmek zor olabilir.
  • Kitaplık, güncellemeleri mantıklı bir yazılım sürüm numaralandırması şemasıyla mı yayınlıyor? Kitaplık, zamandan tasarruf etmenizi sağlar. Kitaplık sürümünü her güncellediğinizde kodunuzu beklenmedik bir şekilde değiştirmeniz gerekirse bu, söz konusu kitaplığı kullanma amacını ortadan kaldırabilir. Bazen önemli değişiklikler yapmaktan kaçınmak mümkün değildir. Ancak ideal bir durumda, değişiklikler sık yapılmaz ve kitaplık kullanıcılarına zorla uygulanmaz.
  • Kitaplık, geriye dönük uyumluluk için çaba harcıyor mu? Yazılım güncellemeleri bazen önemli değişiklikler içerebilir ancak geriye dönük uyumluluk katmanı da sağlayabilir. Bu sayede kitaplık kullanıcısı, kodunda minimum düzeyde değişiklik yaparak en son kitaplık sürümünü kullanabilir.

Lisanslama

Yazılım lisanslama, üçüncü taraf yazılım kitaplıklarını kullanmanın önemli bir parçasıdır. Kitaplık yazarları, kitaplıklarına lisans atayabilir. Kitaplığı kullanmayı düşünüyorsanız lisans tercihleri sizi etkileyebilir.

Örneğin, bir JavaScript kitaplığının, onu ticari olmayan bir ortamda kullanmanıza izin veren bir yazılım lisansı olabilir. Kişisel bir hobi projesi için bu mükemmel bir seçim olabilir. Projenizde ticari bir unsur varsa kurumsal lisans kullanmayı düşünmeniz gerekebilir.

Şüpheye düştüğünüzde profesyonel yasal tavsiye alabilir veya şirketinizdeki hukuk ekibine başvurabilirsiniz.

Topluluk

Büyük bir kullanıcı/katkıda bulunan topluluğu olan bir kitaplık veya çerçeve faydalı olabilir ancak bu bir garanti değildir. Genel olarak, bir kitaplık veya çerçevenin kullanıcısı ne kadar fazla olursa, kitaplık veya çerçevenin fayda sağlama olasılığı da o kadar artar. Geliştirme topluluğuna katılmanın avantaj ve dezavantajlarını göz önünde bulundurun:

Artıları:

  • Geniş bir kullanıcı tabanı, hataların erken ve sık tespit edilme olasılığını artırabilir.
  • Büyük ve aktif bir topluluk, söz konusu kitaplık veya çerçeveyle ilgili daha fazla eğitim, rehber, video ve hatta kurs anlamına gelebilir.
  • Büyük ve etkin bir topluluk, forumlarda ve soru-cevap web sitelerinde daha fazla destek anlamına gelebilir. Bu da destekleyici soruların yanıtlanma olasılığını artırabilir.
  • Etkileşim düzeyi yüksek bir topluluk, kitaplığa veya çerçeveye dışarıdan daha fazla katkıda bulunan kullanıcı anlamına gelebilir. Yazarın yol haritasında yer almayan özellikleri sunmanıza yardımcı olabilirler.
  • Bir kitaplık veya çerçeve bir toplulukta popüler olduğunda, akranlarınızın ve iş arkadaşlarınızın bu kitaplıktan veya çerçeveden haberdar olma, hatta bu kitaplığı veya çerçeveyi tanıma olasılığı artar.

Eksileri:

  • Geniş ve çeşitli bir kullanıcı tabanına sahip bir proje, sürekli özellik eklemelerden dolayı şişebilir. Büyük kitaplıklar web performansını olumsuz etkileyebilir.
  • Etkin ve ilgili bir topluluğu olan projeler, yazarlar ve sürdürücüler için stresli olabilir ve yoğun topluluk moderasyonu gerektirebilir.
  • Hızlı büyüyen ancak uygun destek almayan projelerde toksik bir topluluk oluşmaya başlayabilir. Örneğin, yeni başlayan veya kıdemsiz web geliştiricileri, belirli bir toplulukta gatekeeping nedeniyle kendilerini istenmeyen hissedebilir.

Belgeler

Bir JavaScript kitaplığı veya çerçevesi ne kadar basit ya da karmaşık olursa olsun, yazılım dokümanları her zaman yardımcı olabilir. En deneyimli geliştiriciler bile kodu çözmek yerine belgeleri kullanır. Kullanmanız gereken API ve bu API'yi nasıl kullanmanız gerektiği belgelerde açıkça belirtilmelidir.

Dokümanlar, hızlı bir başlangıç yapmanızı kolaylaştırmak için örnek kod bile sağlayabilir. Bir kitaplığı veya çerçeveyi değerlendirirken aşağıdaki sorulardan bazılarını sorabilirsiniz:

  • Kitaplıkta doküman var mı? Aksi takdirde, her şeyi kendi başınıza çözmeye hazır olmanız gerekir.
  • Dokümanlar net, kolay anlaşılır ve belirsizlik içermiyor mu? Birçok geliştirici, belgelemeye çok fazla zaman ayırır. Küçük bir ayrıntı gibi görünse de metin dokümanlarında netlik, üretkenliğinizi büyük ölçüde etkileyebilir.
  • Dokümanlar tamamen otomatik olarak mı oluşturuluyor? Bu tür dokümanların anlaşılması daha zor olabilir ve API'nin nasıl kullanılacağıyla ilgili her zaman net bir rehberlik sağlamaz.
  • Dokümanlar güncel mi? Belgelerin bakımı bazen son dakika olarak ele alınır. Kitaplık güncellenirse ancak belgeler güncellenmezse bu, geliştirme zamanının boşa alınmasına neden olabilir.
  • Belgeler kapsamlı mı ve birden fazla biçimde sunuluyor mu? Kullanıcı kılavuzları, örnek kod, referans dokümanları, canlı demolar ve eğitici içerikler, bir kitaplığı veya çerçeveyi kullanma konusunda başarılı olmanıza yardımcı olabilecek değerli doküman biçimleridir.

Belgelerin her zaman eksik olması normaldir. Kuruluşunuzun ihtiyaçlarını, proje şartlarınızı ve yazılımınızın karmaşıklığını değerlendirmeniz ve bu değerlendirmeyi, ihtiyacınız olan doküman düzeyini belirlemek için kullanmanız gerekir.

Sonuç

İlk kez bir kitaplık veya çerçeve seçerken boğulmanız normaldir. Her şeyde olduğu gibi, bir görevi ne kadar çok öğrenir ve pratik yaparsanız o kadar iyi olursunuz. Bir sonraki sefer kullanacağınız kitaplığı veya çerçeveyi seçerken bu yayına göz atmanız faydalı olabilir. Bu gönderideki başlıkları kontrol listesi olarak kullanabilirsiniz. Örneğin: Bu kitaplık performansı yüksek mi? Bu kütüphane web erişilebilirliğiyle ilgili işletme standartlarımı karşılıyor mu?

Kitaplıkların ve çerçevelerin göz önünde bulundurmanız gereken ve bu makalede ayrıntılı olarak ele alınmayan başka yönleri de vardır:

  • 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 gibi araçlar var mı?
  • Mimari: Net kod önemlidir ancak kitaplığın genel mimarisi mantıklı mı?
  • Testler: Projenin test paketi var mı? Proje web sitesinde, test paketinin en son taahhütle ilgili olarak geçtiği rozetler veya göstergeler kullanılıyor mu?
  • Uyumluluk: Kitaplık, şu anda kullandığınız diğer kitaplıklar ve/veya çerçevelerle iyi çalışıyor mu?
  • Maliyet: Bir çerçevenin maliyeti nedir? Açık kaynaklı mı yoksa satın alınabilir mi?
  • Gösteriş metrikleri: Bu, ölçüt listenizin alt kısmında yer almalı veya tamamen göz ardı edilmelidir. Ancak proje "oylarını", projeyi temsil eden sosyal medya hesaplarını ve/veya proje sayfasında kaç tane açık hata/sorun olduğunu dikkate alabilirsiniz.