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

Umar Hansa
Umar Hansa

Bu makalede, web uygulamanızda kullanacağınız 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 bulma konusunda artıları ve eksileri 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 incelemek açısından önemlidir.

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

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

Bu yayında ağırlıklı olarak "kitaplıklar"dan bahsediliyor. Ancak bu tartışmaların çoğu çerçeveler için de geçerlidir. İkisi arasındaki fark temel olarak şu şekilde özetlenebilir:

  • Kitaplıkta, uygulama kodunuz kitaplık kodunu çağırır.
  • Çerçeve kullanıldığında uygulama kodunuz çerçeve tarafından çağrılır.

Aşağıdaki pratik örnekler, farklılıkları anlamanıza yardımcı olacaktır.

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

JavaScript kitaplığı belirli bir görevi gerçekleştirir ve ardından kontrolü uygulamanıza geri verir. Bir kitaplık kullandığınızda uygulama akışını kontrol eder ve kitaplığı ne zaman çağıracağınızı 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öner.

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

lodash.capitalize yöntemi yürütüldüğünde, bir dizedeki ilk karakteri büyük harfe dönüştüren ö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>
  )
}

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

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

JavaScript kitaplığı kullanmak, gereksiz kod tekrarlarını önlemeye yardımcı olabilir. Kitaplıklar, tarih işlemleri veya finansal hesaplamalar gibi karmaşık mantıkları soyutlayabilir. Kitaplıklar, tüm kodu sıfırdan yazmak zorunda kalmadan ilk ürününüzü yayınlamanıza da yardımcı olabilir. Bu sayede zaman kazanabilirsiniz.

Bazı istemci tarafı JavaScript kitaplıkları, web platformunun tuhaflıklarını soyutlamaya yardımcı olur. Kitaplık, öğrenme aracı olarak da kullanılabilir. Örneğin, animasyon yumuşatma işlevleri hakkında bilginiz yoksa bir kitaplığın kaynak kodundan bu tür yumuşatmaların nasıl çalıştığını öğrenebilirsiniz.

Bazı kitaplıklar, kitaplıkları güncel ve güvenli tutmak için zaman ve para yatırımı yapan büyük şirketler tarafından desteklenir. Birçok kitaplıkta, size ve ekibinize kitaplığın kullanımı hakkında hızlı bir şekilde bilgi edinme imkanı sunan kapsamlı belgeler bulunur.

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

Kitaplık kullanımı neden önemlidir?

Teknik olarak web uygulamanızı sıfırdan geliştirebilirsiniz ancak ücretsiz (açık kaynaklı) yazılım kullanmak veya uzun vadede zamandan ve paradan tasarruf etmenizi sağlayacak bir çözüm satın almak varken neden bu zahmete katlanası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ık, üçüncü taraf yerine dahili olarak yazılabilir ve yönetilebilir.
  • Bir kitaplık, web uygulamanız için uygun veya uygunsuz olmasını sağlayan belirli yasal lisanslara sahip olabilir.
  • Bir kitaplık güncelliğini yitirmiş veya bakımı yapılmamış olabilir.
  • Kitaplıklar, karmaşık görevleri basitleştirerek zamandan ve paradan tasarruf etmenizi sağlayabilir.
  • Bir kitaplık, toplulukta yaygın olarak kullanılabilir ve geliştiriciler arasında iyi bilinir.

Tahmin edebileceğiniz gibi, farklı özellikler web uygulamanızı farklı şekillerde etkileyebilir. Bazen karar o kadar da önemli değildir ve beğenmediğiniz bir kitaplığı güvenle değiştirebilirsiniz. Ancak bazen bir kitaplık, çalışmanız ve web uygulamanız üzerinde önemli bir etkiye sahip olabilir. Bu durumda daha bilinçli bir yaklaşım gerekebilir.

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

JavaScript kitaplığının istemci tarafı web uygulamasındaki performans etkisi göz ardı edilmemelidir. Büyük bir JavaScript kitaplığı, sayfanızın yükleme performansını olumsuz etkileyebilir. Milisaniyelerin milyonlar kazandırdığını unutmayın.

Animasyon için JavaScript kitaplığı kullandığınız bir senaryoyu ele alalım. Bazı kitaplıklar kolayca onlarca kilobayt, hatta bazı durumlarda yüzlerce kilobayt ekleyebilir. Bu tür JavaScript kaynakları, tarayıcının kodu indirmesi, ayrıştırması, derlemesi ve yürütmesi gerektiğinden sayfa yükleme sürenizde önemli bir gecikmeye neden olabilir.

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 göz önünde bulundurun:

  • Büyük bir JavaScript kitaplığı yerine daha küçük bir alternatif kullanmayı düşünün. Örneğin, date-fns, diğer bazı seçeneklere kıyasla daha makul bir boyutta çok sayıda işlev sunar.
  • Önceki date-fns örneğinden devam edersek yalnızca ihtiyacınız olan işlevleri içe aktarın. Örneğin: import { format } from 'date-fns'. Bu yaklaşımı tree shaking ile birleştirdiğinizden emin olun. Böylece minimum JavaScript yükü oluşturulur ve kullanıcılarınıza gönderilir.
  • 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, sayfa yükleme sürenize bir saniyelik gecikme ekliyorsa (test sırasında ağınızı ve CPU'nuzu kısmayı unutmayın) seçtiğiniz kitaplığı yeniden değerlendirmeniz gerekebilir. Sayfa yükleme süresini kontrol etmenin yanı sıra, söz konusu kitaplıktan kod çağıran tüm web sayfası davranışlarının profilini çıkardığınızdan emin olun. Sayfa yükleme performansı, her şeyi anlatmaz.
  • Kitaplığın yazarı yorumlara açıksa performansla ilgili gözlemlerinizi, önerilerinizi ve hatta projeye katkılarınızı gönderin. Açık kaynak topluluğu bu konuda çok başarılı. Katkıda bulunmaya karar verirseniz öncelikle işvereninize danışmanız gerekebilir.
  • Bir kitaplıkta beklenmedik büyüklükte 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ğerleri, kitaplığın dosya boyutunu artırabilir. Siz veya ekibiniz bir kitaplığı kullanmayı kabul ettikten sonra kitaplığı güncellemek daha az sorun yaratabilir ve çok az soruya yol açabilir veya hiç soruya yol açmayabilir. Bu noktada otomasyondan yararlanmak faydalı olur.
  • Bir kitaplık için gereksinimlerinize bakın 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ülü kullanmak, doğası gereği bazı güvenlik riskleri taşır. Web uygulaması kod tabanınızdaki 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ığı ele alalım. Bu tür bir paket meşru olabilir. Ancak zaman içinde paketin güvenliği ihlal edilebilir.

Üçüncü taraf kodlarını kullanırken veya değerlendirirken göz önünde bulundurmanız gereken bazı güvenlik ipuçları şunlardır:

  • GitHub kullanıyorsanız Dependabot gibi kod güvenliği tekliflerini göz önünde bulundurun. Alternatif olarak, kodunuzdaki güvenlik açıklarını tarayan snyk.io gibi hizmetleri kullanabilirsiniz.
  • Kullandığınız üçüncü taraf kodunu manuel olarak denetleyebilecek bir mühendis ekibi olan kod denetleme hizmetlerini kullanabilirsiniz.
  • Bağımlılıklarınızı belirli bir sürüme kilitlemeniz mi yoksa üçüncü taraf kodunuzu sürüm denetiminizde mi uygulamanız gerektiğini değerlendirin. Bu sayede bağımlılığınızı güvenli olduğu varsayılan belirli bir sürüme kilitleyebilirsiniz. Bu durum, kitaplıktaki önemli güncellemeleri kaçırmanıza neden olabileceğinden güvenlik açısından ters etki yaratabilir.
  • Projenin ana sayfasını veya varsa GitHub sayfasını tarayın. Güvenlikle ilgili çözülmemiş sorunlar olup olmadığını ve önceki güvenlik sorunlarının makul bir zaman aralığında çö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ığa sahip bir kitaplıktan daha fazla risk taşıyabilir. Bu riski göz önünde bulundurun.

Erişilebilirlik

Yazılım kitaplıklarının web erişilebilirliğiyle nasıl bir ilişkisi olduğunu merak ediyor olabilirsiniz. Yazılım kitaplıkları farklı ortamlarda kullanılabilir ancak istemci tarafı JavaScript tabanlı kitaplıklar söz konusu olduğunda web erişilebilirliği büyük önem taşır.

İstemci tarafı JavaScript tabanlı bir kitaplık (veya çerçeve), web sitenizin erişilebilirliğini artırabilir veya azaltabilir. Bir sayfaya resim kaydırıcı ekleyen üçüncü taraf JavaScript kitaplığını ele alalım. Resim kaydırıcı, web erişilebilirliğini hesaba katmıyorsa web geliştiricisi olarak bu kadar önemli bir özelliği gözden kaçırabilir ve kaydırıcının klavyeyle gezinilebilir olması gibi kritik özelliklerden yoksun 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ığı, azaltılmış hareketi tercih eden kullanıcılar için destek sunuyor mu?
  • Etkileşimli haritalar eklentisi yalnızca klavyeyle kullanımı destekliyor mu?
  • Ses çalar kitaplığı, ekran okuyucularda uygun bir deneyim sunuyor mu?

Bu tür erişilebilirlik gereksinimlerini karşılamak için web geliştiricisi olarak sizin de bir miktar katkıda bulunmanız gerekir. Örneğin:

  • Eksik özellikler varsa söz konusu kitaplığı kullanmaya devam ederken bile bu özellikleri kod tabanınızda uygulayabilirsiniz.
  • İşvereninizin desteğiyle, kitaplık yazarı izin veriyorsa eksik bir özelliği kitaplığa ekleyebilirsiniz.
  • Kitaplığın yazarıyla iletişime geçebilirsiniz. Örneğin, yol haritanızda bu belirli erişilebilirlik özellikleri var mı? Bu kitapların kitaplıkta yer alması gerektiğini düşünü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 bulunması daha zordur.
  • En uç durumda, bir kitaplığı tamamen bırakmanız ve özelliklerinizi sıfırdan uygulamanız gerekebilir. Bu durum, bir kitaplık veya çerçeve ilk kullanımda erişilebilirlik deneyimini düşürdüğünde ve kitaplığın veya çerçevenin size ücretsiz olarak sunduğu birçok şeyi geri almanız gerektiğinde ortaya çıkabilir.

Kongreler

Yerleşik kodlama kurallarını kullanan bir yazılım kitaplığıyla çalışmak daha kolaydır. Bir kitaplık, bilinmeyen bir kodlama kuralı kullanıyorsa sizin ve ekibinizin bu kitaplıkla çalışması zor olabilir.

Bir kitaplık, yaygın kodlama kurallarına (örneğin, yaygın bir stil kılavuzu) uymuyorsa hemen 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 arasındaki farkı bildiğinizden emin olun. Dahili kaynak kodu alışılmadık kurallar kullanıyor olsa da API (kitaplığın etkileşimde bulunduğunuz kısmı) tanıdık kurallar kullanıyorsa endişelenecek bir şey olmayabilir.
  • Kitaplık API'si yaygın kodlama kurallarına uymuyorsa kitaplıkla olan tüm etkileşimleri kod tabanındaki tek bir dosyaya sarmalamak ve içermek için proxy kalıbı gibi bir JavaScript tasarım kalıbı kullanabilirsiniz. Ardından proxy'niz, kod tabanınızdaki kodun diğer bölümlerine daha sezgisel bir API sunabilir.

Yerleşik kurallar, kullanım kolaylığı açısından büyük rol oynar. Sezgisel bir API içeren bir kitaplık, anlaşılması için çok fazla deneme yapılması gereken sezgisel olmayan bir API'ye kıyasla saatlerce, hatta günlerce süren insan saatlerinden tasarruf sağlayabilir.

Güncellemeler

Örneğin, birkaç matematiksel hesaplama yapan ve tam olarak çalışan bir kitaplığın nadiren güncellenmesi gerekebilir. Aslında, sürekli değişen web geliştirme dünyasında tüm özellikleri içeren bir kitaplık bulmak nadir bir durumdur. Ancak kitaplık yazarının duyarlı olmasını ve güncelleme yapmaya istekli 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.

Bir kitaplık veya çerçeve seçerken güncellemelerin nasıl işlendiğine dikkat edin ve bu tür kararların sizi etkileyebileceğini unutmayın:

  • Kitaplığın makul bir yayın planı var mı? Örneğin, kaynak kodu deposunda sık sık güncelleme yapılabilir ancak bu güncellemeler uygun şekilde "yayınlanmaz" veya "kullanıma sunulmazsa" bunları indirirken sorun yaşayabilirsiniz.
  • Kitaplık, güncellemeleri mantıklı bir yazılım sürümü oluşturma şemasıyla mı yayınlıyor? Kitaplık size zaman kazandırmalıdır. Kitaplık sürümünü her güncellediğinizde kodunuzu beklenmedik bir şekilde değiştirmeniz gerekiyorsa bu durum, söz konusu kitaplığı kullanma amacınızı ortadan kaldırabilir. Zarar veren değişiklikler bazen kaçınılmaz olsa da ideal bir dünyada değişiklikler nadiren yapılır ve kitaplık kullanıcılarına zorla kabul ettirilmez.
  • Kitaplık, geriye dönük uyumluluk için çaba harcıyor mu? Yazılım güncellemeleri bazen zarar veren değişiklikler içerebilir ancak geriye dönük uyumluluk katmanı da sağlar. Bu sayede kitaplık tüketicisi, kodunda minimum 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 yönüdür. Kitaplık yazarı, kitaplığına bir lisans atayabilir. Kitaplığı kullanmayı düşünüyorsanız lisans seçimleri sizi etkileyebilir.

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

Emin olmadığınız durumlarda profesyonel hukuki danışmanlık almayı veya şirketinizdeki hukuk ekibine danışmayı düşünebilirsiniz.

Topluluk

Kullanıcı/katkıda bulunan topluluğu büyük olan bir kitaplık veya çerçeve faydalı olabilir ancak bu 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 aşağıdaki avantajlarını ve dezavantajlarını göz önünde bulundurun:

Artıları:

  • Geniş bir kullanıcı tabanı, hataların erken ve sık sık yakalanma olasılığının daha yüksek olduğu anlamına gelebilir.
  • Büyük ve aktif bir topluluk, söz konusu kitaplık veya çerçeve hakkında daha fazla eğitim, kılavuz, video ve hatta kurs anlamına gelebilir.
  • Büyük ve aktif bir topluluk, forumlarda ve soru-cevap web sitelerinde daha fazla destek anlamına gelebilir. Bu da destek sorularının yanıtlanma olasılığını artırır.
  • Etkileşimli bir topluluk, kitaplığa veya çerçeveye daha fazla harici katkıda bulunan kişi anlamına gelebilir. Yazarın yol haritasında yer almayan özelliklerin sunulmasına yardımcı olabilirler.
  • Bir kütüphane veya çerçeve bir topluluk içinde popüler olduğunda, akranlarınızın ve meslektaşlarınızın bu kütüphane veya çerçeveyi duymuş, hatta aşina olma olasılığı artar.

Eksileri:

  • Geniş ve çeşitli bir kullanıcı tabanına sahip bir proje, sürekli özellik eklenmesi nedeniyle şişebilir. Şişirilmiş kitaplıklar web performansına zarar verebilir.
  • Aktif ve ilgili bir topluluğa sahip bir proje, yazarlar ve sürdürücüler için stresli olabilir ve yoğun topluluk moderasyonu gerektirebilir.
  • Hızla büyüyen ancak uygun desteğe sahip olmayan bir proje, toksik bir topluluğa sahip olduğuna dair işaretler göstermeye başlayabilir. Örneğin, yeni başlayan veya deneyimsiz web geliştiricileri, kapı tutma nedeniyle belirli bir toplulukta istenmediklerini hissedebilirler.

Belgeler

Bir JavaScript kitaplığı veya çerçevesi ne kadar basit ya da karmaşık olursa olsun, yazılım belgeleri her zaman yardımcı olabilir. Çok deneyimli geliştiriciler bile kodu kendileri çözmek yerine dokümanlardan yararlanır. Belgelerde, hangi API'yi nasıl kullanmanız gerektiği açıklanır.

Dokümanlar, hızlı bir başlangıç yapmanızı kolaylaştıran örnek kodlar da içerebilir. Bir kitaplığı veya çerçeveyi değerlendirirken şu sorulardan bazılarını sorabilirsiniz:

  • Kitaplıkta dokümanlar var mı? Aksi takdirde, sorunları kendi başınıza çözme konusunda rahat olmanız gerekir.
  • Belgeler net, kolay anlaşılır ve belirsizlikten uzak mı? Birçok geliştirici, dokümanlar için çok fazla zaman harcar. Küçük bir ayrıntı gibi görünse de metin dokümanlarında netlik, üretkenliğiniz üzerinde büyük bir etkiye sahip olabilir.
  • Belgeler tamamen otomatik olarak mı oluşturuluyor? Bu tür belgelerin anlaşılması daha zor olabilir ve her zaman bir API'nin nasıl kullanılacağına dair net bir rehberlik sağlamaz.
  • Belgeler güncel mi? Dokümanların güncel tutulması bazen ikinci plana atılır. Kitaplık güncellenir ancak dokümanlar güncellenmezse geliştirme süresi boşa harcanabilir.
  • Belgeler kapsamlı ve birden fazla biçimde sunuluyor mu? Kullanıcı rehberleri, örnek kodlar, referans belgeleri, canlı demolar ve eğitimler, bir kitaplığı veya çerçeveyi başarılı bir şekilde kullanmanıza yardımcı olabilecek değerli belge biçimleridir.

Belgeler her zaman eksiksiz olmayabilir ve bu normaldir. Kuruluşunuzun ihtiyaçlarını, proje gereksinimlerinizi ve yazılımınızın karmaşıklığını değerlendirmeniz ve bu değerlendirmeyi kullanarak ihtiyacınız olan dokümantasyon düzeyini belirlemeniz gerekir.

Sonuç

İlk kez bir kitaplık veya çerçeve seçerken bunalmış hissetmeniz normaldir. Her şeyde olduğu gibi, bir görev hakkında ne kadar çok şey öğrenir ve pratik yaparsanız o kadar iyi olursunuz. Bir sonraki sefer kullanacağınız kitaplığı veya çerçeveyi seçerken bu yayına başvurmanız faydalı olabilir. Bu yayındaki başlıkları kontrol listesi olarak kullanabilirsiniz. Örneğin: Bu kitaplık performanslı mı? Bu kitaplık, web erişilebilirliğiyle ilgili işletme standartlarımı karşılıyor mu?

Kitaplıkların ve çerçevelerin, bu yayında ayrıntılı olarak ele alınmayan ve dikkate almak isteyebileceğiniz 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 derleme sistemi eklentileri gibi araçlar var mı?
  • Mimari: Temiz kod önemlidir ancak kitaplığın genel mimarisi mantıklı mı?
  • Testler: Projenin bir test paketi var mı? Proje web sitesinde, test paketinin en son taahhüde göre başarılı olduğunu gösteren 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: Çerçevenin maliyeti nedir? Açık kaynaklı mı yoksa satın alınabilir mi?
  • Gösteriş metrikleri: Bu metrikler, ölçüt listenizin alt sıralarında yer almalı, hatta 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 almak isteyebilirsiniz.