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

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
 
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
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
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
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
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
 

Dernier (20)

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
 
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
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
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
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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 ...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
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
 

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/