1 of 44

code.scale()

2 of 44

Dapeng

hardcore developer

technology lover

dapeng.liu@helioslab.com

3 of 44

Why?

The missing factor in scalability design

4 of 44

Our codes

5 of 44

Enterprise Architecture 101

6 of 44

Enterprise Architecture 101

7 of 44

Enterprise Architecture 101

8 of 44

Enterprise Architecture 101

9 of 44

Enterprise Architecture 101

10 of 44

Enterprise Architecture 101

11 of 44

Enterprise Architecture 101

12 of 44

Enterprise Architecture 101

What are the problems?

13 of 44

The ultimate software

available

fault tolerant

precise

customizable

14 of 44

Quest for scalability

3.2 billion

7 billion

8.74 million

99.9%

15 of 44

Evolution

Experiment

Elimination

16 of 44

Class

17 of 44

Package/Folder

18 of 44

Project

Small

Independent

19 of 44

System

Minimize communication

Monitoring

20 of 44

Developer - Deliberate Practise

PractisePractise

Good News x 2

Bad News

21 of 44

Developer - Explore

Library

Language

Concept

22 of 44

Developer - Think

23 of 44

Team - Conway’s Law

Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations - M. Conway

24 of 44

Organization

Culture

Risk mitigation

Grow team

25 of 44

Reforming

Small reversible step

26 of 44

Reforming

Multiple versions

27 of 44

Resist the itch

Duplicate vs Reuse

28 of 44

Reuse - the dark side

coupling

over engineering

hard to get right

29 of 44

See the future?

30 of 44

public APIs, like diamonds, are forever

when in doubt, leave it out

31 of 44

Duplication - the good part

32 of 44

9317 x 7825 = ?

72,905,525

33 of 44

1000 x 2000 = ?

34 of 44

35 of 44

36 of 44

37 of 44

38 of 44

Duplication - the good part

recognize the pattern

39 of 44

Resist the itch

Rewrite vs Refactoring

40 of 44

Designed to sacrifice

41 of 44

Designed to Change

The Architecture of Uncertainty

Kevlin Henney

42 of 44

Recap

“Enterprisy Architecture”

Evolution techniques

Duplicate vs Reuse

Rewrite vs Refactor

43 of 44

Happy Coding

44 of 44

ref

http://en.wikipedia.org/wiki/Extinction

http://en.wikipedia.org/wiki/Charles_Darwin

http://news.discovery.com/earth/plants/874-million-species-on-earth-110823.htm

http://www.infoq.com/presentations/architecture-uncertainty-nordevcon-2014

http://en.wikipedia.org/wiki/Conway's_law

http://youtu.be/aAb7hSCtvGw

http://martinfowler.com/bliki/SacrificialArchitecture.html

http://code.flickr.net/2014/10/20/introducing-flickr-park-or-bird/

http://imgur.com/ONjXYnx

http://xkcd.com/1425/