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.
To testy warto pisać wiedzą wszyscy więc nie będę was nawet próbował do tego
przekonywać ale spróbuję was przekonać do biblioteki test
którą jakiś czas temu znalazłem którą jakiś czas temu zacząłem używać i
uważam że jest zdecydowanie wygodniejsze niż mi test do pisania testów w Django.
Posiada kilka zalet względem Emitenta między innymi pozwala na pisanie
testów za pomocą funkcji nie musimy stosować klasy dziecięcej test Case
pozwala na używanie faktów o których przygotowałem całą osobną lekcję
i moim zdaniem pozwala na znacznie czytelnie pisze.
Tutaj mamy przykład domyślnie.
Inni też się trzeba napisać Acer igłą a
tutaj wystarczy porównać tak jakbyśmy robili tradycyjnego Alberta
pytania zainstaluje mapę miasta tradycyjnie za pomocą papa.
I od razu przy okazji zainstaluje też bibliotekę płytę z Django
która zawiera niezbędne metody niezbędne funkcjonalności do tego żebyśmy testowali
modele testowali bazę danych i testowali funkcjonalności związane z.
Przejdźmy teraz do katalogu zmian.
Kolejnym dobrym pomysłem
jest utworzenie w tym katalogu pliku konfiguracji dla miasta.
Nazywa się on jest kropka inni.
Zawiera konfiguracje
z jakimi parametrami powinien się domyślnie uruchamiać test
z jakich ustawień ma korzystać i jakie pliki ma włączać do testowania.
Polecam również
stworzyć plik z testami typowo dla petenta i w przyszłości będziemy w stanie w bardzo
dobry sposób kontrolować z jaką konfigurację uruchamiają się testem kiedy
robimy to na przykład na serwerze deweloperskim.
Kiedy mamy już z testami to warto wypełnić konfigurację miasta.
Na samym początku musimy dodać.
Fragment informujący że jest to
konfiguracja miasta i ustalimy z jakiego modułu ustawień ma korzystać.
Domyślnie uruchamia się go zazwyczaj za pomocą komendy P.
Jak widzimy testy nam przeszły i zacznijmy
może na jakie konkretnie testy nam przeszły.
Ten plik.
Mamy tutaj standardowy test Unit testowy który dziedziczy pokrywa się test case
czyli jak widać test jest kompatybilny z innymi testem.
Gdybyśmy chcieli przerobić ten test na
testowy robimy to w ten sposób że nie używamy już klasy.
Zmieniamy.
Aster i gwar na zwykły Aster.
Porównujemy za pomocą znaków równości wartość uruchomimy jeszcze raz.
Testy przechodzą.
Na dłuższą metę.
Stosowanie takich testów pozwala nam
bardzo fajny sposób wydzielać malutkie fragmenty które będziemy testować.
Bardzo wygodne jest też
dodanie konfiguracji od razu do ArmA i robimy to w ten sposób że uruchamiamy.
Python Integrated Tools.
Tutaj zmieniamy domyślne ramy.
Trzeba jeszcze zaznaczyć w zakładce framework Django.
Tutaj będzie trzeba skonfigurować ścieżkę
z aplikacją i z ustawieniami deweloperskim.
To ogólnie dobra praktyka żeby projekty łatwiej się nam prowadziło wpycha armia.
Katalog główny aplikacji.
Domyślnie będę korzystał z serwisów
deweloperskich i ważna rzecz żeby korzystać z PIT.
Trzeba zaznaczyć ten czas.
W tym momencie przy testach które są same w teście będą
się pojawiały bądź jakieś zielone które możemy uruchomić.
Możemy też uruchamiać z tej perspektywy
i możemy również stworzyć konfigurację wywołujące testy.