DSL (Domain Specific Language) und Fluent-Interface

by admin 18. August 2007 02:44

Ich arbeite gerade an Testmethoden und habe mich über folgenden Code gefreut, weil er ein relativ komplexes Thema ziemlich lesbar gestaltet. Der Test ist natürlich grün :-)

 CropperCapture[93] 

(Clicken für Originalgrösse)

Das Setup für die Tests ist mir immer noch einen Tick zu lang und ich werde wohl noch refaktorisieren. Auch werde ich gleich noch ein paar mehr Asserts hinzufügen.

Erzeugt werden 8 Angebote mit jeweils 4 und 3 Eigenschaften. Sticker haben hier keinen Preis, sind also kein echtes Angebot aber für den Test reicht das komplett. Die Angebote lassen sich mit einem Einzeiler persistieren.

Die Flyer und Sticker Klassen Definition und Helper Klassen werden via XML Configurationsfiles generiert, was auch den Sprach-Mix erklärt. Ursprünglich war das nur gedacht um schnell und einfach Tests schreiben zu können, nun ergeben sich aber noch ein paar andere Vorteile. Das Endprodukt läst sich so relativ flexibel befüllen. Für ein paar 10 000 Produkte braucht es nur wenige Zeilen...

Komisch, in den letzten 4 1/2 Wochen habe ich 7100 Zeilen Code (oben sieht man 30 Zeilen ;) fürs das Backend unserers Produktes geschrieben. Nach dem ich die letzten Tage ein wenig panisch geworden bin, vor allen Dingen wegen vager Anforderungen und  Unwissenheit über Zielgruppen und Märkte, scheint sich doch noch alles zusammen zu fügen. Trotzdem steht jetzt erstmal Crunch-Time an.

Lets Rock'n Roll :-)

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

About Oliver

shades-of-orange.com code blog logo I build web applications using ASP.NET and have a passion for javascript. Enjoy MVC 4 and Orchard CMS, and I do TDD whenever I can. I like clean code. Love to spend time with my wife and our children. My profile on Stack Exchange, a network of free, community-driven Q&A sites

About Anton

shades-of-orange.com code blog logo I'm a software developer at teamaton. I code in C# and work with MVC, Orchard, SpecFlow, Coypu and NHibernate. I enjoy beach volleyball, board games and Coke.