35
The Knight Rider Methodology to Software Development Eli White http://eliw.com/

Zendcon 2008 Knight Rider

  • Upload
    zendcon

  • View
    1.712

  • Download
    1

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

Page 1: Zendcon 2008 Knight Rider

The Knight Rider Methodology to Software Development

Eli Whitehttp://eliw.com/

Page 2: Zendcon 2008 Knight Rider

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

Page 3: Zendcon 2008 Knight Rider

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

Page 4: Zendcon 2008 Knight Rider

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

Page 5: Zendcon 2008 Knight Rider

The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008

Editor

Page 6: Zendcon 2008 Knight Rider

The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008

Profiler

Discover where you need to optimize

Page 7: Zendcon 2008 Knight Rider

The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008

Profiler

valgrind / callgrind

kcachegrind

xdebug

APD

Page 8: Zendcon 2008 Knight Rider

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

Page 9: Zendcon 2008 Knight Rider

The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008

Load Tester

http_load

siege

Apache Bench

Page 10: Zendcon 2008 Knight Rider

The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008

Performance Tools

Use technologies that make performance easy

Page 11: Zendcon 2008 Knight Rider

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

Page 12: Zendcon 2008 Knight Rider

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

Page 13: Zendcon 2008 Knight Rider

The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008

Libraries

PHP:

JS:YUI

Page 14: Zendcon 2008 Knight Rider

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

Page 15: Zendcon 2008 Knight Rider

The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008

Debugger

APD

Zend Studio

WARNING: Maybe not so easy!

Page 16: Zendcon 2008 Knight Rider

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>';

Page 17: Zendcon 2008 Knight Rider

The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008

Debugger

Web Developer Toolbar

Page 18: Zendcon 2008 Knight Rider

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

Page 19: Zendcon 2008 Knight Rider

The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008

Test Suites

PHPT

Selenium

Page 20: Zendcon 2008 Knight Rider

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

Page 21: Zendcon 2008 Knight Rider

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

Page 22: Zendcon 2008 Knight Rider

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.

Page 23: Zendcon 2008 Knight Rider

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

Page 24: Zendcon 2008 Knight Rider

The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008

Version Control

CVS

Page 25: Zendcon 2008 Knight Rider

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

Page 26: Zendcon 2008 Knight Rider

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

Page 27: Zendcon 2008 Knight Rider

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

Page 28: Zendcon 2008 Knight Rider

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

Page 29: Zendcon 2008 Knight Rider

The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008

GUIs

DB:

Version Control:

Aqua Data Studio

MySQL Workbench

Page 30: Zendcon 2008 Knight Rider

The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008

Little Things

Don't underestimate the power of:

rsyncgrepfindsedcut

Page 31: Zendcon 2008 Knight Rider

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

Page 32: Zendcon 2008 Knight Rider

The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008

Hardware

Page 33: Zendcon 2008 Knight Rider

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

Page 34: Zendcon 2008 Knight Rider

The Knight Rider Methodology to Software Development Eli White - ZendCon 08 - 9/16/2008

Social Networking

Page 35: Zendcon 2008 Knight Rider

Any Questions?

For this presentation & more:

http://eliw.com/