Slide 1

Slide 1 text

Clean architecture for Testing

Slide 2

Slide 2 text

HELLO! I am Ben who hates duplicate code and not a methodical developer, so he needs software architecture and tests desperately. 2

Slide 3

Slide 3 text

1. XDD in Action Let’s start with discussing some major software designs 3

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

I have another ad I am trying to check (normal one). I see the allocation request to BA dev (and responds with the ad). However, it does not display on sample app. Can you give me the request with parameters? Did you check the Ad Group? func parseAdToCampaign(ad *buzzad_v1.Ad, allocReq *dto.AllocV1Request) *dto.CampaignV1 { if (ad.Type == "cpi") || (allocReq.SdkVersion < 1050 && (ad.Type == "cpc" || ad.Type == "cpm")) || //액션형 광고는 1050부터만 나가도록 (allocReq.SdkVersion < 1080 && ad.AdnetworkId == 54) { //cheetah adnetwork sdk version targetting : up to 1080 return nil } …. }

Slide 8

Slide 8 text

Layered Architecture

Slide 9

Slide 9 text

Layered Architecture Overview 4 Components

Slide 10

Slide 10 text

Layered Architecture The layers of isolation Generally don’t impact or affect components in other layers

Slide 11

Slide 11 text

Layered Architecture Open Layers

Slide 12

Slide 12 text

Layered Architecture Example

Slide 13

Slide 13 text

Overall agility Ease of deployment Testability Performance Scalability Ease of development Pattern Analysis 13

Slide 14

Slide 14 text

Event-Driven Architecture

Slide 15

Slide 15 text

Event-Driven Architecture Overview

Slide 16

Slide 16 text

Distributed asynchronous architecture Event-Driven Architecture Highly scalable

Slide 17

Slide 17 text

Overall agility Ease of deployment Testability Performance Scalability Ease of development Pattern Analysis 17

Slide 18

Slide 18 text

Microkernel Architecture

Slide 19

Slide 19 text

Microkernel Architecture Overview

Slide 20

Slide 20 text

Plug-ins standalone & independent Microkernel Architecture Product-based application Registry Core system 은 Plug-in 을 어디서 그리고 어떻게 구할수 있는지 알아야 함

Slide 21

Slide 21 text

Microkernel Architecture Example

Slide 22

Slide 22 text

Overall agility Ease of deployment Testability Performance Scalability Ease of development Pattern Analysis 22

Slide 23

Slide 23 text

Microservices Architecture

Slide 24

Slide 24 text

Microservices Architecture Overview

Slide 25

Slide 25 text

Single purposed application Microservices Architecture Layered architecture + Service-oriented architecture

Slide 26

Slide 26 text

Overall agility Ease of deployment Testability Performance Scalability Ease of development Pattern Analysis 26

Slide 27

Slide 27 text

Domain-driven Design

Slide 28

Slide 28 text

DDD Example

Slide 29

Slide 29 text

How to build a DDD & Clean-arch project? 29