SlideShare a Scribd company logo
Eclipse workshop
Mar. 2016
• Miguel Pardal
– LEIC 2000
– Assistant Professor at Técnico Lisboa
– http://web.tecnico.ulisboa.pt/miguel.pardal
– Eclipse user since 2005
– Conditional fan 
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 (…, Luna, Mars, Neon, …)
Install
• Simple:
– 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, line, … what could complete it?
– CTRL+space
Auto-build
• Compilation is automatic in Eclipse
• Blessing
– string s = “Eclipse”;
• Curse
– String s = “Ecli
FACTORING TECHNIQUES
Factoring
• Create the application domain
• Create class
– Members
– Methods
• Generate methods
– Getters Setters
– toString
Create
Create class
Source menu
Quick fix errors
Quick fix warnings
Implicit class creation
– 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)
Testing
• JUnit Class
• JUnit View
REFACTORING TECHNIQUES
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
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 all code
• Bugs included!
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 indentation. 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

More Related Content

What's hot

La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!
Ulrich Krause
 
Eclipse Luna - What's New!
Eclipse Luna - What's New!Eclipse Luna - What's New!
Eclipse Luna - What's New!
Noopur Gupta
 
Installation of java and program execution
Installation of java and program executionInstallation of java and program execution
Installation of java and program execution
Rakhee Chhibber
 
"Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,...
"Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,..."Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,...
"Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,...
Yandex
 
Eclipse Tips & Tricks - EclipseCon North America 2014
Eclipse Tips & Tricks - EclipseCon North America 2014Eclipse Tips & Tricks - EclipseCon North America 2014
Eclipse Tips & Tricks - EclipseCon North America 2014
Noopur Gupta
 
Get ready for FRC 2015: Intro to Java 5 through 8 updates and Eclipse
Get ready for FRC 2015: Intro to Java 5 through 8 updates and EclipseGet ready for FRC 2015: Intro to Java 5 through 8 updates and Eclipse
Get ready for FRC 2015: Intro to Java 5 through 8 updates and Eclipse
Jeanne Boyarsky
 
Jsp applet
Jsp appletJsp applet
Jsp applet
Sanoj Kumar
 
Selenium using C# by Yogesh Kumar
Selenium using C# by  Yogesh KumarSelenium using C# by  Yogesh Kumar
Selenium using C# by Yogesh Kumar
Software Testing Board
 
Testing Java Web Apps With Selenium
Testing Java Web Apps With SeleniumTesting Java Web Apps With Selenium
Testing Java Web Apps With Selenium
Marakana Inc.
 
Chapter 2.1
Chapter 2.1Chapter 2.1
Chapter 2.1
sotlsoc
 
Pj01 2-install java and write first java program
Pj01 2-install java and write first java programPj01 2-install java and write first java program
Pj01 2-install java and write first java program
SasidharaRaoMarrapu
 
Springboot introduction
Springboot introductionSpringboot introduction
Springboot introduction
Sagar Verma
 
Android programming-basics
Android programming-basicsAndroid programming-basics
Android programming-basics
Aravindharamanan S
 
Automating functional testing of Flex applications.
Automating functional testing of Flex applications.Automating functional testing of Flex applications.
Automating functional testing of Flex applications.
Gokuldas Pillai
 
Apache ANT vs Apache Maven
Apache ANT vs Apache MavenApache ANT vs Apache Maven
Apache ANT vs Apache Maven
Mudit Gupta
 
Zero redeployment with JRebel
Zero redeployment with JRebelZero redeployment with JRebel
Zero redeployment with JRebel
Minh Hoang
 
Groovy features
Groovy featuresGroovy features
Groovy features
Ramakrishna kapa
 
Selena Deckelmann - Sane Schema Management with Alembic and SQLAlchemy @ Pos...
Selena Deckelmann - Sane Schema Management with  Alembic and SQLAlchemy @ Pos...Selena Deckelmann - Sane Schema Management with  Alembic and SQLAlchemy @ Pos...
Selena Deckelmann - Sane Schema Management with Alembic and SQLAlchemy @ Pos...
PostgresOpen
 
01. introduction to-programming
01. introduction to-programming01. introduction to-programming
01. introduction to-programming
Stoian Kirov
 
Exploring App Compat
Exploring App CompatExploring App Compat
Exploring App Compat
Akshay Chordiya
 

What's hot (20)

La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!
 
Eclipse Luna - What's New!
Eclipse Luna - What's New!Eclipse Luna - What's New!
Eclipse Luna - What's New!
 
Installation of java and program execution
Installation of java and program executionInstallation of java and program execution
Installation of java and program execution
 
"Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,...
"Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,..."Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,...
"Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,...
 
Eclipse Tips & Tricks - EclipseCon North America 2014
Eclipse Tips & Tricks - EclipseCon North America 2014Eclipse Tips & Tricks - EclipseCon North America 2014
Eclipse Tips & Tricks - EclipseCon North America 2014
 
Get ready for FRC 2015: Intro to Java 5 through 8 updates and Eclipse
Get ready for FRC 2015: Intro to Java 5 through 8 updates and EclipseGet ready for FRC 2015: Intro to Java 5 through 8 updates and Eclipse
Get ready for FRC 2015: Intro to Java 5 through 8 updates and Eclipse
 
Jsp applet
Jsp appletJsp applet
Jsp applet
 
Selenium using C# by Yogesh Kumar
Selenium using C# by  Yogesh KumarSelenium using C# by  Yogesh Kumar
Selenium using C# by Yogesh Kumar
 
Testing Java Web Apps With Selenium
Testing Java Web Apps With SeleniumTesting Java Web Apps With Selenium
Testing Java Web Apps With Selenium
 
Chapter 2.1
Chapter 2.1Chapter 2.1
Chapter 2.1
 
Pj01 2-install java and write first java program
Pj01 2-install java and write first java programPj01 2-install java and write first java program
Pj01 2-install java and write first java program
 
Springboot introduction
Springboot introductionSpringboot introduction
Springboot introduction
 
Android programming-basics
Android programming-basicsAndroid programming-basics
Android programming-basics
 
Automating functional testing of Flex applications.
Automating functional testing of Flex applications.Automating functional testing of Flex applications.
Automating functional testing of Flex applications.
 
Apache ANT vs Apache Maven
Apache ANT vs Apache MavenApache ANT vs Apache Maven
Apache ANT vs Apache Maven
 
Zero redeployment with JRebel
Zero redeployment with JRebelZero redeployment with JRebel
Zero redeployment with JRebel
 
Groovy features
Groovy featuresGroovy features
Groovy features
 
Selena Deckelmann - Sane Schema Management with Alembic and SQLAlchemy @ Pos...
Selena Deckelmann - Sane Schema Management with  Alembic and SQLAlchemy @ Pos...Selena Deckelmann - Sane Schema Management with  Alembic and SQLAlchemy @ Pos...
Selena Deckelmann - Sane Schema Management with Alembic and SQLAlchemy @ Pos...
 
01. introduction to-programming
01. introduction to-programming01. introduction to-programming
01. introduction to-programming
 
Exploring App Compat
Exploring App CompatExploring App Compat
Exploring App Compat
 

Similar to Eclipse workshop presentation (March 2016)

Eclipse workshop presentation
Eclipse workshop presentationEclipse workshop presentation
Eclipse workshop presentation
Miguel Pardal
 
intro-to-eclipse.pdf
intro-to-eclipse.pdfintro-to-eclipse.pdf
intro-to-eclipse.pdf
Sajeev P
 
Csharp introduction
Csharp introductionCsharp introduction
Csharp introduction
Sireesh K
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
Lars Vogel
 
ASP.NET Session 3
ASP.NET Session 3ASP.NET Session 3
ASP.NET Session 3
Sisir Ghosh
 
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUGLearn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Marakana Inc.
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
Jordi Anguela
 
Java1
Java1Java1
Java1
Java1Java1
Introduction to Design Patterns
Introduction to Design PatternsIntroduction to Design Patterns
Introduction to Design Patterns
Prageeth Sandakalum
 
Bootstrapping iPhone Development
Bootstrapping iPhone DevelopmentBootstrapping iPhone Development
Bootstrapping iPhone Development
ThoughtWorks
 
Ios-training-institute-in-mumbai
Ios-training-institute-in-mumbaiIos-training-institute-in-mumbai
Ios-training-institute-in-mumbai
vibrantuser
 
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
 
Selenium web driver_2.0_presentation
Selenium web driver_2.0_presentationSelenium web driver_2.0_presentation
Selenium web driver_2.0_presentation
sayhi2sudarshan
 
Building iOS App Project & Architecture
Building iOS App Project & ArchitectureBuilding iOS App Project & Architecture
Building iOS App Project & Architecture
Massimo Oliviero
 
Intro to .NET and Core C#
Intro to .NET and Core C#Intro to .NET and Core C#
Intro to .NET and Core C#
Jussi Pohjolainen
 
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
 
IBM Domino Designer: Tips and tricks for maximum productivity
IBM Domino Designer: Tips and tricks for maximum productivityIBM Domino Designer: Tips and tricks for maximum productivity
IBM Domino Designer: Tips and tricks for maximum productivity
SocialBiz UserGroup
 
DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific Workflows
Matthew Gerring
 
Introducing object oriented programming (oop)
Introducing object oriented programming (oop)Introducing object oriented programming (oop)
Introducing object oriented programming (oop)
Hemlathadhevi Annadhurai
 

Similar to Eclipse workshop presentation (March 2016) (20)

Eclipse workshop presentation
Eclipse workshop presentationEclipse workshop presentation
Eclipse workshop presentation
 
intro-to-eclipse.pdf
intro-to-eclipse.pdfintro-to-eclipse.pdf
intro-to-eclipse.pdf
 
Csharp introduction
Csharp introductionCsharp introduction
Csharp introduction
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
 
ASP.NET Session 3
ASP.NET Session 3ASP.NET Session 3
ASP.NET Session 3
 
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUGLearn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUG
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
 
Java1
Java1Java1
Java1
 
Java1
Java1Java1
Java1
 
Introduction to Design Patterns
Introduction to Design PatternsIntroduction to Design Patterns
Introduction to Design Patterns
 
Bootstrapping iPhone Development
Bootstrapping iPhone DevelopmentBootstrapping iPhone Development
Bootstrapping iPhone Development
 
Ios-training-institute-in-mumbai
Ios-training-institute-in-mumbaiIos-training-institute-in-mumbai
Ios-training-institute-in-mumbai
 
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.
 
Selenium web driver_2.0_presentation
Selenium web driver_2.0_presentationSelenium web driver_2.0_presentation
Selenium web driver_2.0_presentation
 
Building iOS App Project & Architecture
Building iOS App Project & ArchitectureBuilding iOS App Project & Architecture
Building iOS App Project & Architecture
 
Intro to .NET and Core C#
Intro to .NET and Core C#Intro to .NET and Core C#
Intro to .NET and Core C#
 
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 !
 
IBM Domino Designer: Tips and tricks for maximum productivity
IBM Domino Designer: Tips and tricks for maximum productivityIBM Domino Designer: Tips and tricks for maximum productivity
IBM Domino Designer: Tips and tricks for maximum productivity
 
DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific Workflows
 
Introducing object oriented programming (oop)
Introducing object oriented programming (oop)Introducing object oriented programming (oop)
Introducing object oriented programming (oop)
 

More from Miguel Pardal

Master Beginners Workshop - Feb 2023
Master Beginners Workshop - Feb 2023Master Beginners Workshop - Feb 2023
Master Beginners Workshop - Feb 2023
Miguel Pardal
 
Master Beginners Workshop - September 2019
Master Beginners Workshop - September 2019Master Beginners Workshop - September 2019
Master Beginners Workshop - September 2019
Miguel 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 2018
Miguel 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 fields
Miguel Pardal
 
Rastreabilidade na Internet das (muitas) Coisas
Rastreabilidade na Internet das (muitas) CoisasRastreabilidade na Internet das (muitas) Coisas
Rastreabilidade na Internet das (muitas) Coisas
Miguel Pardal
 
Vulnerability-tolerant Transport Layer Security
Vulnerability-tolerant Transport Layer SecurityVulnerability-tolerant Transport Layer Security
Vulnerability-tolerant Transport Layer Security
Miguel Pardal
 
Master Beginners
Master BeginnersMaster Beginners
Master Beginners
Miguel 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 Things
Miguel Pardal
 
Smart Places INForum16 presentation
Smart Places INForum16 presentationSmart Places INForum16 presentation
Smart Places INForum16 presentation
Miguel 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-10
Miguel 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 beginners
Miguel Pardal
 
Scalable and secure RFID data discovery
Scalable and secure RFID data discoveryScalable and secure RFID data discovery
Scalable and secure RFID data discovery
Miguel Pardal
 
Breve introdução à investigação
Breve introdução à investigaçãoBreve introdução à investigação
Breve introdução à investigação
Miguel 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 class
Miguel 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 chain
Miguel 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
 

More from 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 ...
 

Recently uploaded

20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 

Recently uploaded (20)

20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 

Eclipse workshop presentation (March 2016)

  • 2. • Miguel Pardal – LEIC 2000 – Assistant Professor at Técnico Lisboa – http://web.tecnico.ulisboa.pt/miguel.pardal – Eclipse user since 2005 – Conditional fan 
  • 4. 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
  • 5. 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 (…, Luna, Mars, Neon, …)
  • 6. Install • Simple: – Download – Unzip – Run • All configurations are file-based – Workspace folder • Settings • Projects – Project metadata files • .project • .classpath
  • 8. Workbench • Eclipse’s main window – Menus and toolbars – Views, editors, perspectives
  • 9. 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
  • 10. 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
  • 11.
  • 12. 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
  • 13.
  • 14.
  • 18. Auto-complete • From the current context – project, class, method, line, … what could complete it? – CTRL+space
  • 19. Auto-build • Compilation is automatic in Eclipse • Blessing – string s = “Eclipse”; • Curse – String s = “Ecli
  • 21. Factoring • Create the application domain • Create class – Members – Methods • Generate methods – Getters Setters – toString
  • 27. Implicit class creation – Write code as if the class already exists • Write code referring to non-existing classes – Use quick-fix to generate class
  • 28. 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)
  • 31. 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
  • 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 all code • Bugs included!
  • 35. 10. Shortcut to shortcuts • Ctrl+Shift+L to see a full list of the currently available key bindings
  • 36. 9. Open file / type • Open file quickly without browsing: Ctrl + Shift + R • Open a type (class / interface): Ctrl + Shift + T
  • 37. 8. Show properties • Select project Alt+Enter • Select type/resource Alt+Enter
  • 38. 7. Maximize editor • Maximizes current editor Ctrl + M • You can also double-click editor tab
  • 39. 6. Editor navigation • Jump to beginning / end of indentation. 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'
  • 40. 5. Outline view • Quickly go to class member Ctrl + O
  • 41. 4. Code formatting • Ctrl + Shift + F for code formatting • Ctrl + / for commenting, un commenting lines and blocks
  • 42. 3. Organize imports • Organize imports Ctrl+Shift+O • Go from: – import java.util.* • To: – import java.util.Map; – import java.util.Iterator;
  • 43. 2. Print line • syso Ctrl+space • syse Ctrl+space
  • 44. 1. Guess Exception • throw new NPE Ctrl+space – NullPointerException • throw new IAE Ctrl+space – IllegalArgumentException