Saya adalah pengembang .NET dan saya baru saja memiliki kesempatan untuk bermain dengan Ruby on Rails akhir pekan ini.
Di .NET kami memisahkan lapisan aplikasi dengan membuat proyek perpustakaan kelas yang terpisah. Dari sudut pandang pola desain, apakah kita juga harus melakukannya di Rails atau hanya satu proyek lengkap dengan semua yang ada di dalamnya?
design-patterns
.net
ruby-on-rails
Ryan Adriano
sumber
sumber
Jawaban:
Anda akan menemukan bahwa aplikasi Rails dimulai sebagai satu repo. Yang lebih sukses (Twitter, Square, banyak lainnya) dipecah menjadi beberapa basis kode saat mereka tumbuh ke dalam persyaratan itu. Basis kode tambahan itu bisa berupa daemon , layanan , permata, Mesin Rails , atau yang lainnya.
Refactoring ini menjadi beberapa proyek tidak dilakukan sampai terbukti perlu, karena YAGNI . Membagi dua proyek Anda pada hari 1 memperlambat waktu pembuatan prototipe, dan kecepatan pembuatan prototipe adalah kekuatan utama Ruby dan Rails. Anda harus ingat bahwa membuat atau kelas di Ruby hampir tidak ada biaya, seperti halnya memecah kelas yang ditentukan dengan baik. Kode Ruby murni Anda akan hidup sebagian besar di bawah
/app/
(app/models
,app/views
app/controllers
,app/helpers
) dan/lib/
. Aset statis Anda, termasuk layered JS / Coffee, dan CSS / Sass / etc akan dimasukkan/app/assets
.Memahami mengapa memecah kelas Ruby sangat mudah membutuhkan sedikit pembacaan tentang mengetik bebek dan pemahaman bahwa antarmuka Ruby tidak sekeras yang Anda mungkin terbiasa dalam lingkungan yang kurang dinamis.
Berikut adalah beberapa tautan yang mungkin menarik bagi Anda:
Deskripsi singkat tentang mengetik bebek ( posting blog Yehuda Katz )
Sandi Metz yang tak terhindarkan tentang bagaimana dan mengapa mendesain program OO yang mudah dibaca, dipahami, dan diubah ( 2 jam Ruby Rogues podcast ) ( bukunya yang fantastis )
Pencipta rel David Heinemeier Hansson pada pipa aset dan masalah tata letak kode yang diperbaiki ( video utama RailsConf )
Membuat permata Anda sendiri ( Rubygems.org HOWTO )
Semoga berhasil dengan proyek Anda!
sumber
Di perpustakaan Ruby disebut permata, lihat http://www.ruby-lang.org/en/libraries/ , dan digunakan dengan cara yang sama seperti perpustakaan kelas .NET.
sumber