Çoğu web uygulamasıyla çalışma eğilimindeyim ve genel olmaya çalışmama rağmen, cevabım programlama alanınız için geçerli olmayabilir .
Ayrıca "kütüphane" ile eşanlamlı olan "çerçeve" yi kullanacağım.
Bir çerçeveyi uygulamadan önce, birkaç şey düşünülmeli, işte birkaç genel örnek.
# 1. Çerçeve zamandan ve emekten tasarruf sağlayacak mı?
Bu sorunun cevabı neredeyse her zaman evet . Özel problemleri çözmek ve bunları çok iyi çözmek için çerçeveler inşa edilir . Örneğin, EntityFramework gibi çerçeveler sizi tamamen SQL kodu yazmaktan kurtarabilir . Programlama ekibiniz SQL'de akıcı değilse, hangisi harika olabilir.
Altyapılardan herhangi biri, a) aksi takdirde karmaşık bileşenlere programcı dostu bir arabirim eklemek veya b) zaten iyi bilinen (veya kurulmuş) bileşenlere soyutlama eklemek.
İkincisi (hatta bazı durumlarda eski bile) aslında gelişim yoluna girebilir . Bu, özellikle sizin veya programlama ekibiniz daha önce hiç çalışmadıkları yeni bir çerçeve uygulayacağınız zaman geçerlidir .
Bu, potansiyel olarak pahalı olabilecek geliştirme sürecinizi yavaşlatabilir.
# 2 Uygulamanızın ölçeği
"Yapmaya değer her şeyin abartmaya değer olduğu " söylenir , ancak genellikle durum böyle değildir. Uygulamanızın amacı "patates" yazdırmaksa, büyük boyutlu bir çerçeve uygulamak için muhtemelen hiçbir neden yoktur .
Bir uygulama geliştirirken (web, masaüstü, mobil veya akla gelebilecek herhangi bir uygulama türü olabilir) - çerçevenizin büyüklüğünün sizin (belki gelecekteki) uygulamanızı "caydırdığını" düşünüyorsanız, o zaman bu büyük Çerçevenizin yalnızca başvurunuzu şişirebileceğini belirten uyarı işareti. JQuery'yi eklerseniz, doküman hazır olduğunda sadece body-tag'inize "yüklü" bir sınıf eklemek için iyi bir anekdot olacaktır. Bunu sadece yerel JavaScript ile yapmak biraz zor olabilir , ancak başvurunuzu şişirmez.
Öte yandan, eğer bir çerçeve iç kısımda çok kirli işler yaparsa (yani veritabanı çerçeveleri), o zaman çerçeveyi yalnızca “kısmen” kullanıyor olsanız bile, bunu uygulamak uygun olabilir. İyi bir fıkra , kendi ADO.NET'inizi veya MongoDB sürücünüzü oluşturmaya çalışmak değildir , çünkü tüm kütüphaneyi kullanmanıza gerek yoktur.
Bazen çerçeveler açık kaynaklıdır (ve 'ne istersen yap' lisansı ile). Bu, bir programlama ekibinin yalnızca bir çerçevenin bölümlerini seçebileceği yeni bir olasılık açar.
Bu sonuçta # 1 ve 3 numaralı sorulara geri dönüyor.
# 3 Etki.
Bazen bir çerçeve uygulamak son kullanıcıyı doğrudan etkileyebilir . Bu özellikle web uygulamaları için geçerlidir, çünkü büyük müşteri tarafı çerçevelere sahip olmak son kullanıcının deneyimini olumsuz yönde etkileyebilir. Daha yavaş makineleri olan kullanıcılar yavaş işleme, javascript ile performans sorunları veya alt makinelerin neden olduğu benzer sorunlar yaşayabilir. Yavaş bağlantıları olan kullanıcı, yavaş (en azından başlangıçta) yükleme süreleriyle karşılaşabilir.
Diğer tip uygulamalarda bile, son kullanıcılar uygulama bağımlılıklarınızdan olumsuz yönde etkilenebilir. Altyapılar en azından her zaman biraz disk alanı kaplar ve bir mobil uygulama (veya bir masaüstü uygulaması) geliştiriyorsanız, bunun dikkate alınması gerekebilir.
Sunucu tarafı çerçeveler (daha da web'e özel) büyük olasılıkla son kullanıcılarınızı etkilemeyecek, ancak altyapınızı etkileyecektir . Bazı çerçeveler bağımlılıkları kendilerini web sunucusu, ya sadece hizmet veya tamamen sunucuyu yeniden başlatmak için gerektirebilir.
Bazı çerçeveler de kaynak bakımından çok ağır olabilir.
Bu elbette # 1 ve # 2 noktalarına geri dönüyor.
Her şey sadece büyük bir "değerlendirme çemberi" ve bir çerçeve uygulayıp uygulamamaya karar vermeniz için gerçek bir bilimsel yöntem yok.
Corbin March bunu çok iyi özetledi:
Hepsi ile çalıştığım gruplar aynı şeyi yapıyor - maliyet ve faydalara dair bir tahminde bulunun, en verimli rotayı seçin ve doğru olduklarını umun. Son derece bilimsel değil - bir bölüm sezgisi, üç bölüm deneyimi, bir bölüm pazarlamaya duyarlılık, bir bölüm kurnazlık ve beş bölüm rütbe görüşü.
Seçkin olmamak da önemlidir . Çerçeveler, kullanılması amaçlanan araçlardır. Her iki ucundan da insanları tanıyorum; Bir tarafta hayatı kendisi için zorlaştıran bir adam var, diğer tarafta yavaş, şişirilmiş uygulamalar yapan bir adam.
Tüm çerçevelerin kullanım durumları vardır, bu onları doğru amaçlarla uygulama meselesidir.