SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
Eclipse workshop
Jan. 2014
• Miguel Pardal
– LEIC 2000
– Lecturer at Técnico Lisboa
– PhD Student
– http://web.tecnico.ulisboa.pt/miguel.pardal

– Eclipse user since 2005
– Conditional fan 
Goal
•
•
•
•

Learn the good
Avoid the bad
Become a better developer
Enjoy life!
Outline
• Introduction
– Concepts
– Techniques

• Hands-on
History
• Eclipse started out as proprietary technology
– Object Technology International (OTI)
– IBM’s goals:
• Reduce incompatible environments
• Increase reuse of common components

• Evolved from IBM VisualAge for
Smalltalk™ and for Java™
– Monolithic

http://wiki.eclipse.org/FAQ_Where_did_Eclipse_come_from%3F
History
• The Eclipse open source project was announced in November
2001 by a group of companies that formed the initial Eclipse
Consortium
– Eclipse Foundation since 2004

• Commercial-friendly open source license
– Wider audience and ecosystem

• Eclipse was designed from the ground up as an integration
platform for development tools
–
–
–
–

Everything in Eclipse is a plug-in
Uses SWT to bind to local platform GUI
OSGi component model since 3.0
Annual Simultaneous Release (…, Indigo, Juno, Kepler, …)
Install
• Download
• Unzip
• Run
• All configurations are file-based
– workspace folder
• Settings
• Projects

– Project metadata files
• .project
• .classpath
CONCEPTS
Workbench
• Eclipse’s main window
– Menus and toolbars
– Views, editors, perspectives
View
• A view is a window that lets you examine
something
– Navigate a list or hierarchy of information
– Display properties for the active editor

• Modifications made in a view are saved
immediately.
Editor
• Editors are used to edit or browse a
resource
– Rectangular area in the Workbench window
– Visual presentation might be text or a
diagram.
– Editors are launched by clicking on a resource
in a view
– Modifications made in an editor follow an
open-save-close lifecycle model
• * indicates unsaved data
Perspective
• A perspective is a set of views, editors, and
toolbars, along with their arrangement within the
Workbench window.
• As you perform a task, you may rearrange windows,
new views, and so on.
– Saved under the current perspective.
– Next time, switch to perspective
– Within a window, each perspective may have a
different set of views but all perspectives share
the same set of editors.
• Built-in Java or Debug perspectives
Java Project
Project properties
Project properties
Auto-complete
• From the current context – project, class,
method, etc – what could complete this?
– CTRL+space
Auto-build
• Compilation is automatic in Eclipse
• Blessing
– Sting s = “Eclipse”;

• Curse
– String s = “Ecli
TECHNIQUES
Factoring
• Create the application domain
• Create class
– Members
– Methods

• Generate methods
– Getters Setters
– toString
Create
Create class
Source menu
Testing
• JUnit Class
• JUnit View
Refactoring
• Refactoring is a process of software source code
transformation
– Should be performed when the code is working and
all of its tests are passing
– Does not involve rewriting or replacing large chunks
of code.
– Gradual, evolutionary process, intended to “preserve
the knowledge embedded in the existing code.”

• Examples
– Rename
– Extract method
Refactor menu
Quick fix errors
Quick fix warnings
Implicit class
– Write code as if the class already exists
• Write code referring to non-existing classes

– Use quick-fix to generate class
But beware…
• Quick-fix can become “quick-bug”
• Example
– Try-catch and ignore
• Worst solution

– Try-catch, print and continue
• As if nothing has happened… but it did!

– Think it through:
• Handle exception (try-catch)
• Or let someone else do it (throws)
Conclusions
• Very useful tool
• Can increase productivity
– Code formatting
– Especially in refactoring

• But…
– Does NOT replace critical thought and design
– Can increase the production… of bugs!
Looking ahead…

• Questions?
– Concepts
– Techniques

Miguel.Pardal@tecnico.ulisboa.pt

Thank you

Obrigado
Shortcuts

Top 10
10. Shortcut to shortcuts
• Ctrl+Shift+L to see a full list of the
currently available key bindings
9. Open file / type
• Open file quickly without browsing:
Ctrl + Shift + R
• Open a type (class / interface):
Ctrl + Shift + T
8. Show properties
• Select project
Alt+Enter
• Select type/resource
Alt+Enter
7. Maximize editor
• Maximizes current editor
Ctrl + M
• You can also double-click editor tab
6. Editor navigation
•

Jump to beginning / end of indention. Twice to jump to beginning of line
– Home/End

•

Jump to beginning / jump to end of source
– Ctrl+Home/End

•

Jump one word to the left / one word to the right
– Ctrl+Arrow Right/Arrow Left

•

Jump to previous / jump to next method
– Ctrl+Shift+Arrow Down/Arrow Up

•

Jump to next / jump to previous compiler syntax warning or error
– Ctrl+./Ctrl+,

•

Jump to last location edited
– Ctrl+q

•

Jump to Line Number
– Ctrl+l

•

Hide/show line numbers
– Ctrl+F10 and select 'Show Line Numbers'
5. Outline view
• Quickly go to class member
Ctrl + O
4. Code formatting
• Ctrl + Shift + F for code formatting
• Ctrl + / for commenting, un commenting
lines and blocks
3. Organize imports
• Organize imports
Ctrl+Shift+O
• Go from:
– import java.util.*

• To:
– import java.util.Map;
– import java.util.Iterator;
2. Print line
• syso Ctrl+space
• syse Ctrl+space
1. Guess Exception
• throw new NPE Ctrl+space
– NullPointerException

• throw new IAE Ctrl+space
– IllegalArgumentException

Más contenido relacionado

Similar a Eclipse workshop presentation

Eclipse workshop presentation (March 2016)
Eclipse workshop presentation (March 2016)Eclipse workshop presentation (March 2016)
Eclipse workshop presentation (March 2016)Miguel Pardal
 
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Luciano Resende
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-endJordi Anguela
 
What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !Cédric Brun
 
Accelerating time to delivery modern tools for cobol development
Accelerating time to delivery modern tools for cobol developmentAccelerating time to delivery modern tools for cobol development
Accelerating time to delivery modern tools for cobol developmentMicro Focus
 
Next Step, Android Studio!
Next Step, Android Studio!Next Step, Android Studio!
Next Step, Android Studio!Édipo Souza
 
An introduction to Eclipse Mylyn
An introduction to Eclipse MylynAn introduction to Eclipse Mylyn
An introduction to Eclipse MylynJeffrey Groneberg
 
Selenium web driver_2.0_presentation
Selenium web driver_2.0_presentationSelenium web driver_2.0_presentation
Selenium web driver_2.0_presentationsayhi2sudarshan
 
Image Processing and Computer Vision in iPhone and iPad
Image Processing and Computer Vision in iPhone and iPadImage Processing and Computer Vision in iPhone and iPad
Image Processing and Computer Vision in iPhone and iPadOge Marques
 
Querix 4 gl app analyzer 2016 journey to the center of your 4gl application
Querix 4 gl app analyzer 2016 journey to the center of your 4gl applicationQuerix 4 gl app analyzer 2016 journey to the center of your 4gl application
Querix 4 gl app analyzer 2016 journey to the center of your 4gl applicationBeGooden-IT Consulting
 
DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific WorkflowsMatthew Gerring
 
Chris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing workChris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing workChris O'Brien
 
Mobile media module part 6 - app development rev-mf
Mobile media module   part 6 - app development rev-mfMobile media module   part 6 - app development rev-mf
Mobile media module part 6 - app development rev-mfMichelle Ferrier
 
Accelerating time to delivery - Modern tools for COBOL development
Accelerating time to delivery - Modern tools for COBOL developmentAccelerating time to delivery - Modern tools for COBOL development
Accelerating time to delivery - Modern tools for COBOL developmentMicro Focus
 
Programming using C++ - slides.pptx
Programming using C++ - slides.pptxProgramming using C++ - slides.pptx
Programming using C++ - slides.pptxHeadoftheDepartment
 
Ios-training-institute-in-mumbai
Ios-training-institute-in-mumbaiIos-training-institute-in-mumbai
Ios-training-institute-in-mumbaivibrantuser
 
object oriented programming examples
object oriented programming examplesobject oriented programming examples
object oriented programming examplesAbdii Rashid
 
01 introduction to cpp
01   introduction to cpp01   introduction to cpp
01 introduction to cppManzoor ALam
 
Ios-training-institute-in-mumbai
Ios-training-institute-in-mumbaiIos-training-institute-in-mumbai
Ios-training-institute-in-mumbaivibrantuser
 

Similar a Eclipse workshop presentation (20)

Eclipse workshop presentation (March 2016)
Eclipse workshop presentation (March 2016)Eclipse workshop presentation (March 2016)
Eclipse workshop presentation (March 2016)
 
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
 
What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !
 
Accelerating time to delivery modern tools for cobol development
Accelerating time to delivery modern tools for cobol developmentAccelerating time to delivery modern tools for cobol development
Accelerating time to delivery modern tools for cobol development
 
Next Step, Android Studio!
Next Step, Android Studio!Next Step, Android Studio!
Next Step, Android Studio!
 
An introduction to Eclipse Mylyn
An introduction to Eclipse MylynAn introduction to Eclipse Mylyn
An introduction to Eclipse Mylyn
 
Selenium web driver_2.0_presentation
Selenium web driver_2.0_presentationSelenium web driver_2.0_presentation
Selenium web driver_2.0_presentation
 
Image Processing and Computer Vision in iPhone and iPad
Image Processing and Computer Vision in iPhone and iPadImage Processing and Computer Vision in iPhone and iPad
Image Processing and Computer Vision in iPhone and iPad
 
The Developers World
The Developers WorldThe Developers World
The Developers World
 
Querix 4 gl app analyzer 2016 journey to the center of your 4gl application
Querix 4 gl app analyzer 2016 journey to the center of your 4gl applicationQuerix 4 gl app analyzer 2016 journey to the center of your 4gl application
Querix 4 gl app analyzer 2016 journey to the center of your 4gl application
 
DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific Workflows
 
Chris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing workChris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing work
 
Mobile media module part 6 - app development rev-mf
Mobile media module   part 6 - app development rev-mfMobile media module   part 6 - app development rev-mf
Mobile media module part 6 - app development rev-mf
 
Accelerating time to delivery - Modern tools for COBOL development
Accelerating time to delivery - Modern tools for COBOL developmentAccelerating time to delivery - Modern tools for COBOL development
Accelerating time to delivery - Modern tools for COBOL development
 
Programming using C++ - slides.pptx
Programming using C++ - slides.pptxProgramming using C++ - slides.pptx
Programming using C++ - slides.pptx
 
Ios-training-institute-in-mumbai
Ios-training-institute-in-mumbaiIos-training-institute-in-mumbai
Ios-training-institute-in-mumbai
 
object oriented programming examples
object oriented programming examplesobject oriented programming examples
object oriented programming examples
 
01 introduction to cpp
01   introduction to cpp01   introduction to cpp
01 introduction to cpp
 
Ios-training-institute-in-mumbai
Ios-training-institute-in-mumbaiIos-training-institute-in-mumbai
Ios-training-institute-in-mumbai
 

Más de Miguel Pardal

Master Beginners Workshop - Feb 2023
Master Beginners Workshop - Feb 2023Master Beginners Workshop - Feb 2023
Master Beginners Workshop - Feb 2023Miguel Pardal
 
Master Beginners Workshop - September 2019
Master Beginners Workshop - September 2019Master Beginners Workshop - September 2019
Master Beginners Workshop - September 2019Miguel Pardal
 
SafeCloud Secure Communication solutions (WP1 overview)
SafeCloud Secure Communication solutions (WP1 overview)SafeCloud Secure Communication solutions (WP1 overview)
SafeCloud Secure Communication solutions (WP1 overview)Miguel Pardal
 
Master Beginners' Workshop September 2018
Master Beginners' Workshop September 2018Master Beginners' Workshop September 2018
Master Beginners' Workshop September 2018Miguel Pardal
 
IoT Middleware for Precision Agriculture: workforce monitoring in olive fields
IoT Middleware for Precision Agriculture: workforce monitoring in olive fieldsIoT Middleware for Precision Agriculture: workforce monitoring in olive fields
IoT Middleware for Precision Agriculture: workforce monitoring in olive fieldsMiguel Pardal
 
Rastreabilidade na Internet das (muitas) Coisas
Rastreabilidade na Internet das (muitas) CoisasRastreabilidade na Internet das (muitas) Coisas
Rastreabilidade na Internet das (muitas) CoisasMiguel Pardal
 
Vulnerability-tolerant Transport Layer Security
Vulnerability-tolerant Transport Layer SecurityVulnerability-tolerant Transport Layer Security
Vulnerability-tolerant Transport Layer SecurityMiguel Pardal
 
Arranque Seguro de Redes 6LoWPAN para prevenir Ataques Vampiro na Internet da...
Arranque Seguro de Redes 6LoWPAN para prevenir Ataques Vampiro na Internet da...Arranque Seguro de Redes 6LoWPAN para prevenir Ataques Vampiro na Internet da...
Arranque Seguro de Redes 6LoWPAN para prevenir Ataques Vampiro na Internet da...Miguel Pardal
 
Precision Agriculture with Sensors and Technologies from the Internet of Things
Precision Agriculture with Sensors and Technologies from the Internet of ThingsPrecision Agriculture with Sensors and Technologies from the Internet of Things
Precision Agriculture with Sensors and Technologies from the Internet of ThingsMiguel Pardal
 
Smart Places INForum16 presentation
Smart Places INForum16 presentationSmart Places INForum16 presentation
Smart Places INForum16 presentationMiguel Pardal
 
LaTeX workshop (NEB)
LaTeX workshop (NEB)LaTeX workshop (NEB)
LaTeX workshop (NEB)Miguel Pardal
 
Thesis for beginners 2015-10
Thesis for beginners 2015-10Thesis for beginners 2015-10
Thesis for beginners 2015-10Miguel Pardal
 
LaTeX workshop (JEQ)
LaTeX workshop (JEQ)LaTeX workshop (JEQ)
LaTeX workshop (JEQ)Miguel Pardal
 
Thesis for beginners
Thesis for beginnersThesis for beginners
Thesis for beginnersMiguel Pardal
 
Scalable and secure RFID data discovery
Scalable and secure RFID data discoveryScalable and secure RFID data discovery
Scalable and secure RFID data discoveryMiguel Pardal
 
Breve introdução à investigação
Breve introdução à investigaçãoBreve introdução à investigação
Breve introdução à investigaçãoMiguel Pardal
 
BEST Lisboa 2013 - The Internet of Things class
BEST Lisboa 2013 - The Internet of Things classBEST Lisboa 2013 - The Internet of Things class
BEST Lisboa 2013 - The Internet of Things classMiguel Pardal
 
Expressive RFID data access policies for the Pharmaceuticals supply chain
Expressive RFID data access policies for the Pharmaceuticals supply chainExpressive RFID data access policies for the Pharmaceuticals supply chain
Expressive RFID data access policies for the Pharmaceuticals supply chainMiguel Pardal
 
Performance Assessment of XACML Authorizations for Supply Chain Traceability ...
Performance Assessment of XACML Authorizations for Supply Chain Traceability ...Performance Assessment of XACML Authorizations for Supply Chain Traceability ...
Performance Assessment of XACML Authorizations for Supply Chain Traceability ...Miguel Pardal
 

Más de Miguel Pardal (20)

Master Beginners Workshop - Feb 2023
Master Beginners Workshop - Feb 2023Master Beginners Workshop - Feb 2023
Master Beginners Workshop - Feb 2023
 
Master Beginners Workshop - September 2019
Master Beginners Workshop - September 2019Master Beginners Workshop - September 2019
Master Beginners Workshop - September 2019
 
SafeCloud Secure Communication solutions (WP1 overview)
SafeCloud Secure Communication solutions (WP1 overview)SafeCloud Secure Communication solutions (WP1 overview)
SafeCloud Secure Communication solutions (WP1 overview)
 
Master Beginners' Workshop September 2018
Master Beginners' Workshop September 2018Master Beginners' Workshop September 2018
Master Beginners' Workshop September 2018
 
IoT Middleware for Precision Agriculture: workforce monitoring in olive fields
IoT Middleware for Precision Agriculture: workforce monitoring in olive fieldsIoT Middleware for Precision Agriculture: workforce monitoring in olive fields
IoT Middleware for Precision Agriculture: workforce monitoring in olive fields
 
Rastreabilidade na Internet das (muitas) Coisas
Rastreabilidade na Internet das (muitas) CoisasRastreabilidade na Internet das (muitas) Coisas
Rastreabilidade na Internet das (muitas) Coisas
 
Vulnerability-tolerant Transport Layer Security
Vulnerability-tolerant Transport Layer SecurityVulnerability-tolerant Transport Layer Security
Vulnerability-tolerant Transport Layer Security
 
Master Beginners
Master BeginnersMaster Beginners
Master Beginners
 
Arranque Seguro de Redes 6LoWPAN para prevenir Ataques Vampiro na Internet da...
Arranque Seguro de Redes 6LoWPAN para prevenir Ataques Vampiro na Internet da...Arranque Seguro de Redes 6LoWPAN para prevenir Ataques Vampiro na Internet da...
Arranque Seguro de Redes 6LoWPAN para prevenir Ataques Vampiro na Internet da...
 
Precision Agriculture with Sensors and Technologies from the Internet of Things
Precision Agriculture with Sensors and Technologies from the Internet of ThingsPrecision Agriculture with Sensors and Technologies from the Internet of Things
Precision Agriculture with Sensors and Technologies from the Internet of Things
 
Smart Places INForum16 presentation
Smart Places INForum16 presentationSmart Places INForum16 presentation
Smart Places INForum16 presentation
 
LaTeX workshop (NEB)
LaTeX workshop (NEB)LaTeX workshop (NEB)
LaTeX workshop (NEB)
 
Thesis for beginners 2015-10
Thesis for beginners 2015-10Thesis for beginners 2015-10
Thesis for beginners 2015-10
 
LaTeX workshop (JEQ)
LaTeX workshop (JEQ)LaTeX workshop (JEQ)
LaTeX workshop (JEQ)
 
Thesis for beginners
Thesis for beginnersThesis for beginners
Thesis for beginners
 
Scalable and secure RFID data discovery
Scalable and secure RFID data discoveryScalable and secure RFID data discovery
Scalable and secure RFID data discovery
 
Breve introdução à investigação
Breve introdução à investigaçãoBreve introdução à investigação
Breve introdução à investigação
 
BEST Lisboa 2013 - The Internet of Things class
BEST Lisboa 2013 - The Internet of Things classBEST Lisboa 2013 - The Internet of Things class
BEST Lisboa 2013 - The Internet of Things class
 
Expressive RFID data access policies for the Pharmaceuticals supply chain
Expressive RFID data access policies for the Pharmaceuticals supply chainExpressive RFID data access policies for the Pharmaceuticals supply chain
Expressive RFID data access policies for the Pharmaceuticals supply chain
 
Performance Assessment of XACML Authorizations for Supply Chain Traceability ...
Performance Assessment of XACML Authorizations for Supply Chain Traceability ...Performance Assessment of XACML Authorizations for Supply Chain Traceability ...
Performance Assessment of XACML Authorizations for Supply Chain Traceability ...
 

Último

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 

Último (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

Eclipse workshop presentation

  • 2. • Miguel Pardal – LEIC 2000 – Lecturer at Técnico Lisboa – PhD Student – http://web.tecnico.ulisboa.pt/miguel.pardal – Eclipse user since 2005 – Conditional fan 
  • 3. Goal • • • • Learn the good Avoid the bad Become a better developer Enjoy life!
  • 5. History • Eclipse started out as proprietary technology – Object Technology International (OTI) – IBM’s goals: • Reduce incompatible environments • Increase reuse of common components • Evolved from IBM VisualAge for Smalltalk™ and for Java™ – Monolithic http://wiki.eclipse.org/FAQ_Where_did_Eclipse_come_from%3F
  • 6. History • The Eclipse open source project was announced in November 2001 by a group of companies that formed the initial Eclipse Consortium – Eclipse Foundation since 2004 • Commercial-friendly open source license – Wider audience and ecosystem • Eclipse was designed from the ground up as an integration platform for development tools – – – – Everything in Eclipse is a plug-in Uses SWT to bind to local platform GUI OSGi component model since 3.0 Annual Simultaneous Release (…, Indigo, Juno, Kepler, …)
  • 7. Install • Download • Unzip • Run • All configurations are file-based – workspace folder • Settings • Projects – Project metadata files • .project • .classpath
  • 9. Workbench • Eclipse’s main window – Menus and toolbars – Views, editors, perspectives
  • 10. View • A view is a window that lets you examine something – Navigate a list or hierarchy of information – Display properties for the active editor • Modifications made in a view are saved immediately.
  • 11. Editor • Editors are used to edit or browse a resource – Rectangular area in the Workbench window – Visual presentation might be text or a diagram. – Editors are launched by clicking on a resource in a view – Modifications made in an editor follow an open-save-close lifecycle model • * indicates unsaved data
  • 12.
  • 13. Perspective • A perspective is a set of views, editors, and toolbars, along with their arrangement within the Workbench window. • As you perform a task, you may rearrange windows, new views, and so on. – Saved under the current perspective. – Next time, switch to perspective – Within a window, each perspective may have a different set of views but all perspectives share the same set of editors. • Built-in Java or Debug perspectives
  • 14.
  • 15.
  • 19. Auto-complete • From the current context – project, class, method, etc – what could complete this? – CTRL+space
  • 20. Auto-build • Compilation is automatic in Eclipse • Blessing – Sting s = “Eclipse”; • Curse – String s = “Ecli
  • 22. Factoring • Create the application domain • Create class – Members – Methods • Generate methods – Getters Setters – toString
  • 27. Refactoring • Refactoring is a process of software source code transformation – Should be performed when the code is working and all of its tests are passing – Does not involve rewriting or replacing large chunks of code. – Gradual, evolutionary process, intended to “preserve the knowledge embedded in the existing code.” • Examples – Rename – Extract method
  • 31. Implicit class – Write code as if the class already exists • Write code referring to non-existing classes – Use quick-fix to generate class
  • 32. But beware… • Quick-fix can become “quick-bug” • Example – Try-catch and ignore • Worst solution – Try-catch, print and continue • As if nothing has happened… but it did! – Think it through: • Handle exception (try-catch) • Or let someone else do it (throws)
  • 33. Conclusions • Very useful tool • Can increase productivity – Code formatting – Especially in refactoring • But… – Does NOT replace critical thought and design – Can increase the production… of bugs!
  • 34. Looking ahead… • Questions? – Concepts – Techniques Miguel.Pardal@tecnico.ulisboa.pt Thank you Obrigado
  • 36. 10. Shortcut to shortcuts • Ctrl+Shift+L to see a full list of the currently available key bindings
  • 37. 9. Open file / type • Open file quickly without browsing: Ctrl + Shift + R • Open a type (class / interface): Ctrl + Shift + T
  • 38. 8. Show properties • Select project Alt+Enter • Select type/resource Alt+Enter
  • 39. 7. Maximize editor • Maximizes current editor Ctrl + M • You can also double-click editor tab
  • 40. 6. Editor navigation • Jump to beginning / end of indention. Twice to jump to beginning of line – Home/End • Jump to beginning / jump to end of source – Ctrl+Home/End • Jump one word to the left / one word to the right – Ctrl+Arrow Right/Arrow Left • Jump to previous / jump to next method – Ctrl+Shift+Arrow Down/Arrow Up • Jump to next / jump to previous compiler syntax warning or error – Ctrl+./Ctrl+, • Jump to last location edited – Ctrl+q • Jump to Line Number – Ctrl+l • Hide/show line numbers – Ctrl+F10 and select 'Show Line Numbers'
  • 41. 5. Outline view • Quickly go to class member Ctrl + O
  • 42. 4. Code formatting • Ctrl + Shift + F for code formatting • Ctrl + / for commenting, un commenting lines and blocks
  • 43. 3. Organize imports • Organize imports Ctrl+Shift+O • Go from: – import java.util.* • To: – import java.util.Map; – import java.util.Iterator;
  • 44. 2. Print line • syso Ctrl+space • syse Ctrl+space
  • 45. 1. Guess Exception • throw new NPE Ctrl+space – NullPointerException • throw new IAE Ctrl+space – IllegalArgumentException