DevDay.lk - Bare Knuckle Web Development
-
Upload
johannes-brodwall -
Category
Technology
-
view
1.037 -
download
1
description
Transcript of DevDay.lk - Bare Knuckle Web Development
![Page 1: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/1.jpg)
Bare-knuckle web development
DevDay.LKJohannes Brodwall, Chief scientist
Exilesoft Global
@jhannes
![Page 2: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/2.jpg)
It can be fun and productive to use the basic
tools
![Page 3: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/3.jpg)
• Philosophy• Demonstration
• Ruminations
![Page 4: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/4.jpg)
Part I:
![Page 5: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/5.jpg)
Why
![Page 6: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/6.jpg)
• Learn new technologies
OR• Learn new things about your
technology
![Page 7: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/7.jpg)
High impact with low ceremony
![Page 8: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/8.jpg)
• Framework light• Test-driven
• No calculators
![Page 9: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/9.jpg)
Light on framework
![Page 10: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/10.jpg)
How much time do you spend
• In debugger?• Waiting for build?
• On Stackoverflow?
![Page 11: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/11.jpg)
Frameworks solve 80% of the job…
![Page 12: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/12.jpg)
… and makes the rest 10 times as hard
![Page 13: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/13.jpg)
Test-driven
![Page 14: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/14.jpg)
Fast feedback cycle
![Page 15: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/15.jpg)
“I can see how TDD works for toy examples…”
![Page 16: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/16.jpg)
“… but how can we use it when we have all these
really complicated technologies???”
![Page 17: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/17.jpg)
(Hint:“all these complicated technologies”
I think I see your problem right here...)
![Page 18: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/18.jpg)
“Don’t use a calculator…”
![Page 19: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/19.jpg)
Part II:
![Page 20: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/20.jpg)
Demo: Phonebook web app
![Page 21: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/21.jpg)
What can you learn?
![Page 22: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/22.jpg)
• 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: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/23.jpg)
Part III:
![Page 24: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/24.jpg)
Ruminations
![Page 25: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/25.jpg)
Those are my principles, and if you
don't like them... well, I have others.
- Groucho Marx
![Page 26: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/26.jpg)
Build your app this way?
![Page 27: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/27.jpg)
Probably not
![Page 28: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/28.jpg)
Well, why not?
![Page 29: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/29.jpg)
I am most likely insane
![Page 30: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/30.jpg)
Or...
![Page 31: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/31.jpg)
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: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/32.jpg)
Understand what’s going on
![Page 33: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/33.jpg)
«Don’t reinvent the wheel»
![Page 34: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/34.jpg)
![Page 35: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/35.jpg)
Are you using technology to solve
your problems?
![Page 36: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/36.jpg)
Or so that you don’t have to face your
problems?
![Page 37: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/37.jpg)
... yet.
![Page 38: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/38.jpg)
Overheated brain
![Page 39: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/39.jpg)
95 % test coverage
![Page 40: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/40.jpg)
95 % test coverage
5-10 seconds
![Page 41: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/41.jpg)
95 % test coverage
5-10 seconds
< 1 day to create «framework»
![Page 42: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/42.jpg)
SOAP:1. Construct XML
2. POST on HttpURLConnection
![Page 43: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/43.jpg)
@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: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/44.jpg)
No friction
![Page 45: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/45.jpg)
Conclusion:
![Page 46: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/46.jpg)
No calculator until…
![Page 47: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/47.jpg)
Don’t just learn new technologies
.
![Page 48: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/48.jpg)
Don’t just learn new technologies
=> Learn new approaches, techniques and features about the
technology you use
![Page 49: DevDay.lk - Bare Knuckle Web Development](https://reader035.fdocuments.net/reader035/viewer/2022062512/553b7bbc4a7959f87e8b46d4/html5/thumbnails/49.jpg)
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