ujug 2013 architecture roundup with lucid software

16
UJUG Architecture Roundup Derrick Isaacson, Director of Engineering

Upload: derrick-isaacson

Post on 20-May-2015

199 views

Category:

Technology


0 download

DESCRIPTION

Lucid Software's lessons learned about architecture at the Utah Java User Group. 15 minute presentation by Derrick Isaacson, Director of Engineering, on sharding, session state, typed JavaScript, and ORMs.

TRANSCRIPT

Page 1: UJUG 2013 Architecture Roundup with Lucid Software

UJUG Architecture Roundup

Derrick Isaacson, Director of Engineering

Page 2: UJUG 2013 Architecture Roundup with Lucid Software

Architectural History

Page 3: UJUG 2013 Architecture Roundup with Lucid Software

Paid

Free

TIE

North

Am

erica

Euro

peAsi

a

Oce

ania

Sout

h Am

erica

Africa

Unkno

wn

0

3000

60009000

Hours in editor by region

Page 4: UJUG 2013 Architecture Roundup with Lucid Software
Page 5: UJUG 2013 Architecture Roundup with Lucid Software
Page 6: UJUG 2013 Architecture Roundup with Lucid Software

Client State

Page 7: UJUG 2013 Architecture Roundup with Lucid Software

HMACpublic static String calculateRFC2104HMAC(String

data, String key)

{

SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), “HmacSHA1”);

Mac mac = Mac.getInstance(“HmacSHA1”);

mac.init(signingKey);

byte[] rawHmac = mac.doFinal(data.getBytes());

return Encoding.EncodeBase64(rawHmac);

}

Page 8: UJUG 2013 Architecture Roundup with Lucid Software

Stateless

Page 9: UJUG 2013 Architecture Roundup with Lucid Software
Page 10: UJUG 2013 Architecture Roundup with Lucid Software

Don’t DDOS Yourself

• Use RESTful principles for correct status codes (5xx vs 4xx) so clients know when to rety.• Use correct headers:• Retry-After: 120

Page 11: UJUG 2013 Architecture Roundup with Lucid Software

Actors

Page 12: UJUG 2013 Architecture Roundup with Lucid Software

Typed (JavaScript) Code Pays Off

• Static type checking• Unused value detection• Dead code removal• Syntax validation• Style warnings• JS pitfalls detection

Page 13: UJUG 2013 Architecture Roundup with Lucid Software

Beware ORMs

Anorm

What does a framework really need?• Paremeterized queries• Simpler API than JDBC• Control over your queries

is Not an Object Relational Mapper

Page 14: UJUG 2013 Architecture Roundup with Lucid Software

Beware of Coddling Frameworks

Page 15: UJUG 2013 Architecture Roundup with Lucid Software
Page 16: UJUG 2013 Architecture Roundup with Lucid Software

Q & A

http://www.lucidchart.com/jobs