Ini dari pengalaman belajar, terus belajar, dan menulis aplikasi yang relatif sederhana di Rails.
1) Kurva Belajar
Rel itu tampak sederhana. Tutorial, video, dan buku semuanya menunjukkan seberapa cepat Anda bisa mendapatkan aplikasi yang berfungsi (jika jelek), tetapi ini benar-benar hanya menggores permukaan. Mereka cenderung sangat bergantung pada generasi kode dan "perancah" yang diakui adalah alat yang baik ketika belajar tetapi dengan cepat hidup lebih lama dari kegunaannya.
Jangan salah, Rails sulit dikuasai. Setelah Anda melewati dasar-dasarnya (lebih lanjut tentang ini nanti), Anda akan langsung menuju dinding jika Anda perlu melakukan lebih dari fungsi "aplikasi demo" yang sangat simpel yang Anda lihat disebut-sebut. Anda dapat bertahan dengan pengetahuan dasar tentang Ruby saat belajar, tetapi Anda harus segera mengambil Ruby atau Anda akan dibiarkan tinggi dan kering (dan bukan jenis yang baik DRY
) jika Anda harus pergi ke luar batasan Rails.
Rails, seperti saya suka menyebutnya dengan cara yang penuh kasih, melukis dengan pemrograman angka . Jika Anda tetap 100% pada konvensi (yaitu tetap di dalam garis dan menggunakan warna yang Anda perintahkan), Anda dapat membuat aplikasi yang layak dengan cepat dan mudah. Jika dan ketika Anda harus menyimpang, Rails bisa pergi dari teman terbaik Anda ke musuh terburuk Anda.
2) Ketika Yang Anda Miliki Adalah Palu ...
Rails menjalankan aplikasi CRUD sederhana dengan sangat baik. Masalahnya muncul ketika aplikasi Anda harus melakukan lebih dari sekedar membaca / menulis dari database. Sekarang, sebagai catatan versi Rails terakhir yang saya gunakan adalah 2.3.4 sehingga hal-hal mungkin telah berubah sejak saat itu, tetapi saya mengalami masalah besar ketika persyaratan bisnis berubah sehingga aplikasi harus memiliki sistem alur kerja kecil yang dibangun di dalamnya, dan berintegrasi dengan aplikasi PHP warisan. Konvensi Rails dari "satu bentuk, satu model" berfungsi dengan baik untuk aplikasi sepele dan aplikasi entri data, tetapi tidak terlalu banyak ketika Anda perlu melakukan pemrosesan logika, atau memiliki alur kerja, atau apa pun yang tidak khas "Pengguna memasukkan data ke dalam beberapa bidang teks, klik Kirim "jenis hal. Itu bisa dilakukan, tetapi tidak berarti "mudah", atau lebih tepatnya tidak
Selain itu, Rails tidak suka bermain baik dengan aplikasi lain yang tidak menggunakan metode akses data yang disukai; jika Anda harus berinteraksi dengan aplikasi yang tidak memiliki API gaya "Web 2.0", Anda harus menggunakan Rails alih-alih menggunakannya; lagi saya berbicara dari pengalaman di sini karena inilah yang terjadi pada saya.
3) Ini Baru
Akhirnya, Rails masih menjadi "anak baru di blok" di banyak daerah. Ini tidak masalah untuk penggunaan pribadi atau jenis skenario "Saya pikir itu keren dan ingin mempelajarinya," tetapi berbicara sebagai seseorang yang lebih suka menggunakan Rails di pekerjaan saya, jika Anda tidak berada di lokasi di mana Rails berada luas, bisa jadi sangat sulit untuk menemukan pekerjaan penuh waktu sebagai pengembang Rails. Ini masih sebagian besar domain "pinggul, startup baru" dan bukan pemain utama di sebagian besar wilayah metropolitan. Jarak tempuh Anda mungkin berbeda dalam hal ini, tetapi saya tahu Rails area saya (Tampa) pada dasarnya tidak ada.
4) Api dan Gerak
Rails selalu berubah. Ini adalah hal yang baik dan buruk; itu baik karena komunitas berevolusi dan merangkul konsep-konsep baru. Itu buruk karena komunitas berevolusi dan merangkul konsep-konsep baru. Ini bisa sangat luar biasa bagi pemula Rails karena biasanya ketika Anda mengalami masalah, dan melihat-lihat, Anda akan melihat salah satu orang merekomendasikan permata ini-dan-itu untuk memperbaikinya, atau mengatakan bahwa cara itu buruk dan Anda tidak seharusnya melakukannya. t menggunakannya, inilah cara yang lebih baik ... dan Anda akhirnya memiliki daftar cucian alat tambahan untuk belajar bersama dengan Rails untuk mengikuti kognitif Rails. Hal seperti Git
, BDD/RSpec
, Cucumber
,Haml/Sass
, dan banyak hal lainnya semuanya melayang dan didorong sebagai "cara yang tepat untuk melakukan sesuatu" di Rails-land, dan berbicara dari pengalaman Anda mungkin akan dibanjiri dengan mencoba mempelajari selusin atau lebih teknologi selain Rails, karena menggunakan toolkit Rails standar terasa "salah".
Ini sekarang semakin diperparah oleh Rails 3.1 menjadikan Sass dan CoffeeScript dari semua hal sebagai default, sehingga pemula total Rails tidak hanya harus belajar Ruby dan Rails tetapi Sass (bisa dibilang sederhana jika Anda tahu CSS) dan CoffeeScript (tidak gila sulit tapi pasti cukup berbeda dari JavaScript mentah) minimal untuk memulai, plus itu dapat diasumsikan Git. Bahkan tanpa memperhitungkan RSpec dan teman-teman, dan selusin permata yang biasanya Anda dapatkan, itu adalah 4 hal berbeda yang harus Anda pelajari sebelum Anda serius dapat mulai menulis aplikasi Rails. Bandingkan ini dengan bahasa seperti C #, atau Java, atau bahkan PHP di mana pengetahuan HTML / CSS / JavaScript / SQL Anda tidak akan berubah dan Anda hanya perlu mempelajari bahasa itu sendiri dan mungkin nuansa kerangka kerja.