Debugging Effectively - SymfonyLive San Francisco 2015

Lead Web Developer for Unleashed Technologies at Unleashed Technologies
Oct. 30, 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
Debugging Effectively - SymfonyLive San Francisco 2015
1 of 61

More Related Content

Similar to Debugging Effectively - SymfonyLive San Francisco 2015

Debugging Effectively - ConFoo Montreal 2019Debugging Effectively - ConFoo Montreal 2019
Debugging Effectively - ConFoo Montreal 2019Colin O'Dell
Debugging Effectively - DrupalCon Europe 2016Debugging Effectively - DrupalCon Europe 2016
Debugging Effectively - DrupalCon Europe 2016Colin O'Dell
The Seven Wastes of Software DevelopmentThe Seven Wastes of Software Development
The Seven Wastes of Software DevelopmentMatt Stine
Let the contribution beginLet the contribution begin
Let the contribution beginSeongJae Park
Photogram  - English Manual Photogram  - English Manual
Photogram - English Manual Willian Ribeiro Angelo
Let the contribution begin  (EST futures)Let the contribution begin  (EST futures)
Let the contribution begin (EST futures)SeongJae Park

More from Colin O'Dell

Demystifying Unicode - Longhorn PHP 2021Demystifying Unicode - Longhorn PHP 2021
Demystifying Unicode - Longhorn PHP 2021Colin O'Dell
Releasing High Quality Packages - Longhorn PHP 2021Releasing High Quality Packages - Longhorn PHP 2021
Releasing High Quality Packages - Longhorn PHP 2021Colin O'Dell
Releasing High Quality PHP Packages - ConFoo Montreal 2019Releasing High Quality PHP Packages - ConFoo Montreal 2019
Releasing High Quality PHP Packages - ConFoo Montreal 2019Colin O'Dell
Automating Deployments with Deployer - php[world] 2018Automating Deployments with Deployer - php[world] 2018
Automating Deployments with Deployer - php[world] 2018Colin O'Dell
Releasing High-Quality Packages - php[world] 2018Releasing High-Quality Packages - php[world] 2018
Releasing High-Quality Packages - php[world] 2018Colin O'Dell
CommonMark: Markdown Done Right - ZendCon 2017CommonMark: Markdown Done Right - ZendCon 2017
CommonMark: Markdown Done Right - ZendCon 2017Colin O'Dell

Recently uploaded

Citi Tech Talk  Disaster Recovery Solutions Deep DiveCiti Tech Talk  Disaster Recovery Solutions Deep Dive
Citi Tech Talk Disaster Recovery Solutions Deep Diveconfluent
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
GemStone Update 2023GemStone Update 2023
GemStone Update 2023ESUG
Digitally assisted design for safety analysisDigitally assisted design for safety analysis
Digitally assisted design for safety analysisObeo

Debugging Effectively - SymfonyLive San Francisco 2015

Editor's Notes

  1. PHP developer 13 years JS, Java, C#
  2. What are some words Hard Time-consuming Annoying
  3. Take this one step further Why is that?
  4. How much time coding? 2/3rds
  5. According to the Mythical Man Month, 1/6th ½ is testing/debugging How much - actually writing code vs getting it working Area where it’s worthwhile to become efficient
  6. READ SLOWLY Shouldn’t be done haphazardly
  7. Immediate understanding of what type of problem, where it might be Like intuition, but not Understanding without proof, but based on logic and experience -- Focus on the process Experience and “sixth sense” will come with time NEXT: Debugging process
  8. And intermediate developers
  9. When you give up on the proper approach Apply workaround instead Improper solutions will cause issues later NEXT - EXAMPLE
  10. BE FAST Base85-encoded Don’t be clever
  11. Magical thinking Code is not a magic black box
  12. BE FAST
  13. sneaky
  14. Bugs are almost always based on faulty assumptions If you build on faulty assumptions 95% in your code
  15. 15 MIN IN / 25 MIN REMAINING OR SPEED UP!
  16. Define the symptoms Collect everything you can
  17. Automated tests preferred, but manual is okay too LEGOS
  18. Understand the fundamental nature Exactly why We’ll get into the tools & techniques
  19. 25 MIN IN / 15 MIN REMAINING
  20. Other nice-to-haves: File syncing Git integration Run tools PhpStorm, Sublime Text, vim NOT Notepad++ or Dreamweaver
  21. Debuggers are awesome tool … Better than primitive approaches Examine in real time Xdebug Chrome developer tools
  22. Advanced breakpoints Grouping Conditions
  23. Stack trace Grep for error message Set breakpoint For example
  24. Examine variables How did I get here? – call stack
  25. Don’t have enough time to cover all of these
  26. Works in Twig, PHP, CLI, etc. Better than vardump Handles: - Circular references - Deeply-nested objects Public vs protected vs private Custom casters to change representation
  27. Q: How many people here are using Git? Familiar with Git bisect? Built-in tool Assists with running a binary search across your commits
  28. Scales logarithmically – runs in O(log N) 7 commits - 4 tests 10x: 70 commits – 8 tests 100x: 700 commits - 16 tests
  29. Fifth technique
  30. 1. There is ALWAYS a logical explanation 3. Great learning opportunity 4. Challenge everything
  31. ? Other Questions? Talk afterwards or contact me
  32. Thank you guys I’d appreciate feedback