W grudniu uruchomiłem nowego bloga https://sebastianczech.github.io/, który tworzony jest po angielsku, wpisy są często umieszczane, ale bardzo krótkie, wręcz hasłowe. Zapraszam 🙂
Blog
Nowoczesne uwierzytelnianie i autoryzacja
Nieodzownym elementem prawie każdej aplikacji jest moduł odpowiedzialny za uwierzytelnianie i autoryzację. Obecnie istnieje wiele rozwiązań, które są bezpieczne i którym należy się przyjrzeć w trakcie przygotowania takiego modułu. Czytaj dalej „Nowoczesne uwierzytelnianie i autoryzacja”
Python – programowanie sieciowe oraz crawling stron internetowych
Komunikacja sieciowa między urządzenia oparta jest na protokołach wyższych warstw takich jak HTTP(s), które z kolei wykorzystują protokoły niższych warstw jak transportowa i protokół TCP. Im niższe warstwy analizujemy, tym szybciej dochodzimy do miejsca w którym analizujemy gniazda sieciowe. Dla osób związanych z sieciami teleinformatycznymi tego rodzaju programowanie jest niezwykle ciekawe, bo łączy Python’a z sieciami i technologią, którą znają :).
Czytaj dalej „Python – programowanie sieciowe oraz crawling stron internetowych”
API – dokumentacja
Nieodzowną częścią budowanej aplikacji powinna być jej dokumentacja. Problem z dokumentami tworzonymi obok kodu jest to, że nie zawsze są one na bieżąco aktualizowane. Co zrobić by nasza dokumentacja była ciągle aktualna i była zmieniania w trakcie rozbudowy kodu ?
Czytaj dalej „API – dokumentacja”
Cloud Native – reverse proxy, service mesh
W dobie tworzenia aplikacji Cloud Native, czyli takich, które będą działać w tzw. chmurze, ważnym elementem stają się API gateway, reverse proxy oraz service mesh. Czym od siebie te pojęcia się różnią ? Jakie przykłady implementacji (rozwiązań) można użyć dla każdego z nich ? Czytaj dalej „Cloud Native – reverse proxy, service mesh”
DevOps Engineer
W ostatnich miesiącach dużą część czasu przeznaczam na rozwój w obszarze DevOps, a dokładniej w tematach związanych z automatyzacją, z ciągłą integracją i wdrażaniem, testowaniem aplikacji itd. Korzystam z kursów online, szukam samodzielnie różnych materiałów i ćwiczę na domowym labie. Najważniejsze z rzeczy, które się uczę, spisują w dokumencie DevOps-Engineer na GitHub. Materiały są w ciągłym rozwoju, ale być może rozpoczynającemu przygodę w temacie mogą okazać się pomocne :). Zapraszam do korzystania.
IntelliJ IDEA – wersja Ultimate za darmo ?
W świecie programistycznym w ostatnich latach bardzo popularne są IDE od firmy JetBrains np. IntelliJ IDEA, PyCharm czy GoLand. Niektóre z nich są dostępne w wersji darmowej tzn. Community, natomiast pozostałe są płatne. Niewiele jednak osób wie, że dostęp do pełnych wersji w sposób legalny i darmowy można pozyskać w ramach programu JetBrains EAP (Early Access Program). Jeśli do tej pory nie korzystałeś z produktów firmy JetBrains, gorąco zachęcam. Warto 🙂
Testowanie aplikacji
Budowanie aplikacji w dowolnej technologii z wykorzystaniem techniki TDD (ang. test driven development), czyli w skrócie rozwijania kodu poprzez pisanie niedziałających testów, doprowadzenie kodu, by testy działały i aplikacja realizowała daną funkcję, a następnie refaktorowanie kodu aplikacji oraz testów, pozwala implementować rozwiązania posiadające mniej błędów. Jakich narzędzi i bibliotek warto użyć do testowania ? Czytaj dalej „Testowanie aplikacji”
Ukończone 2 szkolenia online
W ostatnich kilku miesiącach ukończyłem 2 szkolenia online – Introduction to Redis Data Structures oraz Advanced Distributed Systems Design. Choć dotyczą one całkowicie innych dziedzin inżynierii oprogramowania, to pozwoliły osiągnąć 2 cele:
- dokładnie zapoznać się z jedną z najpopularniejszych baz NoSQL,
- spojrzeć szerzej na architekturę systemów rozproszonych, sposobu ich projektowania oraz wykorzystania różnych technologii do realizacji poszczególnych zadań jak chociażby Redis.
O ile szkolenie z Redis było bardzo techniczne, to szkolenie z architektury systemów rozproszonych jest bardziej ponadczasowe i niektóre z jego aspektów jak asynchroniczna komunikacja za pomocą wiadomości zamiast żądanie – odpowiedź można wykorzystać od zaraz w codziennej pracy.
HyperSkill – JetBrains Academy
Poznając nową technologię i ucząc się języka programowania ważne są nie tylko zagadnienia teoretyczne, ale przede wszystkim praktyka. Z podobnego założenia wychodzą moim zdaniem autorzy platformy HyperSkill – JetBrains Academy, gdzie możemy wybrać którą ścieżką jesteśmy zainteresowani (np. Python Developer), jaki projekt w ramach nauki chcielibyśmy implementować, a następnie realizować poszczególne etapy nauki wykonując równocześnie zadania w Intellij IDEA. Co ciekawe aplikacja webowa do nauki jest świetnie zintegrowana z Intellij IDEA np. po wybraniu zadania w przeglądarce automatycznie nowe kod dla wybranego zadania pojawia się w IDE, a po jego zaimplementowaniu można go sprawdzić i wyniki poznać również w przeglądarce. Zachęcam, sam korzystam i warto 🙂