Geliştiricilerin en çok zorlandığı konularla ilgili, bire bir görüşmelerden toplanan analizler.
Paul Kinlan birkaç ay önce 2021'de geliştiricilerin en çok zorlandığı konular hakkında bir yazı yayınlamıştı. Bu nedenle, bu makaleye son 2 çeyrekle ilgili bir güncellemeyle başlamak uygun olacaktır. Rakamlar biraz değişti ancak sıralama değişmedi.
| Zorluk | 1. Çeyrek 2021 | 2. Çeyrek 2021 | 2021 3. Çeyrek | 2021 4. Çeyrek |
|---|---|---|---|---|
| Web platformu veya web standartlarındaki değişikliklere ayak uydurma | %27 | %26 | %27 | %22 |
| Çok sayıda yeni ve mevcut araç veya çerçeveyi takip etmek. | %26 | %26 | %25 | %21 |
| Bir tasarımın veya deneyimin tüm tarayıcılarda aynı şekilde çalışmasını sağlama. | %26 | %28 | %24 | %21 |
| Tarayıcılar arasında test etme | %23 | %24 | %20 | %20 |
| Güvenlik önlemlerini anlama ve uygulama | %23 | %25 | %20 | %19 |
Paul'un blog yayınında da belirtildiği gibi bu sorunları çözmemiz gerekiyor. Bu kapsamda, meslektaşım Kadir Topal ile birlikte 18'den fazla geliştiriciyle görüştük. Amacımız, geliştiricilerin en çok karşılaştığı sorunları çözme yolunu araştırmak ve anlamaya başlamaktır.
Geliştirici tartışmaları
Sorumluluk reddi beyanı: Bu analizler, geliştiricilerle yapılan az sayıda görüşmeye dayanmaktadır. "Tümü" veya "bazıları" ifadeleri, tüm topluluğu değil, görüşme yapılan geliştiricileri ifade eder. Bu analizleri daha geniş bir kitleye genellemek için daha fazla araştırma yapılması gerekiyor.
Bu sohbetler, web geliştirici topluluğunun ne kadar muhteşem ve çeşitli olduğunu bir kez daha hatırlattı. Bizimle konuşan tüm geliştiricilere teşekkür ederiz. Bazı geliştiricilerin 25 yılı aşkın deneyimi varken bazıları 2020 gibi yakın bir tarihte başlamıştı. Bazı geliştiriciler kariyerlerine resmi bir bilgisayar bilimi diplomasıyla başlarken, diğerleri kariyerlerine bağımsız olarak başladı. Bazı geliştiriciler yenilikleri aktif olarak takip eder ve tarayıcı sürüm notlarını okuyarak güncel kalır. Diğerleri ise yenilikleri iş arkadaşları ve arkadaşlarından öğrenir. Bazıları karmaşıklığın işin bir parçası olduğunu düşünür ve zorluklarla karşılaşmaktan hoşlanır, bazıları ise sadece işini yapmak ister. Bu sorunları çözmeye çalışırken bu çeşitliliği göz önünde bulundurmak önemlidir.
Tüm geliştiricilerin ortak noktalarından biri, işlerini yapmak için bir İYS veya çerçeve kullanmalarıdır. Wordpress, React, Bootstrap, Angular ve Tailwind'den bahsedildi. Geliştiricilerin hiçbiri üretimde vanilla web platformunu kullanmıyordu. Bir projeye başlarken çerçeve seçmek zordur ve geliştiriciler genellikle teknik olmayan gereksinimleri dikkate alır. Örneğin, bu çerçeveyle çalışacak bir geliştiriciyi işe almanın kolay olup olmayacağı. Çerçeveler ve İYS'ler çözüme dahil edilmezse geliştiricilerin yaşadığı sorunları çözemeyiz.
Web platformundan bahsetmişken, çoğu geliştirici platformu, üzerinde geliştirme yaptıkları bir şey olarak anlar. Bu, web platformunun klasik tanımını değil, aynı zamanda İYS'leri, çerçeveyi, araçları ve polyfill'leri de içerir. Çoğu durumda, en büyük zorluklar bu değişiklikleri güncel tutarken yaşanır. Bu durum, soruya dair yorumumuzu değiştirdi. Artık anketimizi güncelleyerek soruyu daha az belirsiz olan farklı bölümlere ayırmamız gerektiğini biliyoruz.
Belirsizliğin olduğu bir diğer alan da web standartları tanımıdır. Standartlara uyma konusunda örnekler sorulduğunda birçok geliştirici, en iyi uygulamalara uymakta zorlandığını belirtti. Ankette netleştirmemiz gereken bir diğer konu da bu.
Geliştiriciler, belirli kullanım alanlarını ve kalıpları uygularken en iyi uygulamaları arar. Blog yayınları ve StackOverflow, en iyi uygulamalar için kaynak olarak belirtilir ancak geliştiriciler genellikle okudukları bilgilerin gerçekten en iyi uygulama olup olmadığını ve en son özellikler ile API'lerle güncel olup olmadığını merak eder. Bu bilgileri daha resmi bir kaynaktan okumak istiyorlar.
Yeni kullanım alanları sağlayan özellikler ve API'leri takip etmek daha küçük bir sorundur. Geliştiriciler, en iyi uygulamalarda değişikliğe yol açan özellikler, API'ler ve platform değişiklikleri konusunda daha fazla zorluk yaşıyor.
Çoğu geliştirici, uyumluluğun en büyük zorluklardan biri olduğunu kabul eder. Compat 2021 ve Interop 2022 gibi çalışmalar sayesinde durum iyileşiyor ancak geliştiricilerin bunu henüz çözülmüş bir sorun olarak görmediği açık.
Çoğu geliştirici, polyfill'leri şu veya bu şekilde kullanır. Ancak çoğu durumda, polyfill Babel gibi bir araç veya çerçeve tarafından otomatik olarak eklenebildiğinden kullanım geliştiriciler için şeffaftır. Polyfill'lerini kendileri yönetenler için bir polyfill'in "iyi" olup olmadığını anlamak sorun olabilir. Geliştiriciler, NPM'deki yükleme sayısını ve polyfill'in oluşturucusunu sinyal olarak kullandıklarını belirtti. Birkaç geliştirici, IE 11 desteğinin sonlandırılması nedeniyle gereksiz hale gelen polyfill'leri kaldırmak için çalışma yaptıklarını belirtti.
Çerçeveler, parçalanma sorunlarına yol açar. Geliştiricilerin bir çerçeve çalışmasının eski bir sürümüne "takılıp kaldığı" ve bu nedenle kullanabilecekleri özelliklerin sınırlı olduğu, ancak aynı çerçeve çalışmasının daha yeni bir sürümüne geçmenin maliyetli ve gerekçelendirilmesinin zor olabileceği yönünde raporlar aldık.
Sonuç
Modern web geliştirme; standartlar, tarayıcılar, kitaplıklar, polyfill'ler, içerik yönetim sistemleri, çerçeveler, en iyi uygulamalar ve araçlar gibi birçok hareketli parçaya sahiptir. Bu çeşitlilik, web'in en iyi özelliklerinden biridir ancak şu anda her bir parçayı ve bunların birbiriyle nasıl uyumlu olduğunu anlamak her geliştiricinin kendi sorumluluğundadır.
Çeşitlilikten ödün vermeden, geliştiricilere her şeyin birbiriyle nasıl bağlantılı olduğunu daha net bir şekilde anlatmanın ve tüm parçalar arasında daha fazla uyum sağlamanın bir yolu var mı? Bu büyük ve karmaşık bir sorun, hepsini bir kerede yapmak zor. Peki nereden başlamalı?
Paylaşmak istediğiniz görüş ve düşünceleriniz varsa Ben de sizinle konuşmak isterim. Doğrudan görüşme rezervasyonu yapabileceğiniz bir yöntem ayarlayacağım ancak bu süre zarfında Twitter'da DM'lerim açık. Bize ulaşın, sohbet edelim.