SlideShare ist ein Scribd-Unternehmen logo
1 von 88
Take your productivity to the next level
using Intellij IDEA and powerful utility tools
Red Island, 8.5.2018.
Dominik Poljak
dominik.poljak@ecx.io
Why utility tools?
© ecx.io – an IBM Company
Skill is important as well as tools!
Da Vinci with a mop and a bucket of mud may be a
better painter than you, but he would never beat Da
Vinci with quality tools.
4
Complexity…
Complexity is the enemy of
execution!
Simplify, simplify, simplify!
Automate, automate, automate!
© ecx.io – an IBM Company
Keyboard vs Mouse
© ecx.io – an IBM Company
Aim
1 or 0
key presses
9
Business value
Satisfaction!
Creativity
Time
Less clicks
© ecx.io – an IBM Company
Productivity tools
Java IDE
Notes & Sharing
Navigation &
Search
Clipboard manager
Global hotkeys
11
Java IDE
Why Intellij IDEA?
© ecx.io – an IBM Company
Benefits of Intellij IDEA
Staying in the flow
• by using only keyboard
Powerful actions
• actions are searchable
Code generation and refactoring
• a lot of options with undo feature
Debugging
• changing values on the fly
Plugins and built-in tools
• Git, Maven, Terminal, Local History etc.
Powerful Actions
© ecx.io – an IBM Company
How to measure and increase productivity?
15
© ecx.io – an IBM Company
The most powerful shortcuts
 Find Action
 Ctrl + Shift + A
 Search Everywhere
 Shift + Shift (press it quickly)
 Show intention actions
 Alt + Enter
16
Powerful Actions
Navigation
© ecx.io – an IBM Company
Use only ONE TAB!
 History
 Ctrl + Alt + left or right arrow key
 Recent files
 Ctrl + E
 Bookmarks
 Set/remove a bookmark
 Ctrl + Shift + number
 Go to a bookmark
 Ctrl + number
18
Navigation
Use one step solutions instead
of manual navigation!
© ecx.io – an IBM Company
Efficient file navigation
 Navigate to Class
 Ctrl + N
 Navigate to file
 Ctrl + Shift + N
 Navigate to symbols
 Ctrl + Shift + Alt + N
 Find File
 Ctrl + Shift + F
 Structural search (advanced)
20
© ecx.io – an IBM Company
Structural search and replace!
21
Powerful Actions
Navigation
Code Generation
Code Generation
Generate code on almost each
line you type - easy way!
© ecx.io – an IBM Company
Generate a field from constructor parameter Alt + Enter
24
© ecx.io – an IBM Company
Live Templates
 OOTB templates:
 psvm
 sout
 iter (foreach)
 itar (arrays)
 ritar (reverse, arrays)
25
© ecx.io – an IBM Company
Live Templates Configuration
26
© ecx.io – an IBM Company
Advanced Live Templates: AEM framework example
27
© ecx.io – an IBM Company
Complete Current Statement: Ctrl + Shift + Enter
28
Powerful Features
Navigation
Code Generation
Refactoring
Refactoring
Basic refactoring while coding
ensures much higher code
quality!
© ecx.io – an IBM Company
Extract Variable: Ctrl + Alt + V
31
© ecx.io – an IBM Company
Extract Method: Ctrl + Alt + M
32
What is your first reaction when
you hear word “Regex”?
33
© ecx.io – an IBM Company
Simple Regex Usage with Preview
36
Hidden in Plain Sight - Multicursors
© ecx.io – an IBM Company
Advanced Feature: Multicursors Alt + Shift + Left click
38
Powerful Features
Navigation
Code Generation
Refactoring
Debugging
© ecx.io – an IBM Company
Debugging
• Variable’s value is shown inside code editor!
• Remote debugging
• Built-in code coverage tool
40
© ecx.io – an IBM Company
Debugging
41
© ecx.io – an IBM Company
Debugging: Code Coverage
42
Powerful Features
Navigation
Code Generation
Refactoring
Debugging
Plugins & Built-in
Features
© ecx.io – an IBM Company
Plugins
 StringManipulation
 .gitignore plugin
 AceJump (alternative exists)
 Key Promoter X
 …
44
© ecx.io – an IBM Company
Built-in Features
 Compare with Clipboard
 Local History
 Git Integration
 Language Injection
 Terminal
45
Compare with Clipboard
Compare with Clipboard
Local History: Opening
Local History: Differences
Language Injection Alt + Enter
Notes & Sharing
Notes & Sharing
How often do you take notes?
© ecx.io – an IBM Company
The forgetting Curve.
53
days after the presentation
1 2 3 4 5 6 7
20
100
© ecx.io – an IBM Company
OneNote Features
 Search (even in screenshots)
 Cloud storage option
 Code highlighting (Highlight plugin)
 Shortcuts for reorganization, Alt + Shift + Up or Down
54
© ecx.io – an IBM Company
OneNote: notebooks, sections, pages, content
© ecx.io – an IBM Company
OneNote: Search
Sharing
How do you share information?
Text < Picture < Video
© ecx.io – an IBM Company
Screenshot tool: Lightshot
 Fast: PrtSc key
 Sharing: online or Ctrl + C
 Lightweight
 Simple editing options (arrows, text…)
© ecx.io – an IBM Company
Video recording tool: OBS Studio
 Free, open source
 No limits on time
 Simple
 Option to capture screen or window
 1 hour of video with audio ≈ 100 MB
59
Launchy: suggesting Alt + X
Copy/Paste
Leverage everything you copy!
© ecx.io – an IBM Company
Clipboard Manager: Ditto
 Fast: Ctrl + Alt + ` (suggestion)
 Preview for pictures F3
 Searchable
 History: 100+ copied values (configurable)
 Advanced options: paste multiple values (multicursors)
63
Ditto
Automation
One tool to tool them all?
© ecx.io – an IBM Company
Autohotkey
 Global hotkeys – works everywhere!
 Combining tool shortcuts
 Hot strings
 Autocomplete
 Custom scripts
67
Autohotkey
© ecx.io – an IBM Company
Backup slides
© ecx.io – an IBM Company
Navigation WITHIN file: moving over errors F2
71
© ecx.io – an IBM Company
Navigation WITHIN file: navigate to class member Ctrl + F12
72
© ecx.io – an IBM Company
Navigation WITHIN file: moving between methods Alt + Up or Down
73
© ecx.io – an IBM Company
Find file Ctrl + Shift + F
74
© ecx.io – an IBM Company
Extract Parameter: Ctrl + Alt + P
75
© ecx.io – an IBM Company
Extract Field: Ctrl + Alt + F
76
Terminal Alt + F12
© ecx.io – an IBM Company
Code Generation Alt + Insert
 Constructors
 Getters
 Setters
 Equals() and hashCode()
 toString()
78
Local History: Patches
Git integration Alt + `
Git integration: Conflict Resolution
Git .ignore plugin
© ecx.io – an IBM Company
Git .ignore plugin: features
 Templates
 Coloring ignored files in the Project view
 Fix actions
 Removing tracked files which match patterns added to .gitignore file
 Adding unversioned files to .gitignore file
83
Git .ignore plugin: templates
© ecx.io – an IBM Company
Git Integration: Features
 Intuitive commit + push Ctrl + K
 Easy conflict resolution
 Simple stash and unstash
85
Git integration: Commit + Push, Ctrl + K
© ecx.io – an IBM Company
OneNote: NoteHighlight plugin
© ecx.io – an IBM Company
Questions for continuous
improvement
 Can the number of mouse clicks and
keyboard presses be reduced even more?
 Has someone already developed a simple
solution for our problem?
88

Weitere ähnliche Inhalte

Ähnlich wie Take your productivity to the next level using Intellij IDEA and powerful utility tools - JavaCro - Dominik Poljak

Building Papers
Building PapersBuilding Papers
Building Papers
Mahmoud
 
2013-03-07 indie developer toolkit
2013-03-07 indie developer toolkit2013-03-07 indie developer toolkit
2013-03-07 indie developer toolkit
CocoaHeads Tricity
 
DotNet Introduction
DotNet IntroductionDotNet Introduction
DotNet Introduction
nandhu8124
 

Ähnlich wie Take your productivity to the next level using Intellij IDEA and powerful utility tools - JavaCro - Dominik Poljak (20)

Game Studio
Game StudioGame Studio
Game Studio
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous Integration
 
Building Papers
Building PapersBuilding Papers
Building Papers
 
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
 
iOS Indie Developer Toolkit - CocoaHeads 3city
iOS Indie Developer Toolkit - CocoaHeads 3cityiOS Indie Developer Toolkit - CocoaHeads 3city
iOS Indie Developer Toolkit - CocoaHeads 3city
 
2013-03-07 indie developer toolkit
2013-03-07 indie developer toolkit2013-03-07 indie developer toolkit
2013-03-07 indie developer toolkit
 
Optimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSOptimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWS
 
Strengthening Adobe’s Enterprise Platform with Day Software and Open Development
Strengthening Adobe’s Enterprise Platform with Day Software and Open DevelopmentStrengthening Adobe’s Enterprise Platform with Day Software and Open Development
Strengthening Adobe’s Enterprise Platform with Day Software and Open Development
 
FOSDEM 2024 Electronic boards production automation with KiCAD scripts
FOSDEM 2024 Electronic boards production automation with KiCAD scriptsFOSDEM 2024 Electronic boards production automation with KiCAD scripts
FOSDEM 2024 Electronic boards production automation with KiCAD scripts
 
The Joy of Vim
The Joy of VimThe Joy of Vim
The Joy of Vim
 
RA TechED 2019 - CL02 - Integrated Architecture System Software What's New
RA TechED 2019 - CL02 -  Integrated Architecture System Software What's NewRA TechED 2019 - CL02 -  Integrated Architecture System Software What's New
RA TechED 2019 - CL02 - Integrated Architecture System Software What's New
 
Yii2 by Peter Jack Kambey
Yii2 by Peter Jack KambeyYii2 by Peter Jack Kambey
Yii2 by Peter Jack Kambey
 
DevOps and the C64: what's your excuse
DevOps and the C64: what's your excuseDevOps and the C64: what's your excuse
DevOps and the C64: what's your excuse
 
Titanium #MDS13
Titanium #MDS13Titanium #MDS13
Titanium #MDS13
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
DotNet Introduction
DotNet IntroductionDotNet Introduction
DotNet Introduction
 
DOTNET
DOTNETDOTNET
DOTNET
 
ecx.io @ JobFair 2018
ecx.io @ JobFair 2018ecx.io @ JobFair 2018
ecx.io @ JobFair 2018
 
Being Smart about C/C++ Development on AIX and Linux
Being Smart about C/C++ Development on AIX and Linux Being Smart about C/C++ Development on AIX and Linux
Being Smart about C/C++ Development on AIX and Linux
 
Free video lectures for b.tech
Free video lectures for b.techFree video lectures for b.tech
Free video lectures for b.tech
 

Kürzlich hochgeladen

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
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
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
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
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
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...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

Take your productivity to the next level using Intellij IDEA and powerful utility tools - JavaCro - Dominik Poljak

Hinweis der Redaktion

  1. How to open this window? Open help and select Productivity Guide Statistics preview: number of possible bugs eliminated, number of characters automatically generated List of features that have not been used yet Instructions with demo how to use each feature
  2. With find action you don’t need to know most of existing shortcuts if you know action name (or part of the name) that you wish to perform – just start typing its name in the search box and run it Search everywhere is slower than ‘find action’ but it can search actions, settings, tools, symbols, run configurations Show intention actions is really powerful since it generates and reformats code in given context. If you want to modify or generate code, always check whether InteliJ can do it for you with this shortcut! 
  3. First step in using IntelliJ efficiently is learning the navigation.
  4. One tab is enough By pressing Ctrl + Alt + left arrow key moves you back in history of visited files, Ctrl + Alt + right moves you forward. By using ONE tab you eliminate the need to close all the tabs that you have previously opened which are not related to your current work. Additionally, by using powerful navigation features you are always focusing on relevant information instead of focusing on searching and clicking through multiple tabs. Tip for recent files: pressing Ctrl + E and then Enter opens last visited file. Tip for bookmarks: pressing Shift + F11 shows all bookmarks
  5. Always keep in mind that In Intellij there is usually a one step solution available for navigating to a particular file or even a line.
  6. Tip for file navigation (Ctrl + Shift + N): add / or \ at the end for searching folders Tip for navigation: write initial letter of camelHumps names to speed up the search. For example, searching ComplexClassManager can be found by Typing ‘ccm’ or ‘CCM’ Structural search is advanced feature which allows you to choose template to narrow down the search. It is especially useful in large projects where Find File would return thousands of search results. With structural search template you can specify for example to search only in classes which name matches specific regex. In the next demo searching for a specific field is shown.
  7. In each context it is a good decision to check whether Intellij can solve an issue for you. In this example new field can be easily generated from constructor parameter by placing carret on newField parameter and pressing Alt + Enter. Tip: this is especially useful when handling errors, generating remaining options within switch statement, wrapping exceptions inside try and catch blocks etc.
  8. Tip: custom live templates can be configured within IntelliJ. Each custom template can contain variables which will contain value suggestion within given context, for example variables within a scope will be suggested as part of the template. Use cases: generating code for logger initialization, framework specific templates etc.
  9. The simplest one and the most common one. It generates a lot of code over time.
  10. Tip: Ctrl + W expands selection under cursor
  11. The forgetting curve The brain forgets things that are no longer useful to make space for something more important. But unfortunately also important informations will be deleted This graph shows that after a presentation within a day about 50% of the memory is gone. After a week it is almost 90%. The whole workload for nothing. You should always have that in mind ... What can we do about it?
  12. It is much more efficient to send your colleague a screenshot than describing what has happened on your computer or with your site since picture is worth a thousand words!
  13. Capture the window option is very useful feature since you can use your chat while for example recording a video call. You can be certain that video recording will only contain video call without showing other programs that you had to use to respond to your colleagues.
  14. Tip: using Shift + F2 moves carret to previous error
  15. Tip: once you hit Ctrl + F12 you can start typing class member name to narrow down the search
  16. As you can see, you can navigate to method names, constructors and class name.
  17. Once you hit Ctrl + Shift + F you can start typing content you are searching for. In this example we are searching for string “Example” and exactly two lines in project contain our string. First line that is found is selected and preview of the file that contains the line is shown below. Additional options for configuring the search include changing the scope, specifying the regular expression and defining a file mask. Last option for scope named ‘Scope’ allows you to run your search even in project libraries. Tip: to run global Find and Replace use Ctrl + Shift + R
  18. Tip: you can use “Extract Constant” (Ctrl + Alt + C) which is more appropriate for string constants.
  19. After pressing Alt + Insert within a class you can generate constructors and common methods like getters, setters, equals, hashCode toString. Furthermore, you can override methods from interfaces and super classes. You can also delegate methods by choosing particular object within a class, in this case like firstName and lastName objects, to which a call will be delegated. Within generated method another method from chosen object will be called.