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. Me • Martin Holzhauer • Developer @ ResearchGate.net • woodworker

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

    Linux (or that other broken POSIX System) You
  3. • 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
  4. • 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
  5. • Trello • Pivotaltracker • YouTrack • JIRA • Arbit

    • Bugzilla • Google Docs (+ Hangout) Online Collab Tools
  6. 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
  7. 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
  8. • PHPUnit • composer • PHPCS - CS as in

    CodingStandard • phpmd - mess detector see http://phpqatools.org (PHP) Tools you need
  9. 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
  10. 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
  11. • git flow / github flow • Vagrant + Chef

    | Puppet • Ant (Build Commons) Tools to try
  12. 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
  13. 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
  14. 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
  15. • use a CI Server • you are to lazy

    to run tests all the time Tools to try - CI
  16. Travis • Hosted solution • free for Open Source projects

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

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

    IDE helps you the most • If it's still not PhpStorm - use PhpStorm ;D Your IDE
  19. • 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
  20. • if you do it more than once, write a

    script • deployment? -> script! Learn Shell Scripting
  21. 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
  22. • 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
  23. • 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
  24. • 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