Devtools

 Devtools

Tools for your daily developer work

54aafa838a109312295ba9a250920aad?s=128

Martin Holzhauer

July 02, 2013
Tweet

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