Skip to content

Instantly share code, notes, and snippets.

@chrisjlee
Created March 21, 2012 16:55
Show Gist options
  • Save chrisjlee/2149496 to your computer and use it in GitHub Desktop.
Save chrisjlee/2149496 to your computer and use it in GitHub Desktop.
Drupalcon Denver 2012 - Larry Garfield Fast Friendly Architecture
Drupalcon Denver 2012 - Larry Garfield Fast Friendly Architecture
Consider example of classic car
* axles had issues
* turning had dependancies
Right vs. wrong
* Finding balance
* Architectural choices are not good or bad
* Architectural choices actually appropriate or not appropriate
Must determine priorities
* Fast vs. good vs. cheap
* Not all three are possible
* project management triad
* must determine priorities tradeoffs and sacrifices must be made
Architecture must pass several axes
* engineering
* qa
* human
Axes of Good - Using an example Drupal engineering examples
* Performance
* drupal has large arrays - larger memory requirements
* extensibility
* Not really modifiable - cannot take out functionality
Human axes example - command line
* expensive overhead
* understandability is difficult
* expediency - how easy it is to get job done
* learnability is low
QA Axes
* Testability - nuclear
Why should we care?
* client - project length issues
* boss - overtime to fix bugs
* you in six months
drupal site examples
* Church vs. major media network
* Problems and priorities are different
Example case - should i care about mobile?
* use browser stats or what the world cares about
* responsive design takes more work
* review trends of mobile
* overhead exists with responsive design
* answer is not always yes. your answer lies on your existing needs
* Refer to Use cases!
Extensibility issues
* preprocessor example
* ability to adding hooks is great
* drawback - hard to test
Complimentary Design
* testability and modifiability require abstraction
* testable code depends or modularity
* drupal modules example of extensibility
* extensibility => modularity
* modifiability => expediancy (easier to change later)
* performance => scalability (most times)
* use xhprof - for testing. GO USE xhprof!
Find balance!
----------------
Questions asked
----------------
Why symfony why is it expedient?
* drupal doesn't assume rest - built on assumptions of page
* drupal needs to deliver just more than just an html tag
* spent a lot of time modifying drupal to figure out how to do that
* depends on managing http system
Varnish
* reverse proxy server
* expect a lot of anonymous traffic - let varnish handle it
* more performant than db cache
* php slow or db slow ?
How to manage changes that are produced ad hoc ?
prepare for it. invest in being more extensible
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment