planning javascript and ajax for larger teams

85
Planning JavaScript and Ajax for larger teams Christian Heilmann @media Ajax, London, November 2007

Upload: christian-heilmann

Post on 06-May-2015

10.078 views

Category:

Technology


0 download

DESCRIPTION

My talk at the @media Ajax conference in London in November 2007 about the non-technical steps you can take to make JavaScript and Ajax work for larger teams.

TRANSCRIPT

Page 1: Planning JavaScript and Ajax for larger teams

Planning JavaScript and Ajax for larger teams

Christian Heilmann

@media Ajax, London, November 2007

Page 2: Planning JavaScript and Ajax for larger teams

This is awesome!

Page 3: Planning JavaScript and Ajax for larger teams

Here we are at a conference about JavaScript

(oh well, Ajax)

Page 4: Planning JavaScript and Ajax for larger teams
Page 5: Planning JavaScript and Ajax for larger teams

DOM Scripting Task Force

Page 6: Planning JavaScript and Ajax for larger teams

DOM Scripting Task Force

Page 7: Planning JavaScript and Ajax for larger teams

We’ve done it.

JavaScript is cool again and people take it much more

serious.

Page 8: Planning JavaScript and Ajax for larger teams

Now it is time to make it mature.

Page 9: Planning JavaScript and Ajax for larger teams

We do that in a technical manner.

Page 10: Planning JavaScript and Ajax for larger teams

The technical part will get a solution.

Page 11: Planning JavaScript and Ajax for larger teams

However, danger lurks around every corner.

Page 12: Planning JavaScript and Ajax for larger teams

How we can make JavaScript and Ajax solutions work with

larger teams?

Page 13: Planning JavaScript and Ajax for larger teams

The first step is to stop making assumptions.

Page 14: Planning JavaScript and Ajax for larger teams

Achtung alles Lookenpeepers!

Dies Machine is nicht fur gefingerpoken und mittengraben.

Is easy schnappen der springenwerk, blowenfusen und poppencorken mit spitzensparken.

Is nicht fur gewerken by das dummkopfen.

Das rubbernecken sightseeren keepen Cottenpickenen hands in das pockets - relaxen und Watch Das Blinken Lights. 

Page 15: Planning JavaScript and Ajax for larger teams

“Do not fiddle with other people’s knobs unless you know what you are doing.”

Page 16: Planning JavaScript and Ajax for larger teams

JavaScript is not magic and should not be confusing and

difficult.

Page 17: Planning JavaScript and Ajax for larger teams

Most of the time it is confusing because of other

assumptions.

Page 18: Planning JavaScript and Ajax for larger teams

Let’s take a look at some of them:

Page 19: Planning JavaScript and Ajax for larger teams

“I don’t need to tell people that - they know already.”

Page 20: Planning JavaScript and Ajax for larger teams

“Surely this has been done before - and by people better

than me.”

Page 21: Planning JavaScript and Ajax for larger teams

“This works right now. There won’t be a need to change it.”

Page 22: Planning JavaScript and Ajax for larger teams

“This never worked in the past - it won’t work now.”

Page 23: Planning JavaScript and Ajax for larger teams

“This is a minor issue only for this instance – there’s no

need to file a bug.”

Page 24: Planning JavaScript and Ajax for larger teams

“Hack that now and we’ll get time later to fix it.”

Page 25: Planning JavaScript and Ajax for larger teams

These are all things we need to avoid.

Page 26: Planning JavaScript and Ajax for larger teams

JavaScript and Ajax are a part of the normal

development cycle.

Page 27: Planning JavaScript and Ajax for larger teams

They cannot be bolted on at the end by super-human

developers.

Page 28: Planning JavaScript and Ajax for larger teams

They are as much an accessibility and usability

task as the rest of the interface is.

Page 29: Planning JavaScript and Ajax for larger teams

No more heroes!

Page 30: Planning JavaScript and Ajax for larger teams

A good developer is not a very gifted and impressive

developer.

Page 31: Planning JavaScript and Ajax for larger teams

It is a developer that can work with others and works

for the next developer to take over.

Page 32: Planning JavaScript and Ajax for larger teams

People will move from product to product or leave

the company.

Page 33: Planning JavaScript and Ajax for larger teams

Web products are never finished.

Page 34: Planning JavaScript and Ajax for larger teams

It is time to advertise working as if you won’t ever see the

code again.

Page 35: Planning JavaScript and Ajax for larger teams

How?

Page 36: Planning JavaScript and Ajax for larger teams

Following a code standard

Page 37: Planning JavaScript and Ajax for larger teams

Following a code standard

–you can assess the quality of code

Page 38: Planning JavaScript and Ajax for larger teams

Following a code standard

–you can assess the quality of code

–easy handover from developer to developer

Page 39: Planning JavaScript and Ajax for larger teams

Following a code standard

–you can assess the quality of code

–easy handover from developer to developer

–reliable source control

Page 40: Planning JavaScript and Ajax for larger teams

Following a code standard

–you can assess the quality of code

–easy handover from developer to developer

–reliable source control

–You make JavaScript a mature technology.

Page 41: Planning JavaScript and Ajax for larger teams

What code standard?

Page 42: Planning JavaScript and Ajax for larger teams

Whatever the team agrees on and feels comfortable with.

Page 43: Planning JavaScript and Ajax for larger teams

Make sure to have a reason for your code standards.

Page 44: Planning JavaScript and Ajax for larger teams

Take time to train each new hire on them.

Page 45: Planning JavaScript and Ajax for larger teams

How can you find reasonable standards?

Page 46: Planning JavaScript and Ajax for larger teams

Conduct Code reviews

Page 47: Planning JavaScript and Ajax for larger teams

Conduct Code reviews–You find problems and solutions.

Page 48: Planning JavaScript and Ajax for larger teams

Conduct Code reviews–You find problems and solutions.

–You assess training needs

Page 49: Planning JavaScript and Ajax for larger teams

Conduct Code reviews–You find problems and solutions.

–You assess training needs

–You share the knowledge throughout the team

Page 50: Planning JavaScript and Ajax for larger teams

Conduct Code reviews–You find problems and solutions.

–You assess training needs

–You share the knowledge throughout the team

–You can identify code that should be a reusable component

Page 51: Planning JavaScript and Ajax for larger teams

Doesn’t that stop innovation?

Page 52: Planning JavaScript and Ajax for larger teams

Nein.

Page 53: Planning JavaScript and Ajax for larger teams

Development time is not the time to innovate or change.

Page 54: Planning JavaScript and Ajax for larger teams

Don’t listen to the

“inner hacker”.

Page 55: Planning JavaScript and Ajax for larger teams
Page 56: Planning JavaScript and Ajax for larger teams

Production code does not need to be optimized from

the start.

Page 57: Planning JavaScript and Ajax for larger teams

It needs to be understandable and

maintainable.

Page 58: Planning JavaScript and Ajax for larger teams

–use library code, even if it appears huge (a lot of the size is a myth)

Page 59: Planning JavaScript and Ajax for larger teams

–use library code, even if it appears huge (a lot of the size is a myth)

–Use comments to explain what is going on

Page 60: Planning JavaScript and Ajax for larger teams

–use library code, even if it appears huge (a lot of the size is a myth)

–Use comments to explain what is going on

–Use explanatory variable and method names

Page 61: Planning JavaScript and Ajax for larger teams

–use library code, even if it appears huge (a lot of the size is a myth)

–Use comments to explain what is going on

–Use explanatory variable and method names

–Don’t reinvent the wheel even if you consider yours superior.

Page 62: Planning JavaScript and Ajax for larger teams

Production code is for humans.

Page 63: Planning JavaScript and Ajax for larger teams

Production code is for humans.

Live code is for machines.

Page 64: Planning JavaScript and Ajax for larger teams

In between, we have a build process.

Page 65: Planning JavaScript and Ajax for larger teams

Build process:

Page 66: Planning JavaScript and Ajax for larger teams

Build process:–Validation (Tidy, JSLint)

Page 67: Planning JavaScript and Ajax for larger teams

Build process:–Validation (Tidy, JSLint)

–Minification (JSMin, CSS minifier)

Page 68: Planning JavaScript and Ajax for larger teams

Build process:–Validation (Tidy, JSLint)

–Minification (JSMin, CSS minifier)

–Consolidation (one CSS and one JS instead of dozens)

Page 69: Planning JavaScript and Ajax for larger teams

Build process:–Validation (Tidy, JSLint)

–Minification (JSMin, CSS minifier)

–Consolidation (one CSS and one JS instead of dozens)

–Tagging as “live code”

Page 70: Planning JavaScript and Ajax for larger teams

What about playtime?

Page 71: Planning JavaScript and Ajax for larger teams

Find creative outlets for team members.

Page 72: Planning JavaScript and Ajax for larger teams

Let them create reusable components identified in

code reviews.

Page 73: Planning JavaScript and Ajax for larger teams

Foster internal communication.

Page 74: Planning JavaScript and Ajax for larger teams

Lightning Talks:

–5 Minutes presentation

–5 minutes demo

–5 minutes discussion

Every Thursday

11.45 – 12.00

Page 75: Planning JavaScript and Ajax for larger teams

If your company is clever, it’ll share these finds with the

world.

Page 76: Planning JavaScript and Ajax for larger teams

So how do you plan JavaScript and Ajax for larger teams?

Page 77: Planning JavaScript and Ajax for larger teams

Get the team to talk and agree on what works best.

Page 78: Planning JavaScript and Ajax for larger teams

Architect your JavaScript:

Page 79: Planning JavaScript and Ajax for larger teams

Architect your JavaScript:–Modules instead of views / pages /

sections

Page 80: Planning JavaScript and Ajax for larger teams

Architect your JavaScript:–Modules instead of views / pages /

sections

–Skins for each module (JS,non-JS state)

Page 81: Planning JavaScript and Ajax for larger teams

Architect your JavaScript:–Modules instead of views / pages /

sections

–Skins for each module (JS,non-JS state)

–Configuration options for each module.

Page 82: Planning JavaScript and Ajax for larger teams

Architect your JavaScript:–Modules instead of views / pages /

sections

–Skins for each module (JS,non-JS state)

–Configuration options for each module.

–Events for module and application changes.

Page 83: Planning JavaScript and Ajax for larger teams

Involve Design and Engineering in the process and explain the rationale of

your plan.

Page 84: Planning JavaScript and Ajax for larger teams

Communication and sharing information is better than any architectural blueprint you or I

could come up with.

Page 85: Planning JavaScript and Ajax for larger teams

THANKS!

Christian Heilmann

http://[email protected]