Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Samo za Django hejtere!

Samo za Django hejtere!

Odgovor na pitanja onih koji mrze Django

Avatar for Stjepan Zlodi

Stjepan Zlodi

May 15, 2014

More Decks by Stjepan Zlodi

Other Decks in Programming

Transcript

  1. Samo za Django "hejtere" • Stjepan Zlodi • Wolfwood's Crowd

    blog • Twitter: @ylodi • Styria Hrvatska Medijski Servisi 1
  2. Zašto slušati hejtere? • Nekad su stvarno u pravu •

    ...ali uglavnom nisu! • Nedovoljno poznavanje tehnologije... • ...i stare navike. 2
  3. Hosting Django sucks jer ne možeš naći normalan hosting! Komplicirano,

    teško... • Zašto bi netko želio shared hosting? • Jednostavno, jeftino, imaš control panel...i glavobolju • VPS? Vlastiti poslužitelj? • Osigurana sredstva na raspolaganju • Specijalizirani hosting u oblaku? • Jednostavnije, ali skuplje “ 3
  4. Setup Django sucks jer ga je nemoguće namjestiti da radi

    • mod_python, mod_wsgi, uWSGI, Gunicorn? • Apache i mod_wsgi • nginx i uWSGI “ 4
  5. Koraci Nadogradnja aplikacije s previše koraka, uvijek nešto zaboravim •

    Automatizirajte postupke • Source control • Fabric “ 5
  6. Kod mene radi Django sucks jer kod mene radi, a

    na produkciji ne • Razvijajte u produkcijskim uvjetima • ./manage.py runserver i pravi web poslužitelj • iste inačice paketa • ista baza • isti inačica Pythona “ 6
  7. Template Django sucks jer ima skroman template engine • Django

    template nije programski jezik • Samo za prezentaciju i prezentacijsku logiku • View - koji podaci • Template - kako će se prikazati • Koriste ga i dizajneri • Proširenje mogućnosti uz pomoć tagova i filtera “ 7
  8. Savjet 1. Koristite connection pooling • PgPool • PgBouncer •

    django-xxx-pool Možete uštedjeti više nego da promijenite template engine. :-) 9
  9. ORM Django sucks jer ne mogu sve napraviti s ORM-om,

    tjera me da uči SQL • I ne treba. ORM služi za česte upite, a ne da potpuno zamijeni SQL. • Ako je SQL prikladnije rješenje - upotrijebite ga. “ 10
  10. Upoznajte ORM Django sucks jer ORM generira loš SQL •

    Programer je kriv (MojModel.objects.all()) • select_related, prefech_related • only, defer “ 11
  11. Template i ORM Django sucks jer stvara previše upita •

    Sjećate li se? Template je samo za prezentaciju • Template ne smije stvarati nove upite • Pazite na related_name “ 12
  12. ORM Django sucks jer ORM nekozistentan • Istina! • .filter(moje_polje=vrijednost)

    • F('moje_polje') • .filter(moje_polje__isnull=True) “ 13
  13. ORM Django sucks jer nema normalan group by • Istina!

    • Polaznici.objects.values('dvorana').annotate(ocjene = Sum('ocjena')).order_by('ocjena') • Ovo ne radi: Sum(F('prijavljenih') - F('pristiglih')) “ 14
  14. Tužibaba Django sucks jer šalje mailove kad se ruši aplikacija

    i ljuti admina zbog logova • ADMINS kao izvor zla (settings.py) • Zajednički mail i Error rate limit • Sentry kao idealno rješenje “ 15
  15. Admin Django sucks jer ima loše admin sučelje • Ne

    pamti zadane filtere • Ne prikazuje slike • Kompliciran je za prilagođavanje • Administrator mora poznavati strukturu baze • Nije podržan ContentType framework • Django ima admin sučelje! Što je s drugima? “ 16
  16. Admin Django sucks jer mi je admin srušio server •

    Strani ključevi s puno slogova u select kontroli • raw_id_fields “ 17
  17. Contrib Koristio sam contrib.comments, a sada ih ukidaju • Ne

    koristite tuđe aplikacije za ono što možete sami napraviti • Tagovi “ 18