• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Architecture Is For Everyone
 

Architecture Is For Everyone

on

  • 3,879 views

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.

Statistics

Views

Total Views
3,879
Views on SlideShare
3,867
Embed Views
12

Actions

Likes
3
Downloads
58
Comments
1

1 Embed 12

http://www.slideshare.net 12

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Work with clients who need sustainable sites <br /> Training, Planning, and suffering
  • Dries has talked about this for years <br /> Who here used to be a webmaster? <br /> You didn&#x2019;t go away - you became a developer.
  • &#x201C;Eliminate the developer&#x201D; - CCK, Views, Panels, OG, d7ux! <br /> I wrote &#x201C;Using Drupal&#x201D; - code free site recipes! <br /> Are we dying?
  • More pieces than ever <br /> Pieces are bigger <br /> Nontrivial changes require deep understanding <br /> &#x201C;No-code&#x201D; requires knowing the code enough to avoid it
  • Sarah Winchester&#x2019;s mansion
  • cool features. <br /> total chaos. <br /> no master plan.
  • cool features. <br /> total chaos. <br /> no master plan.
  • that&#x2019;s software architecture.
  • this is not canon, it&#x2019;s fuzzy. <br /> What&#x2019;s the difference between a dev and an architect?
  • Too quick to jump to modules, features, &#x201C;can we do X?&#x201D; <br /> Need context: Winchester house was fine for its goal <br /> &#x201C;Divide articles into pages!&#x201D; break up long articles, or increase clicks? <br /> &#x201C;We need a content staging server!&#x201D; Or use workflow? OR NOT <br /> &#x201C;We need X in core!&#x201D; Do we?
  • Balance Features, legacy code, performance, growth, real-world workflow, external environment (business AND tech), timelines, available resources <br /> <br /> we &#x201C;know&#x201D; many of these, but must be explicit
  • the flip side: my grandfather was a machinist, and he hated architects. <br /> understand the details too, even if you delegate <br /> otherwise you&#x2019;re just project manager, not an architect.
  • If you only have one option, you&#x2019;re doing it wrong <br /> Might be only one GOOD option <br /> Understand goals & constraints lets you get the spirit of the requests, not just the letter
  • silos are good -- but only if they&#x2019;re planned <br /> mismatched APIs in core <br /> overlapping modules, duplicated work, performance collisions in sites <br /> this is why architects love their diagrams
  • Things you&#x2019;re doing over and over (nodes, taxonomy, flag) <br /> Things you&#x2019;re doing that others have (Pattern language) <br /> Christopher Alexander <br /> Patterns aren&#x2019;t magic: they are lessons that have been learned
  • "Use Wordpress." <br /> "Farm that out to an outside service." <br /> "Learn lessons from Movable Type&apos;s template system..." <br /> "How does the django team deal with scaling?" <br /> Don&apos;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! <br /> more social features! <br /> escape $400,000 a year CMS! <br /> simplify editorial!
  • Publication cycle? User participation levels? Traffic? Servers? Migrating newsroom to drupal, or just display? Legacy systems? Priorities? <br /> This is why specs are gold.
  • How will we test? <br /> How will we launch/transition? <br /> How will we roll out new stuff AFTER launch? <br /> See the Economist presentation for a great example
  • How are we going to get there? <br /> What portions are most important?
  • Become wordpress? <br /> Become django? <br /> Facilitate distributions? <br /> Avoid commitment?
  • Mostly volunteers <br /> Shared hosting <br /> Now Public (current client w/85,000 logged in users) <br /> PHP Language
  • 100 fewer lines of PHP? <br /> 10,000 new sites? <br /> Code &#x201C;feels better?&#x201D; <br /> Ghosts leave us alone?
  • Finding places where APIs collide <br /> Finding cruft of half-implemented features <br /> Eliminating things that are edge cases <br /> Adding pieces that are constantly re-implemented
  • Not a code idea, but manifests in code <br /> Split APIs (fapi, dbtng, menus, hooks...) from &#x201C;features&#x201D; <br /> Push &#x201C;features&#x201D; to distros and profiles <br /> Plan silos, reduce assumptions, allow specialization

Architecture Is For Everyone Architecture Is For Everyone Presentation Transcript

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