un-integrated development environment
DESCRIPTION
Lets look at what it takes to do some of the things that an IDE normally does for you, and consider how some tools that work great outside of an IDE can help to make us less dependent on the large memory consuming software that we use to develop with. Remember how a lot of us learned how to code using a simple text editor and some command line tools? Well, those command line tools are still there and available for you to use in your scripts. A tool like guard can help to compile and test our code and growl will keep us notified of the current status of our build. There are lots of tricks that can be used for all languages from ruby on a Linux box to C# on Windows. There is a simple life outside of the IDE! Links to the videos are provided for the demo slides. This was originally presented at CodeMash v2.0.1.4 in Sandusky, Ohio on January 9, 2014TRANSCRIPT
THE UN-INTEGRATED DEVELOPMENT ENVIRONMENT
Joel Byler@joelbyler
January 9, 2014CodeMash 2.0.1.4Kalihari ResortSandusky, OH
JJ
Monday, January 13, 14
WHO AM I? JOEL BYLER
Aspiring Software Craftsman Organizer for Cleveland Ruby
Brigade (aka CleRb) Enterprise Java developer Actively growing my Ruby and
JavaScript skills
Monday, January 13, 14
Debugger
WHY DO WE USE AN IDE?
Syntax Highlighting
Refactoring Tools Code Completion
Project Navigation
Monday, January 13, 14
ADDITIONAL THINGS AN IDE DOES
Build on Save Run Tests Deploy to Server Dependency Management
Monday, January 13, 14
5
THINGS AN IDE SHOULD NOT DO Block you from saving Make YOU wait!!! Interact with social media
Monday, January 13, 14
WORKFLOW
6
Refactor
Green
I want to know when the tests fail!
I also want to know when the tests pass!
Advice here is always helpful!
RedInstall dependencies
Continuousintegration
Monday, January 13, 14
WORKFLOW
Should NOT require a specific IDE
7
Should not require an IDE at all!DANGER: what happens when you depend too much on your IDE?
Monday, January 13, 14
DISCLAIMER
8
During the course of this session we are going to see a number of tools for various different languages.
I’m not claiming that any of these tools or techniques are great ideas but these exercises are intended to give you something to consider the next time you reach for your IDE and notice how many things it may be doing for you when you can do them yourself outside of the IDE.
Monday, January 13, 14
EASY TO REMEMBER? 6 “G”SGrowl - notificationsGuard - rubyGrunt - javascriptGradle - javaGiles - .net auto testerGendarme - .net code analysis
9
Monday, January 13, 14
RUBYDependency Management
bundler Automated Tester
guardCode Analysis
rubocop
Monday, January 13, 14
BUNDLER=>DEPENDENCY MANAGEMENTRAKE => TASK RUNNER
11
https://github.com/joelbyler/unintegrated_dev_env/raw/master/media/BundleInstall.mov
Monday, January 13, 14
RUBOCOP=>CODE ANALYSIS
12
https://github.com/joelbyler/unintegrated_dev_env/raw/master/media/Rubocop.mov
Monday, January 13, 14
GUARD=>AUTOMATED TASK RUNNER
13
https://github.com/joelbyler/unintegrated_dev_env/raw/master/media/Guard.mov
Monday, January 13, 14
JAVASCRIPTDependency Management
npm Automated Tester
grunt watchCode Analysis
jshint
Monday, January 13, 14
NPM=>DEPENDENCY MANAGEMENT
15
https://github.com/joelbyler/unintegrated_dev_env/raw/master/media/npm.mov
Monday, January 13, 14
GRUNT => TASK RUNNERJSHINT => CODE QUALITY ANALYSIS
16
https://github.com/joelbyler/unintegrated_dev_env/raw/master/media/Grunt.mov
Monday, January 13, 14
GRUNT WATCH=>AUTOMATED TASK RUNNER
17
https://github.com/joelbyler/unintegrated_dev_env/raw/master/media/GruntWatch.mov
Monday, January 13, 14
JAVADependency Management
gradle dependencies { .. }Automated Tester
guardCode Analysis
gradle findbugsMainDeploy [bonus]
gradle jettyRun
(gradle is not there yet)
Monday, January 13, 14
19
GRADLE => TASK RUNNERFINDBUGS => CODE ANALYSIS
https://github.com/joelbyler/unintegrated_dev_env/raw/master/media/Gradle.mov
Monday, January 13, 14
GUARD=>AUTOMATED TASK RUNNER
20
https://github.com/joelbyler/unintegrated_dev_env/raw/master/media/GuardJetty.mov
Monday, January 13, 14
C#Dependency Management
NugetAutomated Tester
GilesCode Analysis
Gendarme
Monday, January 13, 14
NUGET=>DEPENDENCY MANAGEMENT
22
https://github.com/joelbyler/unintegrated_dev_env/raw/master/media/nuget.mov
Monday, January 13, 14
GILES => AUTOMATED TASK RUNNERGENDARME => CODE ANALYSIS
23
https://github.com/joelbyler/unintegrated_dev_env/raw/master/media/GilesGenarme.mov
Monday, January 13, 14
RESOURCESDemo Sourcehttps://github.com/joelbyler/unintegrated_dev_env
Ruby Rogues - Tool Sharpeninghttp://rubyrogues.com/129-rr-sharpening-tools-with-ben-orenstein/
Ruby Resourceshttp://guardgem.org/http://bundler.io/
JavaScript Resourceshttp://gruntjs.com/https://npmjs.org/
Monday, January 13, 14
RESOURCES CONTINUEDJava Resourceshttp://www.gradle.org/http://findbugs.sourceforge.net
C# and Visual Studio Resourceshttp://testergiles.herokuapp.com/http://nuget.codeplex.com/http://www.mono-project.com/Gendarme
Monday, January 13, 14
THAT’S A WRAP!
Joel Byler@joelbyler
Monday, January 13, 14
COME FLOAT WITH US!Located on a 10,000 square foot boat on the Cleveland waterfront, our team exemplifies how Agile values & principles are practiced. Come float, deliver, and learn with us, or leverage our expertise to help you change your company culture.
@leandog leandog.com
GDI
Monday, January 13, 14