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

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Dernier (20)

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

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/