DOMAIN DRIVEN WEB DESIGN Tom Scott Tuesday, 30 October 12 - - PowerPoint PPT Presentation

domain driven web design
SMART_READER_LITE
LIVE PREVIEW

DOMAIN DRIVEN WEB DESIGN Tom Scott Tuesday, 30 October 12 - - PowerPoint PPT Presentation

DOMAIN DRIVEN WEB DESIGN Tom Scott Tuesday, 30 October 12 TRADITIONAL WEB DESIGN Tuesday, 30 October 12 FOCUSES ON THE PAGE Follows a desktop publishing WYSIWYG paradigm Tuesday, 30 October 12 NOT VERY WEBBY Designed like a magazine, so...


slide-1
SLIDE 1

DOMAIN DRIVEN WEB DESIGN

Tom Scott

Tuesday, 30 October 12

slide-2
SLIDE 2

TRADITIONAL WEB DESIGN

Tuesday, 30 October 12

slide-3
SLIDE 3

FOCUSES ON THE PAGE

Follows a desktop publishing WYSIWYG paradigm

Tuesday, 30 October 12

slide-4
SLIDE 4

NOT VERY WEBBY

Designed like a magazine, so...

  • Focus is on the page layout rather than what

the thing is and its relationship to other things

  • Little thought to the rest of the application

(document design throughout to database)

  • No URI for fragments of a page
  • Focus on the HTML page only

Tuesday, 30 October 12

slide-5
SLIDE 5

POINTABILITY

The Web is made of links not pages, links let you:

  • Bookmark, tweet, email and talk about things
  • Search and find stuff
  • Deliver content to different platforms (different

representations)

  • The power of the Web is in the connections it

makes – and value is in the context

Tuesday, 30 October 12

slide-6
SLIDE 6

PEOPLE CARE ABOUT THINGS

  • People search for things (people,

programmes, music, films, places etc.)

  • They get back documents and/or

data about that thing (and links)

  • The Web is made up of information

making assertions about the world

Tuesday, 30 October 12

slide-7
SLIDE 7

FOR EXAMPLE PROGRAMMES

  • In a broadcast world the BBC cares

about the transmission of assets

  • But the audience care more about

the more abstract notion of a programme or episode

  • The culturally significant thing within

the domain is the programme not the trasmission

Tuesday, 30 October 12

slide-8
SLIDE 8

MUSIC IS THE SAME...

  • Most people are more interested

in the artist, work or version

  • Broadcasters need to worry about

the asset to be broadcast

  • Record companies the CD or

MP3

Tuesday, 30 October 12

slide-9
SLIDE 9

AND PEOPLE LIKE MONKEYS

  • The habitats where they live
  • Their behaviours
  • Their relatives

Tuesday, 30 October 12

slide-10
SLIDE 10

HOW WE MAKE (SOME) WEBSITES

bbc.co.uk/programmes bbc.co.uk/music and bbc.co.uk/wildlifefinder

Tuesday, 30 October 12

slide-11
SLIDE 11

EXPLORE THE DOMAIN

  • Find a domain expert!
  • Get them to sketch their world
  • Focus on modelling real things not

web pages

  • Be prepared to do this through
  • ut the project

Tuesday, 30 October 12

slide-12
SLIDE 12

Brands Series Episodes Programme Service Version Event Broadcast Content Publishing

IDENTIFY YOUR DOMAIN OBJECTS AND THE RELATIONSHIP BETWEEN THEM

  • Build a picture of of the types of

things they’re concerned with – list them

  • Sketch out how those things relate

to each other

  • Draw the ontology not the

database schema

Tuesday, 30 October 12

slide-13
SLIDE 13

CHECK YOUR DOMAIN MODEL WITH USERS

  • Run focus groups and speak to

users

  • Ask them to sketch their

understanding of the domain

  • Synthesise the expert and user

models

Tuesday, 30 October 12

slide-14
SLIDE 14

CHECK TO SEE IF YOU’RE ALREADY PUBLISHING SOME OF YOUR DOMAIN OBJECTS

  • If you are link to those URIs and

publish there – don’t mint new URIs for existing objects

  • One URI for one thing
  • Think of a URI as a database key

but on a Web scale

Tuesday, 30 October 12

slide-15
SLIDE 15

DESIGN YOUR DATABASE

  • Translate your domain model into

a physical database schema

Tuesday, 30 October 12

slide-16
SLIDE 16

SOURCE AND PIPE YOUR DATA

  • From internal sources
  • External (under permissive terms or

paid for commercial data)

  • Probably need to reshape it to make it

suitable for publishing

  • Consider the license terms – how will

it be used?

Tuesday, 30 October 12

slide-17
SLIDE 17

MAKE YOUR MODELS

  • (assuming you’re using an MVC

framework)

  • Models should contain your

business logic

Tuesday, 30 October 12

slide-18
SLIDE 18

DESIGN YOUR URI SCHEME

  • Should flow from your domain

model

  • Remember if you want to talk about

it give it a URI (even if its not linked to from the HTML representation)

  • Different representations might

need different resources

Tuesday, 30 October 12

slide-19
SLIDE 19

HELLO WORLD

  • Make hello world pages for

primary objects

  • And primary aggregations

Tuesday, 30 October 12

slide-20
SLIDE 20

DEFINE THE DATA YOU NEED TO BUILD EACH PAGE

  • Think about the data for all

representations – not just HTML

  • Reference transcluded resources

Tuesday, 30 October 12

slide-21
SLIDE 21

BUILD YOUR HTML AND OTHER REPRESENTATIONS

  • Design your document to be

semantically correct and accessible

  • This isn’t about page layout –

that’s what CSS is for

  • Document design is independent
  • f page layout

Tuesday, 30 October 12

slide-22
SLIDE 22

APPLY LAYOUT CSS

  • You’re wireframing!
  • Use CSS to move elements

around

  • Try and test different options

Tuesday, 30 October 12

slide-23
SLIDE 23

APPLY DECOR CSS

  • Visual design gets added now
  • Try to work in CSS where

possible

  • Try and test different options

Tuesday, 30 October 12

slide-24
SLIDE 24

NEVER STOP TESTING

  • Personas are just abstractions of

real people

  • It’s better to test with real people

Tuesday, 30 October 12

slide-25
SLIDE 25

ADD JAVASCRIPT AND AJAX

  • Ajax should be seen as a

progressive enhancement

  • Google can’t eval a JavaScript –

give the Google bot HTML to chew through

  • Your site will be more accessible

Tuesday, 30 October 12

slide-26
SLIDE 26

ONE WEB

One URI multiple representations

Tuesday, 30 October 12

slide-27
SLIDE 27

ONE URI FOR ONE THING

  • Content Negotiate to return the appropriate

representation

  • One URI is better than having:

foo.bar/mobile/:thing OR m.foo.bar/:thing

  • Content/data might be different for different

representation

  • Make the raw data available

Tuesday, 30 October 12

slide-28
SLIDE 28

THIS IS LINKED DATA

  • Use HTTP URIs to identify things
  • Return information (data) when

you go to that URI

  • Include (typed i.e. semantic links)

links to other things

Tuesday, 30 October 12

slide-29
SLIDE 29

THANKS

derivadow.com

Tuesday, 30 October 12