10 things i'd tell my younger self about java web development
DESCRIPTION
Video: https://www.youtube.com/watch?v=tBDrcbTDtIw Imagine you could go back in time. What advice would you give your younger self about how to do Java Web Development in a simpler and more effective way? What did you learn? What would you do differently? What would you like to forget? In this talk we will go back in time and give my younger self some advice on building a crazy web stack that I’d find shocking back then. A plethora of web frameworks, DI containers, template engines, build/deployment tools, dependency managers, web servers and testing strategies. Modern developers have more choice than ever before. I’ll share my thinking process and explain how my decision making has changed over time. With a little help from behavioural scientists, psychologists, hot dog eating contestants and my programming mentors we’ll learn how to think like a freak.TRANSCRIPT
![Page 1: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/1.jpg)
10 things I’d tell my younger self about
(Java) Web Development
younger
![Page 2: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/2.jpg)
Confidential :)
![Page 3: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/3.jpg)
![Page 4: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/4.jpg)
![Page 5: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/5.jpg)
![Page 6: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/6.jpg)
Struts 1, Struts 2 or Spring MVC?
![Page 7: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/7.jpg)
Struts 1, Struts 2 or Spring MVC?
learning curve, available materials
![Page 8: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/8.jpg)
![Page 9: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/9.jpg)
![Page 10: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/10.jpg)
![Page 11: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/11.jpg)
![Page 12: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/12.jpg)
Paradox of choice
![Page 13: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/13.jpg)
“...increased choice may actually contribute to the recent epidemic of clinical
depression affecting much of the Western world.”
![Page 14: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/14.jpg)
![Page 15: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/15.jpg)
1) Web Framework litmus test
http://cdn8.triplepundit.com/wp-content/uploads/2010/08/litmus-test.jpg
![Page 16: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/16.jpg)
Does it hide HTTP?
![Page 17: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/17.jpg)
Does it hide HTTP?
Ignore
Yes
![Page 18: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/18.jpg)
Does it hide HTTP?
Maybe useful Ignore
NoYes
![Page 19: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/19.jpg)
Be of the Web, not just on the Web
![Page 20: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/20.jpg)
request.toString()
![Page 21: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/21.jpg)
org.apache.catalina.core.ApplicationHttpRequest@10e37618
![Page 22: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/22.jpg)
![Page 23: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/23.jpg)
Learn HTML, CSS, JS
![Page 24: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/24.jpg)
2) Concurrency model
![Page 25: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/25.jpg)
thread per request
![Page 26: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/26.jpg)
non-blocking event loop
![Page 27: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/27.jpg)
![Page 28: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/28.jpg)
Click Callback
Touch Callback
Ajax Callback
![Page 29: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/29.jpg)
Click Callback
Touch Callback
Ajax Callback
Mouse Click Event
![Page 30: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/30.jpg)
Click Callback
Touch Callback
Ajax Callback
Data from server
![Page 31: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/31.jpg)
Click Callback
Touch Callback
Ajax Callback
Data from serverData from serverData from server
![Page 32: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/32.jpg)
Everything except your code is executing in parallel
http://kunkle.org/nodejs-explained-pres/#/title
![Page 33: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/33.jpg)
which one?
![Page 34: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/34.jpg)
lots of I/O operations
![Page 35: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/35.jpg)
CPU heavy
![Page 36: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/36.jpg)
3) Dependency Injection
back to the roots
![Page 37: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/37.jpg)
new project
![Page 38: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/38.jpg)
DI/IoC container is optional
![Page 39: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/39.jpg)
DI/IoC container is optional
![Page 40: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/40.jpg)
![Page 41: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/41.jpg)
“...if you use IoC containers, your code becomes, frankly, a lot harder to read”
![Page 42: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/42.jpg)
when to use containers?
![Page 43: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/43.jpg)
when to use containers?
massive codebase
![Page 44: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/44.jpg)
when to use containers?
massive codebase injection points to a library
![Page 45: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/45.jpg)
how I found my favorite container?
![Page 46: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/46.jpg)
kobi story
https://c2.staticflickr.com/4/3004/2706713453_4420661f8e_b.jpg
![Page 47: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/47.jpg)
epiphany
![Page 48: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/48.jpg)
http://assets.nydailynews.com/polopoly_fs/1.1106772!/img/httpImage/image.jpg_gen/derivatives/landscape_635/image.jpg
wiring scope
![Page 49: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/49.jpg)
![Page 50: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/50.jpg)
![Page 51: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/51.jpg)
![Page 52: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/52.jpg)
![Page 53: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/53.jpg)
![Page 54: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/54.jpg)
request scope?application scope?
![Page 55: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/55.jpg)
![Page 56: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/56.jpg)
![Page 57: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/57.jpg)
![Page 58: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/58.jpg)
![Page 59: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/59.jpg)
simplicity vs features
![Page 60: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/60.jpg)
![Page 61: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/61.jpg)
![Page 62: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/62.jpg)
XML
![Page 63: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/63.jpg)
annotations
![Page 64: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/64.jpg)
David and Goliath
![Page 65: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/65.jpg)
4) Web Servers
the powerful and the strong are
not always what they seem
![Page 66: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/66.jpg)
![Page 67: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/67.jpg)
Embedded web servers
![Page 68: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/68.jpg)
dev-prod parity
![Page 69: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/69.jpg)
startup times in ms
JDK HttpServer
simple framework
embedded jetty
![Page 70: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/70.jpg)
no free lunch
![Page 71: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/71.jpg)
no free lunchadmin
consolesmore
memory automation
![Page 72: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/72.jpg)
5) Template engines - less is more
![Page 73: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/73.jpg)
logic/view separation
![Page 74: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/74.jpg)
more features?
![Page 75: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/75.jpg)
shape the path
![Page 76: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/76.jpg)
logic-less templates
![Page 77: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/77.jpg)
candidates
![Page 78: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/78.jpg)
testable
![Page 79: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/79.jpg)
6) logging
the disciplined pursuit of less
![Page 80: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/80.jpg)
http://12factor.net/
![Page 81: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/81.jpg)
Treat logs like event streams
![Page 82: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/82.jpg)
stdout and stderr
![Page 83: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/83.jpg)
myapp >> /var/log/myapp.log
![Page 84: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/84.jpg)
logrotate
![Page 85: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/85.jpg)
myapp | logger
![Page 86: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/86.jpg)
myapp | tee /var/log/myapp.log | logger
![Page 87: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/87.jpg)
Unix Philosophy
http://www.faqs.org/docs/artu/ch01s06.html
![Page 88: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/88.jpg)
“Expect the output of every program to become the input to another, as yet unknown, program.”
![Page 89: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/89.jpg)
7) Pragmatic Web Testing
![Page 90: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/90.jpg)
![Page 91: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/91.jpg)
![Page 92: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/92.jpg)
![Page 93: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/93.jpg)
![Page 94: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/94.jpg)
![Page 95: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/95.jpg)
![Page 96: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/96.jpg)
![Page 97: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/97.jpg)
![Page 98: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/98.jpg)
![Page 99: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/99.jpg)
![Page 100: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/100.jpg)
![Page 101: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/101.jpg)
8) Dependencies
be careful who you invite to the party
![Page 102: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/102.jpg)
classpath party
![Page 103: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/103.jpg)
classpath party
JAR JAR
JAR JAR
JAR
JAR JAR
JAR
![Page 104: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/104.jpg)
classpath party
JAR JAR
JAR JAR
JAR
JAR JAR
JAR
JAR JAR
JAR JAR
JAR
JAR
JAR
JARJAR
JAR
![Page 105: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/105.jpg)
classpath party
JAR JAR
JAR JAR
JAR
JAR JAR
JAR
JAR JAR
JAR JAR
JAR
JAR
JAR
JARJAR
JAR
JAR JAR
JAR JAR
JAR
JAR
JAR JAR JAR
![Page 106: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/106.jpg)
classpath party
JAR JAR
JAR JAR
JAR
JAR JAR
JAR
JAR JAR
JAR JAR
JAR
JAR
JAR
JARJAR
JAR
JAR JAR
JAR JAR
JAR
JAR
JAR JAR
JAR
![Page 107: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/107.jpg)
![Page 108: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/108.jpg)
![Page 109: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/109.jpg)
no transitive dependencies?
![Page 110: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/110.jpg)
bring the pain forward
![Page 111: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/111.jpg)
“When people don’t pay the true cost of something, they tend to consume it inefficiently”
S.Levitt, S.Dubner
![Page 112: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/112.jpg)
What’s under the hood?
![Page 113: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/113.jpg)
![Page 114: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/114.jpg)
what are your values and principles?
![Page 115: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/115.jpg)
what are your values and principles?
simplicity over
familiarity
![Page 116: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/116.jpg)
what are your values and principles?
quick feedback over
features
simplicity over
familiarity
![Page 117: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/117.jpg)
what are your values and principles?
quick feedback over
features
explicit code over
annotations/xml
simplicity over
familiarity
![Page 118: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/118.jpg)
what are your values and principles?
quick feedback over
features
explicit code over
annotations/xml
single purpose over
full stack
simplicity over
familiarity
![Page 119: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/119.jpg)
what are your values and principles?
quick feedback over
features
explicit code over
annotations/xml
single purpose over
full stack
go with the Web, not against it
simplicity over
familiarity
![Page 120: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/120.jpg)
we’re all biased
![Page 121: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/121.jpg)
it’s ok to start with familiar
![Page 122: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/122.jpg)
9) steal like an artist
![Page 123: 10 things I'd tell my younger self about Java Web Development](https://reader034.vdocuments.net/reader034/viewer/2022052622/559599001a28ab4a368b4786/html5/thumbnails/123.jpg)
10) Think like a freak