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

Front-end Architecture

Front-end Architecture

An early exploration of the value of investing more seriously in front-end web development as the world was transitioning from a table-centric approach to front-end development to following Web Standards and building more maintainable front-ends.

Garrett Dimon
PRO

July 21, 2006
Tweet

More Decks by Garrett Dimon

Other Decks in Programming

Transcript

  1. Front-End Architecture
    It’s an investment for the future.

    View Slide

  2. LOW
    Architectural Investment
    HIGH
    Short-Term Costs
    Long-Term Costs

    View Slide

  3. 5 Year Lifetime
    Short-Term Costs
    Long-Term Costs
    Low Investment

    View Slide

  4. 5 Year Lifetime
    Short-Term Costs
    Long-Term Costs
    High Investment

    View Slide

  5. Software Entropy &
    Total Cost of Ownership
    Maintenance, Morale, Updates, etc.

    View Slide

  6. Explore Your Options
    The first solution isn’t always the best.

    View Slide

  7. Be Proactive instead of reactive.
    Anticipating Impact and thinking ahead.

    View Slide

  8. Myth of Separation
    Loose coupling is a target, not a goal.

    View Slide

  9. Look for Simple solutions.
    Wow! This page prints beautifully!

    View Slide

  10. Typographic Choices
    (and ramifications)
    Initial Costs Content
    Maintenance
    Code
    Maintenance
    Accessibility User-Agent
    Consistency
    Design
    Control
    Separation
    CSS
    Image
    Replacement
    sIFR
    Image Tags
    Server-
    Generated
    Images

    View Slide

  11. In the Real World

    View Slide

  12. http://www.DallasNews.com

    View Slide

  13. http://www.NewYorkTimes.com

    View Slide

  14. http://www.MySpace.com

    View Slide

  15. http://www.MySpace.com/mikeindustries/

    View Slide

  16. The Ingredients.

    View Slide

  17. CSS
    IA
    DOM
    Scripting
    Accessibility
    Design AJAX
    Markup
    User
    Agents
    Flash
    Usability
    Content
    Back-End
    Project
    Mgmt.

    View Slide

  18. User-Agents

    View Slide

  19. CSS
    DOM
    Scripting
    Accessibility
    AJAX
    Markup
    User
    Agents

    View Slide

  20. What you support influences
    how you construct your site.
    >
    how much sleep you’ll lose

    View Slide

  21. I, for one, welcome our
    browser overlords.
    They’re not leaving anytime soon.

    View Slide

  22. We’re making progress...
    Netscape 4, IE 5, IE 6?
    Firefox & IE 7

    View Slide

  23. Markup

    View Slide

  24. CSS
    DOM
    Scripting
    Accessibility
    Design AJAX
    Markup
    User
    Agents
    Content
    Back-End

    View Slide

  25. Markup is the
    technical foundation.
    Myth of Separation
    http://www.garrettdimon.com/archives/front-end-architecture-markup-is-the-technical-foundation

    View Slide

  26. The tables have got to go.
    The first step is admitting you have a problem.
    http://www.stopdesign.com/articles/throwing_tables/

    View Slide

  27. Microformats
    Elegant & Semantic Simplicity
    http://www.Microformats.org

    View Slide

  28. Accessibility
    Markup is the root of accessible sites.

    View Slide

  29. CSS

    View Slide

  30. CSS
    DOM
    Scripting
    Accessibility
    Design Markup
    User
    Agents
    Content
    Back-End

    View Slide

  31. Beware of Browser Hacks
    No Guarantees. They’re only a patch.
    http://www.thinkvitamin.com/features/css/stop-css-hacking

    View Slide

  32. Be Bulletproof.
    The only thing constant is change.

    View Slide

  33. Limitless options.
    Selectors, Shorthand, Redundancy vs.
    Dependency, Separate Files, etc.
    http://www.digital-web.com/articles/architecting_css/

    View Slide

  34. DOM Scripting
    (aka JavaScript)

    View Slide

  35. CSS
    DOM
    Scripting
    Accessibility
    Design AJAX
    Markup
    User
    Agents
    Usability

    View Slide

  36. The Dark Ages
    Browser Wars

    View Slide

  37. The Renaissance
    Progressive Enhancement & Standards
    http://domscripting.com/blog/

    View Slide

  38. DOM Scripting
    Scripting libraries
    and frameworks.
    Libraries & Frameworks

    View Slide

  39. Scripting is for “behavior”
    Styling forms and handling business logic = Red Flags

    View Slide

  40. Abusing DOM Manipulation
    this.style = font tags of DOM Scripting

    View Slide

  41. AJAX

    View Slide

  42. DOM
    Scripting
    Accessibility
    Design AJAX
    Markup
    User
    Agents
    Usability
    Content
    Back-End

    View Slide

  43. ...your scientists were so
    preoccupied with whether or
    not they could, they didn’t
    stop to think if they should.


    - Jurrassic Park, 1993

    View Slide

  44. The Traditional Model
    Full Page Loads
    Submit
    Business
    Logic

    View Slide

  45. The New Model
    Partial Page Loads
    Submit
    Business
    Logic

    View Slide

  46. Plan for AJAX from the
    beginning. Implement AJAX
    at the end.


    - Jeremy Keith

    View Slide

  47. The Hijax Model
    Request Interception
    Submit
    Submit Hijax
    Business
    Logic

    View Slide

  48. Response Format Options
    XML, HTML, or JSON?
    http://www.quirksmode.org/blog/archives/2005/12/the_ajax_respon.html

    View Slide

  49. Back-End & Bandwidth
    MacRumors used only 32 GB of bandwidth instead
    of an estimated 196 GB if they had a non-AJAX
    version of the live keynote.

    View Slide

  50. Accessibility & AJAX
    Can they play nicely?
    http://www.sitepoint.com/article/ajax-screenreaders-work

    View Slide

  51. Accessibility

    View Slide

  52. CSS
    IA
    DOM
    Scripting
    Accessibility
    Design AJAX
    Markup
    User
    Agents
    Flash
    Usability
    Content

    View Slide

  53. Vision isn’t the only “disability”
    Alternate Devices, Search Engines, Contrast,
    Color-Blind, Keyboard Navigation,
    Decreased Mobility

    View Slide

  54. No magic bullet.
    Perspective & Understanding

    View Slide

  55. Labels are just the beginning.

    View Slide

  56. Social Responsibility
    UK, Government, EU?, Target Lawsuit?
    >
    Legal

    View Slide

  57. Inherent Benefits
    Clean Semantic Markup
    Usability (Fitt’s Law)
    SEO

    View Slide

  58. Design

    View Slide

  59. CSS
    IA
    DOM
    Scripting
    Accessibility
    Design AJAX
    Markup
    Flash
    Usability
    Content

    View Slide

  60. Rise of Design
    The New User Experience Focus

    View Slide

  61. Engineers vs. Designers
    Left-Brain vs. Right-Brain

    View Slide

  62. The right design for the job.
    Undesign is the new black!

    View Slide

  63. View Slide

  64. Usability

    View Slide

  65. IA
    DOM
    Scripting
    Accessibility
    Design AJAX
    Flash
    Usability

    View Slide

  66. User “Testing”.
    Understand people not results.

    View Slide

  67. Heat Maps & User Testing
    80% Common Sense?
    http://www.useit.com/alertbox/reading_pattern.html

    View Slide

  68. Jakob Nielsen.
    Visual Design? Information Architecture?

    View Slide

  69. Information Architecture

    View Slide

  70. IA
    Accessibility
    Design
    Usability
    Content
    Back-End
    Project
    Mgmt.

    View Slide

  71. Information Design
    Google News vs. Google Finance

    View Slide

  72. Prototyping Choices
    (and ramifications)
    Short-Term Costs Long-Term Costs Accuracy Flexibility
    Sketches
    PDD’s
    Wireframes
    HTML Prototypes
    Getting Real

    View Slide

  73. Tags for a bug tracker?
    Tags are loose and not precise.

    View Slide

  74. Content

    View Slide

  75. IA
    Accessibility
    Design Markup
    Content
    Back-End

    View Slide

  76. The red-headed stepchild.
    Clients as copywriters?

    View Slide

  77. Content Dominoes
    Don’t believe it matters?

    View Slide

  78. Content will change.
    Remember.
    The only thing constant is change.

    View Slide

  79. Flash

    View Slide

  80. IA
    DOM
    Scripting
    Accessibility
    Design AJAX
    Flash
    Usability
    Markup

    View Slide

  81. sIFR
    Scalable Inman Flash Replacement
    DOM
    Scripting
    Accessibility
    Design
    Flash
    Markup

    View Slide

  82. Back-End

    View Slide

  83. IA
    AJAX
    Markup
    Content
    Back-End

    View Slide

  84. Presentation Layer
    ASPX, Rails Views, etc.

    View Slide

  85. Elegant Integration
    Make an engineer happy.

    View Slide

  86. Database
    Information Architecture & Content

    View Slide

  87. Web Services & API’s
    AJAX is no place for business logic.

    View Slide

  88. Project Management

    View Slide

  89. CSS
    IA
    DOM
    Scripting
    Accessibility
    Design AJAX
    Markup
    User
    Agents
    Flash
    Usability
    Content
    Back-End
    Project
    Mgmt.

    View Slide

  90. Managing change.
    (And the associated costs.)

    View Slide

  91. Managing specialists.
    (And their very special egos.)

    View Slide

  92. The whole is greater than
    the sum of its parts.

    View Slide

  93. Thank You
    http://www.garrettdimon.com/fea/

    View Slide