Uniknąć if,else i Wzorzec Strategy, State i Maszyna Stanów

  Рет қаралды 7,971

Cezary Walenciuk

Cezary Walenciuk

Күн бұрын

Czy można zmienić stany programu lub wywołać specyficzne akcje per jakiś warunek bez użycia if i else. Oczywiście, że tak : Oto wzorce projektowe, które Ci pomogą
[end] [cat:c#]
Spis treści :
0:00 Intro
0:31 Problem z If i Else
1:10 Porady kosmetyczne
2:17 Ternary conditional operator
2:42 Pozbcie się IF : Słowniki
3:37 Wzorzec projektowy Strategy
7:40 Wzorzec projektowy State
10:16 Maszyna Stanów
16:12 Paczka NuGet Statless
19:46 Podsumowanie
Chcesz mi pomóc :
Patronite:
➡️ patronite.pl/cezarywalenciuk
Gdzie mnie znajdziesz :
Blog:
➡️ cezarywalenciuk.pl/
Fanpage:
➡️ / jakprogramowac
Inne Social Media :
➡️ / walenciukc
➡️ / cezarywalen. .
➡️ / cezary-wal. .
➡️ github.com/PanNiebieski

Пікірлер: 38
@mateuszbasiak9337
@mateuszbasiak9337 2 жыл бұрын
Podoba mi się taki luźny styl prowadzenia filmu, różni się od tej standardowej spiętej postawy i tworzy atmosferę zabawy z kodem a nie szkolnej nauki, poza tym świetnie że przykłady to życiówki, jedyne co mi brakuje to na koniec przypadki użycia - gdzie najczęściej się to sprawdza w architekturze lub w jakich przypadkach, subik rzecz jasna ;)
@Adik120PL
@Adik120PL 2 жыл бұрын
Super kanał, bardzo mi się podoba sposób w jaki opowiadasz, bez zbędnego gadania, same szybkie konrkety i jednocześnie luzny styl pokazujący, że programowanie to nie tylko naburmuszone nerdy# ale przede wszystkim dobra zabawa!
@davidopara
@davidopara 2 жыл бұрын
Dobre przykłady i przekaz wiedzy. Proponuje rozszerzyć temat wzorca strategii o temat deserializacji interfejsów oraz generyków - Pozdrawiam
@marekkacprzyk1748
@marekkacprzyk1748 2 жыл бұрын
Cezary fajnie że i Ty jesteś bo robisz kawał dobrej i potrzebnej roboty. Zabrakło mi tylko jakiegoś przykładu z zagnierzdzonymiif else :)
@tomu134
@tomu134 2 жыл бұрын
Nie znałem wzorca maszyny stanów, teraz nie mogę się doczekać kiedy go zaimplementuję 😁
@T3mai
@T3mai 2 жыл бұрын
Właśnie takiego poradnika szukałem! Wielkie dzięki :)
@johnybravo7253
@johnybravo7253 Жыл бұрын
super ten tutorial, szybko i rzeczowo :)
@ukaszk8428
@ukaszk8428 2 жыл бұрын
Widzę, że też jesteś fanem modków, xmów, itków itd. prosiłbym playlisty pod filmikami bo nie wszystkie znam :) A filmik bardzo pomocny, super, robota, pozdrawiam.
@StahuProdukszyn
@StahuProdukszyn 2 жыл бұрын
Fajne, dzięki
@NiczymSaper
@NiczymSaper 2 жыл бұрын
koks filmik
@lukaszpluta1
@lukaszpluta1 2 жыл бұрын
dajesz rade
@irundil8253
@irundil8253 2 жыл бұрын
sztos
@marekkacprzyk1748
@marekkacprzyk1748 2 жыл бұрын
Będziesz coś może nagrywał o innych wzorcach projektowych? Fajnie że przy okazji pokazujesz jakieś nugety które ułatwiają ich stosowanie.
@CezaryWalenciuk
@CezaryWalenciuk 2 жыл бұрын
Da się zrobić :) prawie wszystkie omówiłem na blogu
@MBBGun14
@MBBGun14 2 жыл бұрын
Używanie refleksji do znalezienia strategii? Jak dla mnie trochę kontrowersyjny wybór. Unikniemy ifów, za to dostaniemy wolniejszy kod. Jeszcze odnośnie przykładu ze słownikiem, co w przypadku, gdy podamy nieistniejący klucz (bez użycia refleksji)? if contains key, czy może try-catch w miejscu, które używa tego słownika?
@CezaryWalenciuk
@CezaryWalenciuk 2 жыл бұрын
Spokojnie Zamiast refleksji możesz użyć kontenera wstrzykiwania zależności i uniknąć tego activator.createInstance per wywołanie metody. Generowanie słownika akurat można zrobić tylko raz per wywołanie całej aplikacji więc to aż tak nie boli. Jeśli chodzi o brak obsługi klucza którego nie ma to od Ciebie zależy jak obsłużysz.
@Masteroxify
@Masteroxify 2 жыл бұрын
Inne pytanie :D Reflekcja nie powinna być ostatecznością ze względu na słaby performance ?
@CezaryWalenciuk
@CezaryWalenciuk 2 жыл бұрын
Największy problem tutaj jest activator.createinstance per wywołanie metody. Tworzenie słownika i szukanie zawsze można zrobić jedno razo per wywołanie całej aplikacji. Zamiast refleksji trzeba skorzystać z kontenera wstrzykiwania zależności.
@JackJones-uj9fh
@JackJones-uj9fh Жыл бұрын
Moje pytanie brzmi, jak czesto wykorzystuje sie to w praktyce?
@CezaryWalenciuk
@CezaryWalenciuk Жыл бұрын
W programowaniu funkcyjnym nawet nazywa się to wzorcem "decide". Bardzo zbliżona odmiana wzorca "State Machine" Można z maszyną stanów porobić nie złe jaja i włączyć w to zapisywanie zdarzeń do bazy danych czyli Event Sourcing
@CezaryWalenciuk
@CezaryWalenciuk 2 жыл бұрын
Wszystkie przykłady macie tutaj : github.com/PanNiebieski/How-to-avoid-If-and-else-in-code
@bartibv
@bartibv Жыл бұрын
trajgery XDD ale film fajny, mimo trajgerów XD
@CezaryWalenciuk
@CezaryWalenciuk Жыл бұрын
Trajger Trajger 😆
@TomekGroszkowski
@TomekGroszkowski 2 жыл бұрын
Merytorycznie extra. Ale zweryfikuj trajgery 😂 aby przekazując jedną wiedzę nie wciskać zlych nawykow jak dilejty 😁
@CezaryWalenciuk
@CezaryWalenciuk 2 жыл бұрын
O co chodzi z tymi dilejtami ? Fajna informacja zwrotna ale muszę mieć więcej szczegółów ?
@TomekGroszkowski
@TomekGroszkowski 2 жыл бұрын
@@CezaryWalenciuk obejrzyj ;) kzfaq.info/get/bejne/sJyKe6R3mNWwj5c.html oraz kzfaq.info/get/bejne/qrV-mZOmsM-RYWw.html
@TomekGroszkowski
@TomekGroszkowski 2 жыл бұрын
Oczywiście u Ciebie dilejta nie było. Podałem go tylko jako przykład złego nawyku :D
@CezaryWalenciuk
@CezaryWalenciuk 2 жыл бұрын
@@TomekGroszkowski Gdyby się przejmował swoim językiem to bym niczego nie zrobił przez te 10 lat Dzięki za sprostowanie :)
@mrk5519
@mrk5519 2 жыл бұрын
Łapka w górę! Mogę gdzies pobrać kod do tego?
@CezaryWalenciuk
@CezaryWalenciuk 2 жыл бұрын
Jak wrócę tylko z ITAD w Bielsku-Białej to Ci odpowiem na ten komentarz z linkiem do githuba
@VarranComodoo
@VarranComodoo 2 жыл бұрын
@@CezaryWalenciuk również chętnie skorzystałbym z źródeł szczególnie jeżeli chodzi o wykorzystanie refleksji przy wzorcu strategia.
@CezaryWalenciuk
@CezaryWalenciuk 2 жыл бұрын
github.com/PanNiebieski/How-to-avoid-If-and-else-in-code
@mrk5519
@mrk5519 2 жыл бұрын
@@CezaryWalenciuk Dzięki :D!
@akkudakkupl
@akkudakkupl 2 жыл бұрын
Ternary się nie podoba, a wyrażenie lambda tak? Lambda jest dla laika i na pierwszy rzut oka zupełnie nieczytelna XD
@limsky8012
@limsky8012 Жыл бұрын
Triger nie trajger
@dark-fu9jw
@dark-fu9jw 2 жыл бұрын
Ogólnie fajne filmy robisz, ale mam wrażenie, że jesteś strasznie roztrzepany. Skaczesz z miejsca na miejsce. Szczerze mówiąc wolałbym, żeby odcinek był dłuższy, a żebyś refaktorował kod podczas nagrywania. Wydaje mnie się, że byłoby to czytelniejsze. Ale to tylko moja opinia i nie każdy musi się z nią zgodzić. Podsumowując: - dużo wiedzy, o której nawet wcześniej nie miałem pojęcia - ale strasznie chaotycznie przedstawiona
@CezaryWalenciuk
@CezaryWalenciuk 2 жыл бұрын
Dzięki akurat po moim filmie "Jaki język programowania z 7: Cobol,Python,PHP,Java,C#,JavaScript,GO" zacząłem się zastanawiać jak mówić jeszcze szybciej, bo dla KZfaq tak zwany "watch time" pozycjonuje Cię w algorytmach . A w tamtym filmiku w końcu udało mi się przebić "watch time" do 50% czasu trwania całego filmiku. Tak statystycznie ludzie oglądają 20% całego filmiku zapewne po nim skacząc. Twoja opinia jest cenna, bo sam nie wiem co oczekują ode mnie ludzie. Mogę gadać po powoli i nawet pisać kod od zera. Czy mam robić filmik jak w TikToku gdzie co 8 sekund coś eksploduje, aby utrzymać uwagę widza? Wiem, że algorytm chciałbym, aby mówił jak najszybciej i do rzeczy, aby ludzie nie skakali po filmiku. To jest ten współczynnik "watch time". Potem są "komentarze" i liczba lajków.
@uskrzydlacz
@uskrzydlacz 10 ай бұрын
Console.WriteLine("Daj komentarz");
Co to jest Event Sourcing i pij wódkę podróżując w czasie
1:22:50
Cezary Walenciuk
Рет қаралды 2,9 М.
Modelowanie EventStorming, a MediatR, CQRS i Event Driven Design
40:00
Cezary Walenciuk
Рет қаралды 4,3 М.
Finger Heart - Fancy Refill (Inside Out Animation)
00:30
FASH
Рет қаралды 16 МЛН
Llegó al techo 😱
00:37
Juan De Dios Pantoja
Рет қаралды 53 МЛН
Summer shower by Secret Vlog
00:17
Secret Vlog
Рет қаралды 9 МЛН
C# Krótszy kod to nie lepszy kod
9:03
Cezary Walenciuk
Рет қаралды 2 М.
Programming a BETTER state machine
10:16
iHeartGameDev
Рет қаралды 68 М.
C++ Weekly - Ep 426 - Lambdas As State Machines
6:53
C++ Weekly With Jason Turner
Рет қаралды 14 М.
Wybitnie uzdolniony ośmiolatek studentem Politechniki
3:12
Onet
Рет қаралды 1,4 МЛН
Arduino millis i maszyna stanów zamiast delay
16:49
Inżynier Domu
Рет қаралды 8 М.
Z TYCH 3 POWODÓW ODRZUCAMY KANDYDATÓW DO PRACY
11:44
Marek Zając
Рет қаралды 25 М.
Chat GPT jest lepszy niż myślałem
16:10
Cezary Walenciuk
Рет қаралды 36 М.
RabbitMQ Tutorial C# : Co to jest kolejka i jak ją stworzyć
26:06
Cezary Walenciuk
Рет қаралды 6 М.
Finger Heart - Fancy Refill (Inside Out Animation)
00:30
FASH
Рет қаралды 16 МЛН