Learn TypeScript programming language to create your next more maintainable JavaScript application. Also include how to use TypeScript with Angular application
Learn TypeScript programming language to create your next more maintainable JavaScript application. Also include how to use TypeScript with Angular application
Poznaj jakie możliwości i korzyści daje Google Cloud Platform dla Twoich aplikacji w Django. Otrzymaj 500$ na testy Google Cloud Platform https://www.googlecloudplatform.pl
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowejTomasz Borowski
Poznaj zalety, jakie niesie ze sobą praca w niezależnym środowisku do developmentu aplikacji frontendowej. W prezentacji znajdziesz wskazówki jak samodzielnie skonfigurować niezależne środowisko developerskie, bazujące na fake’owym API restowym.
Prezentacja pochodzi z serii szkoleń BiteIT organizowanych przez firmę Jcommerce - http://www.jcommerce.pl/biteit/
GameDev od zaplecza
Nie samymi grami gamedev żyje. Z czasem, pojawiają się potrzeby dodania kolejnych klocków, wspólnych dla wszystkich gier, i nie koniecznie związanych z samym gameplayem. Zaczynamy przechodzić na ciemną stronę backendu tworząc serwisy rozszerzające naszą grę o, często niewidoczne dla graczy, ale istotne z punktu widzenia marketingu i analityki ficzery. Na przykładzie jednego z naszych serwisów pokażemy wam jakich technologii używamy w pracy, aby zapewnić stabilne działanie całej siatki ponad 200 mikroserwisów!
Django jest webowym framework napisanym w Pythonie skierowanym do wymagających dostawców treści planujących szybki rozwoju aplikacji.
Django powstało dla szybko rozwijającego się, dynamicznego portalu z newsami. Musiał się on zmierzyć z dwoma zadaniami: dotrzymywaniem krótkich terminów redakcji i spełnianiem surowych wymagań autorów -- doświadczonych developerów webowych. Django pozwala na budowanie wydajnych i eleganckich aplikacji internetowych w krótkim czasie.
Spróbujemy odpowiedzieć na pytanie: Jaki framework będzie dla nas najlepszy? Opowiem dlaczego to pytanie jest takie ważne oraz o tym czego potrzebujemy by znaleźć na nie odpowiedz, która wcale nie jest taka trywialna.
1. Pogodzić Google App Engine
z Django
Rafał Jońca
http:/jonca.vdl.pl/
PyConPL 2008
18-19 październik 2008
2. Zawartość
Google App Engine
Co to takiego? Jak działa?
Zalety, wady, ograniczenia, rynek
Django w App Engine
Jak? Co otrzymamy? Jakie wersje Django?
Projekty ułatwiające integrację
Jedna aplikacja, dwa podejścia
WebApp kontra Django GAE Helper
Testy w Django GAE Helper
Wnioski, wskazówki
3. Google App Engine
Platforma dla aplikacji internetowych
zapewniająca:
Łatwość konfiguracji i wdrożenia
Wolność od zadań stricte administracyjnych
Skalowalność
Integracja z kontami Google (uwierzytelnianie)
Obsługa danych statycznych
Środowisko deweloperskie
Bezpłatny startowy pakiet liczby odsłon i
przechowywanych danych
4. Architektura
Żądanie/odpowiedź
Interfejsy
System tylko
bezstanowe:
do odczytu:
zapytania HTTP, Proces biblioteki
obrazy, maszyny
wysyłka maili wirtualnej
Pythona
aplikacja
Interfejsy
memcache DataStore
stanowe:
5. Możliwe zastosowania
Własna witryna domowa
Niewielkie witryny lub aplikacje tematyczne
Proste witryny dla przedsiębiorstw nie działających
w obszarze WWW
Tworzenie aplikacji wewnątrzfirmowych jako część
pakietu Google Apps*
*
Skalowalne aplikacje internetowe
*
po okresie testowym
6. Wady GAE
● Brak relacyjnej bazy danych (złączeń, grupowania)
● Komunikacja ze światem zewnętrznym tylko przez
dostarczone API
● Zamknięte środowisko wykonawcze
● Ograniczenia rozmiarów danych
● Uzależnienie się od rozwiązań jednego dostawcy
● Brak długo działających procesów
● Odmienna architektura trudna do zaakceptowania
dla dużych, istniejących projektów
7. WebApp
GAE udostępnia bardzo prosty framework WebApp
zawierający:
obsługę żądań opartą o bibliotekę WebOb
mechanizm opisu modeli wzorowany na Django
system szablonów z Django 0.96
Dobry na start lub gdy tworzymy usługi sieciowe,
pełna swoboda
Brak wielu mechanizmów z innych frameworków,
wymyślanie koła od nowa
8. Django w App Engine
Użycie Django w GAE daje dostęp do:
elastycznego mechanizmu odwzorowania adresów
systemu luźno powiązanych aplikacji
wygodnej obsługi memcache na poziomie widoków i
*
szablonów
rozbudowanego systemu obsługi formularzy
wielojęzyczności na poziomie statycznym
sesji*
testów funkcjonalnych wraz z obsługą danych
testowych*
wielu aplikacji pomocniczych gotowych do użycia
9. Czego ze standardowego
Django nie dostaniemy?
automatycznego panelu administracyjnego
przeglądarki danych (GAE Admin oferuje własną)
komentarzy
mechanizmu contenttypes
innych aplikacji wykorzystujących bazę danych
brak również dostępu do zewnętrznych aplikacji
Django stosujących bazę danych (np. Satchmo)
10. Django w GAE bez
dodatkowego wspomagania
W Google App Engine jest Django 0.96
Wymaga zastosowania nieco bardziej złożonego
pliku main.py dostępny na witrynie GAE
Użycie Django 1.0 wymaga większej liczby
dodatkowych kroków:
Najlepiej umieszczenia okrojonego Django w archiwum
ZIP
Usunięcia z pamięci wczytanego Django 0.96 i
dołączenia nowszego przez zmianę ścieżek importu
11. Można prościej!
Istnieją projekty wspomagające współpracę Django
i GAE, z czego najciekawsze są trzy:
http://code.google.com/p/djangogaehelpers
wykorzystamy go w dalszej części prezentacji
wspierany przez pracowników Google
http://code.google.com/p/appenginepatch/
bardzo podobny do pierwszego
tworzony niezależnie
http://code.google.com/p/djangogae2django/
jeśli tworzyłeś aplikację django w GAE, dzięki temu
projektowi możesz jej użyć poza GAE, czyli w standardowym
Django z relacyjną bazą danych!
12. Google App Engine Helper
for Django
wykonywanie poleceń GAE za pomocą manage.py
klasa User z Django dla użytkowników z kontami Google
obsługa testów i wczytywania danych testowych
obsługa wysyłania emaili mechanizmem Django
przekierowania błędów do modułu logging
automatycznie usunięcie django wbudowanego w GAE i
zastąpienie dostarczonym jako django.zip
obsługa sesji w BigTable i memcache
obsługa cache
gotowe pliki app.yaml i main.py
13. Instalacja GAE Helpers
Pobierz kod z http://code.google.com/p/djangogae
helpers
Po rozpakowaniu dołącz django.zip z Django 1.0
Opis przygotowań dostępny na
http://code.google.com/appengine/articles/django10_zipi
mport.html
Zmodyfikuj plik app.yaml, podając własną nazwę
aplikacji
Od tego momentu masz dostęp do większości
elementów Django 1.0!
14. Przykładowa aplikacja
w WebApp
Pobieramy App Engine SDK:
http://code.google.com/appengine/downloads.html
Tworzymy wymagane pliki i foldery
Demo...
Testujemy lokalnie
Demo...
Przesyłamy na serwery Google
15. ...i w Django GAE Helper
Wcześniejsza aplikacja napisana w Django
Demo...
Tworzenie testów i fixtures
Demo...
Aplikacja live
16. Warto czy nie warto?
Dla znających Django Django GAE Helper i
znacznie bardziej App Engine Patch to
przyjazne środowisko jednak spory monkey
Pomimo niezgodności patching!
modeli danych Django GAE Helper nie
uzyskujemy wiele jest dopracowany
gotowych elementów i Przesyłanie Django 1.0
dostęp do wielu wraz z projektem
dodatkowych aplikacji
Ułatwia migrację do
Łatwiejsze wyjście z GAE tylko częściowo
GAE
17. Przyszłość Django w GAE?
Raczej niezachwiana, choć na bezpośrednią obsługę
wersji 1.0 musimy jeszcze poczekać
Powstanie osobnego projektu GAEDjango?
Jest Gaengo, ale nierozwijane...
Modele zgodne z API ORM Django?
Całkiem możliwe dzięki QuerySet refactor!
Ale nie łudźmy się w kwestii uruchomienia każdej
aplikacji Django bez modyfikacji modeli BigTable to
wiele ograniczeń, potrzeba denormalizacji...
... choć liczba zmian będzie znacznie mniejsza
18. Kilka rad na zakończenie
Używaj django.zip zamiast zwykłych plików
Folder locale z django umieść poza archiwum
...to samo dotyczy szablonów
Użyj łatki z issue 94 dla Django GAE Helper
GAE automatycznie używa gzip
Jeśli to możliwe, używaj metod z QS zamiast GQL
Jeśli możesz, nie używaj sesji, ale signed cookies
...ewentualnie sesji w memcache, ale są mniej pewne
SDK to nie live, korzystaj z wbudowanego stagingu