Czysta architektura w Pythonie

utworzone przez | 23/08/2019 | Czysta architektura w Pythonie

Od wielu lat szukam lepszych rozwiązań i praktyk programistycznych. Robię co w mojej mocy, żeby mój kod był czytelny, prosty oraz, co najważniejsze, żeby inni mogli go rozwijać bez wyrzucania z siebie tony przekleństw. Nie jest to łatwe zadanie, zawsze mi czegoś brakuje, coś mogłoby wyglądać lepiej lub być inaczej zorganizowane. 

Przez większość czasu skupiałem się na nazewnictwie, dobrej strukturze kodu, trzymaniu się podstawowych wzorców projektowych. To dawało systematyczny, lecz powolny wzrost jakości mojego kodu. Co gorsza, nie czułem, żeby to była najlepsza droga, jednak tylko taką znałem.

Dużo zmieniło się w chwili gdy “zaprzyjaźniłem się” z dwójką Panów, Robertem C. Martinem, zwanym wujkiem Bobem, oraz Kevlinem Henney’em. Obaj wprowadzili mnie do świata czystej architektury i to był ogromny skok. Znalazłem paliwo rakietowe, którego od dawna szukałem 😉

Czysta architektura nie jest zbyt popularna w środowisku Pythona. Wiele tutoriali, samo Django i ogólnie dostępne materiały, raczej korzystają z tradycyjnego podejścia żądanie-odpowiedź. Na początek, ba nawet na dłuższą metę, takie podejście wystarcza. 

Jednak Python staje się coraz bardziej popularny w środowisku enterprise i nie mówię tu o Star Treku 🚀, tylko o bardzo zaawansowanych systemach. Takie aplikacje są rozwijane i utrzymywane latami. Tradycyjne podejście nie wystarcza i stwarza wiele wyzwań. Jedno z ciekawszych, to aktualizacja technologii. Gdy korzystasz z czystej architektury, nawet osoba bez większego doświadczenia może nie tylko zaktualizować, ale i całkowicie wymienić dowolny z twoich frameworków 🙀

Mini projekt

Celem serii “CA w Pythonie” będzie stworzenie krok po kroku mini projektu. Nie będzie to jednak projekt prezentujący jakąś technologię czy framework. Będzie to zestaw połączonych narzędzi, które tworzą spójną całość. 

Najważniejsze w tym projekcie będzie bazowanie na prawdziwej, złożonej aplikacji, gdzie te rozwiązania się dobrze sprawdzają. Będę opisywać dużo pobocznych rzeczy, nie związanych bezpośrednio z czystą architekturą, ale potrzebnych do zbudowania SOLID-nego kodu. Omówimy np takie świeżynki jak typowanie czy dataclasses.

Plan podróży

W czasie naszej podróży 🌎 będziemy dużo kodować. To według mnie najlepszy sposób na prezentacje tego tematu. Słowa można różnie interpretować, ale kodu już nie.

Domena aplikacji

Zaczniemy od najważniejszej rzeczy w naszym mini projekcie, czyli domeny aplikacji. Opiszemy dane na których będziemy pracować oraz jakie operacje będziemy chcieli wykonywać – zaimplementujemy czystą logikę biznesową.

Testy jednostkowe w czystej architekturze

Nauczymy się jak powinny wyglądać testy jednostkowe w czystej architekturze. Takich testów pozazdrości ci każdy programista! 😎 To powinna być największa zachęta do dalszej nauki!

Nie zaczynaj od bazy danych 🙈

Przygotowanie czystej architektury bez bazy danych. Wujek Bob zbudował swój system trzymając wszystkie dane w zwykłych plikach tekstowych. Moja propozycja jest trochę inna, ale bazuje na jego pomyśle.

Pierwsza zależność – wystawianie API

Tak, będziemy budować API. Do tego będziemy musieli skorzystać z jakiejś biblioteki, frameworka webowego. Czy to ważne jakiego? Nie 🙂

Zabezpieczenie domeny – wyznaczanie granic 👮

Ostatnim kluczowym elementem czystej architektury jest zabezpieczenie naszej domeny. Tak jak wszystkie ważne elementy naszego projektu, także granice należy w jakiś sposób zabezpieczyć.

10, 9, 8 …

Odliczanie się zaczęło! Za dwa tygodnie omówimy domenę aplikacji i jak możemy ją zbudować w naszym ulubionym języku – Pythonie  🐍👋

O autorze

O autorze

Grzegorz Kocjan

8 lat z Pythonem to wspaniała przygoda, nieważne czy musiałem naprawić błąd na wczoraj, czy zaprojektować zaawansowany i wydajny system, Python nigdy mnie nie zawiódł! 🐍

Czysta architektura okiem ekipy migawka.it

Jakie problemy napotkaliśmy na początku? W czym nam pomogła? Kiedy na pewno z niej nie skorzystamy?

Nie przeszkadzaj mi! Jak nie dać się wyrwać z flow

Ile razy ostatnio zostałeś brutalnie oderwany od swojej pracy? Zaszywasz się w biurze i nagle pojawiają się oni – nieoczekiwani goście i ich pytania, które nie niosą ze sobą grozy awarii albo powagi hotfixa. Ale są to pytania, które teraz, dokładnie w tym momencie muszą paść i oderwać cię od bieżącej pracy. Jak sobie z nimi poradzić?

Precyzyjne twoje wiadomości być muszą

Dostajesz wiadomość e-mail i zastanawiasz się, czy to na pewno do ciebie i co właściwie masz zrobić. Wysyłasz pilną informację na komunikatorze i czekasz tydzień na odpowiedź. Dlaczego? Przecież wszystko było jasne. Najwyraźniej jednak nie było. Chwila moment i dowiesz się wszystkiego.

Testowanie wielu pól

Ponoć kiedy kod jest już napisany nie da się stwierdzić, czy był pisany w modelu TDD. Jest jednak kilka śladów zbrodni, które pozostają. Na przykład testy sprawdzające zbyt wiele rzeczy na raz i zakładające, że czytelnik posiada wiedzę tajemną.

Te bezsensowne interakcje przerywające pracę

Ile razy byłeś poirytowanie faktem, że musisz w pięciu mailach wyjaśniać o co chodzi? Ile razy miałeś wrażenie, że banalne tematy ciągną się w nieskończoność, a ty czułeś się jak niezastąpiona jednostka centralna, bez której nic w zespole się nie zadzieje? Oczywiście wszystko kosztem twojej efektywności i nieustannego przerywania własnej pracy. Posłuchaj pewnej historii i naucz się prostej techniki, która wyeliminuje zbędne interakcje.

Praca zdalna – komunikacja na czacie

Jak przenieść codzienne rozmowy z biura do świata online? Co z bezcennymi dyskusjami w kuchni? Najczęściej wrzucamy całą firmę na jakiś komunikator i liczymy, że zadzieje się magia. Nic bardziej mylnego i dziś opowiem ci jak sobie z tym poradzić.

Funkcja trackback/Funkcja pingback

  1. Domena aplikacji w Pythonie - Encje - migawka.it - […] częścią serii “Czysta architektura w Pythonie”. Zachęcam cię do przeczytania pierwszej, wstępnej części, jeżeli jeszcze tego nie […]
  2. Podstawy czystej architektury - migawka.it - […] Możesz śmiało zagłębić się w technikalia implementacji czystej architektury. Skocz do praktycznej części, czyli do cyklu “Czysta architektura w…

Prześlij komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Pozostań w kontakcie