2011-03-16 19 views
5

Ruby ve Rails framework ile programlamayı öğrenen programcı olmayan bir programcıyım.Programlamayı öğreniyorum ve Ruby'yi seçtim. Ruby 1.9'a yükseltmeli miyim?

Şu anda Ruby 1.8.7 ve Rails 3.0.3 kullanıyorum, ancak yükseltme ile herhangi bir “eski” maliyete sahip olmadığımdan Ruby 1.9'a yükseltmem gerekip gerekmediğini merak ediyorum.

Dezavantajı nedir? Ortak mücevherler ile uyumluluk sorunları veya hatta tahmin edemeyeceğim kadar bilmediğim diğer konularla mı karşılaşacağım?

+0

Geliştirme dünyasına hoş geldiniz. Bu sürekli bir bilmecedir, ancak zihinsel zorluklardan hoşlanıyorsanız, onlara kod yazabilirsiniz. –

cevap

4

Yükseltmelisiniz. 1.8.7 ile başlangıç ​​yapmayın. 1.9.2'yi desteklemeyen mücevherler bulursanız bunları önleyin (büyük ihtimalle korunmadıkları için). Bir gem 1.9.2 uyumlu olup olmadığını herhangi bir sorunuz varsa, bakabilirsiniz: http://www.railsplugins.org/. UNIX tabanlı bir sistem çalıştırıyorsanız, http://rvm.beginrescueend.com/ ile kolayca yükseltebilirsiniz.

+0

Ruby-prof'in 1.9 ile ilgili bazı sorunları var ve ben onu bir projeye aldırmıyordum. –

+0

@Andrew Evet, SVN kopyasının 1.9'da olduğu gibi birkaç forksta derleyebildiğini de hatırlıyorum ama onların GitHub sayfasında birkaç açık sorunu olduğunu görüyorum. Muhafızların tamir etmesi gereken bir şey gibi görünüyor. –

2

Bazı uyumluluk sorunlarıyla karşılaşabilirsiniz, ancak en çok kullanılan taşlar yakut 1.9'a taşınır. Eğer ben olsaydım özellikle öğreniyorsan 1.8.7'e sadık kalırım. Bu şekilde, "Bu benim hatam ya da sadece 1.9 1.9 uyuşmazlığım mıdır?"

Ve btw, bundan önce programlanmamışsanız, bunun raylarla başlamak için iyi bir fikir olduğunu düşünmüyorum. Git önce saf yakutu öğren, konsolda bazı algoritmaları uygula, hiçbir aktöre sahip olmayan bir veritabanına bağlan. Sadece raylarla başlamanın çok fazla ayrıntıyı gizleyeceğini düşünüyorum ve bu daha sonra temel bilgi eksikliğinden sonra kıçınıza tekme atacaktır ...

+1

Sadece 1.9 uyumlu olan taşlar hakkında ne düşünüyorsunuz? Bu, özellikle 1.9.2'nin bir iyileşmenin 1,8,7'nin üzerinde olduğu göz önüne alındığında, yükseltmeyi önlemek için kötü bir neden gibi görünüyor. –

+0

Sadece yakut ya da Brennan'ın programlama tecrübesi varsa ... size katılıyorum. Uyumluluk sorunları olmadan kendi başına yeterince saçma hatalar yapacağını düşünüyorum.) Ama bu benim düşüncemden sadece –

+1

Başlarken taşlar ile uyumluluk sorunları içine koşacağım. İhtiyaçları oldukça basit olduğundan, yeni başlayanlar nadiren ezoterik/niş taşlar ararlar. Linux'un birkaç çeşidi ve Mac OS üzerinde 1.9.2 çalışıyorum ve sadece sorunları olan bir mücevher buldum. Kurumsal ve kişi gelişimi için kullandığım her şey uzun süre iyi çalıştı. –

3

Ruby 1.9, yeni başlayanlar için farklı karakter kodlamaları için üstün performansa, gerçek konulara ve desteğe sahiptir.

Pek çok şey değişti, bu da uyumsuzluğa neden oldu, ancak bu sizin için sorun değil, evet, Ruby 1.9'u kullanmalısınız.

Here's a nice slide show that lists significant changes.

0

Yakut 1.9 önemlidir yeni özelliklere sahiptir. Örneğin, parantezin dengeli olmasını sağlayan ruby ​​1.9'da düzenli bir ifade yazabilirsiniz. Bu ruby ​​1.8'de zordu. Ayrıca çok daha hızlı. 1.9 kullanmak da uygundur; Array ve Hash'ta birçok yöntemle inşa edilmiş ve bunları 1.8'de kendiniz yazmanız gerekiyordu. Ruby 1.8 kullanmamalısınız; ruby 1.9 kullanın.

+0

Düzenli bir ifadede dengeli parantezi kontrol etmek imkansız mıydı? Bunun her zaman, normal ifadelerin başarısız olmasının (yani bir yığının kullanılmasını gerektirir) klasik örneği olduğunu düşündüm. Bunu Ruby 1.9.2'de yapmanın bir örneğiniz var mı? –

+0

Yazmadım ki imkansız. Yazdım zor. Lütfen yorumumu dikkatlice okuyun. Aslında ruby1.8'i kullandığımda bunu yazmıştım. Ama bunu tek bir düzenli ifadede yapamazsın. – sawa

+0

@sawa 'Dengeli parantez bulmanızı sağlayan düzenli bir ifade yazabilirsiniz' yazdınız. Bu herhangi bir dilde mümkün değildir. –

1

Yükseltmelisiniz. Mücevherler yüzünden çok fazla değil (Rails ile aldığınızdan başka bir şey kullanmaya başladığınız zamana kadar biraz zaman alacaktır), ya da 1,9'un 1.8'den çok daha üstün olmasından dolayı (çünkü değil). Öğrenim sırasında, kaçınılmaz olarak 1,9'da girilen bazı nüanslar nedeniyle, kısaca hash notasyonu olan bazı nüanslar nedeniyle kaçınılmaz olarak bazı kodlara (örneğin, SO'da) çarpacaksınız: {foo: 1, bar: 2} (geleneksel {:foo => 1, :bar => 2}'un aksine).

İlgili konular