Saat ini saya sedang mencoba untuk memutuskan bahasa sisi server mana yang harus dipelajari dan digunakan untuk pengembangan web, dan meskipun relatif mudah untuk mendapatkan informasi tentang mengapa x, y, atau z adalah hal yang baik, lebih sulit untuk mengetahui kelemahan masing-masing. dari mereka.
Secara khusus, saya ingin tahu tentang apa kelemahannya untuk belajar dan / atau menggunakan Ruby on Rails sebagai lawan dari bahasa / kerangka kerja lainnya.
ruby-on-rails
server-side
Maxfielden
sumber
sumber
Jawaban:
Berbicara dari pengalaman: The downside adalah bahwa Anda mengandalkan kerangka Rails sedikit terlalu banyak. Ini adalah hal yang hebat dan luar biasa jika Anda hanya pernah menulis aplikasi CRUD greenfield sederhana yang jatuh tepat ke "sweet spot" Rails; produktivitas Anda akan meroket. Namun, saat Anda harus melakukan sesuatu di luar sweet spot itu - berinteraksi dengan database yang ada, berbicara dengan aplikasi lain yang tidak memiliki JSON atau XML API yang ditentukan, menerapkan alur kerja yang rumit, Rails akan menjadi musuh Anda. ini adalahmungkin untuk melakukan hal-hal ini dengan Rails, tetapi itu "melawan arus" sehingga Anda pada dasarnya sendiri dengan mencari tahu bagaimana melakukannya karena masyarakat biasanya hanya akan menjawab dengan "Jangan lakukan itu, itu bukan Rails cara "- ini menghasilkan hilangnya produktivitas atau kode yang sangat berantakan karena pada dasarnya Anda harus meretas kerangka Rails.
Juga, ada sisi buruk yang tak terucapkan: Segala sesuatu yang lain akan tampak jelek dan kotor. Setelah Anda mencicipi nektar Rails yang manis dan manis (oke, menginjilkan sedikit saja di sini ...) yang lainnya adalah swill. Kembali dari Rails kembali ke PHP, atau ASP.NET WebForms, atau Java seperti berjalan di atas paku setelah bermain-main di taman yang rimbun; Anda tidak akan melihat bahasa lain / kerangka kerja dalam cahaya yang sama, dan sementara Anda mungkin masih menghargai mereka, Anda diam-diam akan merindukan pelukan cinta Rails.
sumber
Untuk bahasa sisi server pertama Anda, saya merasa ada beberapa masalah dengan RoR:
Anda tidak hanya belajar bahasa, Anda belajar kerangka kerja. Saya pasti akan meluangkan waktu untuk bermain-main dengan batu ruby tua sebelum melompat ke pagar.
Karena itu adalah sebuah kerangka kerja, dan yang 'berpendapatan' pada saat itu, saya merasa itu akan memberi Anda ruang lingkup yang sangat terbatas tentang apa yang sedang terjadi dalam kerangka kerja tersebut.
Secara keseluruhan Ruby on Rails bisa menjadi titik awal yang baik untuk memulai, tetapi ada banyak hal untuk dipelajari tentang pengembangan web yang mungkin Anda lewatkan dengan menjadi terlalu bergantung pada satu kerangka kerja.
sumber
Saya sudah mencoba mempelajari RoR beberapa kali dan masalah terbesar saya adalah selalu berusaha agar paket bekerja dengan benar dan dokumentasinya. Masalah dengan dokumentasi adalah bahwa ia selalu ketinggalan zaman (atau sangat mendasar). Saya mendapatkan dasar-dasar dari situs tetapi di luar itu semuanya tampak begitu tanggal (bahkan buku yang saya beli dan akhirnya kembali). Hal lain yang bisa menjadi kelemahan adalah ketergantungan yang dimiliki beberapa perpustakaan dan bagaimana mereka dapat bertentangan dengan yang lain sebagaimana dinyatakan oleh Ben Coe .
Sesuatu yang saya pikirkan kemudian dan bukannya berkomentar, saya hanya akan mengedit jawaban saya adalah ini: RoR memiliki peluang untuk menghancurkan Ruby untuk Anda. Saya tahu ketika saya mencobanya, itu membuat saya berpikir bahwa "Ruby itu bodoh". Kemudian beberapa bulan kemudian saya memutuskan untuk mencoba Ruby dan menyukai bahasa itu, kerangka itulah yang membuat saya membenci bahasa itu. Saya belum banyak berkecimpung di dalamnya, tetapi ketika saya melakukannya, saya benar-benar menikmati Sinatra . Saya pikir saya mendapat kesenangan yang sebagian besar orang dapatkan dari RoR dari Sinatra.
sumber
rake db:migrate
. Di sisi lain, saya menemukan Sinatra jauh lebih sederhana dan mudah dipahami. Bagaimanapun, saya lebih suka mengatur segalanya dengan cara saya sendiri, dan struktur dasar aplikasi rel sepertinya terlalu rumit bagi saya.Jika ini adalah bahasa sisi server pertama Anda, itu sama baiknya dengan bahasa lainnya. Yang harus dilakukan adalah fokus pada satu, dan setelah Anda merasa sudah menguasainya, jelajahi orang lain dan simpulkan kesimpulan Anda sendiri.
Saya bekerja dengan RoR dan ASP.NET setiap hari, tapi anehnya, saya lebih suka dunia ASP.NET, tetapi itu lebih berkaitan dengan filosofi pribadi daripada hubungannya dengan bahasa atau arsitektur itu sendiri. (Saya sedikit aneh kontrol dan saya pribadi tertarik ke bahasa yang sangat diketik).
Bagaimanapun, saya katakan mencobanya. RoR adalah lingkungan yang bagus untuk bekerja, tetapi sebelum Anda langsung masuk ke Rails, terbiasalah dengan Ruby sebagai bahasa. Di luar hal-hal web, Ruby adalah bahasa penulisan yang cukup keren jika Anda harus mengelola kotak * nix dan dapat menghemat banyak waktu.
sumber
Sebagai seseorang yang mempelajari Rails baru-baru ini (sebagai hobi - tidak pernah menggunakannya untuk pengembangan kelas komersial) dan sudah bekerja di JEE dan ASP.NET, jawaban Wayne M berdering sangat benar.
Bagaimanapun, ada sisi halus dari hal ini yang belum ada yang disebutkan, tetapi yang sedikit mengganggu saya dengan Rails - ketergantungan yang kuat pada konvensi atas konfigurasi .
Intinya, jika Anda terbiasa dengan "Find In Files" -venven dengan basis kode baru, CoC kemungkinan akan mengganggu Anda ketika mencoba mengambil Rails. Ini bagus untuk CRUD greenfields sederhana yang dilakukan dengan cara Rails (seperti yang dikatakan Wayne M), tetapi untuk hal lain yang lebih unik dan rumit, akan sulit untuk mengetahui apa yang terjadi jika Anda mencoba mencari tahu alurnya dengan mencari hal-hal dalam file untuk melihat bagaimana pipa ledeng dihubungkan.
Meskipun saya pikir, masalah ini mungkin tidak akan seburuk setelah Anda memiliki lebih banyak pengalaman dengan Rails. Saya pasti bisa melihatnya menjadi masalah bagi seseorang yang berasal dari oldskool Java / .NET pengembangan web yang digunakan untuk aliran konfigurasi yang sangat verbose - dan digunakan untuk mengandalkan melihat semuanya dieja di suatu tempat.
sumber
Dengan saya, masalah terbesar dengan saya mempelajari X pertama saya (dalam kasus Anda, X adalah bahasa web / kerangka kerja server-side), itu begitu saya melihat masalah lain, saya segera ingin mulai menerapkan X, bahkan ketika itu mungkin bukan opsi terbaik. Saya sudah lebih baik dalam hal ini, tetapi masih kecenderungan yang kuat.
Ruby on Rails adalah pilihan yang baik untuk memulai - ada komunitas yang bagus, banyak dokumentasi, dan tutorial yang bagus. Tetapi pastikan untuk mengingat alternatif, terutama jika Anda mulai melakukan lebih banyak pengembangan web. RoR mungkin berlebihan untuk beberapa masalah, solusi yang tidak memadai untuk orang lain, dan pilihan terbaik untuk set yang berbeda. Ketahuilah kekuatan, kelemahan, dan cara menggunakan alat ini.
sumber
Saran saya adalah untuk memiliki gambaran yang jelas tentang proyek yang ingin Anda selesaikan dan kemudian mulailah mencoba membangunnya. Saat Anda mengalami masalah Anda pada akhirnya akan mengambil semua alat yang tepat. Pendekatan ini baik karena Anda mengambil keputusan berdasarkan masalah yang ringkas.
Hal lain yang harus dilakukan adalah membeli buku. Tutorial internet tidak memotongnya dalam pengalaman saya; mereka juga meninggalkan banyak ruang terbuka untuk gangguan. Saat Anda memiliki buku, penerbit harus memastikan buku itu memberikan nilai karena mereka akan kehilangan uang jika mendapat ulasan buruk. Menghabiskan sedikit uang akan menghemat banyak waktu.
sumber
Sejujurnya aku tidak bisa mengerti mereka yang berpesta puitis tentang apa jalan-jalan di taman Ruby-on-Rails. Saya datang sebagai pengembang ASP.NET-MVC, Java, PHP, Python yang berpengalaman - dan menemukan itu sebagai pembuang waktu paling mengerikan yang pernah ada! 90 persen jawaban google online salah atau tidak lengkap. Mengapa? Apakah sudah banyak berubah setiap tahun? Atau apakah tidak ada yang peduli membuat kode benar-benar berfungsi? Butuh banyak waktu untuk melakukan hal-hal sederhana; jauh, jauh lebih banyak daripada yang akan saya dapatkan di C # / ASP.NET-MVC, misalnya. Jelas tidak pernah membawa saya sedekat itu untuk mempelajari teknologi asli saya. Memang, ROR singkat. Jika itu penting bagi Anda. Tapi saya jarang menemukan cara membuat kode yang bisa menyelesaikan tugas. Secara pribadi, saya lebih suka mengetik di keyboard selama 20 detik untuk menulis kode yang pasti berfungsi, jelas dan Anda dapat mengikutinya, daripada mengetik kode Ruby singkat selama 2 detik, tetapi yang tidak pernah berhasil sampai saya terjaga sepanjang malam mencari beberapa cara untuk benar-benar membuatnya bekerja. Itu adalah tumpukan dodo yang mengerikan dan bau. Mengapa? Apakah itu kode sumber terbuka (seperti dalam gratis), tidak menghasilkan insentif untuk menjadikannya alat yang berkualitas? Terlalu banyak script-kiddies yang memompa revisi dan modul serta dokumentasi yang buruk ke dalamnya? Saya tidak tahu Tetapi ketika saya akhirnya bisa melarikan diri dari proyek Ruby-Rails pertama itu, saya bersumpah tidak akan pernah terlibat dalam kekacauan itu lagi! tidak menghasilkan insentif untuk menjadikannya alat yang berkualitas? Terlalu banyak script-kiddies yang memompa revisi dan modul serta dokumentasi yang buruk ke dalamnya? Saya tidak tahu Tetapi ketika saya akhirnya bisa melarikan diri dari proyek Ruby-Rails pertama itu, saya bersumpah tidak akan pernah terlibat dalam kekacauan itu lagi! tidak menghasilkan insentif untuk menjadikannya alat yang berkualitas? Terlalu banyak script-kiddies yang memompa revisi dan modul serta dokumentasi yang buruk ke dalamnya? Saya tidak tahu Tetapi ketika saya akhirnya bisa melarikan diri dari proyek Ruby-Rails pertama itu, saya bersumpah tidak akan pernah terlibat dalam kekacauan itu lagi!
sumber
Saya sarankan Anda melihat peringkat indeks kemunculan berbagai bahasa / skrip. Berikut ini tautan yang mungkin berguna: bahasa populer yang digunakan secara profesional dan profesional di web.
Ini menunjukkan popularitas relatif dari bahasa yang berhubungan dengan web berdasarkan pencarian dari posting pekerjaan online.
sumber
Saya setuju dengan beberapa jawaban di atas tentang RoR, saya telah mengembangkan aplikasi dengan RoR selama dua tahun terakhir. Sangat bagus dengan aplikasi sederhana, operasi CRUD (Buat, Baca, Perbarui dan Hapus) bekerja dengan sangat baik, ini merupakan anugerah untuk mengembangkan aplikasi sederhana tetapi juga keterbatasannya. Meskipun ada banyak permata menawarkan berbagai keuntungan dan kemudahan penggunaan, pada dasarnya itu. Keluar dari kotak akan membuat Anda semua aplikasi bengkok.
Jika Anda adalah tim besar yang mengerjakan aplikasi menggunakan RoR, delegasi kerja mungkin sulit untuk dihindarinya.
sumber