صفحه 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?

Dive Into Java A Roadmap to Effective Java Programming When do you KNOW a language? • • • • When you When you When you When you years? • When you know the syntax? can write software with it? know where’s the manual? use the language for N can consult others? NO • • • • When you When you When you When you years? • When you know the syntax? can write software with it? know where’s the manual? use the language for N can consult others? 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 AND • When you know when, how and why you should use tooling and third party extensions (A good IDE, Build / Dependency Мanagement, Frameworks, Libraries) • When you know and use it’s main concepts and methodologies in practice (For Java its Object Oriented Programming and Design Patterns) Java • Learning Java is learning… 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 Object Oriented Programming • http://en.wikipedia.org/wiki/Object_oriented • A-Must Book: “Design Patterns: Elements of Reusable Object-Oriented Software” by “Gang of Four” (Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides) • 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. More Common Mistakes • import org.apache.xml.*; • Ignoring Java Code Conventions: http://java.sun.com/docs/codeconv/ • No comments or //-- useless /* comments */ instead of JavaDoc: http://java.sun.com/j2se/javadoc/writi ngdoccomments/ • Pasting code from Google search results • Copy/Paste. Design Patterns • Why do we need Design Patterns? • Dependency Injection • Patterns of Enterprise Application Architecture • Enterprise Integration Patterns • Read Books! Tooling • • • • • vim? JDeveloper? NetBeans? Eclipse? IntelliJ IDEA? Tooling • vim? – it’s a Swiss Army Knife, but you need serious heavy artillery for Java. • JDeveloper? • NetBeans? • Eclipse? • IntelliJ IDEA? Tooling • vim? – it’s a Swiss Army Knife, but you need serious heavy artillery for Java. • JDeveloper? – It’s what Oracle wants you to use. And Oracle should keep it’s hands away from Java. • NetBeans? • Eclipse? • IntelliJ IDEA? Tooling • vim? – it’s a Swiss Army Knife, but you need serious heavy artillery for Java. • JDeveloper? – It’s what Oracle wants you to use. And Oracle should keep it’s hands away from Java. • NetBeans – OK. Has improved a lot, but... • Eclipse? • IntelliJ IDEA? Tooling • vim? – it’s a Swiss Army Knife, but you need serious heavy artillery for Java. • JDeveloper? – It’s what Oracle wants you to use. And Oracle should keep it’s hands away from Java. • NetBeans – OK. Has improved a lot, but... • Eclipse – Open Source, fast*, plugable • IntelliJ IDEA? Tooling • vim? – it’s a Swiss Army Knife, but you need serious heavy artillery for Java. • JDeveloper? – It’s what Oracle wants you to use. 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 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 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 Don’t Get Rusty • Subscribe to RSS feeds! – – – – – • Read Books! – – – – – – • http://www.dzone.com/links/tag/java.html http://www.theserverside.com http://www.infoq.com http://www.javaworld.com The Internet is full of more resources 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 Where to start? • • • • • • Download the latest Eclipse (www.eclipse.org), hit F1 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/headfirst-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 Questions?

51,000 تومان