open lesson how we built guide me right - open campus tiscali

41
www.guidemeright.com

Upload: riccardo-sirigu

Post on 12-Apr-2017

93 views

Category:

Software


1 download

TRANSCRIPT

Recipe● Guide Me Right?● Building Guide Me Right

○ Technologies■ Language ■ Framework■ Architecture

● What we learned○ Clean code○ Refactoring○ Testing

How it works

Technologies

How to choose a language

● A language you know very well● A language you like● Libraries!● With tools that help you make less mistakes

Scala is..

● SCALAble● Object Oriented● Functional● Expressive!● Interoperability with Java● Type Inference● Concurrency & Distribution

Frameworks

(Mozilla Guy)

https://github.com/brianhigh/data-workshop/blob/master/Web_Enabled_Data.md

Lots of frameworks...

How to choose a framework

● Documentation● Popularity● Community support● Actively maintained● Secure● As productive as possible

● Secure - Lift apps are resistant to common vulnerabilities including many of the OWASP Top 10

● Developer centric - Lift apps are fast to build, concise and easy to maintain

● Designer friendly - Lift apps can be developed in a totally designer friendly way

● Scalable - Lift apps are high performance and scale in the real world to handle insane traffic levels

● Modular - Lift apps can benefit from, easy to integrate, pre built modules

● Interactive like a desktop app - Lift's Comet support is unparalleled and Lift's ajax support is super-easy and very secure

Architecture

Monolithic Microservices

Monolithic Architecture Pattern

https://medium.com/aws-activate-startup-blog/using-containers-to-build-a-microservices-architecture-6e1b8bacb7d1#.3ma20ougu

Microservices Architecture Pattern

https://medium.com/aws-activate-startup-blog/using-containers-to-build-a-microservices-architecture-6e1b8bacb7d1#.3ma20ougu

Start with a monolithic architecture, then evolve

Recap

What we learned

● Clean the Code RIGHT NOW○ Later = Never

● Leave the campground cleaner than you found it● Single Responsibility Principle

Refactoring

Restructuring existing computer code – changing the factoring – without changing its external behavior.

[Wikipedia]

Testing

Testing

● How could i break it? Hack your code● Test after refactoring

○ ScalaTest/Selenium

Testing can only prove the presence of bugs, not their absence. [Edsger W. Dijkstra]