Impressions from
Geecon 2014
Vytautas Dagilis ir Adomas Greičius
More informtion you can find in
http://2014.geecon.org/schedule.html
The 7 Duties of Great Software
Professionals
Jurgen Appelo
Motivate yourself
Direct yourself
Educate yourself
Measure Yourself
Connect yourself
Brand Yourself
Improve yourself
How to get your kids started with Java
programming?
Arun Gupta
Scratch http://scratch.mit.edu/projects/23705523/
ALICE htt...
Go language
Functional programing languge
Has interfaces but do not have objects
Made for cloud
Has its own compiler for m...
Mutation Analysis
or What Code Coverage Doesn't Test
Gleb Smirnov
Does code coverage shows
something?
Mutation Analysis judges the judges
1. Run the tests
2. Change the sources
3. Run the tests again
If a change is not makin...
Some Mutation samples
● Negated conditional
● Mutated return of Object value
● Removed Assignment to member variable
● Con...
There are few java libraries...
● Javalanche
● Jumble
● Jester
Some are abandoned, outdated, slow or do not support framew...
Then there's pitest aka PIT
● Actively developed
● Acceptable performance
● Open Source
● Supports Java 8, Gradle, JUnit, ...
Everything You Were TaughtAbout Java Is Wrong
Tim Boudreau
Java bean is designed for UI
Application Servers are a Historic...
Lukas Eder
Get Back in Control of Your SQL
NoSQLfor Big Data?
Lukas Eder
Get Back in Control of Your SQL
●
You’re giving up on ACID
●
You’re giving up on type safety...
jOOQ
Lukas Eder
Get Back in Control of Your SQL
Jasmine Automated Tests for
JavaScript
Hazem Saleh
Arun Gupta
50 new features of Java EE 7 in 50 mins
http://s3-eu-west-1.amazonaws.com/presentations2
014/70_presentation.pdf
Test-Driven Development: That's not
what we meant
Steve Freeman
Advices
● Write readable code
● Test Interfaces, not internals
● Test protocols, not Interfaces
● From simple to general (...
“It’s about explaining the domain, not
about proving the correctness of the
code.”
© Andrew Parker
Why does TDD work?
● Focused
● Concrete
● Empirical
Seven Ineffective Coding Habits of Many Java Programmers -
Kevlin Henney
Noisy Code
Comments
Lego Naming
Unencapsulated St...
Tom Bujok
33 things you want to do better
Lombok
Guava
Lambdaj
SLF4J
Spock
UNITILS
JUNITParams
AwaitTility
ByteMan
Groovy
...
The Practical Implications Of
Microservices
Sam Newman
Where to standartise?
● Interfaces
● Monitoring
● Deployment
Fabric lib for deployment
(Python)
Nikita Salnikov-Tarnovski
I bet you have a memory leak
●
The most common leak in web applications
●
After application unde...
Beyond Error Handling
Michael Feathers
Passing Nulls
Error handling mechanisms
● Error return codes
● Error monads
● Exceptions
Exceptions are the solution to a problem we
shouldn’t have - distance between detection and
resolution
Remarks
Tell, don’t ask principle
Replace Type code with subclasses
Noticeable Error Handling is a Symptom of Bad Design
C...
Reaction to an Error
● Fail fast
● Carry On - record
● Ignore - record
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Impression from Geecon 2014
Upcoming SlideShare
Loading in …5
×

Impression from Geecon 2014

477 views

Published on

Impressions from Geecon 2014

Published in: Software, Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
477
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Impression from Geecon 2014

  1. 1. Impressions from Geecon 2014 Vytautas Dagilis ir Adomas Greičius
  2. 2. More informtion you can find in http://2014.geecon.org/schedule.html
  3. 3. The 7 Duties of Great Software Professionals Jurgen Appelo
  4. 4. Motivate yourself
  5. 5. Direct yourself
  6. 6. Educate yourself
  7. 7. Measure Yourself
  8. 8. Connect yourself
  9. 9. Brand Yourself
  10. 10. Improve yourself
  11. 11. How to get your kids started with Java programming? Arun Gupta Scratch http://scratch.mit.edu/projects/23705523/ ALICE http://www.alice.org GreenFood BludeJ http://www.bluej.org/ Lego Mindstorms
  12. 12. Go language Functional programing languge Has interfaces but do not have objects Made for cloud Has its own compiler for many platforms
  13. 13. Mutation Analysis or What Code Coverage Doesn't Test Gleb Smirnov
  14. 14. Does code coverage shows something?
  15. 15. Mutation Analysis judges the judges 1. Run the tests 2. Change the sources 3. Run the tests again If a change is not making any test fail, the line is not covered
  16. 16. Some Mutation samples ● Negated conditional ● Mutated return of Object value ● Removed Assignment to member variable ● Conditionals boundary: < changes to <= ● Math: change operators (e.g. + to -) ● Remove void method call ● …
  17. 17. There are few java libraries... ● Javalanche ● Jumble ● Jester Some are abandoned, outdated, slow or do not support framework...
  18. 18. Then there's pitest aka PIT ● Actively developed ● Acceptable performance ● Open Source ● Supports Java 8, Gradle, JUnit, *Mock* etc.
  19. 19. Everything You Were TaughtAbout Java Is Wrong Tim Boudreau Java bean is designed for UI Application Servers are a Historical Relic Threads for I/O? Really? java.util.not-so-concurrent
  20. 20. Lukas Eder Get Back in Control of Your SQL
  21. 21. NoSQLfor Big Data? Lukas Eder Get Back in Control of Your SQL ● You’re giving up on ACID ● You’re giving up on type safety ● You’re giving up on standards ● You’re giving up on tooling ● You’re giving up on relational algebra ● You haven’t asked operations ● You don’t actually have «Big Data»
  22. 22. jOOQ Lukas Eder Get Back in Control of Your SQL
  23. 23. Jasmine Automated Tests for JavaScript Hazem Saleh
  24. 24. Arun Gupta 50 new features of Java EE 7 in 50 mins http://s3-eu-west-1.amazonaws.com/presentations2 014/70_presentation.pdf
  25. 25. Test-Driven Development: That's not what we meant Steve Freeman
  26. 26. Advices ● Write readable code ● Test Interfaces, not internals ● Test protocols, not Interfaces ● From simple to general (do not overgeneralize from the start) ● Test at the right level
  27. 27. “It’s about explaining the domain, not about proving the correctness of the code.” © Andrew Parker
  28. 28. Why does TDD work? ● Focused ● Concrete ● Empirical
  29. 29. Seven Ineffective Coding Habits of Many Java Programmers - Kevlin Henney Noisy Code Comments Lego Naming Unencapsulated State Getters and Setters Uncohesive Tests Underabstraction
  30. 30. Tom Bujok 33 things you want to do better Lombok Guava Lambdaj SLF4J Spock UNITILS JUNITParams AwaitTility ByteMan Groovy Gradle
  31. 31. The Practical Implications Of Microservices Sam Newman
  32. 32. Where to standartise? ● Interfaces ● Monitoring ● Deployment
  33. 33. Fabric lib for deployment (Python)
  34. 34. Nikita Salnikov-Tarnovski I bet you have a memory leak ● The most common leak in web applications ● After application undeploy classes are not longer needed ● If even 1 class is left behind, he keeps all his friends ● After some redeploys, you crash Classloader leak https://www.youtube.com/watch?v=iHTg5QQg2NE
  35. 35. Beyond Error Handling Michael Feathers
  36. 36. Passing Nulls
  37. 37. Error handling mechanisms ● Error return codes ● Error monads ● Exceptions
  38. 38. Exceptions are the solution to a problem we shouldn’t have - distance between detection and resolution
  39. 39. Remarks Tell, don’t ask principle Replace Type code with subclasses Noticeable Error Handling is a Symptom of Bad Design Consider ALL the cases to make design better
  40. 40. Reaction to an Error ● Fail fast ● Carry On - record ● Ignore - record

×