The document contains summaries from several presentations at the Geecon 2014 conference. Key topics discussed include the 7 duties of great software professionals, how to get kids started with programming in Java, mutation analysis as an alternative to code coverage, advantages of SQL over NoSQL databases, microservices architecture, and strategies for handling errors and preventing memory leaks in applications. Several Java libraries and tools are also mentioned like JUnit, Mockito, Pitest, Lombok, and SLF4J.
20. 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
21. Go language
Functional programing languge
Has interfaces but do not have objects
Made for cloud
Has its own compiler for many platforms
24. 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
25. 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
● …
26. There are few java libraries...
● Javalanche
● Jumble
● Jester
Some are abandoned, outdated, slow or do not support framework...
27. Then there's pitest aka PIT
● Actively developed
● Acceptable performance
● Open Source
● Supports Java 8, Gradle, JUnit, *Mock* etc.
28. 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
30. 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»
38. 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
53. 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
58. Exceptions are the solution to a problem we
shouldn’t have - distance between detection and
resolution
59. 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
60. Reaction to an Error
● Fail fast
● Carry On - record
● Ignore - record