SlideShare ist ein Scribd-Unternehmen logo
1 von 84
Downloaden Sie, um offline zu lesen
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/

Weitere ähnliche Inhalte

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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)
 

Kürzlich hochgeladen

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
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
 
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
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
[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
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
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
 
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
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
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
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
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
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
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
 
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
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
[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
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
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
 
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
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
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
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
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...
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

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/