SlideShare une entreprise Scribd logo
1  sur  44
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

Contenu connexe

Tendances

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 executionRakhee 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 2014Noopur 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 EclipseJeanne Boyarsky
 
Testing Java Web Apps With Selenium
Testing Java Web Apps With SeleniumTesting Java Web Apps With Selenium
Testing Java Web Apps With SeleniumMarakana Inc.
 
Chapter 2.1
Chapter 2.1Chapter 2.1
Chapter 2.1sotlsoc
 
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 programSasidharaRaoMarrapu
 
Springboot introduction
Springboot introductionSpringboot introduction
Springboot introductionSagar Verma
 
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 MavenMudit Gupta
 
Zero redeployment with JRebel
Zero redeployment with JRebelZero redeployment with JRebel
Zero redeployment with JRebelMinh Hoang
 
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-programmingStoian Kirov
 

Tendances (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
 

Similaire à Eclipse workshop presentation (March 2016)

Eclipse workshop presentation
Eclipse workshop presentationEclipse workshop presentation
Eclipse workshop presentationMiguel Pardal
 
intro-to-eclipse.pdf
intro-to-eclipse.pdfintro-to-eclipse.pdf
intro-to-eclipse.pdfSajeev P
 
Csharp introduction
Csharp introductionCsharp introduction
Csharp introductionSireesh 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 3Sisir 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-JUGMarakana Inc.
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-endJordi Anguela
 
Bootstrapping iPhone Development
Bootstrapping iPhone DevelopmentBootstrapping iPhone Development
Bootstrapping iPhone DevelopmentThoughtWorks
 
Ios-training-institute-in-mumbai
Ios-training-institute-in-mumbaiIos-training-institute-in-mumbai
Ios-training-institute-in-mumbaivibrantuser
 
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_presentationsayhi2sudarshan
 
Building iOS App Project & Architecture
Building iOS App Project & ArchitectureBuilding iOS App Project & Architecture
Building iOS App Project & ArchitectureMassimo Oliviero
 
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 productivitySocialBiz UserGroup
 
DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific WorkflowsMatthew Gerring
 
Introducing object oriented programming (oop)
Introducing object oriented programming (oop)Introducing object oriented programming (oop)
Introducing object oriented programming (oop)Hemlathadhevi Annadhurai
 

Similaire à 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)
 

Plus 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
 

Plus 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 ...
 

Dernier

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 

Dernier (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 

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