Ruby raylardan


114

Bazen, Rails'in neredeyse Ruby ile eşanlamlı hale geldiği noktaya kadar, şirketimin dünyada Ruby kullanan tek şirket olduğunu, ancak Ruby on Rails olmadığını düşünüyor.

Eminim bu gerçekten doğru değildir, ancak orada Rails olmayan Ruby kullanımı hakkında bazı hikayeler duymak eğlenceli olurdu.

Yanıtlar:


51

Ruby'nin en büyük avantajlarından biri DSL'leri çok kolay bir şekilde oluşturma yeteneğidir. Ruby, bir iş analistinin kullanması için genellikle yeterince kolay olan doğal bir dilde "iş kuralları" oluşturmanıza olanak tanır. Web geliştirme dışında birçok Ruby uygulaması bu amaçla mevcuttur.

Mükemmel okumalar için Googling "ruby dsl" yi şiddetle tavsiye ederim, ancak özellikle bir gönderi ile sizi bırakmak istiyorum. Russ Olsen bir yazdı iki parça blog yazısı üzerine DSLs . DSL'lerle ilgili bir sunum yaptığını gördüm ve çok iyiydi. Bu yazıları okumanızı şiddetle tavsiye ederim.

Bu mükemmel sunumu Ruby DSL'lerinde Obie Fernandez tarafından da buldum . Okumanız şiddetle tavsiye edilir!


4
Ruby'de Dijital Abone Hattı?

5
Etki Alanına Özgü Dil
Sixty4Bit

18

Ruby'yi işimde yoğun olarak kullanıyorum ve hiçbiri Rails (hatta web) tabanlı değil.

Etki alanım genellikle istemci tarafı Windows uygulamaları (wxRuby GUI) ve komut dosyaları, Excel, Internet Explorer, SQL Server sorgularını ve rapor oluşturmayı (win32ole COM otomasyonu) otomatikleştiriyor. Ayrıca çeşitli veri işleme ve grafik oluşturma görevleri için sqlite, pdf-yazıcı ve gruff kitaplıklarını kullanıyorum.

Rails'in başarısı Ruby için harikaydı, ancak Rails'in o kadar çok dikkat çektiğini ve Ruby'nin web dışındaki değerinin genellikle göz ardı edildiğini kabul ediyorum.


17

Çoğunlukla bir C ++ dükkanıyız, ancak Ruby'nin oldukça yararlı olduğunu kanıtladığı birkaç alan bulduk. Burda biraz var:

  • Kod Üretimi - Tek girişli dosyalardan C ++ / Java / C # kodu oluşturmak için birkaç DSL oluşturuldu
  • Derleme Desteği
    • Visual Studio Proje Dosyalarından unix için Makefiles oluşturmak için betikler
    • Cruise Control için proje oluşturmak ve çıktıyı biçimlendirmek için komut dosyaları
    • Birim testlerimizi çalıştırmak ve Hız Sabitleyici için çıktıyı biçimlendirmek için komut dosyaları
    • Visual Studio projelerini ve çözümlerini komut satırından değiştirmek için komut dosyaları
  • Entegrasyon Testleri - Ruby kullanarak testleri C ++ 'dan çok daha hızlı ve daha temiz hale getirebiliriz
  • QA'nın tüm test paketi Ruby'de yazılmıştır

Ruby temelde benim mantıklı olduğu noktaya gitme aracım. Ve birçok yerde mantıklı.


1
Hem Unix (Makefiles) hem de Windows (Visual Studio) için derleme dosyaları oluşturmak için CMake kullanmayı ciddi şekilde düşünmelisiniz.
JesperE

13

Google Sketchup , gömülü bir komut dosyası dili olarak Ruby kullanır. Her türlü 3B modelleme ve içe / dışa aktarma görevlerini gerçekleştirmek için kullanabilirsiniz. Komut dosyası, ücretsiz sürümle çalışır ve hatta yeterli belgeler vardır .


Hm, ilginç. Sketchup ile oynamak için gerçekten biraz zaman ayırmaya çalışmalıyım.
JesperE

9

C ++ ile yazılmış homebrew uzantısına sahip Ruby, fotoğrafçılık işlemem için tüm ağır pikseli zorlar. Python + numpy kullanıyordum ama iddialı şeyler yaparken Ruby sadece daha eğlenceli. Ayrıca, iyi görüntü işleme kitaplıklarının göreceli olarak eksikliği veya daha az olgunluğu, bana tekerlekleri yeniden icat ediyormuşum gibi hissettiriyor. Rails hakkında hiçbir fikrim yok, duyduğum dışında, belirsiz bir fikrim var ve aslında üzerine bir kitabım var (açılmamış)


8

Biz kullanmak Watir bizim .net web uygulaması test etmek (Ruby kütüphanesi).


Watir son derece kullanışlıdır. Ayrıca Selenium'u bazen Ruby aracılığıyla da kullanıyoruz.
Swanand


6

Ya da Giles Bowkett'in Archaeopteryx'ini müzik yapmak için Ruby'yi kullanabilirsiniz. Bu Archaeopteryx'i Giles sunum gelmiş geçmiş en iyi sunumlar biridir. Şiddetle tavsiye ederim.


1
İnanılmaz derecede büyüleyici şeyler, üretken müzik.
iono

6

RubyCocoa ve MacRuby. Rails olmadan tam Kakao tabanlı GUI uygulamaları yapmak mümkündür. Ve sonra Interface Builder'ı da kullanacaksınız.


6

Geçen yıl çok fazla Ruby kullanan bir müze projesi üzerinde çalıştım. ( http: // http: //ourspace.tepapa.com/home )

Zamanımın çoğunu üzerinde geçirdiğim kısım interaktif bir zemin haritasıydı. Yerdeki Harita sensörlere sahiptir, böylece insanlar üzerine yürüdüklerinde ışıklar tetiklenir ve duvardaki görüntüler görüntüleri veya videoları gösterir ve ses parçaları oynatılır.

Serginin bu bölümü için tüm kontrol kodu yakut. Zemin sensörleri ve aydınlatma denetleyicileri ile iletişim kurmak için yakut sarmalayıcılarla C arayüzleri yazdım. Sistem, görüntülenecek medya dosyaları için bir MYSQL veritabanını sorgular ve ardından duvarlardaki bilgisayarlara medyayı UDP aracılığıyla oynatmalarını söyler.

Tüm serginin en güvenilir kısmı.

Ruby, serginin diğer büyük kısmı olan Duvar için kullanıldı, ancak bununla pek bir ilgim yoktu. Grafiklerin çoğu, saf Obj-C'ye taşınmadan önce OpenGL arayüzleri, biraz Cocoa ve bir fizik kütüphanesi kullanılarak Ruby'de prototiplendi.


6

Kukla ve Aşçı: DevOps

Puppet veya Chef'den bahsetmedim önceki 30 . Ruby, bulut otomasyonundaki mevcut çalışmaya hâkim gibi görünüyor ve bu iki büyük oyuncunun temel, uzantı ve şablon dilidir. Öncelikle sunucu dizileri için sistem ve uygulama yapılandırma bilgilerini dağıtmak ve genel BT iş istasyonu yönetimi için kullanılırlar.

DevOps alan oldukça Yakut-farkındadır. Bugün Perl'in bir rakibi var. Gerçekten basit bir betik çoğu zaman hala sh(1),karmaşık bir görev için doğrudan yazılırken, şimdi Perl yerine Ruby'de yapılabilir.


5

Ruby ile işte yaptığım tek site Rails kullanıyor, ancak Merb'i denemek istiyorum .

Bunun dışında Ruby'de çok sayıda küçük yardımcı program yapıyorum - örneğin RSS beslemelerini okuyan ve yeni gönderileri bir veritabanına aktaran bir uygulama.

Eğlenceli, bu yüzden çok hızlı olduğu için bazı aptalca şeyler de yazıyorum. Dün , bir arkadaşımın profesörünü değiştirmenin doğru strateji olduğuna ikna etmesine yardımcı olmak için Monty Hall problemini 100.000 kez oynayacak bir uygulama yazdım .


1
hey, profesör bu oyunun arkasındaki saf mantığı anlayabilmeli, orada simülasyonlara gerek yok.
vava

Algoritmanızı görmek isterim.
maček

Doğru anladıysam, Merb, Rails 3'te hemen hemen özümsenmiştir - ya da en azından çapraz döllenmiş ya da her ne demek istiyorsanız - Rails 3'te.
Andy

4

Yakutun tam anlamıyla bir şey olduğu konusunda neredeyse hakarete uğradım. CGI'nin en son trend olduğu ve herkesin perl'i bilseydiniz bunu yalnızca CGI uygulamalarını programladığınız için yapmanız gerektiğini düşündüğü zamanki gibi. Ruby benim için sadece bir komut dosyası dilidir, ancak python kadar olgun olmasa da, bu yüzden bazı çemberlerinden ve son değişikliklerinden geçmek zorunda olduğum için biraz pişmanım, yine de seviyorum ve kullanıyorum. Bir java mağazasında çalışmama ve bu nedenle harika bir betik dili için ideal seçim olmasına rağmen, hala evde ve işte paylaşılması gerekmeyen senaryoları atmak için Ruby kullanıyorum.

Ben tüm RoR biniyorlar düşündüğünü vızıltı ve ne kadar çabuk / basit ama yenilikçi ya hızla hızlı gelişimi hakkında karşılaştırıldığında şaşırtıcı hiç bir şey, hatta en ufak görmedim raylar üzerinde baktıktan sonra herhangi başka çerçeve. Gördüğüm tek fayda Ruby'de kodlayabilmemdi, ki bu güzel olurdu, ancak ilk kurulum, sunucu bakımı ve ölçeklendirme daha zor, bu nedenle Ruby'de kodlamanın zevkini yeniden dengeliyor.


4

Rack tabanlı web uygulamalarını tartışmak için tesadüfen Off The Rails adlı bir sunum hazırladım:

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

Git repo, Markdown biçimindeki slaytları ve örnek kodu (çalışan uygulamalar ve ara yazılım biçiminde) içerir. Özet şu şekildedir:

Ruby on Rails, Ruby için en popüler web uygulama çerçevesidir. Ama tek değil! Rails'in çok büyük veya fazla düşünceli olduğunu veya herhangi bir şey olduğunu düşünüyorsanız, Rack üzerine inşa edilen yeni nesil sözde mikro çerçeveler hakkında bilgi edinmekten mutlu olabilirsiniz. Ve Rails 3'ün kendisi bir Rack uygulaması olduğundan, Sinatra rotalarından veya Grape API'lerinden yararlanmak için Rails'den vazgeçmeniz gerekmez.

Ve işte bazı referanslar:

Umarım yararlı bulursunuz!


4

Çoğunlukla bir Web geliştiricisiyim ve Ruby'yi Rails'i kullanmayı öğrendim, ancak dili o kadar çok seviyorum ki JRuby ve Monkeybars kullanarak Ruby'de bir masaüstü Swing uygulaması geliştirmeye başladım. Java konusunda uzmanım, ancak onu kullanmaktan pek hoşlanmıyorum ve Swing API korkunç, bu yüzden Ruby'yi zirveye taşımak büyük bir kazanç oldu.


3

Çoğunlukla raylar kullanıyoruz, ancak birçok başka ray olmayan yakut şeyimiz var - örneğin, kullanıcıların merkezi kimlik doğrulaması için bağımsız bir kimlik doğrulama programı ve görüntüleri paralel olarak işlemek için rastgele sayıda Ruby işlemi çalıştıran bir 'görüntü işleme sunucusu'.

Oh, ve eski güzel Rake'i de unutma :-)


3

Ruby ayrıca Masaüstü uygulaması için de kullanılır. Özellikle JRuby'nin Swing masaüstü uygulamasını geliştirmek için kullanılması.


3

Ruby'yi işte kullandım

  • İkili çıktıdan csv dosyaları üreten bir veri çıkarıcı.
  • Basit bir sözdizimini tekrar eden bir .ini biçimine dönüştüren bir .ini dosyası oluşturucusu.
  • Test sırasında müşterinin sistemi için yedek görevi gören basit bir TCP / IP sunucusu.

3

Ruby'yi test otomasyon yazılımımızı uygulamak için kullanıyoruz. Bu, Selenium RC, WATIR ve AutoIT için test çerçevesi ve sürücü kodunu içerir.

Ruby, Selenium veya WATIR gibi Test araçlarıyla arayüz oluşturabilen, aynı zamanda veri dosyalarından okuyan, uzak bir Windows UI ile etkileşime giren ve neredeyse şeffaf ağ iletişimi gerçekleştiren kapsamlı uygulamalar oluşturmak için yeterince güçlüdür. Tümü Windows veya Linux üzerinde çalışırken.

Derli toplu sözdizimi, yeni ve deneyimsiz programcıların okuması için idealdir. Tamamen OO doğası, aynı programcıların en başından itibaren iyi (yeni öğrenilen) OO tekniklerini uygulamalarını kolaylaştırır.

Ruby'nin sözdiziminin esnek yapısı, DSL'lerin kullanımını ve oluşturulmasını da çok daha kolay hale getirir. Bu, daha az teknik olan kişilerin aranmasına, okumasına ve muhtemelen kendi testlerini oluşturmasına olanak tanır.


Tüm mücevherler pencerelerde o kadar iyi çalışmaz. Linux benim deneyimime göre Ruby'yi çalıştırmak için çok daha yumuşak bir ortam.
Zombies

3

Tutarsız gereksinimleri olan bir projede C # ve T-SQL saklı yordamlarının kod üretimi için Ruby kullandım. Veri modeli bir YAML dosyasında kodlanmış ve sınıflar ve saklı yordamlar için .erb şablonları kullanılmıştır. Ayrıca, tekrarlanan kod, kod üretecinde tek bir yönteme dönüştürülebildiğinden, düz C # ile mümkün olandan çok daha fazla KURU çözüm sağladı.


3

Çalıştığım yerde, bir dizi farklı tek seferlik toplu iş yapmak için Ruby kullanıyoruz. Bunun bir örneği, Amazon'un S3 hizmetiyle etkileşim kuran bir iştir. O zamanlar Ruby S3 kitaplığı, kısa bir süre içinde çalışmaya başlamamız için muhtemelen en kolay olanıydı.


3

Bir sipariş işleme uzman sistemi yazdım (DSL cevabına da bakın), 100 bin satırlık müşteriye özel perl'yi yaklaşık 10 bin satırlık yakut işleme düzinelerce müşteriye dönüştürdüm. Hiçbir web bileşeni yok, Ray yok.



3

Heh, harika soru.

Pilotlar için bir uygulama hazırlarken, Excel elektronik tablo havaalanı tesis verilerini android telefon platformu için sqlite3'e dönüştürmek için Ruby'yi kullandım.


3

Ruby'yi Rails'den çok daha basit olan Sinatra ile kullanıyorum. Rails'i kullandım ancak biraz canavara dönüştüğünü gördüm, ancak Rails Java için mevcut web çerçevelerine kıyasla hala harika.

Ruby'nin sevdiğim ana özelliği "eval" ve "method_missing" dir. Rails, örneğin ActiveRecord'da harika "find_by-field-name-" sorgularını kullanabilirsiniz.


3

Ruby'yi birçok arka uç kodu için kullandım çünkü bunu yapmakla görevlendirilen tek kişi bendim ve çok üretken olmamı ve bakımı kolay kod yazmamı sağlayan güzel, temiz bir dile ihtiyaç duydum. Ruby'nin bunu Perl ve Python'dan daha kolay yapmamı sağladığını düşünüyorum. Diğer insanların kilometresi buna göre değişebilir ama benim için iyi çalışıyor.

Bunun yanı sıra Sequel ve Nokogiri'nin çalışma şeklini seviyorum. Bir süre Rails'ten ayrı olarak da ActiveRecord kullandım.


2

Dosya manipülasyonu için biraz Ruby kullanıyoruz, ancak henüz rayları dahil edemedik.


2

Ruby'yi profesyonel olarak, dosyaları karıştırmak gibi şeyler için hızlı komut dosyaları için kullandım. Rails'e dokunmadan önce Ruby'yi kullandığım için aynıyım.


2

Boulder'da her ay bir araya gelen mükemmel bir Ruby kullanıcıları grubu vardı. Bu noktaya varıldı - Ruby'nin Rails'de kullanımının yanında bir varlığı da var. Düz Ruby kullanıcıları vardır, dikkat çekmek için yalvarırlar, gösterecek düzgün şeyleri vardır ve kullanıcı grubu toplantılarında birbirlerini bulabilirler.

Ayrıca ayın aynı günü tanışan Python grubundan daha iyi pizza yediler. Sadece birini seçebilir ...


1
Evet, ama Python grubunda daha iyi Py vardı! (kötü şaka, biliyorum, biliyorum ...)
dguaraglia

O kadar komik ki gülmeyi unuttum! 8P
DarenW

2

İşyerinde birkaç Rails uygulamamız olsa da, oldukça yoğun web dışı şeyler için de Ruby kullanıyoruz.

Mesajları bir kuyruktan çeken ve daha sonra ileten bir SMS teslimat arka plan programı ve diğer uygulamaların çağrı yapabileceği kredi kartı işleme arka plan programı var, bu da merkezi bir denetim izi olduğundan emin oluyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.