Architecture Is For Everyone

  • 2,700 views
Uploaded on

A gentle introduction to "architecture" presented at DrupalCon Paris, 2009. Intended for the casual and intermediate web developer interested in considering the bigger picture.

A gentle introduction to "architecture" presented at DrupalCon Paris, 2009. Intended for the casual and intermediate web developer interested in considering the bigger picture.

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
2,700
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
58
Comments
1
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Work with clients who need sustainable sites
    Training, Planning, and suffering
  • Dries has talked about this for years
    Who here used to be a webmaster?
    You didn’t go away - you became a developer.
  • “Eliminate the developer” - CCK, Views, Panels, OG, d7ux!
    I wrote “Using Drupal” - code free site recipes!
    Are we dying?
  • More pieces than ever
    Pieces are bigger
    Nontrivial changes require deep understanding
    “No-code” requires knowing the code enough to avoid it
  • Sarah Winchester’s mansion
  • cool features.
    total chaos.
    no master plan.
  • cool features.
    total chaos.
    no master plan.
  • that’s software architecture.
  • this is not canon, it’s fuzzy.
    What’s the difference between a dev and an architect?
  • Too quick to jump to modules, features, “can we do X?”
    Need context: Winchester house was fine for its goal
    “Divide articles into pages!” break up long articles, or increase clicks?
    “We need a content staging server!” Or use workflow? OR NOT
    “We need X in core!” Do we?
  • Balance Features, legacy code, performance, growth, real-world workflow, external environment (business AND tech), timelines, available resources

    we “know” many of these, but must be explicit
  • the flip side: my grandfather was a machinist, and he hated architects.
    understand the details too, even if you delegate
    otherwise you’re just project manager, not an architect.
  • If you only have one option, you’re doing it wrong
    Might be only one GOOD option
    Understand goals & constraints lets you get the spirit of the requests, not just the letter
  • silos are good -- but only if they’re planned
    mismatched APIs in core
    overlapping modules, duplicated work, performance collisions in sites
    this is why architects love their diagrams
  • Things you’re doing over and over (nodes, taxonomy, flag)
    Things you’re doing that others have (Pattern language)
    Christopher Alexander
    Patterns aren’t magic: they are lessons that have been learned
  • "Use Wordpress."
    "Farm that out to an outside service."
    "Learn lessons from Movable Type's template system..."
    "How does the django team deal with scaling?"
    Don't have to become an expert at everything, but knowing how to learn from others - and get help from them - is critical.
  • increase page views!
    more social features!
    escape $400,000 a year CMS!
    simplify editorial!
  • Publication cycle? User participation levels? Traffic? Servers? Migrating newsroom to drupal, or just display? Legacy systems? Priorities?
    This is why specs are gold.
  • How will we test?
    How will we launch/transition?
    How will we roll out new stuff AFTER launch?
    See the Economist presentation for a great example
  • How are we going to get there?
    What portions are most important?
  • Become wordpress?
    Become django?
    Facilitate distributions?
    Avoid commitment?
  • Mostly volunteers
    Shared hosting
    Now Public (current client w/85,000 logged in users)
    PHP Language
  • 100 fewer lines of PHP?
    10,000 new sites?
    Code “feels better?”
    Ghosts leave us alone?
  • Finding places where APIs collide
    Finding cruft of half-implemented features
    Eliminating things that are edge cases
    Adding pieces that are constantly re-implemented
  • Not a code idea, but manifests in code
    Split APIs (fapi, dbtng, menus, hooks...) from “features”
    Push “features” to distros and profiles
    Plan silos, reduce assumptions, allow specialization

Transcript

  • 1. architecture is for everyone a gentle introduction to thinking big
  • 2. hi. i’m eaton.
  • 3. who are you?
  • 4. who are you? member of a dev team someone with client someone responsible for a site a module maintainer a core dev
  • 5. who are you? member of a dev team someone with client someone responsible for a site a module maintainer a core dev frustrated!
  • 6. Bahahahahahah. hahah. ahem.
  • 7. “no devs” means “smart” code smart systems are complicated
  • 8. we’re architects, now http://www.flickr.com/photos/47325272@N00/2541408630/
  • 9. we’re architects, now http://www.flickr.com/photos/47325272@N00/2541408630/
  • 10. • 7 stories (then 3) • 160 rooms • 20,500 gallons • 10,000 windows • 17 chimneys (maybe?) • Elevators! Central heat! Chaos and madness!
  • 11. • 7 stories (then 3) • 160 rooms • 20,500 gallons • 10,000 windows • 17 chimneys (maybe?) • Elevators! Central heat! Chaos and madness!
  • 12. • 7 stories (then 3) • 160 rooms • 20,500 gallons • 10,000 windows • 17 chimneys (maybe?) • Elevators! Central heat! Chaos and madness!
  • 13. complexity requires a roadmap http://www.flickr.com/photos/47325272@N00/2541408630/
  • 14. what makes an architect? no, seriously, what?
  • 15. goals before features http://www.flickr.com/photos/16057786@N00/2956432732/
  • 16. see the forest http://www.flickr.com/photos/cmefish/3039477633
  • 17. know the tools http://www.flickr.com/photos/thefangmonster/490423135
  • 18. choices, tradeoffs
  • 19. coordinate, communicate
  • 20. coordinate, communicate
  • 21. identify patterns http://www.flickr.com/photos/evaekeblad/916121820
  • 22. identify patterns http://www.flickr.com/photos/evaekeblad/916121820
  • 23. look around http://www.flickr.com/photos/gerlos/3119891607
  • 24. building a site (architect style)
  • 25. • Views, of course! • ImageAPI, ImageField... • Panels? Nodequeue? • Workflow! • Organic Groups! • And that’ll be custom...
  • 26. WRONG!
  • 27. GOALS
  • 28. CONTEXT
  • 29. PROCESS
  • 30. ROAD
  • 31. not as fun but now we have a plan.
  • 32. but... drupal? road maps...?
  • 33. YES
  • 34. what is drupal’s goal?
  • 35. what are our constraints?
  • 36. where are we now?
  • 37. where are we now?
  • 38. how do we reduce complexity?
  • 39. *cough* smallcore *cough*
  • 40. think big, build small
  • 41. suggested reading
  • 42. suggested reading