Architektura SPA

Konrad Hałas @ PyWaw #39


<script>
  {% if user.is_authenticated %}
  var USER = {
    'username': '{{ user.username }}'
  };
  {% endif %}
</script>
      

{{ user.username }} shopping cart: [{ items.length }] items

Problemy

  • silne powiązanie frontendu z backendem
  • renderowanie/manipulacja HTML zarówno przez JS oraz backend
  • trudność w testowaniu kodu JS

Single-page application

Plusy

  • rozdzielenie odpowiedzialności
  • łatwiejsze testowanie
  • gotowe API dla innych klientów (np. mobilnych)
  • lepszy UX
  • mniej pobieranych danych
  • tryb offline
  • łatwiejsza integracja narzędzi frontendowych

Minusy

  • skomplikowana architektura (?)
  • SEO (?)
  • konieczność obsługi JS
  • zapytanie o dane dopiero gdy załadują się wszystkie JS

Przykłady

  • Trello
  • GMail
  • Twitter (?)

Stos

Warsztaty: Single Page App z Django i AngularJS

Warsjawa i PyCon PL

Dziękuję!

Q&A