Blog

Wzorzec projektowy Proxy

Ten wpis jest kolejnym wpisem z serii wpisów o wzorcach projektowych. Po przeczytaniu tego wpisu, zachęcam Cię do zapoznania się z innymi wpisami z tej serii: Wzorzec projektowy Factory (Fabryka) Wzorzec projektowy Singleton Wzorzec projektowy Command (Polecenie) Tym razem omówię strukturalny wzorzec projektowy Proxy (Pełnomocnik). Proxy jako serwer pośredniczący Często pierwszym skojarzeniem ze słowem proxy jest serwer proxy. Jest to skojarzenie jak najbardziej słuszne.  … Czytaj dalej Wzorzec projektowy Proxy

Postaci normalne w relacyjnych bazach danych

W tym wpisie poruszam temat normalizacji relacyjnych baz danych oraz omawiam postaci normalne, do których można sprowadzić bazę danych. Do omówionych zagadnień przygotowane zostały również przykłady. Czym jest normalizacja? Zgodnie z definicją zamieszczoną w Encyklopedii PWN, normalizacja może być rozumiana jako: […] działalność mająca na celu uzyskanie optymalnego w danych okolicznościach stopnia uporządkowania w określonym zakresie (przez ustalanie postanowień przeznaczonych do powszechnego i wielokrotnego stosowania, a dotyczących problemów istniejących … Czytaj dalej Postaci normalne w relacyjnych bazach danych

Komentarze w kodzie

Tematowi komentarzy w kodzie poświęciłem kiedyś wpis, w czasach gdy blog nie istniał w obecnej formie i pod obecną nazwą. Niestety, nie posiadam treści zawartej w tamtym wpisie, ale pamiętam, że wywołał on dyskusję, co pozwoliło na wymianę poglądów i punktów widzenia. Temat wydaje mi się na tyle ciekawy, że warto do niego wrócić. Ponowne podejście do tego samego tematu wydaje mi się być ciekawym eksperymentem z punktu widzenia twórcy treści. Być może … Czytaj dalej Komentarze w kodzie

Inversion of Control z użyciem Dependency Injection

Inversion of Control jest bardzo wartościowym wzorcem postępowania podczas pisania programów pisanych w oparciu o programowanie zorientowane obiektowo. W tym artykule dowiesz się, na czym polega Inversion of Control (lub też swojskie – odwrócenie sterowania), a także poznasz jedną z najczęściej spotykanych form zastosowania odwrócenia sterowania czyli Dependency Injection (wstrzyknięcie zależności). W artykule wykorzystuję przykłady napisane w TypeScripcie, natomiast myślę że są na tyle proste, … Czytaj dalej Inversion of Control z użyciem Dependency Injection

Obrona pracy dyplomowej

Ten wpis będzie dość nietypowy w kontekście innych wpisów z mojego bloga. Temat obrony pracy dyplomowej spędzał mi przez jakiś czas sen z powiek. Na szczęście obrona pracy dyplomowej jest już za mną, a do następnej mam jeszcze sporo czasu. W tym wpisie chciałbym się z Tobą podzielić moimi przemyśleniami i spostrzeżeniami odnośnie stresu przed egzaminem, przygotowania do egzaminu oraz samego przebiegu obrony pracy dyplomowej. Przygotowanie do obrony pracy dyplomowej Można … Czytaj dalej Obrona pracy dyplomowej

Wzorzec projektowy Factory (Fabryka)

Fabryka jest bardzo powszechnie używanym i łatwym w zastosowaniu wzorcem projektowym. Mówiąc o wzorcu projektowym Fabryka można wyróżnić cztery rodzaje fabryk – Factory (fabryka), Factory Method (metoda wytwórcza), Static Factory (fabryka statyczna) oraz AbstractFactory (fabryka abstrakcyjna). Głównym założeniem fabryki, tak jak w rzeczywistym świecie, jest wytwarzanie obiektów. Dzięki wykorzystaniu fabryki, można ukryć szczegóły implementacyjne tworzenia obiektów i odseparować je od logiki biznesowej. Ten … Czytaj dalej Wzorzec projektowy Factory (Fabryka)

O metodzie Duck Debugging

W tym wpisie chciałbym przedstawić popularną metodę debugowania – Duck Debugging, czyli metodę debugowania gumowej kaczki. Metoda ta wielokrotnie pomogła mi rozwiązać skomplikowane problemy oraz znajdować błędy w istniejącym już kodzie. Metoda gumowej kaczki – Duck Debugging Nazwa metody gumowej kaczki, jak nietrudno się domyślić, pochodzi od gumowej kaczki. Tej samej gumowej kaczki, która jest kojarzona z kąpielami. Metoda debugowania z użyciem gumowej … Czytaj dalej O metodzie Duck Debugging

SOLID, KISS i DRY

SOLID, KISS i DRY to jedne z najpopularniejszych pojęć/skrótów wśród programistów. Są to na tyle kluczowe zagadnienia oraz przydatne w zadaniach programisty, że nie mogło ich zabraknąć na moim blogu. Wszystkie przykłady w tym artykule zostały napisane w TypeScripcie. Jeśli jednak TypeScript jest Ci obcy, to przykłady w dalszym ciągu powinny być dla Ciebie zrozumiałe. Czym jest SOLID? SOLID to akronim, który można rozwinąć w pięć zasad programowania obiektowego: Single Responsibility Principle … Czytaj dalej SOLID, KISS i DRY

Mój pierwszy Capture The Flag

Niedawno, w ramach projektu na studia, miałem okazję brać udział w swoim pierwszym konkursie Capture The Flag (CTF). Z uwagi na to, że było to niesamowicie ciekawe doświadczenie, postanowiłem podzielić się w tym wpisie swoimi przemyśleniami i spostrzeżeniami odnośnie konkursów Capture The Flag. Czym jest Capture The Flag? Capture The Flag, w skrócie CTF, to konkurs z dziedziny cyberbezpieczeństwa. Zadaniem uczestników jest znalezienie tzw. flag w podatnym systemie, … Czytaj dalej Mój pierwszy Capture The Flag

Transakcje ACID

Tym razem będzie nieco o bazach danych, a dokładniej mówiąc o zasadach transakcyjności, czyli ACID. Czym jest transakcja? W kontekście relacyjnych baz danych transakcja to mechanizm, który oczekuje zestawu operacji do wykonania. Do zaistnienia transakcji konieczne jest pomyślne wykonanie wszystkich operacji. W przeciwnym wypadku wszystkie operacje są odrzucane. Załóżmy, że mamy transakcję składającą się z 10 zapytań. Jeżeli ostatnie zapytanie będzie skutkowało błędem, to zmiany dokonane przez poprzednie … Czytaj dalej Transakcje ACID