Wzorzec MVC... Każdy implementował, każdy słyszał... tylko czy aby napewno ten wzorzec jest tak prosty na jaki wygląda? Zapraszam was na trochę moich rozważań na temat tego wzorca w najnowszym artykule na blogu 👋
Strona głównaUżytkownik
bd90 | użytkownik
Architektura poniedziałek, 4 marca 2024 08:03:32 GMT 7 spam? źrodło rozwiń
Zgodnie z tym co zapowiadałem w ostatnim artykule dzisiaj zajmiemy się czymś nowym. Wejdziemy w głąb mechanizmu budowania konfiguracji na platformie .NET. Pozwoli nam to na zrozumieć jego działanie tak, aby w prosty sposób stworzyć własne rozszerzenie konfiguracji pozwalające nam na integrację z serwisami zewnętrznymi, które nie dostarczają oficjalnego SKD. Zrobimy to na przykładzie usługi...
Przez lata spędzone na programowaniu aplikacji webowych stworzyłem tysiące kontrolerów. Niektóre napisałem lepiej, inne gorzej… nadal pamiętam to uczucie, gdy po raz pierwszy przenosiłem kod kontrolera do “serwisu” i czułem, że tak powinno wyglądać programowanie. Teraz wiem, że po prostu przenosiłem śmietnik z jednego miejsca do drugiego 😉 To, czy będzie nosił nazwę “XController”, “XService”, “XManager” jest bez znaczenia, o ile nadal występuje w naszym projekcie. W tym artykule zaprezentuje Ci w jaki s...
Dziś będzie trochę o bazach danych. To nie tylko tabelki i operację CRUD, potrafią zrobić zdecydowanie więcej. Chciałbym dzisiaj przybliżyć możliwości biblioteki Entity Framework Core związaną z obsługą widoków.Czym jest widok? Zacznijmy od początku, czyli zdefiniowania czym jest widok. Zaglądając do wikipedi otrzymamy bardzo ładną definicję: Widok (perspektywa) to logiczny byt (obiekt), osadzony na serwerze baz danych. Umożliwia dostęp do podzbioru kolumn i wierszy tabel lub tabeli na podstawie zapyta...
If you want to know : - why I think that distributed systems are like Rocky Balboa. - the difference between Saga, Process Manager and Choreography. Here's my take on that together with the real-world samples.
Programowanie rozproszone 1378 dni, 22 godziny, 34 minuty temu 158 źrodło rozwiń
W jednym z moich ostatnich artykułów (Application Insights – Ukryty Skarb Azure) przeszliśmy przez podstawową konfigurację usługi application insights oraz bardzo podstawową integrację. Jako, że obiecałem wam więcej treści z tematu, tak oto powstał ten artykuł. Zajmiemy się wprowadzeniem integracji z Application Insights na kolejny poziom. Jako, że to kontynuacja, bardzo zachęcam abyś przeczytał wcześniejszy artykuł.SeriLog Zacznijmy od rzeczy podstawowej. Jak przy większości moich projektów zaczynam o...
Jakiś czas temu poruszyliśmy w pracy ciekawą dyskusję. Rozmawialiśmy o wydajności. Niestety umowy i zobowiązania nie pozwalają mi ze szczegółami opowiedzieć czego dokładnie dotyczyła. Chcąc mniej więcej przybliżyć temat przyjmijmy że chcieliśmy porównać trzy scenariusze:Jeden request, który robi 1000 akcji1000 request-ów, które robią 1 akcję10 batch-y request-ów, które robią 100 akcji O ile nie jestem wielkim fanem testów wydajnościowych (w wielu aplikacjach to tylko przerost formy nad treścią) to tym ...
Logowanie to jeden z trzech głównych filarów obserwowalności naszych aplikacji – często niedoceniany, wykonany po macoszemu, byle był. Jako konsultant widziałem wiele aplikacji / systemów, które borykały się z problemem logowania niepoprawnej ilości danych, logowania danych poufnych bez wyraźnej przyczyny. Nie myśląc o tym w fazie planowania tworzymy problem nie tylko uciążliwy, lecz również trudny do naprawienia. Co więcej, w przypadku logowania wielu informacji trudno jest wyszukać te, które są nam fak...
W jednym z ostatnich artykułów poruszyłem temat mechanizmu flag funkcjonalnści i ich integracji z serwerem Gitlab-a (Gitlab – Feature Toggles) . Tym razem planuje rozwinąć temat implementacji Permissioning toggles za pomocą klienta serwer-a Unleash. Jeżeli nie czytałeś wcześniejszego artykułu to zachęcam Cię do zapoznania się z nim.Czym są Permissioning Toggles? Zacznijmy od krótkiego przypomnienia czym są Permissioning Toogles. W dużym skrócie są to flagi, w których dostęp do funkcjonalności ma tylko z...
Rozmawiając z paroma kolegami po fachu zapytałem ich o czym chcieliby poczytać na blogach programistycznych. Jednym z tematów, który się przewinął, był Common Language Runtime, w skrócie CRL. Wychodząc na przeciw oczekiwaniom chciałbym przedstawić wam trochę wiedzy z samym bebechów .NET-a.Platforma .NET Zacznijmy, jak zawsze, od podstaw. Na początku była pustka, potem wielki wybuch… dobra, przyśpieszmy. Czym w ogóle są CLR, IL, JIT? Jeżeli wpadła ci w ręce książka dotycząca .NET (lub inne profesjonalne ...
Serverless to jednen z większych buzzword-ów ostatnich lat. Sprawdzając w google trends to “serverless” był bliski przebicia popularnością fraze “microservices”. W dzisiejszym artykule chciałbym zagłębić się w ten temat. Zaczniemy od podstaw – wygenerujemy pierwszą funkcję Azure, a następnie wdrożymy ją za pomocą Gitlab CI.Logowanie do Azure CLI Żeby się uczyć trzeba mieć na czym pracować. Proponuje zacząć od stworzenia pustej funkcji azure, aby mieć gdzie wdrożyć stworzoną, w tym tutorialu, funkcję. Oc...
Pierwszy raz kiedy spotkałem się z ‘flagami funkcjonalności’… Powiem szczerze – wyglądało to jak czarna magia. Jednoczesna możliwość dynamicznego zmieniania zachowań systemu napawała mnie obawą o zawodność rozwiązania. Przecież nie wiadomo, co się wydarzy kiedy konfiguracja funkcjonalności nie zostanie zaciągnięta. Istnieje możliwość przypadkowej zmiany flagi, co wpłynie na użyteczność systemu. Jak widać wiele może zawieść. Warto jednak zaryzykować, ponieważ korzyści jakie dają Feature Toggles są ogromn...
Teraz każdy chce być DevOps, pisać mikroserwisy, mieć autonomiczne zespoły. Tylko mam wrażenie, że prawo Conwaya i obciążenie poznawcze dużo częściej dobija projekty niż technologie. Regularnie zastanawiam się czy architekci oprogramowania w dzisiejszych czasach są potrzebni. Sam przez dłuższy czas wahałem się mocno nad tytułowaniem siebie tak. Naskrobałem nieśmiało wpis, który zatytułowałem przekornie "Architect Manifesto". https://event-driven.io/en/architect_manifesto/ Jest to mój pierwszy wpis po ...
Architektura 1447 dni, 22 godziny, 30 minut temu 132 źrodło rozwiń
Zbliża się oficjalnie okres przygotowania do świąt. Czas wyciągnąć za duże, czerwone swetry, kupić skrzynkę mandarynek i odbierać od kurierów paczki dla rodziny. Nie znaczy jednak, że można przestać się rozwijać – nauka zawsze się przyda, konkurencja nie śpi. Nie chcąc być całkowicie Grinchem to dziś prezentuje artykuł o trochę innych paczkach 😉 Czym byłoby pisanie aplikacji bez paczek? NPM, Gradle, Composer, Cargo – każdy szanujący się ekosystem posiada oprogramowanie do zarządzania paczkami, wersjami...
Utrzymując w miarę równe tempo pisania (podkreślając “w miarę”), postanowiłem kontynuować tematy dotyczące Entity Framework. Jeśli komuś się wydaje, że sporo już o tym napisałem, to ucieszę (albo zmartwię) Was – jeszcze mnóstwo wiedzy do przekazania, więc zapnijcie pasy bo kontynuujemy naszą podróż. Większość aplikacji jest używana przez więcej niż jedną osobę. Zdarza się co prawda napisać szybką apke dla Pani Krysi z księgowości do przeliczania funduszy potrzebnych na owocowe czwartki. Jeśli to jest tw...
Nie ma nic odkrywczego w stwierdzeniu – mamy jesień. Listopad nie zachęca do spacerów. A cóż brzmi kusząco w zimne, pochmurne dni? Oczywiście kakałko i programowanie! W momencie kiedy pracujemy w środowiskach rozproszonych czasami potrzebujemy wykonywać pewne zadania jako oddzielny proces. Czasami jest to generowanie raportu, czasami jakieś inne zadanie długo lub krótko trwałe. W takich sytuacjach możemy do tego użyć prostej aplikacji konsolowej, zamkniętej w kontenerze i uruchamianej co jakiś czas za p...
Obecnie sporo aplikacji typu SPA działa bez żadnego backendu. Są to zazwyczaj małe aplikacje, najczęściej wizytówki, strony informacyjne czy prezentacje portfolio. Zazwyczaj hostowane są za pomocą mechanizmu typu Github Pages, gdzie konfiguracja procesu wdrażania zajmuje kilka chwil. Co jednak w przypadku, kiedy nie chcemy lub, co gorsza, nie możemy wstawić kodu do publicznego repozytorium? Obecnie modne jest zamykanie aplikacji w kontenery. Jednak w niektórych sytuacjach może to byc przerost formy nad t...
Słuchajcie, wiecie jak to jest z tymi obietnicami. Wypije się za dużo kakałka, nie wyśpi, a potem obiecujesz ludziom, że napiszesz konkretny artykuł na specyficzny temat. No i tak właśnie to ten, napisałem go. Obietnic się dotrzymuje, koniec i kropka ;). Tak jak obiecałem, będzie to sposób przesłania raportu o pokryciu kodu testami do serwera SonarQube. Miałem trochę na głowię – zagraniczna delegacja, rozwój firmy – więc chwile to zajęło, ale mieszczę się jeszcze w terminie ;). Chcąc podążać jeden do j...
Są rzeczy ważne, ważniejsze i testy jednostkowe. No i może kakałko wypadałoby umieścić na końcu listy, przynajmniej zimą. Wracając jednak do testów, uważam je za podstawowe narzędzie do poprawy jakości kodu. Pozwalają nam szybko przetestować, czy nasza twórczość działa poprawnie i (jeśli testy są prawidłowo napisane) zgodnie z założeniami biznesowymi. W dzisiejszym, dość krótkim, artykule chciałbym Wam przedstawić narzędzie Coverlet służące do obliczania pokrycia kodu przez testy jednostkowe. Jest to kró...
Przez ostatnie kilka miesięcy moją uwagę, w wolnym czasie, zabierał mi Domain Driven Design. Wieczory umilała mi lektura Evansa, Vernon-a, Folwer-a. Pogłębianie wiedzy dało mi do myślenia. Zacząłem się zastanawiać jak wygląda domena mojego projektu i w jaki sposób mogę ją zamodelować przy pomocy kodu. W tym artykule chciałby Ci, mój drogi czytelniku, przedstawić trzy sposoby modelowania encji jakie towarzyszyły mi podczas mojej kariery programisty. Na wstępie zaznaczę, że nie jest to kolejny wstęp do DD...
Sztuka programowania 2120 dni, 14 godzin, 5 minut temu 199 źrodło rozwiń