Top Banner
Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes
49

Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Apr 01, 2015

Download

Documents

Randy Dutch
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Bare-knuckle web development

DevDay.LKJohannes Brodwall, Chief scientist

Exilesoft Global

@jhannes

Page 2: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

It can be fun and productive to use the basic

tools

Page 3: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

• Philosophy• Demonstration

• Ruminations

Page 4: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Part I:

Page 5: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Why

Page 6: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

• Learn new technologies

OR• Learn new things about your

technology

Page 7: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

High impact with low ceremony

Page 8: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

• Framework light• Test-driven

• No calculators

Page 9: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Light on framework

Page 10: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

How much time do you spend

• In debugger?• Waiting for build?

• On Stackoverflow?

Page 11: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Frameworks solve 80% of the job…

Page 12: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

… and makes the rest 10 times as hard

Page 13: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Test-driven

Page 14: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Fast feedback cycle

Page 15: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

“I can see how TDD works for toy examples…”

Page 16: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

“… but how can we use it when we have all these

really complicated technologies???”

Page 17: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

(Hint:“all these complicated technologies”

I think I see your problem right here...)

Page 18: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

“Don’t use a calculator…”

Page 19: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Part II:

Page 20: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Demo: Phonebook web app

Page 21: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

What can you learn?

Page 22: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

• Test for web applications• Specifying requirements with tests• The difference between

realistic slow tests (aka “integration”)and limited fast tests (aka “unit”)

• Dependencies in your tests• What does the web server do?• Refactoring shortcuts• Growing design• Alternatives to HTML templates (maybe)

Page 23: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Part III:

Page 24: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Ruminations

Page 25: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Those are my principles, and if you

don't like them... well, I have others.

- Groucho Marx

Page 26: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Build your app this way?

Page 27: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Probably not

Page 28: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Well, why not?

Page 29: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

I am most likely insane

Page 30: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Or...

Page 31: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

The reasonable man adapts himself to the world:

the unreasonable one persists in trying to adapt the world to himself.

Therefore all progress depends on the unreasonable man.

- George Bernard Shaw

Page 32: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Understand what’s going on

Page 33: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

«Don’t reinvent the wheel»

Page 34: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.
Page 35: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Are you using technology to solve

your problems?

Page 36: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Or so that you don’t have to face your

problems?

Page 37: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

... yet.

Page 38: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Overheated brain

Page 39: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

95 % test coverage

Page 40: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

95 % test coverage

5-10 seconds

Page 41: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

95 % test coverage

5-10 seconds

< 1 day to create «framework»

Page 42: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

SOAP:1. Construct XML

2. POST on HttpURLConnection

Page 43: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

@Overridepublic String getCountryByIp(String ipAddress) { Document soapRequest = soapElement("S:Envelope", $("S:Body", wsxElement("wsx:GetGeoIP", $("wsx:IPAddress", ipAddress)))); Document soapResponse endpoint.postRequest(getSOAPAction(), soapRequest); return $(soapResponse).xpath("/Envelope/Body/*") .xpath("GetGeoIPResult/CountryName").text();}

Page 44: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

No friction

Page 45: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Conclusion:

Page 46: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

No calculator until…

Page 47: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Don’t just learn new technologies

.

Page 48: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Don’t just learn new technologies

=> Learn new approaches, techniques and features about the

technology you use

Page 49: Bare-knuckle web development DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global @jhannes.

Thank [email protected]

http://johannesbrodwall.com

http://exilesoft.com/exilee

@jhannes

Believe nothing on the faith of traditions.Do not believe a thing because many people speak of it. 

Do not believe on the faith of the sages of the past. Do not believe what you yourself have imagined.

After examination, believe what you yourself have tested and found to be reasonable

- Buddha