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

    View full-size slide

  2. Me
    ● Martin Holzhauer
    ● Developer @ ResearchGate.net
    ● woodworker @ github
    ● woodworker @ twitter
    ● in to PHP since 4.1.2

    View full-size slide

  3. ● PHP Developer
    ● Doing Webstuff
    ● Using PHP on Linux (or that other broken
    POSIX System)
    You

    View full-size slide

  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

    View full-size slide

  5. ( Optional | More ) Books

    View full-size slide

  6. ● 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

    View full-size slide

  7. ● Trello
    ● Pivotaltracker
    ● YouTrack
    ● JIRA
    ● Arbit
    ● Bugzilla
    ● Google Docs (+ Hangout)
    Online Collab Tools

    View full-size slide

  8. 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

    View full-size slide

  9. 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

    View full-size slide

  10. ● PHPUnit
    ● composer
    ● PHPCS - CS as in CodingStandard
    ● phpmd - mess detector
    see http://phpqatools.org
    (PHP) Tools you need

    View full-size slide

  11. 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

    View full-size slide

  12. 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

    View full-size slide

  13. Tools for your daily work
    Tools to try

    View full-size slide

  14. ● git flow / github flow
    ● Vagrant + Chef | Puppet
    ● Ant (Build Commons)
    Tools to try

    View full-size slide

  15. 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

    View full-size slide

  16. 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

    View full-size slide

  17. 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

    View full-size slide

  18. ● use a CI Server
    ● you are to lazy to run tests all the time
    Tools to try - CI

    View full-size slide

  19. Jenkins
    ● Java stuff
    ● self hosted
    ● see jenkins-php.org
    Tools to try - CI

    View full-size slide

  20. Travis
    ● Hosted solution
    ● free for Open Source projects
    ● You need to be on GitHub
    ● runs your unittest on every push
    Tools to try - CI

    View full-size slide

  21. Scrutinizer-CI
    ● not really for unit tests
    ● code coverage
    ● static code analysis
    ● use together with Travis
    Tools to try - CI

    View full-size slide

  22. ● Use the best you can find
    ● Select which IDE helps you the most
    ● If it's still not PhpStorm - use PhpStorm ;D
    Your IDE

    View full-size slide

  23. ● 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

    View full-size slide

  24. ● if you do it more than once, write a script
    ● deployment? -> script!
    Learn Shell Scripting

    View full-size slide

  25. 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

    View full-size slide

  26. ● 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

    View full-size slide

  27. ● 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

    View full-size slide

  28. ● 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

    View full-size slide

  29. What do you use?
    More Stuff?

    View full-size slide

  30. Any?
    Questions?

    View full-size slide

  31. KTHXBYE
    Thanks

    View full-size slide