صفحه 1:
Dive Into Java
A Roadmap to Effective Java
Programming و
صفحه 2:
When do you KNOW a
language?
When you know the syntax?
When you can write software with it?
When you know where’s the manual?
When you use the language for N
years?
When you can consult others?
صفحه 3:
NO
en you know the syntax?
* When re with it?
When you kno: ere’s the manual?
se the lang for N
When you can consult others?
صفحه 4:
You KNOW a language
when...
When you know the difference in
syntax between versions
When you can write maintainable
software with it efficiently
When you know how to use the manual
When you use the language actively for
N years and keep up with it’s evolution
When you can consult others on
advanced topics
صفحه 5:
AND
When you know when, how and why
you should use tooling and third party
extensions (A good IDE, Build /
Dependency Management,
Frameworks, Libraries)
When you know and use it’s main
concepts and methodologies in
practice (For Java its Object Oriented
Programming and Design Patterns)
صفحه 6:
Java
* Learning Java is learning...”
Where a development
General Progamming
“Tory, algerthrs
aoe
Framewors, 36 party
irae:
20%
Tooling ib, ulers)
10%
صفحه 7:
We'll look a bit more at
* OOP Principles / Design Patterns
— Fundamentals
— Difference from Procedural Programming
(PL/SQL)
— Java Specific stuff you MUST know
* Tooling
— What to use and what to avoid
— IDE
— Building / Dependency Management
* Frameworks
— Spring
— Hibernate
صفحه 8:
Object Oriented
Programming
* http://en.wikipedia.org/wiki/Object_oriented
+ A-Must Book: “Design Patterns: Elements of
Reusable Object-Oriented Software” by “Gang
Of FOUF” (rich Gamma, Richard Helm, Ralph johnson, John M. Vilssides)
+ Common mistakes PL/SQL programmers make
— Thinking that PL/SQL skills are enough to code Java
— Doing everything with IF/ELSE, WHILE, FOR,
SWITCH.
— Long methods. 30 lines is a long method. 300 is
Sparta... And Sparta failed.
— Creating Superobjects and Monolithic Entities.
صفحه 9:
More Common Mistakes
* import org a
* Ignoring Java Code Conventions:
http://java.sun.com/docs/codeconv/
٠ No comments or //-- useless /*
comments */ instead of JavaDoc:
http://iava.sun.com/j2se/javadoc/writi
ngdoccomments/
۰ Pasting code from Google search
results
* Copy/Paste.
صفحه 10:
Design Patterns
Why do we need Design Patterns?
Dependency Injection
Patterns of Enterprise Application
Architecture
Enterprise Integration Patterns
Read Books!
صفحه 11:
Tooling
vim?
JDeveloper?
NetBeans?
Eclipse?
IntelliJ IDEA?
صفحه 12:
Tooling
ent - it’s a Swiss Army Knife, but
you need serious heavy artillery for
Java.
JDeveloper?
NetBeans?
Eclipse?
IntelliJ IDEA?
صفحه 13:
Tooling
* #بزیر - it’s a Swiss Army Knife, but you
need serious heavy artillery for Java.
۰ رو( - It’s what Oracle wants
u to use. And Oracle should keep
it’s hands away from Java.
+ NetBeans?
* Eclipse?
* IntelliJ IDEA?
صفحه 14:
Tooling
* view? - it’s a Swiss Army Knife, but you
need serious heavy artillery for Java.
* Deysler6r? - It’s what Oracle wants you
teefise. And Oracle should keep it’s
hands away from Java.
» NetBeans - OK. Has improved a lot,
but...
* Eclipse?
+ IntelliJ IDEA?
صفحه 15:
Tooling
* view? - it’s a Swiss Army Knife, but you
need serious heavy artillery for Java.
* Deysler6r? - It’s what Oracle wants you
teefise. And Oracle should keep it’s
hands away from Java.
» NetBeans - OK. Has improved a lot,
but...
* Eclipse - Open Source, fast*, plugable
+ IntelliJ IDEA?
صفحه 16:
Tooling
* vie? - it’s a Swiss Army Knife, but you
need serious heavy artillery for Java.
* Deysler6r? - It’s what Oracle wants you
teefise. And Oracle should keep it’s
hands away from Java.
» NetBeans - OK. Has improved a lot,
but...
* Eclipse - Open Source, fast*, plugable
* IntelliJ IDEA - shareware, but a good one
صفحه 17:
Tooling
Building
— Manual
— Apache Ant
— Maven 2
Dependency Management
— Manual
— Maven 2
Debugging
— Manual
— With IDE
Conclusion
— Automate Everything!
— Always use Maven 2
— You may want to use Ant for specific low-level tasks
صفحه 18:
Frameworks
+ What EVERY Java developer should know
— Spring Framework (www.springframework.org)
* Full Stack. Lightweight J2EE.
— Hibernate (www.hibernate.org)
* Database Persistence.
* There’s more
— For almost anything...
* Avoid
— Oracle Frameworks (like ADF)
— Closed Source
صفحه 19:
Don’t Get Rusty
٠ Subscribe to RSS feeds!
= http://www.dzone.com/links/tag/java.html
— http://www. theserverside.com
— http://www. infoa.com
— http://www.javaworld.com
The Internet is full of more resources
. Read Books!
Documentation at java.sun.com
- “Head First” series
- Martin Fowler's writings
- “Effective Java”
= “Java Concurrency in Practice”
Prefer reading NEW books (less than 3 years old), except for the true classics
© Don’ 't read misguiding stuff!
— “Learn Java in 21 days”
= “Sam's Teach Yourself Java in a week”
- “Java Tutorial” at oracle.com
— Most solutions in various forums and Google search results are bad or
outdated examples
صفحه 20:
Where to start?
Download the latest Eclipse (www. .عقمااعع, org), hit Fl and go
through Java Development tutorial.
Download Maven 2 (maven.apache.org), Install Maven
Integration in Eclipse
(http://code.google.com/p/q4e/wiki/Installation), read the
manuals, play around.
Read “Head First Java” (http://knowfree.net/2008/03/03/head-
first-java-2nd-edition-excellent-book-from-o-reilly.kf)
Read “Head First Design Patterns”
(http://www.freebookspot.com/Comments.aspx?
Element_ID=2985)
Try Spring Framework (add the dependency with Maven. Find
the dependency at www.mvnrepository.com). Read Spring
documentation (especially parts about Dependency Injection)
at www.springframework.org
Subscribe to RSS feeds mentioned earlier and follow what the
community is up to
صفحه 21:
Questions?