Dive Into Java A Roadmap to Effective Java Programming.

Slides:



Advertisements
Similar presentations
Transition from C to C++ …and a Review of Basic Problem Solving.
Advertisements

Internetteknologi (ITNET1) Extra Presentation Java IDE Tool Support.
SE2811 Week 7, Class 2 The Gang of Four and more … Lab Thursday: Quiz SE-2811 Slide design: Dr. Mark L. Hornick Content: Dr. Hornick Errors: Dr. Yoder.
Alan Kay (1940- ) Pioneer of Object Oriented programming Wrote the first OO language, Smalltalk Developed the prototypes for network workstations in 1970.
Design Patterns Yes, they are important Robert Cotton April 23, 2009.
IS6112 Application Modelling and Design Introduction.
Intro to CIT 594
Fundamentals of Software Development 1Slide 1 Gang of Four The beginnings… The original “patterns” idea was from architecture – there are repeatable patterns.
Design Patterns Daniel McClain. Background What are they?  Way of recording solutions to recurring design problems History  “A Pattern Language: Towns,
CS 225 Section 1 Spring Topics Software design Correctness and Efficiency Inheritance Data structures –Lists, Stacks, Queues –Trees –Sets, Maps.
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
OOHDM Hypermedia Research Work Designing Web-based applications with Object Oriented Hypermedia Design Method OOHDM.
Review David Rabinowitz. March 3rd, 2004 Object Oriented Design Course 2 Review What have we done during the course? Which topics we have not discussed?
WHY STUDY SYSTEMS & ACCOUNTING ? It is fun It is a different set of skills that augments accounting MSU is the leader in accounting systems – why not study.
1 Foundations of Software Design Fall 2002 Marti Hearst Guest Lecture: Good Programming Practices Marat Boshernitsan Computer Science Division, EECS University.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Eclipse IDE. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as teaching.
Intro to CIT 594
Starting Chapter 4 Starting. 1 Course Outline* Covered in first half until Dr. Li takes over. JAVA and OO: Review what is Object Oriented Programming.
Design Patterns Trends and Case Study John Hurst June 2005.
Fall CIS 764 Database Systems Engineering L3: Two Assignments Relating to J2EE.
Processes, Tools, & Best Practices. My Background Lexmark Software Development for 15 years (‘93 – ‘08) – Multi-tier Java application servers – Window.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.
Traditional Web Based Application Structure Frameworks define how the application is designed, organised and deployed across various tiers.
EECE 310 Software Engineering Lecture 0: Course Orientation.
CDM Developer Workshop. TDWG Andreas Kohlbecker Taxonomic Workflow in the EDIT Platform for Cybertaxonomy Purpose What do you want from this workshop?
Advanced topics in software engineering CSC532 Term Paper Design Patterns Harpreet Singh Submitted By:-
Sadegh Aliakbary Sharif University of Technology Fall 2012.
T-unit: Tcl Unit Test Package Automated Unit Test Package For Tcl Procedures Final Presentation Joseph Boyle Loyola Marymount University.
DaveAndAl.net Do Application Design Patterns Make Sense in ASP.NET? Alex Homer You may like to write these down now...
Java, Web Applications, and OSS Experience Prakash Malani Copyright © 2003.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
BTS430 Systems Analysis and Design using UML Design Patterns.
Sept Ron McFadyen1 UML & Design Patterns Course outlineoutline /3 Advanced Systems Design.
INTRODUCTION TO JAVA AND ANDROID. Slide 2 Our Ecosystem Java Eclipse Android SDK.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Introduce to Java. Outline History of Java History of Java Something about Java Something about Java Brief introduction to Java programming Brief introduction.
JEE Development. Rob Dawson Lead Developer blog: BSc UQ +MIT QUT over 10 years.
Introduction to the Java Stack Michael Youngstrom.
Introduction ● Course title: – Advanced programming using Java – Object oriented programming in Java ● Textbooks – Thinking in Java 3 rd edition, electronic.
University of Sunderland CSE301 Advanced Object-Oriented Software DevelopmentUnit 1 Test-Driven Development CSE301 University of Sunderland Dr. Giles Oatley.
Introduction Mehdi Einali Advanced Programming in Java 1.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Design Patterns in Context ©SoftMoore ConsultingSlide 1.
All the dSoftArk Tools Getting started!. Tools dSoftArk is a semi-realistic, agile, development project –Industrial strength software (programming, TDD,
Winter 2016CMPE212 - Prof. McLeod1 CMPE212 Object Oriented Programming for Engineers Course Web Site: Lecture.
Essential Programming Skills CSE 340 – Principles of Programming Languages Spring 2016 Adam Doupé Arizona State University
Game Programming Patterns From the book by Robert Nystrom
INTRODUCTION TO JAVA AND ANDROID. Slide 2 Our Ecosystem Java Eclipse Android SDK.
INFO 344 Web Tools And Development CK Wang University of Washington Spring 2014.
Programming Objectives What is a programming language? Difference between source code and machine code What is python? – Where to get it from – How to.
Object Oriented Methodology Course Introduction. Objectives A 3-credit hour graduate course explaining the development of object oriented software systems.
Eclipse.NET An Integration Platform for ProjectIT-Studio João Saraiva IST & INESC-ID (GSI)
Copyright © 2010 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture. ODS Tools – Fannie Mae.
MPCS – Advanced java Programming
Design Patterns Introduction
Brian Leonard ブライアン レオナルド
A Complete Software Development Process Using Open Source Software
Refactoring II 21-Sep-18.
Introduction to Programming 2
EECE 310 Software Engineering
Refactoring II 5-Feb-19.
What to Expect from Design Patterns
Introduction to Design Patterns
Developing and testing enterprise Java applications
.Net for Test and Measurement
Software Engineering and Architecture
Presentation transcript:

Dive Into Java A Roadmap to Effective Java Programming

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?

NO 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?

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)

Learning Java is learning… Java

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 A-Must Book: “Design Patterns: Elements of Reusable Object-Oriented Software” by “Gang of Four” (Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides)Erich GammaRichard HelmRalph JohnsonJohn 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: No comments or //-- useless /* comments */ instead of JavaDoc: omments/ omments/ 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 ( Full Stack. Lightweight J2EE. – Hibernate ( Database Persistence. There’s more – For almost anything… Avoid – Oracle Frameworks (like ADF) – Closed Source

Don’t Get Rusty Subscribe to RSS feeds! – – – – – 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

Where to start? Download the latest Eclipse ( hit F1 and go through Java Development tutorial. Download Maven 2 (maven.apache.org), Install Maven Integration in Eclipse ( read the manuals, play around.maven.apache.orghttp://code.google.com/p/q4e/wiki/Installation Read “Head First Java” ( 2nd-edition-excellent-book-from-o-reilly.kf) 2nd-edition-excellent-book-from-o-reilly.kf Read “Head First Design Patterns” ( Try Spring Framework (add the dependency with Maven. Find the dependency at Read Spring documentation (especially parts about Dependency Injection) at Subscribe to RSS feeds mentioned earlier and follow what the community is up to

Questions?