Rails ile Yeniden Yazmak
(dirkjonker.bearblog.dev)-
Blogun başlangıcı
- 2022'de gümrük beyannamesi hazırlayan bir uygulama geliştirmeye başladı.
- Birden fazla dil ve framework'ü değerlendirdikten sonra Ruby on Rails ile geliştirmeye karar verdi.
- Rails'e aşina olduğu için diğer seçeneklere kıyasla 10 kat daha hızlı geliştirebildi.
-
Sürüm 2 geliştirme
- Uygulamanın ikinci sürümünü Rust ve SvelteKit kullanarak geliştirmeye başladı.
- Başlangıçta hızlı ve iyi görünüyordu, ancak gerekli özelliklerin yalnızca %10'u hayata geçirilebildi.
- Rails ile kıyaslanabilecek bir Rust framework'ü olmadığından çok zaman harcandı.
-
Rust'ın avantajları
- Rust'ın performansını ve hatasız derleme avantajını deneyimledi.
- Ruby'de çalışma zamanı hataları sık yaşandığı için Rust'ın gerekliliğini hissetti.
-
Frontend'deki değişim
- Rails'in frontend'inden memnun kalmayınca SvelteKit'e geçmeye karar verdi.
- Yeni yığınla bazı sayfaları hızlıca taşıdı, ancak dağıtım daha karmaşık hale geldi.
-
Geliştirmenin gerçeği
- Rails tarafı yararlı özellikler eklemeye devam ederek gelişti.
- Rust ve Svelte'e geçişin kullanıcılara doğrudan bir değer sunmadığını fark etti.
-
Kararın zorluğu
- Yeni yığından vazgeçip yeniden Rails'e dönmeye karar verdi.
- Ekip arkadaşlarını Rails öğrenmeye yönlendirdi.
-
Rails'in avantajları
- Rails, birçok başarılı şirketin temelini oluşturuyor ve geniş bir kütüphane ile ekosistem sunuyor.
- Ürün geliştirmeye odaklanmayı sağlıyor.
-
Dersler
- Yeni dil ve framework'ler öğrenmek çok sayıda içgörü sağlıyor.
- Web uygulaması geliştirmek, çok sayıda seçim ve ödünleşim gerektiriyor.
- Rails'e geri dönmek iyi bir karardı ve üretkenliği artırdı.
-
Ruby ve Rails'in dezavantajları
- Çalışma zamanı sorunları testlerle çözülebilir.
- Kodun karmaşık hale gelmesi geliştiricinin sorunudur; iyi organize edilmelidir.
- Rails yeterince hızlıdır ve Turbo ile caching sayesinde performans iyileştirilebilir.
-
Sonuç
- Kusursuz bir dil ya da framework yoktur; her birinin artılarını ve eksilerini anlayıp kullanmak gerekir.
- Rails iyi bir seçimdir ve başka birçok framework de harikadır.
2 yorum
Ruby ile yeniden yazın
Rails ile yeniden yazın
Hacker News yorumu
Rails, Django ve Laravel, web uygulaması geliştirmede diğer stack'lerin çok önünde. Tekrarlayan işleri hallediyorlar, gereksinimleri iyi biliyorlar ve uygulama geliştirirken ayak bağı olmuyorlar. Web geliştirmenin zaten çözülmüş bir problem olduğunu düşünüyorum; JavaScript ile ilgili teknolojiler ise büyük şirketlerin finansmanıyla yönlendirilmeye daha yatkın
17 yıldır Rails kullanıyorum; hâlâ seviyor ve tercih ediyorum. Kodu ayırmayı kolaylaştırdığı için dosya başlıkları gereksiz yere uzamıyor. Mantık ile işaretlemeyi ayırdığınızda bunları bağımsız test edebiliyorsunuz, bu da hataların izini sürmeyi kolaylaştırıyor
Rust çok zeki insanların yaptığı bir dil, ancak tip teorisi ve bellek tahsisine o kadar odaklı ki sıradan geliştiriciler için anlaması zor. Rust hakkında blog yazıları okusam bile ancak yarısını anlayabiliyorum
Ruby ve Rails'e yönelik şikâyetlerim azaldı. Kusursuz bir dil ya da framework yok; güçlü ve zayıf yönlerini bilip buna göre hareket etmek gerekiyor
Rust ile büyük web uygulamalarını hızlıca yazmak zor. Rails ile yazılmış büyük uygulamalar da hızlı çalışmıyor; çok hatalı olabilir, bakım ve ölçeklendirme açısından zorlayıcı olabilir. Java, C# ve Go gibi diller, Rails kadar hızlı iş bitirirken Rust kadar hızlı çalışıyor
NextJS ve SvelteKit gibi teknolojilerin JS geliştiricileri arasında popüler olmasının nedeni, Node.JS'in backend geliştirme deneyimindeki sorunları çözmeleri. Rails, 2006'da uygulama geliştirmek için kapsamlı bir çözümü devrim niteliğinde sunmuştu
AdonisJS'i Rails'in TS alternatifi olarak test ediyorum. Rails veya Laravel'e benziyor ve stack'in her parçasını seçme yükünü azaltıyor
Rust'ın web backend için uygun olmadığı yönündeki görüşler beni şaşırtıyor. Küçük servislerde iyi deneyimler yaşadım; büyük uygulamalar kurarken karmaşıklık artabilir ama Rust, büyük ölçekli kod tabanlarında ihtiyaç duyulan güveni veriyor
Django ile de benzer bir deneyim yaşıyorum; performans sorunları çoğunlukla Django'nun kendisinden değil, veritabanı sorgularından kaynaklanıyor
2010 yılında değiliz; neden hâlâ Rails kullanılıyor anlamıyorum. Java (Spring), Go ve Node gibi pek çok alternatif var. Rust kullanmak ise neredeyse C++ seçmek kadar tuhaf