Naming Things

C157b16234f1e75e8eac3698c1d4414a?s=47 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.

C157b16234f1e75e8eac3698c1d4414a?s=128

David Demaree

January 25, 2012
Tweet

Transcript

  1. This is a talk by David Demaree The name of

    this talk is NAMING THINGS Refresh Chicago • January 25, 2012
  2. There are only two hard things in computer science: cache

    invalidation and NAMING THINGS http://martinfowler.com/bliki/TwoHardThings.html
  3. None
  4. None
  5. pipe

  6. pipe cigar

  7. None
  8. pipes? pipes! pipes pipes?

  9. None
  10. font

  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
  12. font the word most commonly used by our customers to

    refer to a whole typeface
  13. “Hey, did you get that font thing figured out?”

  14. font typeface family superfamily font weight style variation

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

    = Gotham Narrow = All Gothams
  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
  17. USER INTERFACE “font” refers to typefaces

  18. COMMUNICATIONS “fonts” refers to typefaces or type in general typefaces

    usually preferred over font or family
  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
  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
  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
  22. @families.each do |family| # What kind of family is this?

    family.class #=> Browse::FamilyCardPresenter?!?!?! end
  23. None
  24. fonts or families fonts or licenses my fonts? purchased or

    licensed THE SEMANTICS OF LICENSING
  25. My Licenses My Web Licenses My Fonts Purchased Licenses Fonts

    I’ve Purchased Purchased Fonts
  26. Naming things = Domain modeling

  27. None
  28. WHAT’S IN A NAME? GOOD

  29. descriptive accessible clear consistent GOOD NAMES ARE

  30. vague obscure ambiguous contradictory BAD NAMES ARE

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

    essible lear sistent
  32. Pro applications tend to sacrifice simple, intuitive naming for RAW

    POWER
  33. How are these things di erent?

  34. None
  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
  36. THE GREATEST DOMAIN MODEL OF ALL TIME (according to David)

  37. None
  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
  39. Events Faces Places = When? = Who? = Where?

  40. Natural Intuitive Unambiguous Simple

  41. Tags + semantics

  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
  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
  44. None
  45. Naming things = Branding

  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
  47. None
  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
  49. Making a phone call = calling Posting a tweet on

    Twitter = tweeting Posting an oink on Oink = oinking
  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
  51. “oink” “tweet” VS.

  52. Use invented or recontextualized words with caution

  53. Stream Circles Hangouts Incoming +1’s New from friends Groups Video

    chat New from… ? Like GOOGLE+
  54. NEW NEW TWITTER How are Connect and Discover di erent?

    How am I not Connecting or Discovering on the Home page?
  55. TOO REDUCTIVE Home Connect Discover Timeline Who to follow Local

    trends Interactions Mentions Who to follow Stories Trends Activity
  56. THANKS! ddemaree@gmail.com @ddemaree on Twitter http://demaree.me

  57. Q&A