As all children of the 80's know, Knight Rider was a story about an otherwise 'normal' law enforcement officer who through the use of Technology (KITT) become an unstoppable machine. In this talk find out how programmers should be using technology/tools to make themselves better and more productive.
Marketplace and Quality Assurance Presentation - Vincent Chirchir
Zendcon 2008 Knight Rider
1. The Knight Rider Methodology
to Software Development
Eli White
http://eliw.com/
2. Knight Coder
“A shadowy flight into the dangerous world of a
man who uses tools & technologies to make
better coders.”
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
3. Guidelines for this talk
These are suggestions
I won't mention all options
Use what makes YOU better ... experiment
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
4. Editor
Most important piece of technology!
Good Features:
Code completion & Tool tips
Regular expression search & replace
Context sensitive highlighting
Extensibility
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
5. Editor
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
6. Profiler
Discover where you need to optimize
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
7. Profiler
valgrind / callgrind
xdebug
kcachegrind
APD
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
8. Load Tester
Stress your code
See at what point it breaks
Document benchmarks to test improvement
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
9. Load Tester
http_load
siege
Apache Bench
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
10. Performance Tools
Use technologies that make performance easy
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
11. Performance Tools
APC – Instant Performance & Caching
Memcached – Distributed Caching
Gearman – Parallel & Batch Processing
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
12. Libraries
Don't reinvent the wheel!
Use other coders' time as your own
Know when to walk away though
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
13. Libraries
PHP:
YUI
JS:
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
14. Debugger
Code is never perfect the first time
Use technology to help you find the problems
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
15. Debugger
Zend Studio
APD
WARNING: Maybe not so easy!
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
16. Debugger
Don't Forget:
echo '<pre>'; var_dump($var); echo '</pre>';
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
17. Debugger
Web Developer Toolbar
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
18. Test Suites
Tests are great
Tests keep your code running
Make writing tests easy for yourself
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
19. Test Suites
PHPT
Selenium
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
20. Multi-Tier Servers
Have multiple servers with different purposes
Control the flow of development & testing
Not always separate machines
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
21. Multi-Tier Servers
Development
Initial independent work by programmers
Integration
Making sure all previous work plays well together
Testing
Running unit & regression tests
Staging
As true to production as possible for final tests
Production
It's live and hopefully working
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
22. PHP Error Reporting
E_ALL & E_STRICT
It is your friend. 'Nuff said.
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
23. Version Control
Just do it!
So many benefits:
Recovering from mistakes
Integrating code from multiple sources
Concurrent work streams
Finding old code
Assigning blame
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
24. Version Control
CVS
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
25. Lint
Automatically find broken or suspicious code
Hook into version control for total protection
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
26. Lint
php -l
Language syntax only
PHPLint
Strict, Simple code required, Type validation
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
27. CodeSniffer
Coding standards are important for teams > 1
CodeSniffer will ensure compliance
Hook into version control
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
28. GUIs
Yes I said GUIs
Use them to make complicated tasks easy
DB maintenance, Version Control, etc
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
29. GUIs
DB:
Aqua Data Studio
MySQL
Workbench
Version Control:
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
30. Little Things
Don't underestimate the power of:
rsync
grep
find
sed
cut
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
31. Hardware
Hardware is your friend
Much cheaper than people
Make sure you acquire anything that will help
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008
33. Social Networking
Make contacts
You are at the best place for that right now
Stay in touch
The Knight Rider Methodology to Software Development
Eli White - ZendCon 08 - 9/16/2008