Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Naming Things

David Demaree
January 25, 2012

Naming Things

A talk about the role of naming and semantics in code, usability, and more. Presented at Refresh Chicago, January 25, 2012.

David Demaree

January 25, 2012
Tweet

More Decks by David Demaree

Other Decks in Design

Transcript

  1. This is a talk by David Demaree
    The name of this talk is
    NAMING THINGS
    Refresh Chicago • January 25, 2012

    View full-size slide

  2. There are only two hard things in computer science:
    cache invalidation and
    NAMING THINGS
    http://martinfowler.com/bliki/TwoHardThings.html

    View full-size slide

  3. pipes?
    pipes!
    pipes
    pipes?

    View full-size slide

  4. font the metal type character set of a single
    size and style of a particular typeface
    font a digital file containing the character set
    for a particular variation of a typeface
    font the database object representing a
    particular font file

    View full-size slide

  5. font the word most commonly used by our
    customers to refer to a whole typeface

    View full-size slide

  6. “Hey, did you get that
    font thing figured out?”

    View full-size slide

  7. font
    typeface
    family
    superfamily
    font
    weight
    style
    variation

    View full-size slide

  8. font
    typeface
    family
    superfamily
    = All Gothams or Gotham Narrow
    = Gotham Narrow
    = All Gothams

    View full-size slide

  9. font
    font
    font
    font
    = All Gothams
    = Gotham Narrow
    = Gotham Narrow Bold
    = Font.find(‘gotham-narrow-bold’)
    CUSTOMER A
    CUSTOMER B
    TYPE DESIGNER
    TYPEKIT ENGINEER

    View full-size slide

  10. USER INTERFACE
    “font” refers to typefaces

    View full-size slide

  11. COMMUNICATIONS
    “fonts” refers to typefaces or type in general
    typefaces usually preferred over font or family

    View full-size slide

  12. BEHIND THE SCENES
    TypekitFontFamily
    FamilyChoice
    FontVariation
    FontFile
    a typeface on Typekit.com
    a typeface added to a Kit
    a weight or style of a family
    the actual font file for a variation

    View full-size slide

  13. TypekitFontFamily
    Browse::Family
    FontFamily
    Family
    a typeface on Typekit.com
    metadata for our new browsing UI
    a presenter for font/family data, no longer actively used
    see above

    View full-size slide

  14. # It's called Family instead of Font so that
    # we can potentially reserve the name Font for
    # the current FontVariation. Naming is hard.
    class Family
    # ...
    end
    ACTUAL CODE COMMENT FROM THE TYPEKIT.COM RAILS APP

    View full-size slide

  15. @families.each do |family|
    # What kind of family is this?
    family.class
    #=> Browse::FamilyCardPresenter?!?!?!
    end

    View full-size slide

  16. fonts or families
    fonts or licenses
    my fonts?
    purchased or licensed
    THE SEMANTICS OF LICENSING

    View full-size slide

  17. My Licenses
    My Web Licenses
    My Fonts
    Purchased Licenses
    Fonts I’ve Purchased
    Purchased Fonts

    View full-size slide

  18. Naming things =
    Domain modeling

    View full-size slide

  19. WHAT’S IN
    A NAME?
    GOOD

    View full-size slide

  20. descriptive
    accessible
    clear
    consistent
    GOOD NAMES ARE

    View full-size slide

  21. vague
    obscure
    ambiguous
    contradictory
    BAD NAMES ARE

    View full-size slide

  22. NAMING IS ALWAYS
    a compromise
    vag
    obsc
    ambig
    contrad
    riptive
    essible
    lear
    sistent

    View full-size slide

  23. Pro applications tend to sacrifice simple, intuitive naming for
    RAW POWER

    View full-size slide

  24. How are these things di erent?

    View full-size slide

  25. Hard for newcomers
    Extremely versatile for those
    trained in the system
    O ers more freedom to the
    user to define their own model
    but
    and

    View full-size slide

  26. THE GREATEST
    DOMAIN MODEL
    OF ALL TIME
    (according to David)

    View full-size slide

  27. Events
    Faces
    Places
    Photos grouped by time
    Photos grouped by people in them
    Photos grouped by where
    iPhoto’s library is automatically grouped into

    View full-size slide

  28. Events
    Faces
    Places
    = When?
    = Who?
    = Where?

    View full-size slide

  29. Natural
    Intuitive
    Unambiguous
    Simple

    View full-size slide

  30. Tags + semantics

    View full-size slide

  31. Typical tagging systems
    Users apply various words to describe a thing
    No framework for knowing what the words mean
    No guarantee of internal consistency
    Crystal Light National Aerobics
    Championship Opening
    #videos #funny #80s #wtf #rofl
    http://youtube.com/watch?v=ozoTzkCeO-A

    View full-size slide

  32. Semantic tagging systems
    Users associate a thing with specific other things
    Tags aren’t just abstract names, they provide context
    Built-in mental model for organizing and finding information
    Crystal Light National Aerobics
    Championship Opening
    http://youtube.com/watch?v=ozoTzkCeO-A
    Kind: Video When: 1980s
    Genre: Vintage TV
    #wtf #rofl
    Like

    View full-size slide

  33. Naming things =
    Branding

    View full-size slide

  34. JAKOB NIELSEN’S GUIDELINES FOR NAMING
    Supplement made-up words
    with known words
    Supplement brand names
    with generic terms
    Learn to recognize and
    avoid internal jargon

    View full-size slide

  35. The product’s name is OINK
    Things you post on Oink are OINKS
    The act of posting an Oink on Oink
    is OINKING or TO OINK

    View full-size slide

  36. Making a phone call = calling
    Posting a tweet on Twitter = tweeting
    Posting an oink on Oink = oinking

    View full-size slide

  37. oinking
    rating
    reviewing
    posting
    MAKES SENSE ONLY WITHIN THIS APP
    MAKE SENSE IN A BROADER CONTEXT
    NO PRIOR KNOWLEDGE NEEDED
    CLEARER AS TO INTENT

    View full-size slide

  38. “oink” “tweet”
    VS.

    View full-size slide

  39. Use invented or
    recontextualized words
    with caution

    View full-size slide

  40. Stream
    Circles
    Hangouts
    Incoming
    +1’s
    New from friends
    Groups
    Video chat
    New from… ?
    Like
    GOOGLE+

    View full-size slide

  41. NEW NEW TWITTER
    How are Connect and Discover
    di erent?
    How am I not Connecting or
    Discovering on the Home page?

    View full-size slide

  42. TOO REDUCTIVE
    Home
    Connect
    Discover
    Timeline
    Who to follow
    Local trends
    Interactions
    Mentions
    Who to follow
    Stories
    Trends
    Activity

    View full-size slide

  43. THANKS!
    [email protected]
    @ddemaree on Twitter
    http://demaree.me

    View full-size slide