Zdjęcie w tle
sebkek

sebkek

Kompan

Dołączył/a: 04.10.2022

  • 8Wpisy
  • 20Komentarzy
  • 4Obserwujących

Dwanaście niezbędnych składników aplikacji webowych

 

Tym razem nie tylko dla pythonowców.

 

Utrzymanie i rozwój aplikacji potrafi przysporzyć wielu problemów, zwłaszcza jeśli nie zadbamy o odpowiednią architekturę kodu oraz higienę pracy z kodem. Mnogość przeróżnych podejść do tworzenia aplikacji w dzisiejszych czasach też potrafi doprowadzić do bólu głowy: DDD, TDD, BDD, DRY, WET, KISS i masa innych akronimów prowadzi starcie w naszych głowach, kiedy jeszcze nie wiemy dokładnie w jaką stronę będzie zmierzał projekt.

 

Poniższy artykuł, a właściwie cała strona, opisuje dwanaście składników aplikacji webowych, które pozwolą nam uniknąć najbardziej fundamentalnych problemów w czasie wdrażania oraz utrzymania oprogramowania. W skrócie są to:

  1. Codebase - jedno repozytorium w systemie kontroli wersji, wiele wdrożeń
  2. Dependencies - jasno definiuj i izoluj zależności
  3. Config - przechowuj konfigurację w środowisku zamiast w kodzie
  4. Backing services - traktuj usługi zewnętrzne (np. bazy danych, storage, integracje) jako zasoby
  5. Build, release, run - bezwzględnie rozdzielaj od siebie etapy budowania i uruchamiania aplikacji
  6. Processes - uruchamiaj aplikację jako jeden lub więcej bezstanowych procesów
  7. Port binding - udostępniaj usługi poprzez dowiązanie portów
  8. Concurrency - skaluj aplikację w modelu procesowym
  9. Disposability - maksymalizuj niezawodność zapewniając szybki start i łagodne zamykanie procesów
  10. Dev/prod parity - środowiska lokalne, testowe oraz produkcyjne powinny być do siebie tak podobne, jak tylko możliwe
  11. Logs - traktuj logi jako strumienie zdarzeń
  12. Admin processes - uruchamiaj zadanie administracyjne jako jednorazowe procesy

Zdaję sobie sprawę, że te opisy są bardzo ogólne, ale jeśli chcecie, mogę przygotować serię, w której dokładniej omówię każdy z punktów. Tymczasem, po więcej szczegółów możecie sięgnąć na stronę The Twelve-Factor App .

@sebkek poprosimy! na pewno ktoś skorzysta

Zaloguj się aby komentować

Jak skonfigurować logowanie zdarzeń w Pythonie?

Temat traktowany po macoszemu przez wielu programistów. Logowanie zdarzeń może jednak dostarczyć nieocenionej pomocy, kiedy zachodzi konieczność prześledzenia zdarzeń na środowiskach produkcyjnych, gdzie nie mamy możliwości debugowania aplikacji.

Autor omawia, wraz z przykładami, najważniejsze zagadnienia związane z modułem logging w Pythonie:

  • dobre praktyki
  • poziomy logowania
  • konfigurację formaterów, handlerów i loggerów

a w międzyczasie opisuje jak to wszystko działa i jak się ze sobą łączy.

Lekturę polecam każdemu, niezależnie od tego, przy jak dużym projekcie pracujecie - logowanie zdarzeń jest przydatne w każdej skali, zwłaszcza jeśli je dobrze skonfigurujemy i używamy go z głową: Logging in Python like a PRO

Zaloguj się aby komentować

Jak generować piękne, czytelne tracebacki w Pythonie?

 

Poniższy artykuł pokazuje, jak samemu można zmienić sposób wyświetlania tracebacków w Pythonie, a także pokazuje kilka przykładowych paczek, które zrobią to za nas.

 

W dużym skrócie, wystarczy stworzyć funkcję z odpowiednimi parametrami i przypisać ją do sys.excepthook.

 

Creating Beautiful Tracebacks with Python's Exception Hooks

Zaloguj się aby komentować

Czy twój kod jest zbyt skomplikowany?

 

Poniższy artykuł omawia dwie metryki złożoności kodu, które mają bezpośredni wpływ na naszą zdolność zrozumienia, co dany kod właściwie robi:

  • Złożoność cyklomatyczna - określana jest liczbą rozgałęzień i punktów decyzyjnych w funkcji
  • Złożoność poznawcza - określana jest liczbą punktów decyzyjnych oraz ilością stopni zagnieżdżenia w funkcji

Pisząc kod, powinno nam zależeć na tym, aby obie te metryki były jak najniższe, dzieki czemu utrzymanie takiego kodu w przyszłości, a także zrozumienie go, będzie dużo prostsze.

 

Jeśli chcecie poznać te metryki lepiej, polecam krótką lekturę: Is your code too complicated?

Polecam również ten plugin zapiąć sobie do testowania złożoności https://pypi.org/project/pytest-mccabe/
najlepiej przed tym jak jeszcze jednostkowe i integracyjne testy są odpalane na CI - np jako element testowania statycznego kodu

Zaloguj się aby komentować

Jak używać PyYAML, żeby uniknąć jego pułapek?

Informacje na ten temat znajdziemy w artykule Tips that may save you from the hell of PyYAML .

Artykuł jest krótki, na kilka minut czytania, ale w skrócie:

  • Zawsze używaj safe_load/safe_dump
  • Utrzymuj oryginalny porządek w kluczach (load/dump)
  • Zapewnij prawidłowe wcięcia (dump)
  • Używaj czytelnego UTF-8 na wyjściu (dump)
  • Nie potrzebujesz default_flow_style (dump)

Zaloguj się aby komentować

Optymalizacja Django - problem N+1

Jeszcze uczę się jak działa hejto, więc jeśli robię coś nie tak albo temat wałkowany był wiele razy, hejtujcie mnie jak mody z elektrody

Kilka lat temu usunąłem konto na wykopie. Główny powód to oczywiście masa gównianej treści, której nie było nawet jak odfiltrować (po tym jak się wykorzystało z dupy wzięty limit na czarnej liście).

Ostatnio jak tam wchodziłem, z przerażeniem stwierdziłem, że jest tak samo albo nawet gorzej niż te kilka lat temu. Na szczęście dzięki Aryo trafiłem tutaj i, mimo dzisiejszych problemów z działaniem, wygląda to jak początek czegoś, czym wykop powinien być już od kilku lat.

Na pewno całość wymaga dodatkowych szlifów i mam mieszane uczucia co do tego, jak nazwę może odebrać szersza (niewykopowa) społeczność polskiego internetu, ale na pewno będę obserwował jak to wszystko się rozwija i w miarę możliwości się udzielał.

@sebkek tutaj masz ciekawostki, które warto poczytać. A na Wykopie co zostało? Treści z głównych stron, zmielone po wielokroć, dodawane i wykopywane przez botów

@Miedzyzdroje2005 głównej wykopu to się nie dało przeglądać już dawno temu. Mam wrażenie, że ostatnio jak na głównej wykopu były sensowne treści, fanzonun jeszcze aktywnie działał, ale to może taki mój syndrom „kiedyś to były czasy”

 

Na mikroblogu czarę goryczy przelał wysyp gówna typu warsaw shore czy patostreamy.

 

Mam nadzieję, że twórca hejto poradzi sobie z rozrostem, w szczególności moderacją i rentownością tego portalu.

@Miedzyzdroje2005 jeszcze patostrimy, mma i onuce straszące atomem

Zaloguj się aby komentować