Download presentation
Presentation is loading. Please wait.
Published byMerilyn Parker Modified over 9 years ago
1
Bare-knuckle web development Agile Prague Johannes Brodwall, Chief scientist Exilesoft Global
2
Philosophy Demonstration Ruminations
3
Part I:
4
The bare-knuckle philosophy
5
Fear => Pair Hubris => Speed (and fun)
6
High impact with low ceremony
7
Framework light Test-driven No calculators
8
Light on framework
9
Frameworks solve 80% of the job…
10
… and makes the rest 10 times as hard
11
“Why did Hibernate suddenly slow down?”
12
“How do I make JBoss behave the way I want?”
13
“How do I implement a custom SOAP header with JAX-WS?”
14
“Why did my dependencies not inject?”
15
“How do I do anything with Spring”
16
Test-driven
17
Fast feedback cycle
18
“I can see how TDD works for toy examples…”
19
“… but how can we use it when we have all these really complicated technologies???”
20
(Hint: “all these complicated technologies” I think I see your problem right here... )
21
Don’t use a calculator…
22
Part II:
23
Demo: Phonebook web app
24
Part III:
25
The real world
26
Build your app this way?
27
Probably not
28
Well, why not?
29
I am most likely insane
30
Understand what’s going on
31
«Don’t reinvent the wheel»
33
Are you using technology to solve your problems?
34
Or so that you don’t have to face your problems?
35
... yet.
36
Overheated brain
37
95 % test coverage
38
5-10 seconds
39
95 % test coverage 5-10 seconds < 1 day to create «framework»
40
SOAP: 1.Construct XML 2.POST on HttpURLConnection
41
@Override public 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(); }
42
No friction
43
Thinking in tests
44
1.
45
Guiding test/ Web tests/ Acceptance test/ Usage Flow test
46
2.
47
Get the infrastructure to work => separate out responsibility
48
3.
49
Fine grained tests for internal logic
50
Shallow, then deep
51
(without changing tests)
52
Conclusion:
53
YAGNI
54
No calculator until…
55
Don’t use a framework you couldn’t have written yourself
56
Thank you jbr@exilesoft.com http://johannesbrodwall.com http://exilesoft.com/exilee http://twitter.com/jhannes
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.