Go

Paylaş:

Bu sorular yalnızca Go'yu üç ana programlama dilinden biri olarak seçen katılımcılara gösterildi.

Go'yu hangi amaçla kullanıyorsunuz?

Verimliliği ve hızı, eşzamanlılık özellikleri, güçlü standart kitaplığı, basitliği ve okunabilirliğiyle öne çıkan Go, kesinlikle üretime hazır bir dil ve Go'yu iş için kullanan geliştiricilerin payının artması şaşırtıcı değil. Go; Google, Dropbox, Microsoft, PayPal, Netflix ve diğerleri dahil olmak üzere birçok büyük şirket tarafından üretim için kullanılıyor.

Go'da geliştirirken birincil olarak hangi işletim sistemini kullanıyorsunuz?

Bu veriler, Go ekibi tarafından yürütülen anketlerde gördüklerimizle neredeyse tutarlıdır. Go'ya genellikle "bulut dili" denir çünkü bulutta yerel uygulamalar ve DevOps araçları oluşturmak için yaygın olarak kullanılır. Bu, Go geliştiricileri arasında Linux ve macOS'un popülerliğini açıklıyor.

Aynı anda birden çok Go sürümü kullanıyor musunuz?

Go geliştiricilerinin yalnızca 1/3'ü tek seferde tek bir projeyle çalışıyor, geri kalan kesim eş zamanlı olarak birden çok projeyle çalışıyor.

Hangi Go sürümünü kullanıyorsunuz?

Go, geriye dönük uyumluluk açısından harikadır, ancak bazı kullanıcılar hâlâ aynı anda birkaç sürüm çalıştırıyor. Kullanım örneklerinden biri, geliştiricilerin regresyonları yakalamak ve diğer sorunları tespit etmek için CI'larını Go'nun iki veya üç farklı sürümüyle çalışacak şekilde ayarlamasıdır.

Go geliştirmek için hangi şablon motorunu kullanıyorsunuz?

Html/şablonun en üst sırayı alması mantıklı. Bu paket, kullanıcı tarafından oluşturulan veriler gibi potansiyel olarak tehlikeli içeriklerden otomatik olarak kaçınır ve kod yerleştirme saldırılarından kaçınmanıza yardımcı olur.

Aynı projede Go ile birlikte hangi dilleri kullanıyorsunuz?

Kısa süre önce yapılan Go anketine göre, Go geliştiricilerinin %37'si web siteleri ve web hizmetleri oluşturmak için Go'yu kullanıyor. Bu veriler, neden bu kadar çok geliştiricinin aynı projede JavaScript, TypeScript ve Go kullandığını açıklıyor.

Python'un yüksek sıralaması muhtemelen birçok Python projesinin Go'ya geçme eğiliminden kaynaklanıyor. Geliştiriciler Python'da yazılmış bir projeye yeni hizmetler eklemeye karar verirken genellikle verimliliği, eşzamanlılık desteği ve ağ oluşturma ve web hizmetlerinde güçlü performansıyla bilinen Go'yu tercih ediyor. Bu yaklaşımın dezavantajları vardır, ancak geliştiricilerin kod tabanlarını yeniden yazmasına gerek kalmamasını sağlar.

GoLand'in, JavaScript ve TypeScript için destek sağladığını göz önünde bulundurun. Ayrıca Python Community Edition eklentisini yükleyebilir ve Python desteğinden yararlanabilirsiniz.

Go ile ne tür yazılımlar geliştiriyorsunuz?

Çalışma alanları (go.work) kullanıyor musunuz?

Çalışma alanı modu Go 1.18'de tanıtıldı ve geliştiricilerin her modül için go.mod dosyalarını düzenlemeye gerek kalmadan aynı anda birden fazla modül üzerinde çalışmasına olanak tanıdı. Go çalışma alanlarıyla, go.work dosyasını kullanarak tüm bağımlılıkları kontrol edebilirsiniz.

Hangi Go web çerçevelerini düzenli olarak kullanıyorsunuz?

Geçen yıl olduğu gibi, Gin çerçevesi web geliştirme için en popüler çözüm olmaya devam ediyor, standart kitaplıktaki net/http paketi ise yerini koruyor. Gin ve net/http arasındaki farkları daha iyi anlamak için Go REST Kılavuzumuza göz atın.

Ne tür Go modülleri proxy'si kullanıyorsunuz?

Projelerinizde dışarıdan hizmet alıyor musunuz?

Go'da, sağlayıcı dizinine taşımak belirli bir proje için gereken bağımlılıkların kendi yerel kopyalarını oluşturma ve bu kopyaları dosya yapınıza dâhil etme uygulamasıdır. Böylece, projenizin bir uygulama oluşturmak için gerekli tüm kodu içerdiğinden emin olabilirsiniz ve harici kaynaklardan bağımlılık indirmeye bağlı kalmak zorunda kalmazsınız.

Çoğu yaklaşım gibi, sağlayıcı dizinine taşımanın da bazı dezavantajları vardır. Bazı geliştiriciler, sağlayıcı dizinine taşımanın kod deposunu daha az şeffaf hâle getirdiğini ve değişikliklerin incelenmesini zorlaştırdığını düşünüyor. Go modülleri, bağımlılıkları önbelleğe alan ve doğru paket sürümünün her zaman kullanılabilir olmasını sağlayan Go proxy gibi özellikler sayesinde geliştiricilerin sağlayıcı dizinine kaydetme pratiğinden uzaklaşmasına yardımcı olur.

Hangi Go yönlendiricisini düzenli olarak kullanıyorsunuz?

Standart kitaplık popüler yönlendiriciler olan gorilla/mux ve go-chi/chi'yi hâlâ geride bırakıyor. Gorilla/mux ile standart kitaplık arasındaki farkları daha iyi anlamak için Go REST Kılavuzu'na başvurabilirsiniz.

Hangi test çerçevelerini düzenli olarak kullanıyorsunuz?

Projelerinizde kaç harici bağımlılık var?

IDE'de / düzenleyicide kullandığınız kod tabanının boyutu nedir?

Eşdeğerler kullanıyor musunuz?

Go geliştiricileri çok uzun süredir eşdeğerler için destek istiyor ve bu destek sonunda Go 1.18'e Mart 2022'de eklendi. Yaklaşık bir yıl sonra, Go geliştiricilerinin %80'inden fazlası eşdeğerleri kullanıyor veya denemiş durumda.

TinyGo'yu aşağıdakilerden hangileri için kullanıyorsunuz?

TinyGo, yerleşik sistemler veya WebAssembly için küçük ve verimli programlar geliştirmeniz gerektiğinde mükemmel sonuçlar verir. Bu anketin gösterdiği gibi, TinyGo aynı zamanda CLI'ler oluşturmak için de kullanılıyor. Go'nun harika bir standart kitaplığı olmasına rağmen yalnızca temel görevleri gerçekleştiren bir CLI oluşturuyorsanız Go'nun gücüne ihtiyacınız olmayabilir. Bu durumda, CLI'nizi basit ve kullanıma özel olarak geliştirmenize olanak tanır.

Hangi yapı sistemlerini düzenli olarak kullanıyorsunuz?

Zaman ayırdığınız için teşekkür ederiz!

Raporumuzu faydalı bulduğunuzu umuyoruz. Bu raporu arkadaşlarınızla ve meslektaşlarınızla paylaşın.

JetBrains Tech Insights Lab'e katılın

JetBrains ürünlerinin kullanımını daha kolay ve çok daha güçlü hâle getirmek için anketlere ve kullanıcı deneyimi çalışmalarına katılın. Araştırmamıza katılarak ödül kazanma şansına da sahip olursunuz.

Ham veriler Çok yakında

Ham verileri hazırlıyoruz. İndirilmeye hazır olduğunda bildirim almak için e-postanızı girebilirsiniz.

By submitting this form I agree to the JetBrains Privacy Policy

Herhangi bir soru ya da öneriniz varsa lütfen bizimle surveys@jetbrains.com adresinden iletişime geçin.