Game Dev

Unity – pierwszy skrypt

Łączenie edytora z kodem

Dzisiaj zajmiemy się utworzeniem pierwszego obiektu, ustawieniem mu grafiki (żeby go było widać), oraz napisaniem skryptu, który nim będzie obracał. Pozornie jest to mało tematów, ale poruszają chyba wszystkie fundamenty Unity. Większość rzeczy w grze to właśnie takie obiekty z popodpinanymi skryptami i innymi wbudowanymi komponentami (np. do animacji). To, czego się przez lata człowiek […]

Narzędzia

Smart Enum

Gdyby enumy miały metody

Typy wyliczeniowe w C# są przydatne i przeważnie z jeden czy dwa przewijają się w każdym projekcie. Niestety prawie zawsze idą w parze z instrukcją switch, a to z kolei może wiązać się z łamaniem zasady otwarte-zamknięte z SOLID. Pomocny może być tu samoopisujący się enum, ale do tego musielibyśmy mieć możliwość definiowania w nim […]

Warte uwagi

CQRS: moje własne podejście

W zasadzie nie moje tylko Gutka

Kolejny bardzo ważny filmik, który położył solidne fundamenty pod aktualnie stosowane pode mnie podejście do wytwarzania aplikacji. W internecie jest dużo materiałów opisujących CQRS wyłącznie w połączeniu z Event Sourcingiem. Jakub prezentuje tutaj samą esencję CQRSa, wyjaśnia CQS i mówi o swoich doświadczeniach. Na koniec wspomina o zastosowaniu CQRS w aplikacji typu CRUD, pomimo odradzania […]

Dla juniorów

Co to jest ORM?

Który wybrać?

Takie pytanie nie powinno pojawić się na rozmowie kwalifikacyjnej, mimo to – warto znać na nie odpowiedź. Od juniora wymaga się dzisiaj, żeby z ORMa umiał korzystać, co tu komu po teorii? W znacznej większości przypadków pisane przez nas aplikacje wykorzystują bazy danych. A w najprostszych słowach ORM to sposób odwzorowania bazy danych w kodzie […]

Game Dev

Unity – podstawowe okienka

Scena, hierarchia, projekt, inspektor.

Pozwolę sobie w tym wpisie na drobne uproszczenia, bo nie ma powodu komplikować życia na start nauki. Na początek teoria i pojęcie sceny. Scena służy do organizacji obiektów, które aktualnie chcemy wyświetlić graczowi. Przeważnie w małych i średnich grach pojedynczy poziom to jedna scena. Unity zapisuje to jako pliki z rozszerzeniem .scene (dostają one ikonę […]

Narzędzia

Dapper – podstawy

Proste i szybkie łączenie się z bazą danych

W życiu każdego człowieka programisty i programistki przychodzi czas, że musi połączyć się z bazą danych. Są na to sposoby mniej i bardziej finezyjne. Dzisiaj pokażę Ci jeden z najprostszych, jakie znam, a zarazem najbardziej wydajnych. Z powodzeniem stosuję go w codziennej pracy – do odczytu danych, lub do pełnego CRUDa w prostej aplikacji. Dapper […]

Warte uwagi

Czysty kod i czysty biznes

Krótko i na temat

Dzisiaj kolega Jarek opowie Wam o ważnych rzeczach. Czym jest biznes? Czym jest technologia? Czy biznes potrzebuje warstw? Czy taśma dwustronna może rozwiązać nasz problem? Na te i inne pytania odpowiada poniższy lightning talk. Zgadzam się z przedstawionym przez Jarka opisem naszego kawałka rzeczywistości, więc pozostało mi jedynie zaprosić na krótki seans. A historia z […]

XAML

Układanie elementów w XAMLu

Typy kontrolek-kontenerów

Nie ma dla mnie przyjemniejszego sposobu tworzenia widoczków niż pisanie w XAMLu (czyt. zamlu). Swoją przygodę z programowaniem zaczynałem od Windows Phone 7, robiłem aplikacje natywne na Windows 8.1 czy na desktop w WPF. Wszystkie te technologie były oparte o XAML i zawsze dobrze mi się z nimi pracowało. W przeciwieństwie do wiecznie rozjeżdżającego się […]

Narzędzia

Mediator i MediatR

Implementacja CQRS w praktyce

Mediator to wzorzec projektowy, z kategorii wzorców zachowań. Odpowiada za komunikację między obiektami. Tworzymy tu centralny obiekt, który obsługuje nasze żądania (request) i ewentualnie zwraca odpowiedzi (response). Porównuje się go często do wieży kontroli lotów – samoloty nie  rozmawiają ze sobą bezpośrednio, to wieża kontroluje ich położenie i wydaje im odpowiednie komendy. To jeden z […]

Game Dev

Unity – wstęp

Nigdy nie było lepszego okresu na robienie gier

Nie planowałem pisać o Unity, ale rozmawiając ze studentami, widziałem duże zainteresowanie tym tematem. Sam mam z tą technologią do czynienia na co dzień, gdyż od trzech miesięcy rozwijamy z kolegą grę z game jamu. Może uda mi się podzielić na kawałki mój stacjonarny, całodzienny kurs „Unity3D od zera” i umieścić go tu w formie […]

Narzędzia

Proste logi z Serilog

Konfigurowanie loggera nigdy nie było prostsze

Nie wiem jaka biblioteka jest najbardziej powszechna na rynku, bo odkąd zobaczyliśmy Seriloga dwa lata temu, to nie było potrzeby szukać innego rozwiązania. Wcześniej używaliśmy NLog oraz log4net, ale zapamiętałem je raczej kiepsko. Nie chcę ich krytykować – to dobre rozwiązania, ale dla zupełnego laika Serilog będzie najprostszym wyborem. Możliwe, że znalezienie przez nas Seriloga […]

Dla juniorów

Logger w aplikacji

nie mylić z logowaniem (uwierzytelnianiem)

Jakiego frameworka używasz do zapisywania logów? To było jedno z pytań, jakie zadał mi Maciek na rozmowie kwalifikacyjnej. Wtedy jeszcze zapisywałem zdarzenia po prostu do pliku, jeśli już w ogóle to robiłem. Co ciekawe, nie przypominam sobie innej rozmowy o pracę, gdzie ktoś by mnie o to zapytał. A przecież logger to podstawowe narzędzie przy […]

Warte uwagi

Słowo o testowaniu

dla osób które już testują automatyczne

Dziś bardzo krótko – niech wypowie się ktoś mądrzejszy ode mnie. Od czasu do czasu będę się dzielił materiałami, które miały duży wpływ na moją codzienną pracę. Często do nich wracam i przerabiam po raz kolejny, próbując wyciągać nowe wnioski. Na początek wybrałem prezentację Sławka Sobótki o testowaniu. Znalazłem ją, próbując po raz kolejny zrozumieć […]

Społeczność

Atos Lab 2020

czyli co robiliśmy na wiosnę

Poniższy wpis jest jedynie krótkim podsumowaniem warsztatów oraz podzieleniem się ocenami otrzymanymi od uczestników. Mam nadzieję, że pomoże on w przyszłości zachęcić kolejną firmę do pomagania studentom. W marcu oraz kwietniu zorganizowaliśmy na Politechnice Wrocławskiej cykl warsztatów o nazwie „Atos Lab”. Obyło się osiem spotkań trwających około dwóch godzin. Była to nasza firmowa inicjatywa, na […]

Dla juniorów

CQS i CQRS

Obowiązek kontra ewentualność

Gdyby na studiach ktoś powiedział mi o CQS, zaoszczędziłbym około dwóch lat z życia. Oczywiście największym problemem na początku jest, aby kod w ogóle chciał działać. Optymalizacją można zająć się później (ta, jasne). Jednak ucząc się niektórych praktyk na starcie, możemy małym kosztem otrzymać bardzo duże efekty. Przykładowo: urządzenia elektryczne działają zdecydowanie lepiej po podłączeniu […]

Narzędzia

Razor Pages – podstawy

Świeże spojrzenie na stare koncepcje

“Uproszczona wersja MVC” – tak w trzech słowach opisalibyśmy istotę Razor Pages. Jednak jest to definicja zbyt ogólna, oraz bardzo krzywdząca. Chociaż w słowniku znaleźć możemy i gorsze epitety. Bawiąc się w małe szkalowanko – posłużylibyśmy się nazwą “Współczesne Web Formsy”. Razor Pages nie jest ani jednym, ani drugim. To po prostu kolejna ewolucja, zamiast […]