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. Bu ikisi arasındaki fark temel olarak şu şekilde özetlenebilir:
- Uygulama kodunuz, kitaplık kodunu çağırır.
- Çerçevelerde 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ığı 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. İşlem tamamlandıktan sonra kontrol uygulamanıza geri verilir.
import capitalize from 'lodash.capitalize';
capitalize('hello'); // Hello
lodash.capitalize
yöntemi çalıştırıldığında, bir dizenin ilk karakterini büyük harf yapan ö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ğunu ve bazı durumlarda çerçevenin, kodunuzun ne zaman yürütüleceğini bile kontrol ettiğini görebilirsiniz.
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. Tüm kodu sıfırdan yazmak zaman alıcı olabilir. Bu nedenle, kitaplıklar ilk ürününüzü yayınlamanıza da yardımcı olabilir.
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 kitaplıkta, size ve ekibinize kitaplığın kullanımı hakkında hızlı bir şekilde bilgi veren kapsamlı dokümanlar bulunur.
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 ancak ücretsiz (açık kaynak) yazılımları kullanabilir veya uzun vadede zaman ve para tasarrufu sağlayabilecek bir çözüm satın alabilirsiniz. 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.
- Kitaplık güncelliğini kaybetmiş veya bakımı yapılmamış 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ü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ı 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 seçeneklere kıyasla daha makul bir boyutta çok sayıda 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 ekliyorsa (test sırasında ağınızı ve CPU'nuzu dengelemeye unutmayın) seçtiğiniz kitaplığı yeniden değerlendirmeniz gerekebilir. Sayfa yüklemesini kontrol etmenin yanı sıra, söz konusu kitaplıktan kod çağıran tüm web sayfası davranışlarını profillediğinizden emin olun. Sayfa yükleme performansı, sorunun tamamını açıklamaz.
- Kitaplık yazarı yorumları kabul ediyorsa performans gözlemlerinizi, önerilerinizi ve hatta projeye katkılarınızı gönderin. Açık kaynak topluluğu işte burada öne çı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 normaldir. Ö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ığınızla ilgili gereksinimlerinizi gözden geçirin ve web platformunun yerel olarak aynı işlevleri 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ığı kullanmaya gerek kalmaz.
Güvenlik
Üçüncü taraf modülü kullanmak bazı doğal güvenlik riskleri taşır. 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. Bu tür paketler 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 Dependabot gibi kod güvenlik tekliflerinden yararlanabilirsiniz. Alternatif olarak, kodunuzdaki güvenlik açıklarını tarayan snyk.io gibi hizmetleri de kullanabilirsiniz.
- Kullandığınız üçüncü taraf kodunu manuel olarak denetleyebilen bir mühendis ekibi olan kod denetimi hizmetlerini kullanabilirsiniz.
- Bağımlılıklarınızı belirli bir sürüme kilitlemeniz veya üçüncü taraf kodunuzu sürüm kontrolünüze eklemeniz 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 sorunu 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ığı olan 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ğ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ığını düşünün. 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ı yazı tipi 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 koşullarını karşılamak için web geliştiricisi olarak sizden belirli düzeyde katılım beklenmesi makuldür. Örneğin:
- Eksik özellikler için söz konusu kitaplığı kullanmaya devam ederken bile bu özellikleri kod tabanınızda uygulayabilirsiniz.
- İşvereninizin desteğiyle, kitaplık yazarı bu tür katkılara izin veriyorsa kitaplığa eksik bir özellik ekleyebilirsiniz.
- Kitaplığın yazarı ile iletişime geçebilirsiniz. Örneğin, bu erişilebilirlik özellikleri yol haritanızda yer alıyor mu? Bu içeriklerin kitaplığa ait olduğunu 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 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ışmanız zor olabilir.
Bir kitaplık, yaygın kodlama kurallarına (ör. ortak bir stil kılavuzu) uymuyorsa hemen düzeltme 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 bölümlerine 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, her özelliğiyle eksiksiz 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.
Bir 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ğinin farkında olun:
- 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 ticari olmayan bir ortamda kullanmanıza izin veren bir yazılım lisansı olabilir. Bu, kişisel bir hobi projesi için mükemmel bir seçim olabilir. Projenizde ticari bir unsur varsa kurumsal lisans kullanmayı düşünmeniz gerekebilir.
Şüphe duyduğunuzda profesyonel yasal tavsiye almayı veya şirketinizdeki hukuk ekibine danışmayı düşünebilirsiniz.
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ığın veya çerçevenin ne kadar çok kullanıcısı varsa o kadar faydalı olma olasılığı yüksektir. Geliştirici topluluğuna katılmanın avantaj ve dezavantajlarını göz önünde bulundurun:
Artıları:
- Büyük bir kullanıcı tabanı, hataların erken ve sıklıkla yakalanma olasılığının daha yüksek olması anlamına gelebilir.
- 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 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 bulunmayan özellikleri sunmanıza yardımcı olabilirler.
- Bir kitaplık veya çerçeve bir topluluk içinde popüler olduğunda, akranlarınızın ve iş arkadaşlarınızın bu tür bir 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 moderasyonuna ihtiyaç duyabilir.
- Hızla büyüyen ancak uygun destek almayan projelerde toksik bir topluluğun varlığına dair işaretler görülmeye 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. Çok deneyimli geliştiriciler bile kodu kendileri çözmek yerine dokümanları 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, dokümanlara çok fazla zaman harcar. 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üncellenirken dokümanlar güncellenmezse geliştirme süresinin boşa harcanmasına neden olabilir.
- Dokümanlar kapsamlı ve birden fazla biçimde mevcut 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.
Belgeler her zaman eksiksiz olmayabilir ve bu 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 kitaplık veya çerçeve seçerken bunalmış hissetmeniz 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 başvurmanız faydalı olabilir. Bu gönderideki başlıkları kontrol listesi olarak kullanabilirsiniz. Örneğin: Bu kitaplık performans gösteriyor mu? Bu kitaplık, web erişilebilirliğiyle ilgili işletme standartlarımı karşılıyor mu?
Kitaplıklar ve çerçevelerle ilgili, bu makalede ayrıntılı olarak ele alınmayan ve göz önünde bulundurmanızda fayda olabilecek başka yönler 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: 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.