Slide 1

Slide 1 text

ZOMBIEAPPS Javier Acero jacegu jacegu javieracero.com

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

1 2 3 BUSINESS LOGIC DATA SOURCES PRESENTATION

Slide 4

Slide 4 text

1 2 3 Busine Logic

Slide 5

Slide 5 text

Business Logic is a non-technical term generally used to describe the functional algorithms that handle information exchange between a database and a user interface. - Wikipedia

Slide 6

Slide 6 text

Business Logic is a non-technical term generally used to describe the functional algorithms that handle information exchange between a database and a user interface. - Wikipedia oh boy...

Slide 7

Slide 7 text

- Martin Fowler, Patterns of Enterprise Application Architecture Business Logic is the work the application needs to do for the domain it’s working with.

Slide 8

Slide 8 text

CALCULATIONS VALIDATIONS CALLS TO EXTERNAL SYSTEMS + + = BUSINESS LOGIC

Slide 9

Slide 9 text

SCRIPT TRANSACTION

Slide 10

Slide 10 text

TRANSACTIONS busine logic a

Slide 11

Slide 11 text

PROCEDURES modeled a def newPurchase() DB.insert(); commit(); end

Slide 12

Slide 12 text

simple easy to understand works great with simple datasources makes transaction boundaries visible 00 { ADVANTAGES

Slide 13

Slide 13 text

00 {duplicated code procedural code duplicated code procedural code duplicated code procedural code duplicated code procedural code ADVANTAGES DIS

Slide 14

Slide 14 text

duplicated code get wo e a the a lication gro time

Slide 15

Slide 15 text

MODULE TABLE

Slide 16

Slide 16 text

OPERATIONS busine logic a TABLE ROWS on

Slide 17

Slide 17 text

OBJECTS modeled a class Product { def purchase(); recordSets(); RECORD SETS & class RecordSet {

Slide 18

Slide 18 text

avoids duplication better than a transaction script 00 { ADVANTAGES helps overcoming the relational - oo mismatch

Slide 19

Slide 19 text

00 { ADVANTAGES DIS modeling limited by and tied to the data model mechanisms basic to OOP like polymorphism are not available

Slide 20

Slide 20 text

MODEL DOMAIN

Slide 21

Slide 21 text

OBJECT busine logic a BEHAVIOUR

Slide 22

Slide 22 text

OBJECT GRAPHS modeled a Product Price Stock ProductService ProductRepository

Slide 23

Slide 23 text

- Martin Fowler, Patterns of Enterprise Application Architecture The Object Oriented way of implementing business logic.

Slide 24

Slide 24 text

ADVANTAGES - Martin Fowler, Patterns of Enterprise Application Architecture The Object Oriented way of implementing business logic.

Slide 25

Slide 25 text

00 {the hardest to comprehend data sources get more complex overhead for simple business logic ADVANTAGES DIS

Slide 26

Slide 26 text

effort to enhance complexity of the business logic domain model table module transaction script

Slide 27

Slide 27 text

effort to enhance complexity of the business logic domain model table module transaction script 7.42

Slide 28

Slide 28 text

Programming What about... eXtreme

Slide 29

Slide 29 text

OOP SOLID DESIGN PATTERNS REFACTORING

Slide 30

Slide 30 text

UBIQUITOUS LANGUAGE

Slide 31

Slide 31 text

.........F...... ................ .....TESTING..... ......F......... ....**...F..F...

Slide 32

Slide 32 text

ANEMIC antipa ern DOMAIN MODEL

Slide 33

Slide 33 text

antipa ern DOMAIN MODEL DRIVEN TABLE

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

antipa ern DOMAIN MODEL CONNECTED

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

DOMAIN MODEL BUILD Ho t ... A RICH

Slide 38

Slide 38 text

BBBBRRRRR RAAAAIIILS

Slide 39

Slide 39 text

Thank You

Slide 40

Slide 40 text

QUESTIONS?

Slide 41

Slide 41 text

The icons and images used in this presentation were found using Google and belong to their respective authors. The Database Slide was taken from @unclebob’s talk at Ruby Midwest 2011 Credit

Slide 42

Slide 42 text

Here is where I found them: Credit Spaghetti: http://goo.gl/KrGiL Zombie 1: http://goo.gl/mHiYe Zombie 2: http://goo.gl/hk8i0 Zombie Apocalypse: http://goo.gl/7IIK6 Tool: http://goo.gl/75Svb