Techniki Zaawansowane
3 godz. 43 min · Python · Full-stack i Programowanie
Grzegorz SzymborskiProgramistaJeżeli na samym początku nie przygotujemy dobrze projektu, to gdy wrócimy do niego po dłuższym czasie - czekają nas kłopoty. Jeżeli uda się nam go uruchomić, to rozeznanie się w nim będzie udręką. Prowadzący pokaże Ci jak wyglądają jego produkcyjne aplikacje, na co zwraca uwagę i co pomaga mu trzymać porządek.
Biblioteka pytest posiada wiele ciekawych funkcjonalności. Parametryzowanie testów, fixture i uproszczona składnia pozwalają nam skupić na testowaniu tego, co kluczowe, wydzielając mniej istotne fragmenty kodu. To wszystko sprawia, że w pewnym momencie łatwiej będzie Ci pisać testy, niż ręcznie sprawdzać poprawność działania apki.
Jeżeli aplikacja, którą stworzysz, osiągnie dużą popularność, może się okazać, że przytłoczona dużym ruchem zacznie spowalniać... lub całkowicie przestanie odpowiadać. Opiszemy różne techniki służące temu, by temu zaradzić - od metod select i prefetch related, aż po cache. Na deser przeprowadzimy na stronie test obciążeniowy za pomocą narzędzia locust.
Django i Postgres to świetne połączenie. Framework ten posiada wbudowaną obsługę wyszukiwania pełnotekstowego oferowanego przez tę bazę. Warto wiedzieć, kiedy jej użyć, a kiedy wystarczy zwykłe icontains.
ORM w Django ułatwia mnóstwo operacji. A czasem nie dość to, że ułatwia... to jeszcze przyspiesza! Chcemy zainspirować Cię czterema metodami: annotate, aggregate, bulkupdate i bulkcreate. Gdy pojawią się one w naszym kodzie, zaczniemy doceniać uroki frameworka Django.
Kurs jest stworzony dla osób, które znają już podstawy Django i wiedzą, jak pisać proste strony. Znają modele, widoki, oraz niestraszny im jest Python. Zalecana jest również podstawowa znajomość dowolnej relacyjnej bazy danych. W kursie przedstawiamy niekiedy narzędzia i praktyczne przykłady, jak można ich użyć, ale w celu zaimplementowania konkretnego rozwiązania w projekcie wymagana będzie umiejętność czytania dokumentacji.
Mamy dużą stronę
skasowanie danych jest niemal niezbędne jeżeli mamy setki może nawet tysiące
zapytań na minutę to wtedy zależy nam żeby użytkownicy dostawali strony zawsze szybko
i zawsze bezbłędnie rzeszowianie danych polega na tym
że zamiast przeliczać jakąś wartość wiele razy jeżeli ona jest taka sama dla kilku
użytkowników to powinniśmy ją zaserwować raz.
Zazwyczaj narzędzia w których trzymany
jest cel pozwalają na błyskawiczny dostęp do danych.
Działają one przeważnie na zasadzie
słownika na zasadzie klucza i wartości gdzie np.
pod kluczem będzie adres naszej strony a pod wartością będzie cały HTML który
powinien zostać za serwowane oczywiście URL w kluczu.
Jest to dość prymitywny sposób identyfikacji strony internetowej ponieważ
wtedy byśmy dla każdego użytkownika niezależnie od tego czy jest to
administrator czy jest to użytkownik czy jest to gość serwowali to samo.
Moglibyśmy wtedy napotkać na nieoczekiwane problemy.
Kiedy użytkownik w sklepie widzi zamówienie innego użytkownika które
zostało skasowane i widzi też tam jego adres.
Takie rzeczy działy się
i będą pewnie się działy w przyszłości ponieważ inwalida akcja jest bardzo trudna
musisz doskonale znać aplikację by doskonale wiedzieć gdzie co jest używane
po to żeby przewidzieć jakie mogą być problemy w przyszłości.
Narzędziem które domyślnie wspierany jest przez Yahoo jest miękka.
Jest to system kasowania danych który jest błyskawiczny działa w ramie i
pozwala wspiąć się bez instalowania dodatkowych paczek.
Drugim narzędziem z którego z kolei ja korzystam ponieważ jest nowsze posiada
wiele ciekawych oficerów i łatwo się integruje z systemami kolejowymi.
Jest Meredith i zazwyczaj pisząc aplikacje lokalnie używam docelowej wersji red Lisa
ponieważ pozwala ona w bardzo łatwy sposób na każdym komputerze zainstalować RDS
wystawić go na odpowiednim porcie i wspiąć się do niego z Django.
Sposób jak to zrobić jest opisany w
rozdziale pierwszym w lekcji poświęconej doktorowi.