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

Architecting Design Decisions

Architecting Design Decisions

We have a tendency to dive into a project and start coding prematurely. Sometimes we forget that we need to take a step back and ask "How do I best achieve the goals of this project?". Before writing the code, we need to understand the problem, the difficulties, and the architecture of a proposed solution. We need to understand the different layers of the architecture we are proposing. In this talk, I will be showing attendees the proper design for these layers. * Application * Service * Data I will show you the responsibilities for each of these layers, where they fit into your application, and how they should properly interact with each other. Before you fire up your text editor and start writing code, stand back and take a look. See the beauty of the layers.

Viraj Khatavkar

May 29, 2016
Tweet

More Decks by Viraj Khatavkar

Other Decks in Programming

Transcript

  1. DMBTT 4VCTDSJQUJPO$POUSPMMFS \ QVCMJD GVODUJPO TUPSF 3FRVFTUSFRVFTU \ 4JHO6QUIFVTFS#VU XIBUFMTFEPUIFZXBOU

    VTFS OFX 6TFS  VTFSOBNFSFRVFTUOBNF VTFSSPMFSFRVFTUSPMF 3FHVMBS4VCTDSJCFS VTFSTBWF VTFS  +PJOJOHBHJTUFS GPS'PSVN ^ ^ @virajkhatavkar
  2. DMBTT 4VCTDSJQUJPO$POUSPMMFS \ QVCMJD GVODUJPO TUPSF 3FRVFTUSFRVFTU \ JG SFRVFTUIBT

    bGPSVN`  \ 3FHJTUFSGPS'PSVN ^ JG SFRVFTUIBT bQBJE@TVCTDSJQUJPO`  \ 4VCTDSJCFUPQBJEQMBO ^ JG SFRVFTUIBT bKPJO@B@UFBN`  \ 4VCTDSJCFUPBOFYJTUJOHUFBNBDDPVOU ^ ^ ^ @virajkhatavkar
  3. DMBTT 4VCTDSJQUJPO$POUSPMMFS \ QVCMJD GVODUJPO TUPSF 3FRVFTUSFRVFTU \ JG SFRVFTUIBT

    bGPSVN`  \ 3FHJTUFSGPS'PSVN ^ JG SFRVFTUIBT bQBJE@TVCTDSJQUJPO`  \ 4VCTDSJCFUPQBJEQMBO ^ JG SFRVFTUIBT bKPJO@B@UFBN`  \ 4VCTDSJCFUPBOFYJTUJOHUFBNBDDPVOU ^ ^ ^ @virajkhatavkar
  4. DMBTT 4VCTDSJQUJPO$POUSPMMFS \ QVCMJD GVODUJPO TUPSF 3FRVFTUSFRVFTU \ JG SFRVFTUIBT

    bGPSVN`  \ 3FHJTUFSGPS'PSVN ^ JG SFRVFTUIBT bQBJE@TVCTDSJQUJPO`  \ 4VCTDSJCFUPQBJEQMBO ^ JG SFRVFTUIBT bKPJO@B@UFBN`  \ 4VCTDSJCFUPBOFYJTUJOHUFBNBDDPVOU ^ ^ ^ @virajkhatavkar
  5. DMBTT 4VCTDSJQUJPO$POUSPMMFS \ QVCMJD GVODUJPO TUPSF 3FRVFTUSFRVFTU \ ^ QSPUFDUFEGVODUJPO

    TUSBUFHZ \ JG SFRVFTUIBT bQBJE@TVCTDSJQUJPO`  \ SFUVSO OFX3FHJTUFST3FHVMBS4VCTDSJCFS ^ JG SFRVFTUIBT bKPJO@B@UFBN`  \ SFUVSO OFX3FHJTUFST5FBN.FNCFS ^ SFUVSO OFX3FHJTUFST'PSVN6TFS ^ ^ @virajkhatavkar
  6. DMBTT 4VCTDSJQUJPO$POUSPMMFS \ QVCMJD GVODUJPO TUPSF 3FRVFTUSFRVFTU \ UIJTTUSBUFHZ SFRVFTU

    IBOEMF  ^ QSPUFDUFEGVODUJPO TUSBUFHZ SFRVFTU \ JG SFRVFTUIBT bQBJE@TVCTDSJQUJPO`  \ SFUVSO OFX3FHJTUFST3FHVMBS4VCTDSJCFS ^ JG SFRVFTUIBT bKPJO@B@UFBN`  \ SFUVSO OFX3FHJTUFST5FBN.FNCFS ^ SFUVSO OFX3FHJTUFST'PSVN6TFS ^ ^ @virajkhatavkar
  7. DMBTT 4VCTDSJQUJPO$POUSPMMFS \ QVCMJD GVODUJPO TUPSF 3FRVFTUSFRVFTU \ UIJTTUSBUFHZ SFRVFTU

    IBOEMF  ^ QSPUFDUFEGVODUJPOTUSBUFHZ SFRVFTU \ JG SFRVFTUIBT bQBJE@TVCTDSJQUJPO`  \ SFUVSOOFX3FHJTUFST3FHVMBS4VCTDSJCFS ^ JG SFRVFTUIBT bKPJO@B@UFBN`  \ SFUVSOOFX3FHJTUFST5FBN.FNCFS ^ SFUVSOOFX3FHJTUFST'PSVN6TFS ^ ^ @virajkhatavkar
  8. DMBTT 4VCTDSJQUJPO$POUSPMMFS \ QVCMJD GVODUJPO TUPSF 3FRVFTUSFRVFTU 'BDUPSZ GBDUPSZ \

    GBDUPSZHFU4USBUFHZ SFRVFTU IBOEMF  ^ QSPUFDUFEGVODUJPOTUSBUFHZ SFRVFTU \ JG SFRVFTUIBT bQBJE@TVCTDSJQUJPO`  \ SFUVSOOFX3FHJTUFST3FHVMBS4VCTDSJCFS ^ JG SFRVFTUIBT bKPJO@B@UFBN`  \ SFUVSOOFX3FHJTUFST5FBN.FNCFS ^ SFUVSOOFX3FHJTUFST'PSVN6TFS ^ ^ @virajkhatavkar
  9. QVCMJDGVODUJPO TUPSF 3FRVFTUSFRVFTU  \ UBTL OFX 5BTL  UBTLUJUMFSFRVFTUUJUMF

    UBTLEVF@EBUF SFRVFTUEVF@EBUF JG UBTLTBWF  \ 4FOE&NBJMUPUFBNNFNCFST /PUJGZ5FBN-FBEFS -PH"DUJPO 4FU$30/+PCGPSSFNJOEFST SFUVSO UIJTSFEJSFDU bFEJU@QBHF`  ^ UISPX OFX /PU'PVOE&YDFQUJPO  ^ @virajkhatavkar
  10. QVCMJDGVODUJPO TUPSF 3FRVFTUSFRVFTU  \ UBTL OFX 5BTL  UBTLUJUMFSFRVFTUUJUMF

    UBTLEVF@EBUF SFRVFTUEVF@EBUF JG UBTLTBWF  \ 4FOE&NBJMUPUFBNNFNCFST /PUJGZ5FBN-FBEFS -PH"DUJPO 4FU$30/+PCGPSSFNJOEFST SFUVSO UIJTSFEJSFDU bFEJU@QBHF`  ^ UISPX OFX /PU'PVOE&YDFQUJPO  ^ @virajkhatavkar
  11. DMBTT $SFBUF5BTL$PNNBOE \ QVCMJD OBNF QVCMJD EVF@EBUF QVCMJDGVODUJPO @@DPOTUSVDU UBTL@OBNF

    EVF@EBUF \ UIJTOBNF UBTL@OBNF UIJTEVF@EBUF EVF@EBUF ^ ^ @virajkhatavkar
  12. QVCMJDGVODUJPO TUPSF 3FRVFTUSFRVFTU  \ UBTL OFX 5BTL  UBTLUJUMFSFRVFTUUJUMF

    UBTLEVF@EBUF SFRVFTUEVF@EBUF JG UBTLTBWF  \ 4FOE&NBJMUPUFBNNFNCFST /PUJGZ5FBN-FBEFS -PH"DUJPO 4FU$30/+PCGPSSFNJOEFST SFUVSO UIJTSFEJSFDU bFEJU@QBHF`  ^ UISPX OFX /PU'PVOE&YDFQUJPO  ^ @virajkhatavkar
  13. DMBTT $SFBUF5BTL$PNNBOE \ QVCMJD OBNF QVCMJD EVF@EBUF QVCMJDGVODUJPO @@DPOTUSVDU UBTL@OBNF

    EVF@EBUF \ UIJTOBNF UBTL@OBNF UIJTEVF@EBUF EVF@EBUF ^ ^ @virajkhatavkar
  14. DMBTT $SFBUF5BTL$PNNBOE)BOEMFS \ QVCMJDGVODUJPO @@DPOTUSVDU 5BTL UBTL .BJMFS NBJMFS \

    UIJTUBTL UBTL UIJTNBJMFS NBJMFS ^ ^ @virajkhatavkar
  15. DMBTT $SFBUF5BTL$PNNBOE)BOEMFS \ QVCMJDGVODUJPO @@DPOTUSVDU 5BTL UBTL .BJMFS NBJMFS \

    UIJTUBTL UBTL UIJTNBJMFS NBJMFS ^ QVCMJDGVODUJPO IBOEMF $SFBUF5BTL$PNNBOE DPNNBOE \ ^ ^ @virajkhatavkar
  16. QVCMJD GVODUJPO IBOEMF $SFBUF5BTL$PNNBOE DPNNBOE \ ^ @virajkhatavkar This function

    is responsible for carrying out all the sequential tasks
  17. DMBTT $SFBUF5BTL$PNNBOE)BOEMFS \ QVCMJDGVODUJPO @@DPOTUSVDU 5BTL UBTL .BJMFS NBJMFS \

    UIJTUBTL UBTL UIJTNBJMFS NBJMFS ^ QVCMJDGVODUJPO IBOEMF $SFBUF5BTL$PNNBOE DPNNBOE \ UIJTUBTLUJUMFDPNNBOEUJUMF UIJTUBTLEVF@EBUF DPNNBOEEVF@EBUF JG UIJTUBTLTBWF  \ 4FOE&NBJM 4FU$SPO +PCT 8SBQJOB%#5SBOTBDUJPO ^ ^ ^ @virajkhatavkar
  18. $POUSPMMFS QVCMJDGVODUJPO TUPSF 3FRVFTUSFRVFTU  \ DPNNBOE OFX $SFBUF5BTL$PNNBOE SFRVFTUOBNF

    SFRVFTUEVF@EBUF  UIJTDPNNBOE#VTFYFDVUF DPNNBOE  SFUVSO UIJTSFEJSFDU bFEJU@QBHF`  ^ @virajkhatavkar
  19. DMBTT $SFBUF5BTL$PNNBOE)BOEMFS \ QVCMJDGVODUJPO @@DPOTUSVDU 5BTL UBTL .BJMFS NBJMFS \

    UIJTUBTL UBTL UIJTNBJMFS NBJMFS ^ QVCMJDGVODUJPO IBOEMF $SFBUF5BTL$PNNBOE DPNNBOE \ UIJTUBTLUJUMFDPNNBOEUJUMF UIJTUBTLEVF@EBUF DPNNBOEEVF@EBUF JG UIJTUBTLTBWF  \ NBJMFSUBTL$SFBUFE UBTL  ^ ^ ^ @virajkhatavkar
  20. DMBTT $SFBUF5BTL$PNNBOE)BOEMFS \ QVCMJDGVODUJPO @@DPOTUSVDU 5BTL UBTL .BJMFS NBJMFS \

    UIJTUBTL UBTL UIJTNBJMFS NBJMFS ^ QVCMJDGVODUJPO IBOEMF $SFBUF5BTL$PNNBOE DPNNBOE \ UIJTUBTLUJUMFDPNNBOEUJUMF UIJTUBTLEVF@EBUF DPNNBOEEVF@EBUF JG UIJTUBTLTBWF  \ NBJMFSUBTL$SFBUFE UBTL  ^ ^ ^ @virajkhatavkar Task Created event
  21. DMBTT $SFBUF5BTL$PNNBOE)BOEMFS \ QVCMJDGVODUJPO @@DPOTUSVDU 5BTL UBTL .BJMFS NBJMFS \

    UIJTUBTL UBTL UIJTNBJMFS NBJMFS ^ QVCMJDGVODUJPO IBOEMF $SFBUF5BTL$PNNBOE DPNNBOE \ UIJTUBTLUJUMFDPNNBOEUJUMF UIJTUBTLEVF@EBUF DPNNBOEEVF@EBUF JG UIJTUBTLTBWF  \ NBJMFSUBTL$SFBUFE UBTL  ^ ^ ^ @virajkhatavkar
  22. DMBTT $SFBUF5BTL$PNNBOE)BOEMFS \ QVCMJDGVODUJPO @@DPOTUSVDU 5BTL UBTL \ UIJTUBTL UBTL

    ^ QVCMJDGVODUJPO IBOEMF $SFBUF5BTL$PNNBOE DPNNBOE \ UIJTUBTLUJUMFDPNNBOEUJUMF UIJTUBTLEVF@EBUF DPNNBOEEVF@EBUF JG UIJTUBTLTBWF  \ FWFOUOFX &WFOU  UIJTFWFOU.BOBHFS EJTQBUDI FWFOU  ^ ^ ^ @virajkhatavkar
  23. DMBTT $SFBUF5BTL$PNNBOE)BOEMFS \ QVCMJDGVODUJPO @@DPOTUSVDU 5BTL UBTL \ UIJTUBTL UBTL

    ^ QVCMJDGVODUJPO IBOEMF $SFBUF5BTL$PNNBOE DPNNBOE \ UIJTUBTLUJUMFDPNNBOEUJUMF UIJTUBTLEVF@EBUF DPNNBOEEVF@EBUF JG UIJTUBTLTBWF  \ FWFOU OFX &WFOU  UIJTFWFOU.BOBHFS EJTQBUDI FWFOU  ^ ^ ^ @virajkhatavkar
  24. "CPVU.F • 'PVOEFS )FBEPG5FDIOPMPHZ • 1)1 • 6*69 • "OHVMBS+4

    • WJSBK!UBOUSBHZBODPN • !WJSBKLIBUBWLBS @virajkhatavkar 5BOUSB(ZBO