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

Avatar for Michael Cheng

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