Upload
zendcon
View
1.712
Download
1
Tags:
Embed Size (px)
DESCRIPTION
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.
Citation preview
The Knight Rider Methodology to Software Development
Eli Whitehttp://eliw.com/
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
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
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
Editor
Most important piece of technology!
Good Features:Code completion & Tool tips
Regular expression search & replaceContext sensitive highlighting
Extensibility
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
Editor
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
Profiler
Discover where you need to optimize
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
Profiler
valgrind / callgrind
kcachegrind
xdebug
APD
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
Load Tester
Stress your codeSee at what point it breaks
Document benchmarks to test improvement
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
Load Tester
http_load
siege
Apache Bench
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
Performance Tools
Use technologies that make performance easy
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
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
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
Libraries
PHP:
JS:YUI
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
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
Debugger
APD
Zend Studio
WARNING: Maybe not so easy!
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
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
Debugger
Web Developer Toolbar
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
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
Test Suites
PHPT
Selenium
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
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
Multi-Tier Servers
DevelopmentInitial independent work by programmers
IntegrationMaking sure all previous work plays well together
TestingRunning unit & regression tests
StagingAs true to production as possible for final tests
ProductionIt's live and hopefully working
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
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
Version Control
Just do it!
So many benefits:Recovering from mistakes
Integrating code from multiple sourcesConcurrent work streams
Finding old codeAssigning blame
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
Version Control
CVS
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
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
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
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
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
GUIs
DB:
Version Control:
Aqua Data Studio
MySQL Workbench
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
Little Things
Don't underestimate the power of:
rsyncgrepfindsedcut
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
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
Hardware
The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008
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
Social Networking
Any Questions?
For this presentation & more:
http://eliw.com/