jdd2014: 10 things i'd tell my younger self about (java) web development - mateusz kwaśniewski
DESCRIPTION
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: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/1.jpg)
10 things I’d tell my younger self about
(Java) Web Development
younger
![Page 2: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/2.jpg)
Confidential :)
![Page 3: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/3.jpg)
![Page 4: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/4.jpg)
![Page 5: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/5.jpg)
![Page 6: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/6.jpg)
Struts 1, Struts 2 or Spring MVC?
![Page 7: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/7.jpg)
Struts 1, Struts 2 or Spring MVC?
learning curve, available materials
![Page 8: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/8.jpg)
![Page 9: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/9.jpg)
![Page 10: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/10.jpg)
![Page 11: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/11.jpg)
![Page 12: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/12.jpg)
Paradox of choice
![Page 13: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/13.jpg)
“...increased choice may actually contribute to the recent epidemic of clinical
depression affecting much of the Western world.”
![Page 14: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/14.jpg)
![Page 15: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/15.jpg)
1) Web Framework litmus test
http://cdn8.triplepundit.com/wp-content/uploads/2010/08/litmus-test.jpg
![Page 16: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/16.jpg)
Does it hide HTTP?
![Page 17: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/17.jpg)
Does it hide HTTP?
Ignore
Yes
![Page 18: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/18.jpg)
Does it hide HTTP?
Maybe useful Ignore
NoYes
![Page 19: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/19.jpg)
Be of the Web, not just on the Web
![Page 20: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/20.jpg)
request.toString()
![Page 21: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/21.jpg)
org.apache.catalina.core.ApplicationHttpRequest@10e37618
![Page 22: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/22.jpg)
![Page 23: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/23.jpg)
Learn HTML, CSS, JS
![Page 24: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/24.jpg)
2) Concurrency model
![Page 25: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/25.jpg)
thread per request
![Page 26: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/26.jpg)
non-blocking event loop
![Page 27: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/27.jpg)
![Page 28: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/28.jpg)
Click Callback
Touch Callback
Ajax Callback
![Page 29: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/29.jpg)
Click Callback
Touch Callback
Ajax Callback
Mouse Click Event
![Page 30: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/30.jpg)
Click Callback
Touch Callback
Ajax Callback
Data from server
![Page 31: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/31.jpg)
Click Callback
Touch Callback
Ajax Callback
Data from serverData from serverData from server
![Page 32: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/32.jpg)
Everything except your code is executing in parallel
http://kunkle.org/nodejs-explained-pres/#/title
![Page 33: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/33.jpg)
which one?
![Page 34: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/34.jpg)
lots of I/O operations
![Page 35: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/35.jpg)
CPU heavy
![Page 36: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/36.jpg)
3) Dependency Injection
back to the roots
![Page 37: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/37.jpg)
new project
![Page 38: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/38.jpg)
DI/IoC container is optional
![Page 39: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/39.jpg)
DI/IoC container is optional
![Page 40: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/40.jpg)
![Page 41: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/41.jpg)
“...if you use IoC containers, your code becomes, frankly, a lot harder to read”
![Page 42: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/42.jpg)
when to use containers?
![Page 43: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/43.jpg)
when to use containers?
massive codebase
![Page 44: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/44.jpg)
when to use containers?
massive codebase injection points to a library
![Page 45: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/45.jpg)
how I found my favorite container?
![Page 46: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/46.jpg)
kobi story
https://c2.staticflickr.com/4/3004/2706713453_4420661f8e_b.jpg
![Page 47: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/47.jpg)
epiphany
![Page 48: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/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: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/49.jpg)
![Page 50: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/50.jpg)
![Page 51: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/51.jpg)
![Page 52: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/52.jpg)
![Page 53: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/53.jpg)
![Page 54: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/54.jpg)
request scope?application scope?
![Page 55: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/55.jpg)
![Page 56: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/56.jpg)
![Page 57: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/57.jpg)
![Page 58: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/58.jpg)
![Page 59: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/59.jpg)
simplicity vs features
![Page 60: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/60.jpg)
![Page 61: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/61.jpg)
![Page 62: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/62.jpg)
XML
![Page 63: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/63.jpg)
annotations
![Page 64: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/64.jpg)
David and Goliath
![Page 65: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/65.jpg)
4) Web Servers
the powerful and the strong are
not always what they seem
![Page 66: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/66.jpg)
![Page 67: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/67.jpg)
Embedded web servers
![Page 68: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/68.jpg)
dev-prod parity
![Page 69: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/69.jpg)
startup times in ms
JDK HttpServer
simple framework
embedded jetty
![Page 70: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/70.jpg)
no free lunch
![Page 71: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/71.jpg)
no free lunchadmin
consolesmore
memory automation
![Page 72: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/72.jpg)
5) Template engines - less is more
![Page 73: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/73.jpg)
logic/view separation
![Page 74: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/74.jpg)
more features?
![Page 75: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/75.jpg)
shape the path
![Page 76: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/76.jpg)
logic-less templates
![Page 77: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/77.jpg)
candidates
![Page 78: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/78.jpg)
testable
![Page 79: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/79.jpg)
6) logging
the disciplined pursuit of less
![Page 80: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/80.jpg)
http://12factor.net/
![Page 81: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/81.jpg)
Treat logs like event streams
![Page 82: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/82.jpg)
stdout and stderr
![Page 83: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/83.jpg)
myapp >> /var/log/myapp.log
![Page 84: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/84.jpg)
logrotate
![Page 85: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/85.jpg)
myapp | logger
![Page 86: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/86.jpg)
myapp | tee /var/log/myapp.log | logger
![Page 87: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/87.jpg)
Unix Philosophy
http://www.faqs.org/docs/artu/ch01s06.html
![Page 88: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/88.jpg)
“Expect the output of every program to become the input to another, as yet unknown, program.”
![Page 89: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/89.jpg)
7) Pragmatic Web Testing
![Page 90: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/90.jpg)
![Page 91: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/91.jpg)
![Page 92: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/92.jpg)
![Page 93: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/93.jpg)
![Page 94: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/94.jpg)
![Page 95: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/95.jpg)
![Page 96: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/96.jpg)
![Page 97: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/97.jpg)
![Page 98: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/98.jpg)
![Page 99: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/99.jpg)
![Page 100: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/100.jpg)
![Page 101: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/101.jpg)
8) Dependencies
be careful who you invite to the party
![Page 102: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/102.jpg)
classpath party
![Page 103: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/103.jpg)
classpath party
JAR JAR
JAR JAR
JAR
JAR JAR
JAR
![Page 104: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/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: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/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: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/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: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/107.jpg)
![Page 108: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/108.jpg)
![Page 109: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/109.jpg)
no transitive dependencies?
![Page 110: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/110.jpg)
bring the pain forward
![Page 111: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/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: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/112.jpg)
What’s under the hood?
![Page 113: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/113.jpg)
![Page 114: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/114.jpg)
what are your values and principles?
![Page 115: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/115.jpg)
what are your values and principles?
simplicity over
familiarity
![Page 116: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/116.jpg)
what are your values and principles?
quick feedback over
features
simplicity over
familiarity
![Page 117: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/117.jpg)
what are your values and principles?
quick feedback over
features
explicit code over
annotations/xml
simplicity over
familiarity
![Page 118: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/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: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/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: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/120.jpg)
we’re all biased
![Page 121: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/121.jpg)
it’s ok to start with familiar
![Page 122: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/122.jpg)
9) steal like an artist
![Page 123: JDD2014: 10 things I'd tell my younger self about (JAVA) web development - Mateusz Kwaśniewski](https://reader033.vdocument.in/reader033/viewer/2022052907/55933aa81a28ab012d8b4693/html5/thumbnails/123.jpg)
10) Think like a freak