Bare-knuckle web development
description
Transcript of Bare-knuckle web development
![Page 1: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/1.jpg)
Bare-knuckle web development
NDC 2013Johannes Brodwall, Chief scientist
Exilesoft Global
![Page 2: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/2.jpg)
• Bare-knuckle philosophy• Demonstration of bare-
knuckle web in .NET• Conclusions
![Page 3: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/3.jpg)
Part I:
![Page 4: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/4.jpg)
The bare-knuckle philosophy
![Page 5: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/5.jpg)
• Fear => Pair• Hubris => Speed (and fun)
![Page 6: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/6.jpg)
High impact with low ceremony
![Page 7: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/7.jpg)
• Framework light• Test-driven
• No calculators
![Page 8: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/8.jpg)
Light on framework
![Page 9: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/9.jpg)
Frameworks solve 80% of the job…
![Page 10: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/10.jpg)
… and makes the rest 10 times as hard
![Page 11: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/11.jpg)
“Why did NHibernate suddenly slow down?”
![Page 12: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/12.jpg)
“How do I make IIS behave the way I want?”
![Page 13: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/13.jpg)
“Why is my routing misbehaving?”
![Page 14: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/14.jpg)
“Why is my routing misbehaving?”
(what is routing, anyway)
![Page 15: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/15.jpg)
Test-driven
![Page 16: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/16.jpg)
Fast feedback cycle
![Page 17: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/17.jpg)
“I can see how TDD works for toy examples…”
![Page 18: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/18.jpg)
“… but how can we use it when we have all these
really complicated technologies???”
![Page 19: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/19.jpg)
(Hint:“all these complicated technologies”
I think I see your problem right here...)
![Page 20: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/20.jpg)
Don’t use a calculator…
![Page 21: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/21.jpg)
Part II:
![Page 22: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/22.jpg)
Demo: Phonebook web app
![Page 23: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/23.jpg)
.NET
![Page 24: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/24.jpg)
Part III:
![Page 25: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/25.jpg)
What the heck am I getting at?
![Page 26: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/26.jpg)
Build your app this way?
![Page 27: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/27.jpg)
Probably not
![Page 28: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/28.jpg)
I am most likely insane
![Page 29: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/29.jpg)
(And we’re all going to cloud, anyway)
![Page 30: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/30.jpg)
Understand what’s going on
![Page 31: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/31.jpg)
Are you using technology to solve
your problems?
![Page 32: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/32.jpg)
Or so that you don’t have to face your
problems?
![Page 33: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/33.jpg)
... yet.
![Page 34: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/34.jpg)
Thinking in tests
![Page 35: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/35.jpg)
1.
![Page 36: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/36.jpg)
Guiding test/Web tests/
Acceptance test/Usage Flow test
![Page 37: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/37.jpg)
2.
![Page 38: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/38.jpg)
Get the infrastructure to work =>
separate out responsibility
![Page 39: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/39.jpg)
3.
![Page 40: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/40.jpg)
Fine grained tests for internal logic
![Page 41: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/41.jpg)
Shallow, then deep
![Page 42: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/42.jpg)
Shallow, then deep(without changing
tests)
![Page 43: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/43.jpg)
Conclusion:
![Page 44: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/44.jpg)
YAGNI
![Page 45: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/45.jpg)
No calculator until…
![Page 46: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/46.jpg)
Don’t use a framework you couldn’t have
written yourself
![Page 47: Bare-knuckle web development](https://reader036.fdocuments.in/reader036/viewer/2022062315/56816077550346895dcfa1ee/html5/thumbnails/47.jpg)
Thank [email protected]
http://johannesbrodwall.comhttp://exilesoft.com/exilee
http://twitter.com/jhannes