Successfully reported this slideshow.

Impression from Geecon 2014

0

Share

Upcoming SlideShare
Test Driven Development
Test Driven Development
Loading in …3
×
1 of 61
1 of 61

Impression from Geecon 2014

0

Share

Description

Impressions from Geecon 2014

Transcript

  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

Description

Impressions from Geecon 2014

Transcript

  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

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

×