look ma, no frameworks - jbcnconf 2015

22
Look ma, No Frameworks Pablo Chacin

Upload: pablo-chacin

Post on 04-Aug-2015

165 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Look ma, No Frameworks - JBcnConf 2015

Look ma, No FrameworksPablo Chacin

Page 2: Look ma, No Frameworks - JBcnConf 2015

Motivation

So, you are a Java developer? What frameworks do you use?

I don’t use any framework

Page 3: Look ma, No Frameworks - JBcnConf 2015

What’s wrong with frameworks?

This is not (only) a rant against frameworks, but an analysis of the consequences of using them and a proposal for alternatives.

Page 4: Look ma, No Frameworks - JBcnConf 2015

Frameworkitis

“Is the disease that a framework wants to do too much for you or it does it in a way that you don't want but you can't change it”

Erich Gamma

Page 5: Look ma, No Frameworks - JBcnConf 2015

“We might have been able to use Ruby on Rails. But It also adds a bunch of requirements for stuff you then have to write so everything will work nicely withyour framework”

Node at LinkedIn: The Pursuit of Thinner, Lighter, Faster

Unneeded Stuff

Page 6: Look ma, No Frameworks - JBcnConf 2015

Easy Yet Complex

“Many complicating constructs are easy to use. However, what matters is the complexity they yield. And such complexity is incidental to the problem”Rich Hickey, author of Clojure

Page 7: Look ma, No Frameworks - JBcnConf 2015

Power Requires Discipline

“And because you stand on the shoulders of giants, you can accomplish something quickly. You don’t even know exactly what you have done.”

Dr. Ian Malcolm

Page 8: Look ma, No Frameworks - JBcnConf 2015

Restriction in Choices

“Why did I leave .NET? In short, it constrained our ability to choose and turned our focus towards safety instead of helping us experience all of the possibilities out there”

Jonathan Oliver, Why I left .Net

Page 9: Look ma, No Frameworks - JBcnConf 2015

Design as Learning

“While we all need to write code that others can use and maintain, I hope part of that process involves trying to increase our collective knowledge”James Coglan

Page 10: Look ma, No Frameworks - JBcnConf 2015

“How do you teach magic to junior developers?”

Greg Young, 8 lines of code

The Problems with Magic

Page 11: Look ma, No Frameworks - JBcnConf 2015

Why Agile Development won’t help

“Software gets about 10x bigger each decade. So while our attention has been focused on fixing process problems, our software got an order of magnitude bigger. In my opinion, it's time to turn our attention back to design.”

George Fairbanks, Just Enough Software Architecture

Page 12: Look ma, No Frameworks - JBcnConf 2015

Hints for a Solution

Create a vision

Follow a risk driven design process

Document relevant elements in a meaningful way

Page 13: Look ma, No Frameworks - JBcnConf 2015

Define your Style

Provide a vocabulary to describe your system and reason about its properties.

Page 14: Look ma, No Frameworks - JBcnConf 2015

Unix’s Pipe Style

Write programs that do one thing well and work together by handling text streams as a universal interface.

Page 15: Look ma, No Frameworks - JBcnConf 2015

The problem with styles

Msg. Passing EventsPipes Micro Services(a.k.a SOA)

OOP

Page 16: Look ma, No Frameworks - JBcnConf 2015

Document Relevant Structure

Page 17: Look ma, No Frameworks - JBcnConf 2015

Follow a Risk-Driven Process

Identify risks due to project, team, or technology factors

Architect until main risks are covered

Page 18: Look ma, No Frameworks - JBcnConf 2015

Risk storming

Technical risk (failures, data inconsistency, incompatibilities, ...)

Stakeholder’s concerns (cost, time, performance,...)

Page 19: Look ma, No Frameworks - JBcnConf 2015

Architecturally-Evident Code

Close the model-code gap by adopting an architecturally- evident coding style, embedding in codehints about design intent

Page 20: Look ma, No Frameworks - JBcnConf 2015

Conclusions

“Life is pain. Anyone saying differently is selling something”

Iñigo Montoya

Page 21: Look ma, No Frameworks - JBcnConf 2015

Questions? … Thanks!

Page 22: Look ma, No Frameworks - JBcnConf 2015

Acknowledgements

1. Keep calm.., source: http://www.keepcalm-o-matic.co.uk/2. Iñigo Montoya, source http://velvetgeek.com/ 3. Architecture Documentation, Code naming example,

source http://www.codingthearchitecture.com/4. Risk Storming, source http://www.doyoubuzz.

com/michael-keeling/cv/blog5. Node at LinkedIn: The Pursuit of Thinner, Lighter, Faster,

source http://queue.acm.org/detail.cfm?id=2567673