RUBY ON RAILS & BDD LaSaRiS - Marek Jelen, Ivan Nečas Historie  Červenec 2004 - zveřejnění  Únor 2005 – veřejná commit práva  Říjen 2007 – součást MacOS X  2009 – Rack (WSGI pro Ruby)  2010 – 3.0 Produkční weby Co to je?  Framework (rámec) pro tvorbu webových aplikací  MVC (Model + View + Controller)  Agilní metodologie (TDD, BDD, Scrum, XP, …)  CoC – Convention over Configuration  DRY – Do not repeat yourself BUZZWORD & FANBOYS Balení  ActionPack  Kostra aplikace  ActiveRecord  ORM  ActiveModel  ActiveResource  Komunikace (XML+REST)  ActionMailer  Mailování  ActiveSupport  Podpůrné funkce Co to umí?  Environments (Development, Test, Production)  Zabezpečení (SQL injection, XSS)  REST  SOAP  WSO2 Web Services Frameworks (WS-Security, WS-Reliability, WS-Addressing, WS-SercurePolicy, WS-ReliableMessaging)  AJAX  Prototype, jQuery  Testy  Unit  Behaviour  Asynchronní zpracování Jak vypadá aplikace Testování Prečo testovať  Základná činnosť pri agilnom vývoji  Odhalenie chýb – čiastočne  Prvý predpoklad pre refaktoring  Red – Green - Refactor  Istota pri integrácií nových funkcií  Dokumentácia  Pomoc pri návrhu – testovateľná architektúra TDD - BDD  Test-driven development  Testujeme štrukturálne jednotky kódu  Moduly – Triedy – Metódy  Pri písaní testu nevieme, aká bude štruktúra kódu  Behaviour-driven development  Testujeme jednotky „správania“  To čo zákazník očakáva  To, čo po nás zákazník chce vieme ešte pred implementáciou (alebo by sme mali vedieť) Aké majú byť testy?  Fast  Independant  Repeatable  Self-validating  Timely Robert C. Martin: Clean Code Děkujeme za pozornost