Derleme araçlarını en iyi uygulamalara göre seçin ve yapılandırın.
Bugün web.dev, tooling.report adlı yeni bir girişimi kullanıma sunuyor. Web geliştiricilerine bir dizi popüler derleme aracında desteklenen özelliklere genel bir bakış sunan web sitesidir. Bu siteyi bir sonraki projeniz için doğru derleme aracını seçmenize, bir araçtan diğerine taşımaya değip değmeyeceğine karar vermenize veya araç yapılandırmanıza ve kod tabanınıza en iyi uygulamaları nasıl dahil edeceğinizi belirlemenize yardımcı olmak için oluşturduk. Araçların odak alanları farklıdır ve farklı ihtiyaçlara cevap verir. Bu nedenle, araçların seçilmesi ve yapılandırılması, denge kurmayı gerektirir. tooling.report ile bu dengeleri açıklamayı ve herhangi bir derleme aracında en iyi uygulamalardan nasıl yararlanılacağını belgelemeyi amaçlarız.
Heyecan verici mi? Keşfetmeye başlamak için tooling.report adresini ziyaret edin veya bu siteyi neden ve nasıl geliştirdiğimizle ilgili daha fazla bilgi edinmek için okumaya devam edin.
Araçları geliştirirken çoğu zaman
GoogleChromeLabs'ta Squoosh ve Proxx gibi web uygulamalarının yanı sıra Chrome Dev Summit 2019'da düzenlenen gibi web siteleri oluşturduk. Tüm web geliştirme projelerinde olduğu gibi, genellikle barındırma ortamı, çerçeveler ve derleme aracı kurulumu gibi proje altyapısını konuşarak başlıyoruz. Proje ilerledikçe bu altyapı güncellenir: Benimsediğimiz çerçevelere veya tekniklere uygun olması için yeni eklentiler eklenir ya da kod yazma şeklimiz, derleme araçlarımızın ne yapmaya çalıştığımızı daha iyi anlaması için değiştirilir. Bu süreç boyunca, genellikle seçtiğimiz araçların yolumuza boğulduğunu fark ettik.
Ekibimiz kullanıcılara en iyi web deneyimini sağlamaya odaklanmıştır; bu da genellikle ön uç varlıklarımızın derlenme ve teslim edilme biçiminde ince ayarlamalar yapılmasıyla sonuçlanır. Örneğin, bir ana iş parçacığı komut dosyası ve web çalışanı komut dosyasının ortak bağımlılıkları varsa bağımlılıkları her komut dosyası için iki kez gruplandırmak yerine bir kez indiririz. Bazı araçlar bunu kullanıma hazır bir şekilde destekler, bazılarının varsayılan davranışları değiştirmek için önemli ölçüde özelleştirme çabası gerekirken bazıları için bu tamamen imkansızdır.
Bu deneyim, bizi farklı derleme araçlarının neleri yapıp neleri yapamayacaklarını araştırmaya yöneltti. Umudumuz, yeni bir projeye başladığımızda, değerlendirip projemize en uygun aracı seçebilmemiz için özellikler için bir kontrol listesi oluşturmaktı.
Yaklaşımımız
Farklı oluşturma araçlarını tek bir yerde nasıl değerlendirip karşılaştırabiliriz? Buna test senaryoları yazarak yaklaştık.
Ekibimiz, web geliştirme için en iyi uygulamaları temsil ettiğine inandığımız test kriterlerini ele alıp tasarladı. Özellikle hızlı, duyarlı ve sorunsuz kullanıcı deneyimleri sunmaya odaklandık. Karşılaştırmasız iki sonucu ölçmekten kaçınmak için geliştirici deneyimiyle ilgili testleri kasıtlı olarak hariç tuttuk.
Test listesi oluşturulduktan sonra, testin başarı kriterlerini karşılayıp karşılayamayacağını kontrol etmek üzere her araç için bir derleme komut dosyası hazırladık. Başlangıç olarak webpack v4, Rollup v2 ve Parcel v2'yi incelemeye karar verdik. Ayrıca, çok sayıda projede hâlâ bu kurulum kullanıldığından, Scannerify ve Gulp'ı da test ettik. Bir testin başarılı olması için aracın yalnızca herkese açık olarak belgelenmiş özellikleri veya araç için bir eklenti kullanılabilir. İlk test grubu yazıldıktan sonra, araçlarını doğru şekilde kullandığımızdan ve adil bir şekilde temsil ettiğimizden emin olmak için yapı aracı yazarlarıyla birlikte çalıştık.
Yalnızca ${tool_name} aracını kullanıyoruz, yine de ilgilenmeli miyim?
Çoğu ekipte, altyapının bakımını yapmaya adanmış kişiler vardır ve ekibin diğer üyeleri, araç geliştirme konusunda hiçbir zaman seçim yapamayabilir. Güvendiğiniz araçlarla ilgili beklentilerini belirlemek amacıyla bu sitenin sizin için de yararlı olacağını umuyoruz. Her test için ek kaynaklara ve testin neden önemli olduğuna dair bir açıklama ekledik. İstediğiniz araçla ilgili en iyi uygulamalardan yararlanmak isterseniz depomuzdaki test kurulumu bunun için gereken yapılandırma dosyalarını içerir.
Siteye katkıda bulunabilir miyim?
Şu anda eksik olan belirli bir özelliğin test edilmesi gerektiğini düşünüyorsanız lütfen tartışmaya başlamak için bu özelliği bir GitHub sorununda önerin. Gerçek hayattan kullanım alanlarını kapsamayı amaçlıyoruz ve bu sonuçları daha iyi değerlendiren her türlü ek test kabul edilebilir.
İlk sete dahil etmediğimiz araçlar için testler yazmak istiyorsanız, bunu da memnuniyetle karşılarız! Daha fazla bilgi için lütfen CONTRIBUTING.md sayfasına bakın.