unlearning java

48
Unlearning Java One time ‘best practices’ to avoid; to remain ‘Professional’ Naresha K, @naresha_k

Upload: naresha-k

Post on 19-Jan-2017

774 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Unlearning Java

Unlearning JavaOne time ‘best practices’ to avoid; to remain ‘Professional’

Naresha K,@naresha_k

Page 2: Unlearning Java

Why Unlearn?

Page 3: Unlearning Java

Myth of ‘Best Practices’

Technically Perfect

Completely Useless

Page 4: Unlearning Java

The costly mistake !

Time

Domain

Page 5: Unlearning Java

#1: Follow the Evolution

Page 6: Unlearning Java

#1 - illustration

Page 7: Unlearning Java

#1 - illustration

Page 8: Unlearning Java

#1 - illustration

Page 9: Unlearning Java

#1 - illustration

Page 10: Unlearning Java

#1 - illustration

Page 11: Unlearning Java

More Examples� isEmpty

� @Override (annotations)

Page 12: Unlearning Java

#2: Make ‘em readable

Page 13: Unlearning Java

#2 - illustration

Prefer Generics

Page 14: Unlearning Java

#2:� Generics◦ Method signature shows the types◦ Less documentation

� Enum◦ Allowed values are clearly shown

Page 15: Unlearning Java

#3: Understand the internals

Page 16: Unlearning Java

#3: Understand the internalsUse generics right

Page 17: Unlearning Java

#4: Prefer concise code

Page 18: Unlearning Java

#4 - illustration

Page 19: Unlearning Java

#4 - illustration

Page 20: Unlearning Java

#4 – Truth revealed

Page 21: Unlearning Java

#4 – illustration – the truth

Page 22: Unlearning Java

#5: Be precise

Page 23: Unlearning Java

#5: Be precise

Reduce Maps

Use Strong Types

Page 24: Unlearning Java
Page 25: Unlearning Java

#6: Don't over optimize

Page 26: Unlearning Java

#6: Don't over optimize

Page 27: Unlearning Java

#6: Don't over optimize

Page 28: Unlearning Java

#6: Don't over optimize

Page 29: Unlearning Java

#7: More the loan term, ...interest

Page 30: Unlearning Java

#7: More the loan term, ...interest

Essential Complexity

Accidental Complexity

Software Complexity

Page 31: Unlearning Java

#7: More the loan term, ...interest

Technical Debt

•Letting the accidental complexity to grow

Page 32: Unlearning Java

#7: More the loan term, ...interest

Refactor Small

Refactor Often

Page 33: Unlearning Java

#8: Don’t carry dead bodies

Page 34: Unlearning Java

#8: Don’t carry dead bodies

Hungarian Notation

Page 35: Unlearning Java

#8: Don’t carry dead bodies

Page 36: Unlearning Java

#9: The billion dollar mistake

Page 37: Unlearning Java

#9: The billion dollar mistake

Avoid excessive null checks

Page 38: Unlearning Java

#10: Put your data structures knowledge into practice

Page 39: Unlearning Java

#10: Put your data structures knowledge into practice

Page 40: Unlearning Java

#10: Put your data structures knowledge into practice

� Dropdown options◦ Average expense on First Day of the month◦ Average expense on Last Day of the month◦ Percentage of expense on First 3 Days◦ Percentage of expense on Last 4 Days◦ Total expenses on First 5 days in each month◦ Month with max expense

Page 41: Unlearning Java

#10: Put your data structures knowledge into practice

ExpenseDayMonth

Map

Map<Date,DailyExpense>

DailyExpense1

DailyExpense2

Map<Date,DailyExpense> DailyExpense3

Page 42: Unlearning Java

#11: Develop Abstractions

Page 43: Unlearning Java

#11: Develop Abstractions

Page 44: Unlearning Java

#11: Develop Abstractions

Page 45: Unlearning Java

#12: Don't write novels in plain JS, write poems in Dojo

Page 46: Unlearning Java

#13: Automate - analysis, not fix

Page 47: Unlearning Java

#13: Automate - analysis, not fix

someCodeValueId.equals(someCodeValue)

someString!= null || !someString.equals(“”)

someLong != null || someLong.equals(“”)

Page 48: Unlearning Java