Tooling

Introduction

Developer’s need tooling. Sometimes it is fairly simple – a compiler and a text editor. Other times it can become quite complex. This section attempts to provide an opinionated guide to tooling for developers.

Code Editor

Version Control

  • Git
  • GitHub

Development Environment

  • Docker
  • Vagrant
  • Virtual Machines

Package Management

  • JavaScript and Just About Everything Else
    • npm
  • Front End Development
    • Do not use Bower, it has been deprecated.
  • PHP
    • Composer
  • Rust

Package Repository

Debugging

  • PHP
    • Xdebug
  • Includes Profiling.

Testing

  • PHP
    • PHPUnit
      • Alternatives: Behat, Codeception, PHPSpec.
  • JavaScript
    • Cucumber.js, Jest, Karma, Mocha.
  • Browser Automation
    • Selenium
  • Includes Code Coverage.

Style Checking / Static Code Analysis

  • PHP
    • PHP Code Sniffer
      • Alternatives: PHP Mess Detector, PHP CS Fixer
  • JavaScript
    • Prettier
  • Ruby
    • RuboCop

Terminal

Remote Access

  • SSH
  • FTP

Database

Servers

  • JavaScript
    • node.js

Documentation

  • JavaScript
    • JSDoc
  • PHP

Task Runner

  • Gulp
    • Alternative: Grunt

Preprocessor

Postprocessor

Code Generator

Code Analyzer

  • JavaScript (Linters)
    • ESLint, JSLint, JSHint, JSCS, Closure Linter.

Continuous Integration

  • CircleCI
  • TravisCI
  • BuildBuddy
  • BuildBot

Scaffolding

Deployment

  • Ruby
    • Capistrano

Other

  • ngrok