Slideshare.net (beta)

 
Post: 
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons

All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 0 (more)

From Domain-Driven Design to internal Domain-Specific Languages?

From pcalcado, 5 months ago

I’ve presented at ThoughtWorks Melbourne tech forum today. Tech more

390 views  |  0 comments  |  0 favorites  |  9 downloads
 

Tags

ruby languageorientedprogramm... domaindrivendesign trends model design development software fragmental thoughtworks

more

 
 

Groups / Events

 

 
Embed
options

More Info

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License
This slideshow is Public
Total Views: 390
on Slideshare: 390
from embeds: 0

Slideshow transcript

Slide 1: modeling{ from :domain_driven_design to :internal_dsls? } #Phillip Calçado #http://fragmental.tw #pcalcado@gmail.com

Slide 2: Turing Complete

Slide 8: Business An User belongs to a group. He must authenticate using a login. Dev class User attr_reader :login, :group def authenticate(login) #do stuff end end

Slide 9: Application User pays Bill from his Group Domain User, Group, Bill... Model Language class, module, def... 10010101001100101010101010101 11010111010001000001111100000

Slide 10: SELECT u.name, g.name FROM (SELECT p.name FROM USER u, PEOPLE p WHERE u.status=’published’ AND u.id = p.id) u, GROUP g WHERE g.id = u.group_id AND g.type = ‘ADMIN’

Slide 14: Application User pays Bill from his Group Domain User, Group, Bill... Model Language class, module, def... 10010101001100101010101010101 11010111010001000001111100000

Slide 15: Application User pays Bill from his Group Domain User, Group, Bill... Language 10010101001100101010101010101 11010111010001000001111100000

Slide 16: Business An User belongs to a group. He must authenticate using a login. Dev authenticate ‘phill’

Slide 17: External DSLs

Slide 18: External DSLs

Slide 19: Internal DSLs

Slide 20: Person name birth_date User Customer login * 1 Group password authenticate

Slide 23: ['20080102', '18:23:06,026'] - (INFO "Program started") ['20080102', '18:23:07,027'] - (DEBUG "Infra-check") ['20080102', '18:23:08,028'] - (INFO "Checking classloaders") ['20080102', '18:23:09,029'] - (WARN "Classloader not set properly") ['20080102', '18:23:10,030'] - (ERROR <<TEXT Could not load the org.jboss.webservice.server.Service interceptor java.lang.ClassNotFoundException: No ClassLoaders found for: org.jboss.webservice.server.ServiceEndpointInterceptor at org.jboss.mx.loading(LoadMgr3.java:212) at org.jboss.mx.loading(RepositoryClassLoader.java:490) at org.jboss.mx.loading(RepositoryClassLoader.java:392) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at org.jboss.util.loading.(DelegatingClassLoader.java:89) at org.jboss.mx.loadClass(LoaderRepositoryClassLoader.java:90) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) TEXT ) ['20080102', '18:23:09,029'] - (INFO "Program finished")

Slide 24: @log << LogEntry.new(Time.mktime(2008,01,02,18,23,06,26), :info, "Program started") @log << LogEntry.new(Time.mktime(2008,01,02,18,23,06,27), :debug, "Infra-check") @log << LogEntry.new(Time.mktime(2008,01,02,18,23,06,26), :info, "Checking classloaders") @log << LogEntry.new(Time.mktime(2008,01,02,18,23,06,28), :warn, "Classloader not set properly" ) @log << LogEntry.new(Time.mktime(2008,01,02,18,23,06,29), :error, "Could not load the org.jboss.webservice.server.Service interceptor njava.lang.ClassNotFoundException: No ClassLoaders found for: org.jboss.webservice.server.ServiceEndpointInterceptorn at org.jboss.mx.loading(LoadMgr3.java:212)n at org.jboss.mx.loading(RepositoryClassLoader.java:490)nnat org.jboss.mx.loading(RepositoryClassLoader.java:392)nat java.lang.ClassLoader.loadClass(ClassLoader.java:235)nat org.jboss.util.loading.(DelegatingClassLoader.java:89)nat org.jboss.mx.loadClass(LoaderRepositoryClassLoader.java:90)nat java.lang.ClassLoader.loadClass(ClassLoader.java:235)") @log << LogEntry.new(Time.mktime(2008,01,02,18,23,06,30), :info, "Program finished")

Slide 25: #eof