Każdy programista już czuje, czym to pachnie, ale… nie tylko to wydarzyło się ostatnio z moją, zresztą jedną z pierwszych aplikacji.
Po kolejnej walce z wirusem, który nasz mały kurier dowiózł nam ze żłobka, wracam na tory. Podobno Feniks zawsze odradza się z popiołów, więc lecimy dalej z tematem (oby bez powrotów do łóżka 😂)! 🤷♂️😂
Ale do sedna. Rok temu (wow, to już rok nauki!) – na początku mojej drogi z Pythonem, napisałem jedną z pierwszych aplikacji. Prosty konsolowy komunikator klient-serwer, który miał mnie nauczyć podstaw komunikacji sieciowej. Było logowanie, proste komendy – projekt spełnił swoją rolę, ale… kod prosił się o litość.
Przyszedł czas, by wrócić do korzeni i zrobić tam porządek.
🎯 Wyzwanie / Cel:
Wziąć na warsztat stary kod i przekształcić go w dojrzałą aplikację zgodnie z moją aktualną wiedzą. Droga do tego celu wiodła przez dwa kluczowe etapy:
👉 Totalny refaktoring architektury
👉 Konteneryzację całości za pomocą Dockera.
🛣️ Droga / Proces:
To była podróż od chaosu do porządku. Kod, który pisałem rok temu jako totalny nowicjusz, to był klasyk w stylu: “działa, ale lepiej tego nie ruszaj” 😂. Cóż, każdy kiedyś tak zaczynał…
Co dokładnie się zmieniło?
📌 Nowoczesna struktura: Koniec z bałaganem! Cały projekt został przebudowany na nowoczesny, modułowy pakiet (src).
📌 Podział obowiązków: Każdy element – logika serwera, obsługa klienta, sieć, czy dostęp do bazy danych – trafił do osobnego modułu.
📌 Abstrakcja bazy danych: Stworzyłem warstwę, która pozwala na łatwe przełączanie się między bazą SQLite a PostgreSQL.
📌 Koniec z print(): Wszystkie print() zostały zastąpione przez centralny system logowania. Teraz wiem, co się dzieje w aplikacji bez zaśmiecania konsoli.
✅ Wynik / Sukces: Aplikacja w pudełku.
Po wielkim sprzątaniu przyszedł czas na wisienkę na torcie – Docker!
Cała aplikacja wraz z bazą danych została „zapakowana” w kontenery. Dzięki temu uruchomienie całego środowiska sprowadza się do jednej komendy: docker compose up. Prosto, czysto i przenośnie.
Ten projekt to dla mnie symboliczna klamra. Pokazuje, jak zmieniło się moje myślenie o kodzie przez ostatnie miesiące. Od “klepania”, aby tylko udało się stworzyć coś, co działa, do dzisiaj – przemyślanej architektury, uporządkowanego kodu i prostej, działającej logiki.
To kolejny krok, który pokazał mi roczny przeskok, jaki udało się wypracować. Ale… kolejne wyzwania już czekają! 😉
A Wy, jakie swoje „stare” projekty odświeżyliście i co dało Wam największego kopa w rozwoju? Podzielcie się w komentarzach! 👇
Link do repo: https://gitlab.com/DawDro/FirstClientServerApp
