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.
Byłem w pierwszej lekcji pierwszego rozdziału opowiedzieć Wam o
strukturze katalogów którą stosuję w każdym nowym projekcie i która bardzo
usprawnia proces Development i późniejsze utrzymanie tego.
Kiedyś miałem sytuację że wchodziłem w projekty które
były nie dość że źle napisane brzydko w kwestii samego kodu to na dodatek były tak
ułożone że nie byłem w stanie nic znaleźć i samo uruchomienie
serwera deweloperskiego trwało wtedy całe dnie żeby uniknąć tego.
Pokażę wam w miarę uniwersalny sposób na podzielenie projektu.
Zaczynamy od katalogu głównego
w którym trzymamy poza trzymam plik HDMI z informacją co znajduje
się na repozytorium co mamy w projekcie i na czym on nie więcej polega.
Oczywiście jest to też git ignoruje
katalog Williams który pod montowany w kamerze lub wystawiał do niego pliki media
w tym katalogu jest również Riquelme i deweloper mam właśnie tutaj otwarty
przykładowy plik regiment developer w którym.
Włączam konkluduje plik reguł z tekstem
Armand z tekstem mamy standardowe pakiety czyli go i w tym przypadku NW Iron.
Natomiast w developer jeżeli doszłoby mi
specjalne pakiety które ułatwiają deweloper danie np.
debatuje Barry np.
jakieś inne narzędzia które przedstawię Wam w dalszej części kursu to lepiej żeby
znalazły one się tutaj ponieważ nie będą one potrzebne nam na produkcji.
Zajrzymy do katalogu App widzimy że tutaj jest główny katalogu Django.
Mamy tutaj plik Mamy pliki ze zmiennymi środowiskowym
o których opowiem Wam w następnej lekcji folder Temple AIDS.
Folder statek.
Foldery z aplikacjami m.in.
Arctic S i kolor folder kolor to taki folder do którego
wchodzą rzeczy używane w kilku różnych aplikacjach.
Jeżeli mamy aplikację artykul z Paris
Events okaże się że jest to funkcja z której korzystamy.
I tu i tu i tu to najlepszym pomysłem jest
włożenie jej właśnie do takiego wspólnego katalogu do wspólnej aplikacji.
To co jest najciekawsze co najbardziej
różni moją strukturę od tej domyślne i to jest katalog konflikt.
Katalog konflikt domyślnie nazywa się od nazwy projektu
ale moim zdaniem jest to kiepska praktyka ponieważ jak zaczynamy nowe projekty to
jest to mniej uniwersalne w katalogu konflikt mamy wiarę.
Dobrym pomysłem jest jeżeli roznosi się bardzo mocna aplikacja jeżeli mamy jakąś
jakiś duży podział URL i możemy podzielić na dwie strefy w stylu strefa dla
administratora stref strefa dla gościa to możemy zamiast.
Plik URL stworzyć pakiet URL i tam w środku rozdzielić to na różne pliki.
Mamy ustawienia co jest najważniejsze.
Trzymam ustawienia bazowe
i trzymam ustawienia pod każde środowisko które docelowo będę wystawiał wystawiamy.
W tym przypadku deweloper i produkcje ale bardzo często np.
serwery z tej umowy.
Jest to jakiś jeszcze inny serwer
gdzieś w zależności od tego jakie środowisko macie w nim.
Może jeszcze jak wyglądają ustawienia
deweloperskie ponieważ ważne jest żebyśmy nie pobierali kodu.
Dlatego.
W pliku deweloper importuje z bazowych
ustawień wszystkie atrybuty wszystkie ustawienia i te które nas interesują.
Wpisujemy w tym przypadku chcemy żeby
włączony był debat i żeby akceptować wszystkie posty od użytkownika plik baz.
Poruszamy nieco bardziej szczegółowo w
następnej lekcji o gangu Environment ale możemy tutaj zerknąć teraz i zobaczyć
że są tutaj standardowe choć nieco zmodyfikowane ustawienia od Django.
Chciałbym wam jeszcze pokazać w jaki sposób poruszam się po swoim projekcie jak
przechodzę do konkretnych klas i konkretnych plików.
Większość programistów która programie nie korzysta Spychała.
Jest duża szansa że i ty z niego korzystasz.
Dlatego zachęcam Cię do spróbowania.
No właśnie w ten sposób po projekcie
do znalezienia klasy korzystam z metody Good class.
Możesz sobie zajrzeć w skróty klawiszowe i
wyszukać pod jakim skrótem klawiszowe jest to na twoim systemie operacyjnym.
Umie jakoś korzystam z maka jest to
komando i w tym momencie wpisując jakąkolwiek wielką literę która zaczyna
słowo w klasie mogę wyszukać danej klasy mam np.
Article Alice 2.
Wpisuje a wpisuje i wpisuje V.
Widzicie że znalazłem i konkretnie te
litery od których się zaczynały słowa powiedzmy że chce przejść do konkretnego
pliku albo konkretnego folderu w aplikacji do tego celu używam.
Skrótu Command Shift o.
Gdzie możemy przejść.
Powiedzmy że chcielibyśmy wejść w
ustawienia produkcyjna są pod kompleksem Things Production.
Wpisuje Command Celtics Production.
I widzimy że wskazało nam odpowiedni plik
pomimo tego że wpisać tylko po jednej litery C z folderów które były wyżej.
Może się zdarzyć że podczas tego kursu
będę przechodził do jakiejś opcji konfiguracji w pychę.
Robię to za pomocą dwukrotnego
przeciągnięcia Siwca które wywołuje wyszukiwarkę po wszystkim to możemy
wyszukiwać plików ale możemy też wyszukiwać ustawień w naszym torze.
Spróbujmy wpisać ich interpretację.
Widzimy że możemy przejść do.
Ustawień bezpośrednio.
Bardzo przydatną rzeczą którą pewnie znasz jest skorzystanie
z skrótu dzięki któremu przechodzimy do szczegółów implementacji tych użytej np.
klasy. Tu mamy gitarę.
Są dwie metody albo otrzymujemy Command na
Windowsie 100 bodajże Control i na Linuksie.
Przyciskami i przechodzimy do klasy.
Drugą metodą jest przyciągnięcie Command B i przejście do szczegółów.
Metoda ta nazywa się gwałtu deklaruje pan Józef.
Całkiem fajne jeśli chcecie przypisać do danej akcji skrót klawiszowe
jest w wyszukiwarce dajmy na to chcemy coś uruchomić.
Przez trzymanie przycisku ALT i wciśnięcie przycisku enter co sprawi że możemy od
razu do konkretnej akcji przypisać skrót klawiszowe.