Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Up-Down Development and DSl-first approach (ITN...

Up-Down Development and DSl-first approach (ITNonStop, Kharkiv)

Volodymyr Melnyk

November 30, 2015
Tweet

More Decks by Volodymyr Melnyk

Other Decks in Programming

Transcript

  1. Presentation Layer Presenta(on  Layer  is  the  same  as   User

     Interface  and  is  responsible   for  presen(ng  data  to  user  and   interpre(ng  user’s  commands.   We  can  split  it  conven(onally  to   forms  and  views.    
  2. Application Layer Domain  Layer  or  Model  Layer  or   Domain

     Model  Layer  is  the  main   part  of  your  app,  which  stores  all   domain-­‐specific  logic  and   describes  business-­‐processes  that   are  automa(zed  with  the  help  it.    
  3. Domain Layer It  defines  tasks  that  applica(on   should  do

     and  coordinates  them   between  Domain  En((es/   Aggregates  and  Services.    
  4. UI and Magick How user sees your application For  user

     UI  is  the  applica(on.    
  5. D is for Dependency Inversion Principle Split  off  your  app

     on  layers  that   should  not  be  dependent  on   layers  below.    
  6. Layers testing With  Up-­‐Down  development  your   unit  tests  becomes

     acceptance,   func(onal  or  integra(on  tests.  
  7. Layers testing Write  unit  tests  for  screen  or  screens  of

     a  feature  for  your   presenta(on  layer.     Write  correct  sta(c  presenta(on  code  which  passes  the  tests.     Add  more  contexts  and  edge-­‐cases  to  your  tests.     Update  UI  for  new  tests.     Make  UI  dynamic  through  adding  mocked  Domain  Model  and   Applica(on  layers  (refactor).  
  8. DSL – First approach “The  whole  is  greater  than  the

     sum  of  its   parts”  –  Aristotle     SLOC  -­‐  System  as  a  Logic  Over  Components.       DSL  implementa(on  is  the  system  and  code   wriVen  in  DSL  is  the  system  rules  and/or   state.    
  9. What we got Great  abstrac(on  and  single  interface   for

     all  SOAP/RESTful  APIs     No  vendor  lock     Easy  to  read  and  maintain  code     Smaller  number  of  code  defects  
  10. Example from Better Than Everybody Software Abstract  Query  Interface  

    (AQI)  –  the  way  how  we   get  DB  –  agnos(cism  and   split  off  layers.