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

Devtools

 Devtools

Tools for your daily developer work

Martin Holzhauer

July 02, 2013
Tweet

More Decks by Martin Holzhauer

Other Decks in Programming

Transcript

  1. Devtools Tools for the daily developer Work

  2. Me • Martin Holzhauer • Developer @ ResearchGate.net • woodworker

    @ github • woodworker @ twitter • in to PHP since 4.1.2
  3. • PHP Developer • Doing Webstuff • Using PHP on

    Linux (or that other broken POSIX System) You
  4. • tips you already know and use • tools you

    already know (and use?) • links to pages you already know • books you already have read This Talk is (hopefully) about
  5. Books

  6. ( Optional | More ) Books

  7. • nothing is better than a whiteboard • nothing is

    better then a large whiteboard • nothing is better than a lot of whiteboards • sometimes not everyone is at one place Collab Tools
  8. • Trello • Pivotaltracker • YouTrack • JIRA • Arbit

    • Bugzilla • Google Docs (+ Hangout) Online Collab Tools
  9. Trello / Pivotaltracker • todo lists on steroids • good

    for Kanban like workflow • Trello free for all ◦ you can pay and get better user management • Pivotal Tracker ◦ free if you make your project public ◦ pay for private projects Online Collab Tools
  10. YouTrack / JIRA / Bugzilla / Arbit • more (bug)tracker

    like • help to get request out of your head • YouTrack/JIRA do cost money • Bugzilla free as in freedom aka GPL • Arbit is still in development Online Collab Tools
  11. • PHPUnit • composer • PHPCS - CS as in

    CodingStandard • phpmd - mess detector see http://phpqatools.org (PHP) Tools you need
  12. PHPUnit • Test • Test! • TEST!!! • really. Please

    Test. • at least the important stuff • pleaaassseeee • If it's hard to test your code is hard to use (PHP) Tools you need
  13. composer • if you don't use it you are doing

    it wrong • its easy • it helps a lot • installs dependencies! • AUTOLOAD!!! (PHP) Tools you need
  14. Tools for your daily work Tools to try

  15. • git flow / github flow • Vagrant + Chef

    | Puppet • Ant (Build Commons) Tools to try
  16. git flow / github flow • a basic workflow /

    branching layout • branch/tag per release • branch per bug • branch per feature • mainline source: http://nvie.com/posts/a-successful-git-branching-model/ Tools to try
  17. Vagrant + Chef/Puppet • Vagrant is Virtualbox for Devs •

    Chef/Puppet create the system you want • Helps to keep Dev, Staging and Live in sync Tools to try
  18. Ant (Build Commons) • ABC build by Qafoo • one

    command to rule them all ◦ clean, validate, init, compile (lint) ◦ test, bundle, package ◦ deploy • does all you need and "x other things" source: http://abc.tools.qafoo.com/ Tools to try
  19. • use a CI Server • you are to lazy

    to run tests all the time Tools to try - CI
  20. Jenkins • Java stuff • self hosted • see jenkins-php.org

    Tools to try - CI
  21. Travis • Hosted solution • free for Open Source projects

    • You need to be on GitHub • runs your unittest on every push Tools to try - CI
  22. Scrutinizer-CI • not really for unit tests • code coverage

    • static code analysis • use together with Travis Tools to try - CI
  23. • Use the best you can find • Select which

    IDE helps you the most • If it's still not PhpStorm - use PhpStorm ;D Your IDE
  24. Your IDE

  25. • LEARN ALL THE SHORTCUTS ◦ opening files, classes, function

    declarations ◦ block comments ◦ reformat the code according to the CS ◦ create a new file ◦ search in file ◦ search in all files ◦ ... Your IDE
  26. • if you do it more than once, write a

    script • deployment? -> script! Learn Shell Scripting
  27. What do i script? • a file by file colordiff

    before i commit • a script to run only "affected" unit tests ◦ check for changed files and run tests for them ◦ handy for quick check • a cherry pick script with fetching commit messages • faster project navigation on shell level Learn Shell Scripting
  28. • the concepts of pipes • awesome tools ◦ grep,

    egrep, zgrep, pgrep ◦ cut, awk, sed ◦ wc ◦ cat, zcat ◦ less vs. more ◦ tar, bzip2, gzip ◦ netcat, w3m, telnet ◦ $YOUR_VERSIONCONTROL_CLI ◦ bash scripting ▪ if [ ] vs. if [[ ]] vs. test ▪ loops Learn Shell Scripting
  29. • we do not talk about why you need it

    • you will need it some times • get used to one and it's fine A console editor
  30. • VIM ◦ hard to learn but harder to master

    ◦ Janus Distribution / MacVim • nano / pico / mcedit ◦ enough to "just edit something small" ◦ you don't look cool with nano / mcedit • The Editor in that Emacs Window Manager ◦ Here be Dragons A console editor
  31. What do you use? More Stuff?

  32. Any? Questions?

  33. KTHXBYE Thanks