bare-knuckle web development

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

Upload: kyrene

Post on 14-Feb-2016

26 views

Category:

Documents


0 download

DESCRIPTION

Bare-knuckle web development. DevDay.LK Johannes Brodwall, Chief scientist Exilesoft Global. @ jhannes. It can be fun and productive to use the basic tools. Philosophy Demonstration Ruminations. Part I:. Why. Learn new technologies OR Learn new things about your technology. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Bare-knuckle web development

Bare-knuckle web development

DevDay.LKJohannes Brodwall, Chief scientist

Exilesoft Global

@jhannes

Page 2: Bare-knuckle web development

It can be fun and productive to use the basic

tools

Page 3: Bare-knuckle web development

• Philosophy• Demonstration

• Ruminations

Page 4: Bare-knuckle web development

Part I:

Page 5: Bare-knuckle web development

Why

Page 6: Bare-knuckle web development

• Learn new technologiesOR

• Learn new things about your technology

Page 7: Bare-knuckle web development

High impact with low ceremony

Page 8: Bare-knuckle web development

• Framework light• Test-driven

• No calculators

Page 9: Bare-knuckle web development

Light on framework

Page 10: Bare-knuckle web development

How much time do you spend

• In debugger?• Waiting for build?

• On Stackoverflow?

Page 11: Bare-knuckle web development

Frameworks solve 80% of the job…

Page 12: Bare-knuckle web development

… and makes the rest 10 times as hard

Page 13: Bare-knuckle web development

Test-driven

Page 14: Bare-knuckle web development

Fast feedback cycle

Page 15: Bare-knuckle web development

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

Page 16: Bare-knuckle web development

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

really complicated technologies???”

Page 17: Bare-knuckle web development

(Hint:“all these complicated technologies”

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

Page 18: Bare-knuckle web development

“Don’t use a calculator…”

Page 19: Bare-knuckle web development

Part II:

Page 20: Bare-knuckle web development

Demo: Phonebook web app

Page 21: Bare-knuckle web development

What can you learn?

Page 22: Bare-knuckle web development

• 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

Part III:

Page 24: Bare-knuckle web development

Ruminations

Page 25: Bare-knuckle web development

Those are my principles, and if you

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

- Groucho Marx

Page 26: Bare-knuckle web development

Build your app this way?

Page 27: Bare-knuckle web development

Probably not

Page 28: Bare-knuckle web development

Well, why not?

Page 29: Bare-knuckle web development

I am most likely insane

Page 30: Bare-knuckle web development

Or...

Page 31: Bare-knuckle web development

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

Understand what’s going on

Page 33: Bare-knuckle web development

«Don’t reinvent the wheel»

Page 34: Bare-knuckle web development
Page 35: Bare-knuckle web development

Are you using technology to solve

your problems?

Page 36: Bare-knuckle web development

Or so that you don’t have to face your

problems?

Page 37: Bare-knuckle web development

... yet.

Page 38: Bare-knuckle web development

Overheated brain

Page 39: Bare-knuckle web development

95 % test coverage

Page 40: Bare-knuckle web development

95 % test coverage5-10 seconds

Page 41: Bare-knuckle web development

95 % test coverage5-10 seconds

< 1 day to create «framework»

Page 42: Bare-knuckle web development

SOAP:1. Construct XML

2. POST on HttpURLConnection

Page 43: Bare-knuckle web development

@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

No friction

Page 45: Bare-knuckle web development

Conclusion:

Page 46: Bare-knuckle web development

No calculator until…

Page 47: Bare-knuckle web development

Don’t just learn new technologies

.

Page 48: Bare-knuckle web development

Don’t just learn new technologies

=> Learn new approaches, techniques and features about

the technology you use

Page 49: Bare-knuckle web development

Thank [email protected]

http://johannesbrodwall.comhttp://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