Bu deneyim deneyiminden, öğrenmeye devam etmekten ve Rails'de nispeten basit bir uygulama yazmaktan kaynaklanmaktadır.
1) Öğrenme Eğrisi
Raylar aldatıcı bir şekilde basittir. Dersler, videolar ve kitapların tümü, ne kadar hızlı bir şekilde çalışırsanız (çirkin) bir uygulama elde edebileceğinizi gösterir, ancak bunlar gerçekten yüzeyi çizer. Kod üretmeye ve “iskele” ye büyük ölçüde güvenmeye meyillidirler, bu da öğrenirken iyi bir araçtır;
Hata yapma, Rails'in ustalaşması zor. Temel bilgileri geçtikten sonra (bundan sonra daha fazlası), lanse ettiğiniz son derece basit "demo uygulaması" işlevinden daha fazlasını yapmanız gerekiyorsa, baştan sona bir duvara koşacaksınız. Öğrenirken basit bir Ruby bilgisine sahip olabilirsiniz, ancak hızlı bir şekilde Ruby'yi DRY
almanız gerekir veya Rails kısıtlamalarının dışına çıkmanız gerekiyorsa yüksek ve kuru kalırsınız (ve iyi olanı değil ).
Raylar, sevgi dolu bir şekilde adlandırmayı sevdiğim gibi, sayı programlamasına göre boyamaktır . Sözleşmelere% 100 bağlı kalırsanız (yani, çizgilerin arasında kalın ve kullanmanız söylenen renkleri kullanın) hızlı ve kolay bir şekilde iyi uygulamalar yapabilirsiniz. Gerçi ve ne zaman sapmak zorunda kalırsanız, Rails en iyi arkadaşınızdan en kötü düşmanınıza gidebilir.
2) Elinizde Tüm Çekiç Olduğunda ...
Raylar basit CRUD uygulamalarını çok iyi yapar. Sorun, uygulamanızın bir veritabanından okumak / yazmaktan daha fazlasını yapması gerektiğinde ortaya çıkar. Şimdi, kayıt için kullandığım son Rails sürümü 2.3.4 idi, bu yüzden işler o zamandan beri değişmiş olabilirdi, ancak iş gereksinimleri değiştiğinde büyük bir sorunla karşılaştım, böylece uygulamanın içine küçük bir iş akışı sistemi yerleştirilmesi ve tümleştirilmesi gerekiyordu. eski bir PHP uygulaması. "Bir form, bir model" in Rails sözleşmesi, önemsiz uygulamalar ve veri girişi uygulamaları için iyi çalışır, ancak işleme mantığını yapmanız veya iş akışlarınız olduğunda veya tipik olmayan "Kullanıcı verileri girdiğinde çok fazla değil birkaç metin alanı, "Gönder" türünü gösterir. Bu olabilir yapıldığını, ancak "kolay" hiçbir şekilde var, daha doğrusu o değildi edilecek
Ayrıca, Rails, tercih ettiği veri erişimi yöntemlerini kullanmayan diğer uygulamalarla iyi oynamayı sevmez; "Web 2.0" tarzı bir API içermeyen bir uygulama ile arayüz oluşturmak zorundaysanız, bunun yerine Rails ile çalışmak zorundasınız; yine burada olanlardan bahsettiğim için başıma gelen şey bu.
3) Yeni
Son olarak, Rails hala birçok alanda "bloktaki yeni çocuk" dur. Bu kişisel kullanım için önemli değil veya “bence güzel ve öğrenmek istiyorum” türünden senaryolar değil, Rails’in bulunduğu bir yerde değilseniz, günlük işimde Rails’i kullanmayı tercih eden biri olarak konuşmak yaygın, bir Rails geliştiricisi olarak tam zamanlı iş bulmak çok zor olabilir. Hala büyük ölçüde "büyük, yeni girişimler" in etki alanıdır ve çoğu metropol bölgesinde önemli bir oyuncu değildir. Kilometreniz bu açıdan değişebilir, ancak alanımın (Tampa) Raylarının aslında bulunmadığını biliyorum.
4) Ateş ve Hareket
Raylar sürekli değişiyor. Bu hem iyi hem de kötü bir şeydir; Bu iyi çünkü topluluk yeni konseptler geliştiriyor ve benimsiyor. Kötü çünkü topluluk gelişti ve yeni konseptleri benimsedi. Bir Rails acemi için çok ezici olabilir, çünkü genellikle bir sorunla karşılaştığınızda ve etrafa baktığınızda, insanlara sorunu gidermek için böyle ve böyle değerli taşları önerdiklerini ya da bu şekilde kötü olduğunu söyleyerek görmeniz gerekir. kullanmayın, işte size daha iyi bir yol ... ve Rails cognoscenti'ye ayak uydurabilmek için Rails ile birlikte öğreneceğiniz ek araçlar listesine sahip olacaksınız. Yapılacaklar gibi Git
, BDD/RSpec
, Cucumber
,Haml/Sass
ve etrafta dolaşan ve Rails ülkesinde "doğru şeyler yapmanın" doğru yolu olarak itilen ve başka şeylerden oluşan bir bereket ve Rails'e ek olarak bir düzine veya daha fazla teknolojiyi öğrenmeye çalışırken bataklığa maruz kalabilirsiniz. çünkü standart Rails araç setini kullanmak "yanlış" hissediyor.
Bu şimdi daha da Rails 3.1 ile daha da artmaktadır, bu da Sass ve CoffeeScript'i varsayılan kılar, bu nedenle toplam Rails acemi sadece Ruby ve Rails'i değil Sass (CSS'yi biliyorsanız muhtemelen basit) ve CoffeeScript'i (çılgınca zor değil, kesinlikle de) öğrenmek zorundadır. çiğ JavaScript'ten yeterince farklı) başlamak için tamamen minimumda , ayrıca Git olarak kabul edilebilir. RSpec ve arkadaşlarınızı ve tipik olarak elde edeceğiniz bir düzine veya daha fazla kıymetli faktörü olmadan bile, Rails uygulamalarını ciddiye almaya başlamadan önce öğrenmeniz gereken 4 farklı şey var. Bunu, C #, Java, hatta hatta HTML / CSS / JavaScript / SQL bilgilerinizin değişmeyeceği ve hatta dilin kendisini ve belki de çerçeve nüanslarını öğrenmek zorunda olduğunuz PHP gibi bir dille karşılaştırın.