SlideShare une entreprise Scribd logo
1  sur  84
Télécharger pour lire hors ligne
Building Django

Jacob Kaplan-Moss

PyCon
March 29, 2009


http://jacobian.org/speaking/2009/pycon-designing-django/
History
LJW
Adrian/Simon
lawrence.com
                                                                           Wakarusa 2008
                                                                           › Find photos
                                                                                               Great 'cue. Cheap
                                                                           from the festival
                                                                                               beer. View.
Log in to                                                                  here (new photos
post                                                                                           › All ads this
                                                            still coming in) and video
                                                                                               week
comments.                                                   posted here. More to be posted
            Cornmeal / Hoots & Hellmouth: Steeped in        as soon as we dry out...
            the tradition of legendary acts, this Chicago
            band uses bluegrass as a springboard for
            long improvisational work and songs ranging
            from country and rock to jazz and funk ...
                                                             School of Wak (Soggy
            More info
                                                             Edition) (Ten Million Pounds
“The CMS”
Philosophy
Make development fast
Automate repetitive tasks
Best practices
“
The ink is never dry
 on these babies.



                       ”
          — Adrian Holovaty
Choices
Open Source
BSD license
Pragmatism over Methodology
GoF?

       MVC?

TDD?
Snake Oil
“   No silver bullet.



                                 ”
                     — Fred Brooks
      Author of The Mythical Man-Month
The Real World
“   Build cool shit.



                       ”
               — Rob Curley
Ramifications
“What’s the need?”
No architecture astronauts
Reinventing the wheel
“Magic” over boilerplate
Web development is boring
It should be fun!
APIs should match behavior,
         not show how they work
Ramifications
It can go too far.
Messy internals
More power in less code
Easier to document
“Full stack”
“Best of breed”
Why full stack?
Lack of choices at the time
“Glued together”
Ramifications
More control
Don’t repeat Zope’s mistakes
“   Innovation
     happens
    elsewhere.


                       ”
                 — Bill Joy
Small pieces advance quicker
“Sensible defaults”
“Opinionated Software”
Ego is dangerous
You can’t possibly predict
         what everyone wants
... so listen to your users!
      (this is harder than it sounds)
“One obvious way”
  over “pluggable components”
Autumn
 Modeling
    PDB
  PyORM
SQLAlchemy
 SQLObject
   Storm
   ZODB
Choice is good for experts ...
... but not good for new users
More beginners
“
Don’t make me think.



                     ”
             — Steve Krug
“
It seems ... that if choice is good, then
 more choice is better. The paradox is
that this “obvious” truth isn’t true... a
   point can be reached where, with
  more choice, people are worse off.




                                      ”
                      — Barry Schwartz
                    “The Paradox of Choice”
Ramifications
Consistency
Make complicated things easy
Don’t reinvent the wheel
Set our own pace




                   Skip to end
Choices in the future
Long tail
    or huge scale?
#2 Yahoo
 #5 Facebook
 #8 Wikipedia
#16 Photobucket
#19 Flickr
#20 Comcast
#23 Wordpress
Standard      | Distance      | Phone Number




        Business Name or Category                                  City, State, ZIP Code or Neighborhoo
                                                                      Set as Default Location




        Atlanta                 Dallas                  Las Vegas                New York                S

        Austin                  Denver                  Los Angeles              Oklahoma City           S

        Baltimore               Detroit                 Louisville               Orlando                 S

        Boston                  Houston                 Memphis                  Philadelphia            S

        Charlotte               Indianapolis            Miami                    Phoenix                 S

        Chicago                 Kansas City             Milwaukee                Saint Louis             M




       Careers Browse Yellow Pages About YELLOWPAGES.COM Contact Us Site Map Help                     Adv
       AT&T AT&T Wireless att.net TollFreeDA.com AnyWho Ingenio Yellow Pages Keen
       Privacy Policy Terms & Conditions Phone Book Recycling

       © 2008 YELLOWPAGES.COM LLC. All rights reserved.
       © 2008 AT&T Intellectual Property. All rights reserved. AT&T, AT&T logo and all other marks containe

       Some data provided by Localeze and Acxiom.




#643   BROWSE STATES
       Alabama         Colorado            Hawaii         Kansas           Massachusetts         Montana
       Alaska          Connecticut         Idaho          Kentucky         Michigan              Nebraska
       Arizona         Delaware            Illinois       Louisiana        Minnesota             Nevada
       Arkansas        Florida             Indiana        Maine            Mississippi           New Ham
       California      Georgia             Iowa           Maryland         Missouri              New Jers
my
                                               All Games

 Home     News     Forums         WoW Addons     WAR Addons      B

Welcome to Curse.                 login


                                          Curse.com B
Signup now to take advantage of
amazing Curse.com Features!
                                          The new Curse.com si
                                          read more




                                                Curse.com Beta


Curse Network Services




                                                      Enhance
                                                 Addons are extens
                                                 experience. We ha
                                                 to browse addons

                                                         World of

      #1295                                              Age of C

                                                         Warhamm
!quot;#$%$&'()$*+',-.
    !quot;#$%&'(&)*+'
!quot;#$%&'&$ ())*   +)
!quot;#$%&'&$ ())*   +,
!quot;#$%&'&$ ())*   +(
“Enterprise”
Is this a competition we want?
Backlash
“Rails doesn’t scale”
s    Maps   News Shopping Gmail more        !



                                                                           Advan
              rails doesn't scale                                 Search   Prefe



                  Results 1 - 10 of about 4,680,000 for rails doesn't scale. (0.0

    Rails Doesn't Scale?
. quot;I've heard a few people mention that they heard that Rails doesn't scale
stions on how we might alleviate their doubt?quot; ...
t.com/2008/03/rails-doesnt-scale.html - 31k - Cached - Similar pages

Interview with Twitter Developer Alex Payne
  its: Ruby On Rails Can’t Scale at Brandon Werner // Apr 13, ... the rubber is
d, and the thing doesn’t scale on the DB end. ...
 havior.com/5-question-interview-with-twitter-developer-alex-payne/ - 161k -
ilar pages

aid Rails doesn’t Scale?” Features
“Django doesn’t ...?”
  Maps   News Shopping Gmail more !


                                                                          Adv
             quot;django sucksquot;                                      Search   Pref



                          Results 1 - 10 of about 189 for quot;django sucksquot;. (0

ks
 eaningless: Django sucks from Alan's clob. [RSS] Picture of the blogger ...
o sucks: 21.5 ...
nkila/blog/2006/05/21/Django%20sucks.html - 28k - Cached - Similar pages

 compression sucks
phasis: 29.9; Hitman: 7.9. 2006, 8. Misc: 23.8. 2006, 6. DSP progress: 29.6; B
is: 19.6; Atari ST audio: 17.6. 2006, 5. Django sucks: 21.5 ...
l.fi/~alankila/blog/2007/09/15/jQuery%20compression%20sucks.html - 23k -
 - Similar pages
Keep out the ego
Invite criticism




      ... and take it well
Make conscious decisions
Thanks!
http://jacobian.org/speaking/2009/pycon-designing-django/
                  <jacob@jacobian.org>
Photo credits
                                                       http://flickr.com/photos/noulakaz/418575599/
Lawrence Journal-World (with permission)                                                                     http://flickr.com/photos/mawari/2091456761/
                                                       http://flickr.com/photos/lwr/78032315/
Free Software Foundation (GDFL license)                                                                      http://flickr.com/photos/foox404/640768235/
                                                       http://flickr.com/photos/petereed/496392956/
Poul-Henning Kamp (Beerware license)                                                                         http://flickr.com/photos/ppdigital/2327942088/
                                                       http://flickr.com/photos/ognam/252251866/
NASA (public domain)                                                                                         http://flickr.com/photos/summitcheese/197359430/
                                                       http://flickr.com/photos/dullhunk/412756798/
http://flickr.com/photos/mathoov/19172893/                                                                    http://flickr.com/photos/kandyjaxx/98984009/
                                                       http://flickr.com/photos/jdlasica/1681114312/
http://flickr.com/photos/trp0/127771914/                                                                      http://flickr.com/photos/andih/345556778/
                                                       http://flickr.com/photos/altemark/304078711/
http://flickr.com/photos/simon/351253/                                                                        http://flickr.com/photos/yuan2003/733770226/
                                                       http://flickr.com/photos/mworrell/266913194/
http://flickr.com/photos/number13001/247125164/                                                               http://flickr.com/photos/ocms/2535068094/
                                                       http://flickr.com/photos/iainr/61917036/
http://flickr.com/photos/s_v_p/5869861/                                                                       http://flickr.com/photos/dannyman/958602998/
                                                       http://flickr.com/photos/dhammza/110422065/
http://flickr.com/photos/xerones/31671892/                                                                    http://flickr.com/photos/martinlabar/2832969149/
                                                       http://flickr.com/photos/hercules/118434343/
http://flickr.com/photos/kt/418938142/                                                                        http://flickr.com/photos/shyha/225517137/
                                                       http://flickr.com/photos/donkeycart/2477069275/
http://flickr.com/photos/stee/154686864/                                                                    http://flickr.com/photos/therefore/19256103/
                                                       http://flickr.com/photos/halfbisqued/2353845688/
http://flickr.com/photos/8011986@N02/2702162140/                                                              http://flickr.com/photos/teflon/128827389/
                                                       http://flickr.com/photos/dominiqs/137546402/
http://flickr.com/photos/orinrobertjohn/114430223/                                                            http://flickr.com/photos/druclimb/390916759/
                                                       http://flickr.com/photos/articnomad/16153058/
http://flickr.com/photos/poluz/1871578378/                                                                    http://flickr.com/photos/cgc/1289366227/
                                                       http://flickr.com/photos/zrahen/14469412/
http://flickr.com/photos/pkdouyk/394163975/                                                                   http://flickr.com/photos/mihr-i/2741602553/
                                                       http://flickr.com/photos/stonebird/2723635311/
http://flickr.com/photos/automatt/226498681/                                                                  http://flickr.com/photos/wtlphotos/480714473/
                                                       http://flickr.com/photos/kandyjaxx/2012468692/
http://flickr.com/photos/micktwomey/9646019/                                                                  http://flickr.com/photos/fatboyke/2668411239/
                                                       http://flickr.com/photos/khalid-almasoud/1283997041/ http://flickr.com/photos/zen/12132210/
http://flickr.com/photos/twinleaves/437606968/
                                                       http://flickr.com/photos/oskay/404330158/
http://flickr.com/photos/mag3737/1914076277/                                                                  http://flickr.com/photos/accordionguy/411908565/
                                                       http://flickr.com/photos/cheetleys/295717673/
http://flickr.com/photos/beckytwinley/2451754919/                                                             http://flickr.com/photos/seier/501372541/
                                                       http://flickr.com/photos/gullevek/2667764480/
http://flickr.com/photos/devos/6358304/                                                                       http://flickr.com/photos/romanlily/2041441584/
                                                       http://flickr.com/photos/phoenixdailyphoto/1467681879/ http://flickr.com/photos/kookr/2810433787/
http://flickr.com/photos/robyn-gallagher/2097474328/
                                                       http://flickr.com/photos/gavatron/866650954/
http://flickr.com/photos/lexnger/149433512/                                                                   http://flickr.com/photos/clintjcl/2471735838/
                                                       http://flickr.com/photos/wheatfields/2587147000/
http://flickr.com/photos/akearns72/166086716/                                                                 http://flickr.com/photos/fynes/72573221/
                                                       http://flickr.com/photos/locator/420581084/
http://flickr.com/photos/timjoyfamily/532089575/                                                              http://flickr.com/photos/thegeneralstore/709924038/
                                                       http://flickr.com/photos/tomeppy/84700111/
http://flickr.com/photos/pittaya/396707150/                                                                   http://flickr.com/photos/hamed/231011405/
                                                       http://flickr.com/photos/bass_nroll/579960238/
http://flickr.com/photos/jcroft/106571677/                                                                    http://flickr.com/photos/fusionpanda/363012235/
                                                       http://flickr.com/photos/dalbera/2587777300/
http://flickr.com/photos/webology/2722802478/                                                                 http://flickr.com/photos/srevenge/1396062019/
                                                       http://flickr.com/photos/lwr/62382337/
http://flickr.com/photos/niallkennedy/310814303/                                                              http://flickr.com/photos/foresmac/2537548732/
                                                       http://flickr.com/photos/lwr/526773135/
http://flickr.com/photos/thomashawk/305370843/                                                                http://flickr.com/photos/12693492@N04/1338136415/
                                                       http://flickr.com/photos/lwr/50191251/
http://flickr.com/photos/glynnis/19523654/                                                                    http://flickr.com/photos/platinum/6761199/
                                                       http://flickr.com/photos/strausser/386412877/
http://flickr.com/photos/loredenizen/14435744                                                                 http://flickr.com/photos/30553515@N00/1786871517/
                                                       http://flickr.com/photos/wolfhound/258498934/
http://flickr.com/photos/biwook/145765624/                                                                    http://flickr.com/photos/skrb/94927584/
                                                       http://flickr.com/photos/jef/52133463/
http://flickr.com/photos/rspanton/2305408272/
                                                       http://flickr.com/photos/atc/106694427/
http://flickr.com/photos/furiousgeorge81/177926979/
                                                       http://flickr.com/photos/saintmurse/68159330/
http://flickr.com/photos/twenty_questions/2192450204/
                                                       http://flickr.com/photos/flattop341/212276640/
http://flickr.com/photos/shawnide/1733789973/
                                                       http://flickr.com/photos/rtarga/223776150/
http://flickr.com/photos/davidrn/255058535/
                                                       http://flickr.com/photos/xenophod/116388638/
http://flickr.com/photos/eschipul/436109463/
                                                       http://flickr.com/photos/huladancer22/530743543/
http://flickr.com/photos/cguille/2556176764/
                                                       http://flickr.com/photos/planetargon/127984254/
http://flickr.com/photos/lonebluelady/890604409/
                                                       http://flickr.com/photos/mkmabus/2576358439/
http://flickr.com/photos/atomicbartbeans/229618075/
                                                       http://flickr.com/photos/9619972@N08/2220659880/
http://flickr.com/photos/vidiot/2150088788/
                                                       http://flickr.com/photos/seeminglee/1973003433/
http://flickr.com/photos/cboulton/2085336565/
http://flickr.com/photos/darwinbell/1538611841/

Contenu connexe

Similaire à Building a web framework: Django's design decisions

Commercialization Challenges Of Mobile Software Development In A Fragmented M...
Commercialization Challenges Of Mobile Software Development In A Fragmented M...Commercialization Challenges Of Mobile Software Development In A Fragmented M...
Commercialization Challenges Of Mobile Software Development In A Fragmented M...Stephen King
 
Web Wreck-utation - CanSecWest 2008
Web Wreck-utation - CanSecWest 2008Web Wreck-utation - CanSecWest 2008
Web Wreck-utation - CanSecWest 2008Stephan Chenette
 
Open and Accessible UI
Open and Accessible UIOpen and Accessible UI
Open and Accessible UIMark Meeker
 
How to Bluff Your Way in Web 2.0
How to Bluff Your Way in Web 2.0How to Bluff Your Way in Web 2.0
How to Bluff Your Way in Web 2.0Andy Budd
 
Why computers are cool high school audience - 2010-12-01
Why computers are cool   high school audience - 2010-12-01Why computers are cool   high school audience - 2010-12-01
Why computers are cool high school audience - 2010-12-01Willie Favero
 
The convergence of all things (wdu keynote)
The convergence of all things (wdu keynote)The convergence of all things (wdu keynote)
The convergence of all things (wdu keynote)Chris Wilson
 
Rails in the Cloud
Rails in the CloudRails in the Cloud
Rails in the Cloudiwarshak
 
Ignite Orlando - Act 2
Ignite Orlando - Act 2Ignite Orlando - Act 2
Ignite Orlando - Act 2GreggPollack
 
Joe Dyer - Alphabet Soup: Career Paths, Interviews, and Skill Sets
Joe Dyer - Alphabet Soup: Career Paths, Interviews, and Skill SetsJoe Dyer - Alphabet Soup: Career Paths, Interviews, and Skill Sets
Joe Dyer - Alphabet Soup: Career Paths, Interviews, and Skill Setsprojekt202
 
Beyond The Padlock: New Ideas in Browser Security UI
Beyond The Padlock: New Ideas in Browser Security UIBeyond The Padlock: New Ideas in Browser Security UI
Beyond The Padlock: New Ideas in Browser Security UImozilla.presentations
 
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...Burr Sutter
 
Gordon Kraft Response - Apr 1998 - Artificial inc discussions panel summary
Gordon Kraft Response - Apr 1998 - Artificial inc discussions panel summaryGordon Kraft Response - Apr 1998 - Artificial inc discussions panel summary
Gordon Kraft Response - Apr 1998 - Artificial inc discussions panel summaryGordon Kraft
 
Securing Rails
Securing RailsSecuring Rails
Securing RailsAlex Payne
 
The Future Of Responsive Design Standards
The Future Of Responsive Design StandardsThe Future Of Responsive Design Standards
The Future Of Responsive Design StandardsDen Odell
 
The Future Of Responsive Design Standards (Den Odell)
The Future Of Responsive Design Standards (Den Odell)The Future Of Responsive Design Standards (Den Odell)
The Future Of Responsive Design Standards (Den Odell)Future Insights
 
Games for the Masses (Jax)
Games for the Masses (Jax)Games for the Masses (Jax)
Games for the Masses (Jax)Wooga
 
How to not suck! Lessons Learned from running a Web Startup.
How to not suck! Lessons Learned from running a Web Startup. How to not suck! Lessons Learned from running a Web Startup.
How to not suck! Lessons Learned from running a Web Startup. Wolf Becvar
 
Stathy DevOps in MSP / MKE on IAC
Stathy DevOps in MSP / MKE on IACStathy DevOps in MSP / MKE on IAC
Stathy DevOps in MSP / MKE on IACStathy Touloumis
 
Os Nightingale
Os NightingaleOs Nightingale
Os Nightingaleoscon2007
 

Similaire à Building a web framework: Django's design decisions (20)

Commercialization Challenges Of Mobile Software Development In A Fragmented M...
Commercialization Challenges Of Mobile Software Development In A Fragmented M...Commercialization Challenges Of Mobile Software Development In A Fragmented M...
Commercialization Challenges Of Mobile Software Development In A Fragmented M...
 
Web Wreck-utation - CanSecWest 2008
Web Wreck-utation - CanSecWest 2008Web Wreck-utation - CanSecWest 2008
Web Wreck-utation - CanSecWest 2008
 
Open and Accessible UI
Open and Accessible UIOpen and Accessible UI
Open and Accessible UI
 
How to Bluff Your Way in Web 2.0
How to Bluff Your Way in Web 2.0How to Bluff Your Way in Web 2.0
How to Bluff Your Way in Web 2.0
 
Why computers are cool high school audience - 2010-12-01
Why computers are cool   high school audience - 2010-12-01Why computers are cool   high school audience - 2010-12-01
Why computers are cool high school audience - 2010-12-01
 
The convergence of all things (wdu keynote)
The convergence of all things (wdu keynote)The convergence of all things (wdu keynote)
The convergence of all things (wdu keynote)
 
Rails in the Cloud
Rails in the CloudRails in the Cloud
Rails in the Cloud
 
Ignite Orlando - Act 2
Ignite Orlando - Act 2Ignite Orlando - Act 2
Ignite Orlando - Act 2
 
Joe Dyer - Alphabet Soup: Career Paths, Interviews, and Skill Sets
Joe Dyer - Alphabet Soup: Career Paths, Interviews, and Skill SetsJoe Dyer - Alphabet Soup: Career Paths, Interviews, and Skill Sets
Joe Dyer - Alphabet Soup: Career Paths, Interviews, and Skill Sets
 
Beyond The Padlock: New Ideas in Browser Security UI
Beyond The Padlock: New Ideas in Browser Security UIBeyond The Padlock: New Ideas in Browser Security UI
Beyond The Padlock: New Ideas in Browser Security UI
 
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
 
Gordon Kraft Response - Apr 1998 - Artificial inc discussions panel summary
Gordon Kraft Response - Apr 1998 - Artificial inc discussions panel summaryGordon Kraft Response - Apr 1998 - Artificial inc discussions panel summary
Gordon Kraft Response - Apr 1998 - Artificial inc discussions panel summary
 
Securing Rails
Securing RailsSecuring Rails
Securing Rails
 
The Future Of Responsive Design Standards
The Future Of Responsive Design StandardsThe Future Of Responsive Design Standards
The Future Of Responsive Design Standards
 
The Future Of Responsive Design Standards (Den Odell)
The Future Of Responsive Design Standards (Den Odell)The Future Of Responsive Design Standards (Den Odell)
The Future Of Responsive Design Standards (Den Odell)
 
Chris Bourseau, UI/UX Designer
Chris Bourseau, UI/UX DesignerChris Bourseau, UI/UX Designer
Chris Bourseau, UI/UX Designer
 
Games for the Masses (Jax)
Games for the Masses (Jax)Games for the Masses (Jax)
Games for the Masses (Jax)
 
How to not suck! Lessons Learned from running a Web Startup.
How to not suck! Lessons Learned from running a Web Startup. How to not suck! Lessons Learned from running a Web Startup.
How to not suck! Lessons Learned from running a Web Startup.
 
Stathy DevOps in MSP / MKE on IAC
Stathy DevOps in MSP / MKE on IACStathy DevOps in MSP / MKE on IAC
Stathy DevOps in MSP / MKE on IAC
 
Os Nightingale
Os NightingaleOs Nightingale
Os Nightingale
 

Plus de Jacob Kaplan-Moss

Introduction To Django (Strange Loop 2011)
Introduction To Django (Strange Loop 2011)Introduction To Django (Strange Loop 2011)
Introduction To Django (Strange Loop 2011)Jacob Kaplan-Moss
 
The Best (and Worst) of Django
The Best (and Worst) of DjangoThe Best (and Worst) of Django
The Best (and Worst) of DjangoJacob Kaplan-Moss
 
Writing great documentation - CodeConf 2011
Writing great documentation - CodeConf 2011Writing great documentation - CodeConf 2011
Writing great documentation - CodeConf 2011Jacob Kaplan-Moss
 
Django Introduction, Dev in Rio 2009
Django Introduction, Dev in Rio 2009Django Introduction, Dev in Rio 2009
Django Introduction, Dev in Rio 2009Jacob Kaplan-Moss
 
Django - the first five years
Django - the first five yearsDjango - the first five years
Django - the first five yearsJacob Kaplan-Moss
 
A brief history of Django model syntax
A brief history of Django model syntaxA brief history of Django model syntax
A brief history of Django model syntaxJacob Kaplan-Moss
 

Plus de Jacob Kaplan-Moss (12)

Introduction To Django (Strange Loop 2011)
Introduction To Django (Strange Loop 2011)Introduction To Django (Strange Loop 2011)
Introduction To Django (Strange Loop 2011)
 
The Best (and Worst) of Django
The Best (and Worst) of DjangoThe Best (and Worst) of Django
The Best (and Worst) of Django
 
Writing great documentation - CodeConf 2011
Writing great documentation - CodeConf 2011Writing great documentation - CodeConf 2011
Writing great documentation - CodeConf 2011
 
What's new in Django 1.2?
What's new in Django 1.2?What's new in Django 1.2?
What's new in Django 1.2?
 
Django Introduction, Dev in Rio 2009
Django Introduction, Dev in Rio 2009Django Introduction, Dev in Rio 2009
Django Introduction, Dev in Rio 2009
 
Snakes on the Web
Snakes on the WebSnakes on the Web
Snakes on the Web
 
Django In The Real World
Django In The Real WorldDjango In The Real World
Django In The Real World
 
Django in the Real World
Django in the Real WorldDjango in the Real World
Django in the Real World
 
State Of Django
State Of DjangoState Of Django
State Of Django
 
Django - the first five years
Django - the first five yearsDjango - the first five years
Django - the first five years
 
A brief history of Django model syntax
A brief history of Django model syntaxA brief history of Django model syntax
A brief history of Django model syntax
 
Django Update (OSCON 2007)
Django Update (OSCON 2007)Django Update (OSCON 2007)
Django Update (OSCON 2007)
 

Dernier

Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 

Dernier (20)

Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 

Building a web framework: Django's design decisions

  • 1. Building Django Jacob Kaplan-Moss PyCon March 29, 2009 http://jacobian.org/speaking/2009/pycon-designing-django/
  • 2.
  • 4. LJW
  • 6. lawrence.com Wakarusa 2008 › Find photos Great 'cue. Cheap from the festival beer. View. Log in to here (new photos post › All ads this still coming in) and video week comments. posted here. More to be posted Cornmeal / Hoots & Hellmouth: Steeped in as soon as we dry out... the tradition of legendary acts, this Chicago band uses bluegrass as a springboard for long improvisational work and songs ranging from country and rock to jazz and funk ... School of Wak (Soggy More info Edition) (Ten Million Pounds
  • 12. “ The ink is never dry on these babies. ” — Adrian Holovaty
  • 16.
  • 18. GoF? MVC? TDD?
  • 19.
  • 21. No silver bullet. ” — Fred Brooks Author of The Mythical Man-Month
  • 23. Build cool shit. ” — Rob Curley
  • 30. It should be fun!
  • 31. APIs should match behavior, not show how they work
  • 33. It can go too far.
  • 35. More power in less code
  • 37.
  • 41. Lack of choices at the time
  • 46. Innovation happens elsewhere. ” — Bill Joy
  • 51. You can’t possibly predict what everyone wants
  • 52. ... so listen to your users! (this is harder than it sounds)
  • 53. “One obvious way” over “pluggable components”
  • 54. Autumn Modeling PDB PyORM SQLAlchemy SQLObject Storm ZODB
  • 55. Choice is good for experts ...
  • 56. ... but not good for new users
  • 58. “ Don’t make me think. ” — Steve Krug
  • 59. “ It seems ... that if choice is good, then more choice is better. The paradox is that this “obvious” truth isn’t true... a point can be reached where, with more choice, people are worse off. ” — Barry Schwartz “The Paradox of Choice”
  • 64. Set our own pace Skip to end
  • 65. Choices in the future
  • 66. Long tail or huge scale?
  • 67. #2 Yahoo #5 Facebook #8 Wikipedia #16 Photobucket #19 Flickr #20 Comcast #23 Wordpress
  • 68.
  • 69. Standard | Distance | Phone Number Business Name or Category City, State, ZIP Code or Neighborhoo Set as Default Location Atlanta Dallas Las Vegas New York S Austin Denver Los Angeles Oklahoma City S Baltimore Detroit Louisville Orlando S Boston Houston Memphis Philadelphia S Charlotte Indianapolis Miami Phoenix S Chicago Kansas City Milwaukee Saint Louis M Careers Browse Yellow Pages About YELLOWPAGES.COM Contact Us Site Map Help Adv AT&T AT&T Wireless att.net TollFreeDA.com AnyWho Ingenio Yellow Pages Keen Privacy Policy Terms & Conditions Phone Book Recycling © 2008 YELLOWPAGES.COM LLC. All rights reserved. © 2008 AT&T Intellectual Property. All rights reserved. AT&T, AT&T logo and all other marks containe Some data provided by Localeze and Acxiom. #643 BROWSE STATES Alabama Colorado Hawaii Kansas Massachusetts Montana Alaska Connecticut Idaho Kentucky Michigan Nebraska Arizona Delaware Illinois Louisiana Minnesota Nevada Arkansas Florida Indiana Maine Mississippi New Ham California Georgia Iowa Maryland Missouri New Jers
  • 70. my All Games Home News Forums WoW Addons WAR Addons B Welcome to Curse. login Curse.com B Signup now to take advantage of amazing Curse.com Features! The new Curse.com si read more Curse.com Beta Curse Network Services Enhance Addons are extens experience. We ha to browse addons World of #1295 Age of C Warhamm
  • 71. !quot;#$%$&'()$*+',-. !quot;#$%&'(&)*+'
  • 76. Is this a competition we want?
  • 78. “Rails doesn’t scale” s Maps News Shopping Gmail more ! Advan rails doesn't scale Search Prefe Results 1 - 10 of about 4,680,000 for rails doesn't scale. (0.0 Rails Doesn't Scale? . quot;I've heard a few people mention that they heard that Rails doesn't scale stions on how we might alleviate their doubt?quot; ... t.com/2008/03/rails-doesnt-scale.html - 31k - Cached - Similar pages Interview with Twitter Developer Alex Payne its: Ruby On Rails Can’t Scale at Brandon Werner // Apr 13, ... the rubber is d, and the thing doesn’t scale on the DB end. ... havior.com/5-question-interview-with-twitter-developer-alex-payne/ - 161k - ilar pages aid Rails doesn’t Scale?” Features
  • 79. “Django doesn’t ...?” Maps News Shopping Gmail more ! Adv quot;django sucksquot; Search Pref Results 1 - 10 of about 189 for quot;django sucksquot;. (0 ks eaningless: Django sucks from Alan's clob. [RSS] Picture of the blogger ... o sucks: 21.5 ... nkila/blog/2006/05/21/Django%20sucks.html - 28k - Cached - Similar pages compression sucks phasis: 29.9; Hitman: 7.9. 2006, 8. Misc: 23.8. 2006, 6. DSP progress: 29.6; B is: 19.6; Atari ST audio: 17.6. 2006, 5. Django sucks: 21.5 ... l.fi/~alankila/blog/2007/09/15/jQuery%20compression%20sucks.html - 23k - - Similar pages
  • 81. Invite criticism ... and take it well
  • 84. Photo credits http://flickr.com/photos/noulakaz/418575599/ Lawrence Journal-World (with permission) http://flickr.com/photos/mawari/2091456761/ http://flickr.com/photos/lwr/78032315/ Free Software Foundation (GDFL license) http://flickr.com/photos/foox404/640768235/ http://flickr.com/photos/petereed/496392956/ Poul-Henning Kamp (Beerware license) http://flickr.com/photos/ppdigital/2327942088/ http://flickr.com/photos/ognam/252251866/ NASA (public domain) http://flickr.com/photos/summitcheese/197359430/ http://flickr.com/photos/dullhunk/412756798/ http://flickr.com/photos/mathoov/19172893/ http://flickr.com/photos/kandyjaxx/98984009/ http://flickr.com/photos/jdlasica/1681114312/ http://flickr.com/photos/trp0/127771914/ http://flickr.com/photos/andih/345556778/ http://flickr.com/photos/altemark/304078711/ http://flickr.com/photos/simon/351253/ http://flickr.com/photos/yuan2003/733770226/ http://flickr.com/photos/mworrell/266913194/ http://flickr.com/photos/number13001/247125164/ http://flickr.com/photos/ocms/2535068094/ http://flickr.com/photos/iainr/61917036/ http://flickr.com/photos/s_v_p/5869861/ http://flickr.com/photos/dannyman/958602998/ http://flickr.com/photos/dhammza/110422065/ http://flickr.com/photos/xerones/31671892/ http://flickr.com/photos/martinlabar/2832969149/ http://flickr.com/photos/hercules/118434343/ http://flickr.com/photos/kt/418938142/ http://flickr.com/photos/shyha/225517137/ http://flickr.com/photos/donkeycart/2477069275/ http://flickr.com/photos/stee/154686864/ http://flickr.com/photos/therefore/19256103/ http://flickr.com/photos/halfbisqued/2353845688/ http://flickr.com/photos/8011986@N02/2702162140/ http://flickr.com/photos/teflon/128827389/ http://flickr.com/photos/dominiqs/137546402/ http://flickr.com/photos/orinrobertjohn/114430223/ http://flickr.com/photos/druclimb/390916759/ http://flickr.com/photos/articnomad/16153058/ http://flickr.com/photos/poluz/1871578378/ http://flickr.com/photos/cgc/1289366227/ http://flickr.com/photos/zrahen/14469412/ http://flickr.com/photos/pkdouyk/394163975/ http://flickr.com/photos/mihr-i/2741602553/ http://flickr.com/photos/stonebird/2723635311/ http://flickr.com/photos/automatt/226498681/ http://flickr.com/photos/wtlphotos/480714473/ http://flickr.com/photos/kandyjaxx/2012468692/ http://flickr.com/photos/micktwomey/9646019/ http://flickr.com/photos/fatboyke/2668411239/ http://flickr.com/photos/khalid-almasoud/1283997041/ http://flickr.com/photos/zen/12132210/ http://flickr.com/photos/twinleaves/437606968/ http://flickr.com/photos/oskay/404330158/ http://flickr.com/photos/mag3737/1914076277/ http://flickr.com/photos/accordionguy/411908565/ http://flickr.com/photos/cheetleys/295717673/ http://flickr.com/photos/beckytwinley/2451754919/ http://flickr.com/photos/seier/501372541/ http://flickr.com/photos/gullevek/2667764480/ http://flickr.com/photos/devos/6358304/ http://flickr.com/photos/romanlily/2041441584/ http://flickr.com/photos/phoenixdailyphoto/1467681879/ http://flickr.com/photos/kookr/2810433787/ http://flickr.com/photos/robyn-gallagher/2097474328/ http://flickr.com/photos/gavatron/866650954/ http://flickr.com/photos/lexnger/149433512/ http://flickr.com/photos/clintjcl/2471735838/ http://flickr.com/photos/wheatfields/2587147000/ http://flickr.com/photos/akearns72/166086716/ http://flickr.com/photos/fynes/72573221/ http://flickr.com/photos/locator/420581084/ http://flickr.com/photos/timjoyfamily/532089575/ http://flickr.com/photos/thegeneralstore/709924038/ http://flickr.com/photos/tomeppy/84700111/ http://flickr.com/photos/pittaya/396707150/ http://flickr.com/photos/hamed/231011405/ http://flickr.com/photos/bass_nroll/579960238/ http://flickr.com/photos/jcroft/106571677/ http://flickr.com/photos/fusionpanda/363012235/ http://flickr.com/photos/dalbera/2587777300/ http://flickr.com/photos/webology/2722802478/ http://flickr.com/photos/srevenge/1396062019/ http://flickr.com/photos/lwr/62382337/ http://flickr.com/photos/niallkennedy/310814303/ http://flickr.com/photos/foresmac/2537548732/ http://flickr.com/photos/lwr/526773135/ http://flickr.com/photos/thomashawk/305370843/ http://flickr.com/photos/12693492@N04/1338136415/ http://flickr.com/photos/lwr/50191251/ http://flickr.com/photos/glynnis/19523654/ http://flickr.com/photos/platinum/6761199/ http://flickr.com/photos/strausser/386412877/ http://flickr.com/photos/loredenizen/14435744 http://flickr.com/photos/30553515@N00/1786871517/ http://flickr.com/photos/wolfhound/258498934/ http://flickr.com/photos/biwook/145765624/ http://flickr.com/photos/skrb/94927584/ http://flickr.com/photos/jef/52133463/ http://flickr.com/photos/rspanton/2305408272/ http://flickr.com/photos/atc/106694427/ http://flickr.com/photos/furiousgeorge81/177926979/ http://flickr.com/photos/saintmurse/68159330/ http://flickr.com/photos/twenty_questions/2192450204/ http://flickr.com/photos/flattop341/212276640/ http://flickr.com/photos/shawnide/1733789973/ http://flickr.com/photos/rtarga/223776150/ http://flickr.com/photos/davidrn/255058535/ http://flickr.com/photos/xenophod/116388638/ http://flickr.com/photos/eschipul/436109463/ http://flickr.com/photos/huladancer22/530743543/ http://flickr.com/photos/cguille/2556176764/ http://flickr.com/photos/planetargon/127984254/ http://flickr.com/photos/lonebluelady/890604409/ http://flickr.com/photos/mkmabus/2576358439/ http://flickr.com/photos/atomicbartbeans/229618075/ http://flickr.com/photos/9619972@N08/2220659880/ http://flickr.com/photos/vidiot/2150088788/ http://flickr.com/photos/seeminglee/1973003433/ http://flickr.com/photos/cboulton/2085336565/ http://flickr.com/photos/darwinbell/1538611841/