2009-05-22 8 views

Odpowiedz

1

Kilka dobrych DSL rubinowe mogę myśleć są hpricot i sinatra

+0

Struktura sinatry jest naprawdę przyjemna. Słyszałem o tym, ale nie patrzyłem na to. Dzięki za przypomnienie. – Demi

12

Rake i Rack są dobre przykłady DSL jest. Jeśli chcesz jeszcze kilka przykładów, należy sprawdzić te out:

  • Sinatra jest bardzo popularnym DSL do budowania aplikacji internetowych, a to open source na GitHub.
  • to nowsza wersja DSL inspirowana Sinatra, która umożliwia tworzenie botów na Twitterze, które automatycznie reagują na wiadomości i odpowiedzi.

Jeśli chcesz rozpocząć samemu tworzenie, oto doskonały samouczek o nazwie Building a DSL in Ruby.

+0

Twibot jest interesującym znaleziskiem, na które przyjrzę się. Dzięki! – Demi

2

Innym przykładem jest oczywiście Rake, system kompilacji Ruby. Co sprawia, że ​​DSL „dobre” moim zdaniem:

  1. Zapis zgodny rozumieniu, to znaczy jeśli czytasz zdania (oświadczenie) na DSL, masz jasne, jednoznaczne pojęcia, co robi.
  2. Specyficzne dla domeny, tj. DSL nie rozwiązuje wszystkich problemów we Wszechświecie, ale skupia się raczej na jednej małej domenie (takiej jak oprogramowanie dla budownictwa, dane z zapytań lub kontrukujące interfejsy użytkownika).
  3. Wysoki poziom abstrakcji. DSL wykorzystuje koncepcje wysokiego poziomu, z których może korzystać programista, i przekłada je na implementację niższego poziomu (wewnętrznie). W przypadku Rake'a podstawową koncepcją, na której opiera się język, są zadania i zależności między nimi.
3

W obszarze Behavior Driven Development można sprawdzić:

  • Cucumber - Opisać BDD użyciu scenariuszy
  • RSpec - Wymień kod z badań zachowań określających.

Chociaż muszę przyznać, że kod RSpec pozostawia mi drapanie w głowę, ponieważ jestem ciągle nowicjuszem.

2

Czy wymeldowałeś się z Docile gem, może to być najłatwiejszy i najczystszy sposób na zaspokojenie twoich potrzeb?

0

Aktywny rekord Ruby on Rails to DSL!

http://apidock.com/rails/ActiveRecord/Base

Również ten epizod z kodem szkoły może być interesujące, gdyż prowadzi do budowania DSL (gdzie dowiedziałem Active Record był DSL)

http://www.codeschool.com/courses/ruby-bits-part-2

powyższy kurs także rozmowy o zewnętrznych i wewnętrznych DSL. Ogórek jest przykładem zewnętrznego DSL, w którym trzeba zbudować parser i kompilator, itp. Rekord aktywny to przykład wewnętrznego DSL, który działa w obrębie istniejącego kodu.