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

Devtools

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 Devtools

Tools for your daily developer work

Avatar for Martin Holzhauer

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