Witajcie! Dzisiaj chciałbym podzielić się z Wami kilkoma fundamentalnymi zasadami projektowania oprogramowania, które omówiliśmy na jednym ze spotkań społeczności PyMasters (są miejsca!). Znając cechy dobrego projektu oraz wykorzystując zasady takie jak "Hermetyzuj to, co się różni" oraz "Programuj pod interfejs, nie pod implementację", możemy tworzyć bardziej zrozumiałe, elastyczne i łatwe w utrzymaniu aplikacje. Zapraszam do…
Autor: Jacek Ostański
Brak testów poważnie szkodzi Tobie i osobom w Twoim otoczeniu
Dziś opowiem Ci historię transformacji jakości mojej pracy. Przez wdrożenie TDD w mojej codziennej pracy programisty, jakość mojego kodu wzrosła, poziom stresu spadł, wraz z ilością wracających do mnie błędów. Na początku mojej przygody z programowaniem wszystko testowałem ręcznie. Trwało to wieki, każdy nowy formularz, nowa strona. Wyszukiwarka, sortowanie, logowanie. Była tego cała masa, do…
Podstawy programowania obiektowego w Pythonie
W dzisiejszym wpisie chcę pokazać Wam kawałek społeczności PyMasters, którą tworzymy na platformie discord. Nasze spotkania odbywają się co tydzień o 20:15 i obecnie skupiamy się na dużej serii poświęconej programowaniu obiektowemu oraz wzorcom projektowym, a dołączyć można na https://pymasters.pl/spolecznosc. W tym nagraniu omawiamy podstawy programowania obiektowego w Pythonie, w tym definicje klas, obiektów, atrybutów,…
Eksploracja Pythona 3.12 – Nowe funkcje i ulepszenia
Python 3.12 wprowadza wiele fascynujących zmian i ulepszeń, które sprawiają, że język staje się jeszcze bardziej potężny i elastyczny. W tym poście przyjrzymy się najciekawszym nowościom. PEP 695: Składnia parametrów typów Jednym z najważniejszych ulepszeń jest wprowadzenie nowej, bardziej zwięzłej i wyraźnej składni do tworzenia klas i funkcji generycznych, zaproponowanej w PEP 695. Ta zmiana…
Zaawansowane techniki w Django ORM: Optymalizacja zapytań dla lepszej wydajności
Django ORM (Object-Relational Mapping) jest kluczowym komponentem frameworka Django, używanym do mapowania obiektów Pythona na rekordy w bazie danych. Dzięki temu można pracować z bazą danych przy użyciu języka Python, zamiast bezpośrednio w SQL, co ułatwia i przyspiesza proces tworzenia aplikacji. Na przykład, jest model Book w Django, który reprezentuje książkę w naszej bazie danych:…
Django 5.0 wydane! Nowości i Zmiany
4 grudnia 2023 roku wydano Django 5.0. To również oznacza zakończenie wspierania wersji 4.1, wersja 4.2 LTS będzie otrzymywać łatki bezpieczeństwa do kwietnia 2026. W tym artykule skupię się na najważniejszych, moim zdaniem, zmianach, jakie wprowadza Django 5.0. Wsparcie nowych wersji Pythona Najważniejszą zmianą w nowej wersji jest wsparcie dla najnowszych wersji: Pythona 3.10, Pythona…
Zrozumieć Django – użytkownicy. Jak stworzyć własny model użytkownika z logowaniem po adresie email.
Często powtarzającą się funkcjonalnością każdej aplikacji jest tworzenie i zarządzanie kontami użytkowników. Django w tej kwestii dostarcza gotowe rozwiązanie, jednak rozszerzenie standardowego użytkownika jest skomplikowane. Dodatkowo, Django używa pola username do logowania, co zmusza użytkownika do pamiętania kolejnego loginu. W tym poście pokażę jak wykorzystać standardowe mechanizmy Django do stworzenia własnego modelu użytkownika, z dodatkowymi…
Zrozumieć Django: null vs blank w tekstowych polach modeli
Zapraszam do bonusowego posta w serii "Zrozumieć Django: null vs blank w polach modeli" O co w ogóle chodzi? W dokumentacji Django dotyczącej modeli, znajduje się ostrzeżenie: Avoid using null on string-based fields such as CharField and TextField. If a string-based field has null=True, that means it has two possible values for “no data”: NULL,…
Class-Based Views w Django: Wygodny sposób tworzenia widoków, część 3.
Zapraszam do kolejnego posta na temat widoków klasowych w Django. W poprzednim poście opisałem: ListView CreateView FormView DeleteView Dziś omówię widoki oparte na przetwarzaniu dat, to jest: ArchiveIndexView YearArchiveView MonthArchiveView WeekArchiveView DayArchiveView TodayArchiveView DateDetailView Cała seria postów jest rozwinięciem webinaru, w którym pokazałem jak szybko zbudować stronę internetową z wykorzystaniem CBV: Django w godzinę: Tworzenie…
Class-Based Views w Django: Wygodny sposób tworzenia widoków, część 2.
Zapraszam do kolejnego posta na temat widoków klasowych w Django. W poprzednim poście opisałem: najważniejszą metodę w widokach – get_context_data widoki: TemplateView, DetailView, RedirectView. W tym poście omówię: ListView CreateView FormView DeleteView Cała seria postów jest rozwinięciem webinaru, w którym pokazałem jak szybko zbudować stronę internetową z wykorzystaniem CBV: Django w godzinę: Tworzenie aplikacji z…