Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Agile Toolbox for a PHP Developer (Dec 2014)

Agile Toolbox for a PHP Developer (Dec 2014)

Presented at TechInAsia's Hackatron Asia 2014

Michael Cheng

December 06, 2014
Tweet

More Decks by Michael Cheng

Other Decks in Programming

Transcript

  1. AGILE DEVELOPER • Software Craftsmen. • Individuals and interactions over

    processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan Source: http://agilemanifesto.org 4
  2. AGILE DEVELOPER • Communicative and collaborative. • Discussions around stories.

    • Test Driven & Behaviour Driven. • Tests contains the documentation. • Responsive to change. • Not waiting till the end of the dev lifecycle to fix a bug. 5
  3. THE TOOLBOX • Not all of them are written in

    PHP. • Best tool for the task. • DevOps tools - automate tedious tasks. 6
  4. WRITING TOOLS • Use an IDE • VIM (https://code.google.com/p/macvim/) •

    PHPStorm (http://www.jetbrains.com/phpstorm) • Netbeans for PHP (https://netbeans.org/features/php/) • Atom (https://atom.io) 7
  5. COLLABORATION TOOLS • Version Control System • Git (http://git-scm.com/) •

    SourceTree (http://www.sourcetreeapp.com) • GitHub / BitBucket (Git repo hosting) • Gitlab (in-house) 9
  6. COLLABORATION TOOLS • Ways of using Git • Git Flow

    • Forking workflow • https://www.atlassian.com/git/tutorials/ comparing-workflows 10
  7. PRODUCTIVITY TOOLS • Use a PHP framework that supports testing

    • Laravel 4 (http://laravel.com/) • CakePHP (http://cakephp.org/) 11
  8. COMPOSER • Pick and choose libraries you want to put

    together on Packagist (https://packagist.org/). • Compose your own composer.json. • Choose a package namespace for your own project. • Reference: https://getcomposer.org/ 13
  9. INSTALL LIBRARIES $ composer install Loading composer repositories with package

    information Installing dependencies (including require-dev) - Installing respect/rest (0.5.0) Downloading: 100% - Installing psr/log (1.0.0) Downloading: 100% - Installing monolog/monolog (1.7.0) Downloading: 100% - Installing php-activerecord/php-activerecord (v1.1.2) Downloading: 100% 15
  10. PRODUCTIVITY TOOLS • Quick PHP server • Build in web

    server (php -S localhost:8000) • PHPUp (https://github.com/lox/phpup) 16
  11. PHP BUILD IN WEB SERVER $ php -S 0.0.0.0:8000 PHP

    5.5.12 Development Server started at Sat May 3 14:34:44 2014 Listening on http://0.0.0.0:8000 Document root is /Users/miccheng/Dropbox/workspace/plain Press Ctrl-C to quit. [Sat May 3 14:34:47 2014] 127.0.0.1:50368 [200]: / [Sat May 3 14:34:47 2014] 127.0.0.1:50370 [404]: / favicon.ico - No such file or directory 17
  12. PRODUCTIVITY TOOLS • Use a Virtual Environment for development: •

    Vagrant (http://vagrantup.com) • Tool for building complete development environments. • PuPHPet (https://puphpet.com/) • Configuration for a Vagrant VM. 18
  13. PRODUCTIVITY TOOLS • Terminal Tools • iTerm 2 (http://iterm2.com) •

    Tmux (Terminal muxing) / Tmate (remote access) • Window Manager (quick screen resizing) • Size Up / Spectacle / Moom • Autojump (https://github.com/joelthelion/autojump) 19
  14. TESTING TOOLS • Debugging tools • Xdebug (http://xdebug.org/) • WebGrind

    (https://github.com/jokkedk/ webgrind) • PHPDBG (http://phpdbg.com/) • > PHP 5.4.* (build in for PHP 5.6) 21
  15. TESTING TOOLS • Automation Testing • Selenium (http://www.seleniumhq.org) • Saucelabs

    / Testdroid / Selendroid • Capybara (http://jnicklas.github.io/ capybara) • Modern.ie (http://modern.ie/en-us) 22
  16. DEPLOYMENT TOOLS • Continuous Integration • Jenkins-CI (http://jenkins-ci.org) • Cruise

    Control (http:// cruisecontrol.sourceforge.net) • Travis-CI (http://travis-ci.org) 23
  17. OTHER TOOLS • Online tools • Online JSON viewer (http://

    jsonviewer.stack.hu/) • Nitrous.io (http://nitrous.io) • PivotalTracker (http://pivotaltracker.com) • Trello (https://trello.com) 24
  18. MORE READINGS… • PHP The Right Way 
 (http://www.phptherightway.com/) •

    The PHP Framework Interop Group (PHP-FIG) (http://www.php-fig.org/) • Clean Code: A Handbook of Agile Software Craftsmanship (http://www.amazon.com/Clean-Code- Handbook-Software-Craftsmanship/dp/0132350882) 25