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 Slide

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

    View Slide

  3. View Slide

  4. View Slide

  5. pipe

    View Slide

  6. pipe
    cigar

    View Slide

  7. View Slide

  8. pipes?
    pipes!
    pipes
    pipes?

    View Slide

  9. View Slide

  10. font

    View Slide

  11. 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 Slide

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

    View Slide

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

    View Slide

  14. font
    typeface
    family
    superfamily
    font
    weight
    style
    variation

    View Slide

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

    View Slide

  16. 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 Slide

  17. USER INTERFACE
    “font” refers to typefaces

    View Slide

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

    View Slide

  19. 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 Slide

  20. 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 Slide

  21. # 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 Slide

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

    View Slide

  23. View Slide

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

    View Slide

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

    View Slide

  26. Naming things =
    Domain modeling

    View Slide

  27. View Slide

  28. WHAT’S IN
    A NAME?
    GOOD

    View Slide

  29. descriptive
    accessible
    clear
    consistent
    GOOD NAMES ARE

    View Slide

  30. vague
    obscure
    ambiguous
    contradictory
    BAD NAMES ARE

    View Slide

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

    View Slide

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

    View Slide

  33. How are these things di erent?

    View Slide

  34. View Slide

  35. 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 Slide

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

    View Slide

  37. View Slide

  38. 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 Slide

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

    View Slide

  40. Natural
    Intuitive
    Unambiguous
    Simple

    View Slide

  41. Tags + semantics

    View Slide

  42. 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 Slide

  43. 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 Slide

  44. View Slide

  45. Naming things =
    Branding

    View Slide

  46. 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 Slide

  47. View Slide

  48. 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 Slide

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

    View Slide

  50. 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 Slide

  51. “oink” “tweet”
    VS.

    View Slide

  52. Use invented or
    recontextualized words
    with caution

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  57. Q&A

    View Slide