Ruby keluar dari rel


114

Terkadang terasa bahwa perusahaan saya adalah satu-satunya perusahaan di dunia yang menggunakan Ruby tetapi bukan Ruby on Rails, sampai-sampai Rails hampir identik dengan Ruby.

Saya yakin ini tidak benar, tetapi akan menyenangkan mendengar beberapa cerita tentang penggunaan Ruby non-Rails di luar sana.

Jawaban:


51

Salah satu keuntungan besar Ruby adalah kemampuannya untuk membuat DSL dengan sangat mudah. Ruby memungkinkan Anda membuat "aturan bisnis" dalam bahasa alami yang biasanya cukup mudah digunakan oleh analis bisnis. Banyak aplikasi Ruby di luar pengembangan web tersedia untuk tujuan ini.

Saya sangat merekomendasikan Googling "ruby dsl" untuk beberapa bacaan yang sangat baik, tetapi saya ingin meninggalkan Anda dengan satu posting secara khusus. Russ Olsen menulis posting blog dua bagian di DSL . Saya melihat dia memberikan presentasi tentang DSL dan itu sangat bagus. Saya sangat merekomendasikan membaca posting ini.

Saya juga menemukan presentasi yang sangat bagus ini di Ruby DSLs oleh Obie Fernandez . Bacaan yang sangat direkomendasikan!


4
Saluran Pelanggan Digital di Ruby?

5
Bahasa Khusus Domain
Sixty4Bit

18

Saya menggunakan Ruby secara ekstensif dalam pekerjaan saya, dan tidak ada satupun yang berbasis Rails (atau bahkan web).

Domain saya biasanya aplikasi Windows sisi klien (wxRuby GUI) dan skrip, mengotomatiskan Excel, Internet Explorer, kueri SQL Server, dan pembuatan laporan (otomatisasi COM win32ole). Saya juga menggunakan pustaka sqlite, pdf-writer, dan gruff untuk berbagai tugas pembuatan data dan grafik.

Kesuksesan Rails sangat bagus untuk Ruby, tetapi saya setuju bahwa Rails telah menerima begitu banyak perhatian sehingga nilai Ruby di luar web sering diabaikan.


17

Kami sebagian besar adalah toko C ++, tetapi kami telah menemukan beberapa area di mana Ruby terbukti cukup berguna. Berikut beberapa di antaranya:

  • Pembuatan Kode - Membangun beberapa DSL untuk menghasilkan kode C ++ / Java / C # dari file input tunggal
  • Bangun Dukungan
    • skrip untuk menghasilkan Makefiles untuk unix dari Visual Studio Project Files
    • skrip untuk membangun proyek dan memformat keluaran untuk Cruise Control
    • skrip untuk menjalankan pengujian unit kami dan memformat keluaran untuk Cruise Control
    • skrip untuk memanipulasi proyek Visual Studio dan solusi dari baris perintah
  • Tes Integrasi - Kami dapat melakukan tes lebih cepat dan lebih bersih menggunakan Ruby daripada C ++
  • Seluruh rangkaian pengujian QA ditulis dalam Ruby

Ruby pada dasarnya adalah alat bantu saya yang masuk akal. Dan itu masuk akal di banyak tempat.


1
Anda harus secara serius mempertimbangkan menggunakan CMake untuk menghasilkan file build untuk Unix (Makefiles) dan Windows (Visual Studio).
JesperE

13

Google Sketchup menggunakan Ruby sebagai bahasa skrip yang disematkan. Anda dapat menggunakannya untuk melakukan semua jenis pemodelan 3d dan tugas impor / ekspor. Skrip berfungsi dengan versi gratis dan bahkan ada dokumentasi yang layak .


Hm, menarik. Saya benar-benar harus mencoba meluangkan waktu untuk bermain-main dengan Sketchup.
JesperE

9

Ruby dengan ekstensi homebrew yang ditulis dalam C ++ melakukan semua dorongan piksel yang berat untuk pemrosesan fotografi saya. Saya menggunakan Python + numpy tetapi ketika melakukan hal-hal yang berseni , Ruby lebih menyenangkan. Juga relatif kurangnya, atau kematangan yang lebih rendah dari, perpustakaan pemrosesan gambar yang baik membuat saya merasa kurang seperti sedang menciptakan kembali roda. Saya tidak tahu apa-apa tentang Rails, selain saya pernah mendengarnya, memiliki gagasan kabur apa itu, dan sebenarnya memiliki buku tentang itu (belum dibuka)


8

Kami menggunakan Watir (pustaka Ruby) untuk menguji aplikasi web .net kami.


Watir sangat berguna. Kami juga terkadang menggunakan Selenium melalui Ruby.
Swanand

7

Lihat Shoes , API sederhana untuk membuat GUI di Ruby yang ditujukan untuk programmer pemula.



6

RubyCocoa dan MacRuby. Memungkinkan untuk membuat aplikasi GUI berbasis Cocoa tanpa Rails. Dan kemudian Anda juga bisa menggunakan Interface Builder.


6

Saya mengerjakan proyek museum tahun lalu yang menggunakan banyak Ruby. ( http: // http: //ourspace.tepapa.com/home )

Bagian yang saya habiskan sebagian besar waktu saya adalah peta lantai interaktif. Peta di lantai memiliki sensor sehingga ketika orang berjalan di atasnya, lampu dipicu dan tampilan di dinding menunjukkan gambar atau video dan trek audio diputar.

Semua kode kontrol untuk bagian pameran ini adalah ruby. Saya menulis antarmuka C dengan pembungkus ruby ​​untuk berkomunikasi dengan sensor lantai dan pengontrol pencahayaan. Sistem meminta database MYSQL untuk file media yang akan ditampilkan dan kemudian memberitahu komputer di dinding untuk memutar media melalui UDP.

Itu adalah bagian paling andal dari keseluruhan pameran.

Ruby digunakan untuk bagian utama lain dari pameran itu, Tembok meskipun saya tidak banyak berhubungan dengannya. Sebagian besar grafik dibuat prototipe dalam ruby ​​menggunakan antarmuka ke OpenGL, sedikit Cocoa dan pustaka fisika sebelum dipindahkan ke Obj-C murni.


6

Boneka dan Koki: DevOps

Saya tidak melihat ada penyebutan Puppet atau Chef dalam 30 jawaban sebelum kedatangan saya. Ruby tampaknya mendominasi pekerjaan saat ini dalam otomatisasi cloud dan merupakan bahasa dasar, ekstensi, dan template dari dua pemain besar ini. Mereka digunakan terutama untuk mendistribusikan informasi konfigurasi sistem dan aplikasi untuk array server dan untuk manajemen workstation TI umum.

Bidang DevOps cukup peka terhadap Ruby. Saat ini, Perl memiliki pesaing. Meskipun skrip yang sangat sederhana mungkin masih sering ditulis langsung untuk sh(1),tugas yang kompleks, sekarang mungkin dapat dilakukan di Ruby daripada di Perl.


5

Satu-satunya situs yang saya lakukan dengan Ruby di tempat kerja adalah menggunakan Rails, tetapi saya ingin mencoba Merb .

Selain itu saya melakukan banyak program utilitas kecil di Ruby - misalnya aplikasi yang membaca RSS feed dan mengimpor posting baru ke dalam database.

Ini menyenangkan, jadi saya juga menulis beberapa hal bodoh hanya karena sangat cepat. Kemarin saya menulis sebuah aplikasi untuk memainkan masalah Monty Hall 100.000 kali untuk membantu seorang teman meyakinkan profesornya bahwa peralihan adalah strategi yang tepat.


1
hei, profesor harus bisa memahami logika murni di balik game ini, tidak perlu simulasi di sana.
vava

Saya tertarik untuk melihat algoritme Anda.
maček

Jika saya mengerti dengan benar, Merb telah cukup banyak diserap - atau setidaknya dibuahi silang, atau apa pun Anda ingin menyebutnya - ke dalam Rails 3.
Andy

4

Saya hampir tersinggung bahwa ruby ​​adalah benda rel. Ini seperti kembali ketika CGI adalah tren terbaru dan semua orang mengira bahwa jika Anda tahu perl, Anda pasti melakukannya hanya karena Anda memprogram aplikasi CGI. Ruby hanyalah bahasa scripting bagi saya, meskipun tidak setua python jadi saya agak menyesal harus melewati beberapa rintangan dan perubahan terkini, saya masih menyukainya dan menggunakannya. Meskipun saya bekerja di toko java dan karena itu groovy adalah pilihan ideal untuk bahasa scripting, saya masih menggunakan ruby ​​di rumah dan untuk membuang skrip yang tidak perlu dibagikan di tempat kerja.

Aku sedang mempertimbangkan masuk ke RoR dari semua buzz dan seberapa cepat / sederhana ini, tapi setelah melihat dari atas rel Aku tidak melihat apa-apa yang luar biasa atau bahkan sedikit inovatif atau cepat cepat tentang perkembangannya dibandingkan dengan setiap lain kerangka. Satu-satunya keuntungan yang saya lihat adalah saya dapat membuat kode dalam ruby, yang akan menyenangkan, tetapi penyiapan awal, pemeliharaan server, dan penskalaan lebih sulit, sehingga mengimbangi kembali kesenangan pengkodean dalam ruby.


4

Saya membuat presentasi - secara kebetulan bernama Off The Rails - untuk membahas aplikasi web berbasis Rack:

https://github.com/alexch/Off-The-Rails

Git repo menyertakan slide dalam format penurunan harga dan kode contoh (dalam bentuk aplikasi yang sedang berjalan dan middleware). Berikut abstraknya:

Ruby on Rails adalah framework aplikasi web paling populer untuk Ruby. Tapi itu bukan satu-satunya! Jika menurut Anda Rails terlalu besar, atau terlalu beropini, atau terlalu banyak hal, Anda mungkin akan senang mengetahui tentang generasi baru yang disebut microframeworks yang dibangun di atas Rack. Dan karena Rails 3 sendiri merupakan aplikasi Rack, Anda tidak perlu melepaskan Rails untuk mendapatkan manfaat dari rute Sinatra atau Grape API.

Dan berikut beberapa referensinya:

Semoga bermanfaat!


4

Saya sebagian besar adalah pengembang Web, dan saya belajar Ruby untuk menggunakan Rails, tetapi saya sangat menyukai bahasanya sehingga saya mulai mengembangkan aplikasi Swing desktop di Ruby, menggunakan JRuby dan Monkeybars. Saya kompeten di Java, tetapi tidak terlalu suka menggunakannya, dan Swing API sangat buruk, jadi menempatkan Ruby di atas adalah kemenangan besar.


3

Kami terutama menggunakan rails, tetapi kami memiliki banyak hal ruby ​​non-rail lainnya - misalnya daemon otentikasi mandiri untuk otentikasi terpusat pengguna, dan 'server pemrosesan gambar' yang menjalankan sejumlah proses ruby ​​untuk memproses gambar secara paralel.

Oh, dan jangan lupa Rake tua yang bagus :-)


3

Ruby juga digunakan untuk aplikasi Desktop. Terutama penggunaan JRuby untuk mengembangkan aplikasi desktop Swing.


3

Saya telah menggunakan Ruby di tempat kerja

  • Ekstraktor data, menghasilkan file csv dari keluaran biner.
  • Pembuat file .ini, mengubah sintaks sederhana menjadi format .ini yang berulang.
  • Server TCP / IP sederhana, bertindak sebagai stand-in untuk sistem pelanggan selama pengujian.

3

Kami menggunakan Ruby untuk mengimplementasikan perangkat lunak otomatisasi pengujian kami. Ini termasuk kerangka uji dan kode driver untuk Selenium RC, WATIR dan AutoIT.

Ruby cukup kuat untuk membuat aplikasi komprehensif yang dapat berinteraksi dengan alat Uji seperti Selenium atau WATIR, sementara pada saat yang sama membaca dari file data, berinteraksi dengan UI Windows jarak jauh dan melakukan komunikasi jaringan yang hampir transparan. Semua saat berjalan di Windows atau Linux.

Sintaks yang rapi membuatnya ideal untuk pemrogram baru dan berpengalaman untuk membaca. Sementara sifat OO totalnya memudahkan programmer yang sama ini untuk menerapkan teknik OO yang baik (baru-baru ini dipelajari), dari awal.

Sifat sintaks Ruby yang fleksibel juga membuat penggunaan dan pembuatan DSL menjadi lebih mudah. Hal ini memungkinkan orang yang kurang teknis untuk tertarik, membaca, dan mungkin membuat pengujian di sana sendiri.


Tidak semua permata berjalan dengan baik di windows. Linux adalah lingkungan yang jauh lebih mulus untuk menjalankan ruby ​​menurut pengalaman saya.
Zombies

3

Saya telah menggunakan Ruby untuk pembuatan kode C # dan prosedur tersimpan T-SQL dalam proyek dengan persyaratan yang tidak stabil. Model data dienkode dalam file YAML dan template .erb digunakan untuk kelas dan prosedur tersimpan. Ini juga memungkinkan untuk solusi yang jauh lebih KERING daripada yang mungkin terjadi dengan C # lurus karena kode berulang dapat difaktorkan menjadi satu metode dalam generator kode.


3

Di tempat saya bekerja, kami menggunakan Ruby untuk melakukan sejumlah pekerjaan batch jenis satu kali. Salah satu contohnya adalah pekerjaan yang berinteraksi dengan layanan S3 Amazon. Pada saat itu, pustaka Ruby S3 mungkin adalah yang termudah di luar sana untuk kami bangun dan jalankan dalam waktu singkat.


3

Saya menulis sistem pakar pemrosesan pesanan (lihat jawaban DSL juga), mengubah 100 ribu baris perl khusus pelanggan menjadi sekitar 10 ribu baris ruby ​​yang menangani lusinan pelanggan. Tidak ada komponen web sama sekali, tidak ada Rails.



3

Heh, pertanyaan bagus.

Saya menggunakan Ruby untuk mengonversi data fasilitas bandara spreadsheet Excel ke sqlite3 untuk platform ponsel android sambil membuat aplikasi untuk pilot.


3

Saya menggunakan Ruby dengan Sinatra yang jauh lebih sederhana daripada Rails. Saya memang menggunakan Rails tetapi baru saja menemukan bahwa itu telah berubah menjadi monster, meskipun Rails masih luar biasa dibandingkan dengan kerangka kerja web yang tersedia untuk Java.

Fitur utama Ruby yang saya suka adalah "eval" dan "method_missing", yang sebenarnya digunakan Rails misalnya di ActiveRecord sehingga Anda bisa menggunakan kueri "find_by-field-name-" yang menakjubkan.


3

Saya menggunakan Ruby untuk banyak kode back-end hanya karena saya adalah satu-satunya orang yang ditugaskan untuk melakukannya dan membutuhkan bahasa bersih yang bagus yang memungkinkan saya menjadi sangat produktif dan menulis kode yang mudah dipelihara. Saya menemukan Ruby memungkinkan saya untuk melakukan itu lebih mudah daripada Perl dan Python. Jarak tempuh orang lain mungkin berbeda-beda tetapi itu bekerja dengan baik untuk saya.

Selain itu, saya suka cara kerja Sekuel dan Nokogiri. Saya juga menggunakan ActiveRecord untuk sementara waktu secara terpisah dari Rails.


2

Kami menggunakan beberapa Ruby untuk manipulasi file tetapi belum dapat menggunakan rails.


2

Saya telah menggunakan Ruby secara profesional untuk skrip cepat untuk hal-hal seperti mengacak file. Saya juga menggunakan Ruby dulu sebelum menyentuh Rails sama sekali.


2

Di Boulder ada sekelompok pengguna Ruby yang bertemu setiap bulan. Hal ini dibuat - bahwa Ruby memang ada selain penggunaannya di Rails. Pengguna Ruby biasa memang ada, meminta perhatian, memiliki hal-hal yang rapi untuk ditampilkan, dan dapat menemukan satu sama lain pada pertemuan kelompok pengguna.

Mereka juga memiliki pizza yang lebih baik daripada grup Python, yang bertemu pada hari yang sama di bulan itu. Hanya dapat memilih satu ...


1
Ya, tetapi grup Python memiliki Py! (lelucon payah, saya tahu, saya tahu ...)
dguaraglia

sangat lucu hingga aku lupa tertawa! 8P
DarenW

2

Meskipun kami memiliki beberapa aplikasi Rails yang sedang bekerja, kami juga menggunakan Ruby untuk beberapa hal non-web yang cukup intensif.

Kami memiliki daemon pengiriman SMS, yang menarik pesan dari antrian dan kemudian mengirimkannya, dan daemon pemrosesan kartu kredit yang dapat dipanggil oleh aplikasi lain, yang memastikan ada jejak audit pusat.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.