Learning to be IDE Free (PrDC 2015)

Preview:

Citation preview

Learning to be

IDE FreeDAVID WESST

What are we doing?

David Wesst

The Point

The Point

Goals for Today

Dissect and understand your IDE

Understand what you "need" and what you "want" as a developer

Show you some tools you might not have seen

Create a dialogue about our tools of choice

Cross Platform Presentation

Java

Also applies to:

JavaScript / NodeJS

ASP.NET

Many, many, others

The Toolbox

What is in the IDE?

Source Control

Code Editor

Project Template

Dependency Management

Compilers

Test Runner

Deployment

My Tools

Java JDK

Atom

Maven 3.3.3

ConEmu+ Cygwin

Git / CVS

NodeJS / NPM

azure-cli

DemoWELCOME TO THE TERMINAL

Source

Controlling the Source

Git

SVN

Mercurial

TFS

…CVS

DemoUSE THE SOURCE SHAMELESS STAR WARS PUN

CodeTHE POWER OF AN EDITOR

Code Slinging

VIM, Emacs,

Atom.io, Visual Studio Code, Notepad++, jEdit

Code Slinging

What should your editor do for you?

<audience answers here>

Code Slinging

What should your editor do for you?

Syntax Highlighting

Compiler Errors / Language Linter

Simplify File Management

Autocomplete

Intellisense

Source Control Management

Improve Productivity and Understanding!

DemoPICKING AND UNDERSTANDING AN EDITOR

Test / Build / Run

Project Templates & Dependencies

Java

Maven, Gradle

JavaScript

NPM (Server) & Bower (Client)

Express, Ember-Cli, etc…

.NET

Nuget, Chocolately

DNX (.NET eXecution Environment)

Project Templates & Dependencies

Maven

Project Templates with archetypes

Basic Commands (clean install and test)

Manages Dependencies Consistently(Installs and Downloads across

machines)

Check notes for POM and command details

Project Templates & Dependencies

Yeoman

Generators for any type of project on any platform

Java (Jhipster)

.NET (aspnet, aspnetdnx, aspnetdnx2)

JavaScript (angular-fullstack, express)

You can even write your own!

Red Light / Green Light (Test)

Testing Framework + Test Runner

Java

JUnit or TestNG + Maven

JavaScript

Jasmine / Mocha with Chai / Qunit + NPM

.NET

NUnit or MSTest + Test Runner

Red Light / Green Light (Test)

Testing Framework + Test Runner

Java

JUnit or TestNG + Maven

JavaScript

Jasmine / Mocha with Chai / Qunit + NPM

.NET

NUnit or MSTest + Test Runner

DemoMAVEN FOR FUN!

PluginsMAKING DEVELOPMENT EASIER SINCE…FOREVER

Plugins

“Plugins”

a.k.a. packages, gems, extensions, etc…

Executables or shortcuts to tools and/or scripts that make tools quicker

to access and use

Make up the bulk of the power of an IDE

Examples

Eclipse -> Run

Visual Studio -> F5

Plugins

“Plugins”

Tools should be understood and explored prior to use

Do you know what you’re adding to the project?

…or

Are you actually adding anything to the project (unintended or

otherwise)?

DemoMORE MAVEN-Y GOODNESS

The Point

Quick Recap

If you can use it from the terminal, you can script it

Script = Code

Any Tool should enhance your developer skill, not dull them

Ask the question:

Am I adding something to the project (intentionally, or unintentionally)

Quick Recap

Be comfortable with your terminal

Source Control is _always_ a terminal solution

Code Editor is nothing more than a Text Editor

Templates and Dependencies can be managed with tools

Which tool does your team use?

Plugins are powerful

Just don’t let them dull your skills

Goals for Today

Dissect and understand your IDE

Understand what you "need" and what you "want" as a developer

Show you some tools you might not have seen

Create a dialogue about our tools of choice

The Point

Call to Action

Open up your terminal and give it a shot

Identify what tools you and your team are using

Can they be used from the command line (I bet they can)

What does your IDE do for you other than edit code?

Can you script your common project tasks?

.sh, .cmd, or otherwise

The Point

Know what your IDE can do

Learn the tools themselves, not just how to open the toolbox

Terminal / Basic Code Editor is a great way to start

Become a cross-platform developer by applying your development

knowledge across platforms!

Who am I?

David Wesst

University of Manitoba, Application Developer

Slides and Source Available Online

Recommended