Legacy code a lambda body expression

Odpowiedz Nowy wątek
2020-09-15 20:39

Rejestracja: 4 lata temu

Ostatnio: 9 godzin temu

0

Cześć,

Natrafiłem na taki jak poniżej obrazek...
Generalnie to z lewej, czyli chyba "legacy code", jest zrozumiałe i przejrzyste. Niestety to z prawej jest dla mnie dość skomplikowane. To są chyba wyrażenia lambda? Poleca ktoś jakieś materiały na poziomie intermediate które będą zawierać te zaawansowane pojęcia?
Kolejny pytanie, trochę bardziej heurystyczne. Jak bardzo jest wymagana znajomość pisania kodu tak jak po prawej w praktyce? Czy jeśli ktoś uczy się/umie programować tak jak po lewej. To znaczy, że dla niego rynek pracy prędzej czy później się zamknie?

title


"Reflection. In the depths of the forest, a dark pool of water exists. It has almost no motion. It is a mirror. An animal (maybe a deer) sees it, but pays no attention."
Wrzuc kod na forum, w odpowiednie znaczniki. - lion137 2020-09-15 20:53

Pozostało 580 znaków

2020-09-15 20:50

Rejestracja: 4 lata temu

Ostatnio: 7 godzin temu

1

Już prędzej 🐖 nauczy się frontendu niż w najbliższym czasie C# 9/8 będzie czymś standardowym na rynku.

Nie masz co się obawiać, bo ta składnia po prawej to tylko skracacze kodu i sposoby na zwiększenie ekspresywności.

Są inne ważniejsze featuresy nowego C# niż Top-Level Statements czy Switch Expression z prawego obrazka.

Jeżeli chodzi o Top-Level Statements to ich celem (afaik) jest po prostu ułatwienie pisania prostych 1 plikowych programów

Switch Expression

edytowany 3x, ostatnio: WeiXiao, 2020-09-15 20:54

Pozostało 580 znaków

2020-09-15 20:55

Rejestracja: 6 miesięcy temu

Ostatnio: 12 godzin temu

Lokalizacja: Kuala Lumpur

1
gornada napisał(a):

Cześć,

Natrafiłem na taki jak poniżej obrazek...
Generalnie to z lewej, czyli chyba "legacy code", jest zrozumiałe i przejrzyste. Niestety to z prawej jest dla mnie dość skomplikowane. To są chyba wyrażenia lambda? Poleca ktoś jakieś materiały na poziomie intermediate które będą zawierać te zaawansowane pojęcia?

title

Lol.
Tak się kończy rzeźbienie jednego paradygmatu. Poczytaj o funkcyjnym na początek zanim weźmiesz się za całą resztę.

gornada napisał(a):

Kolejny pytanie, trochę bardziej heurystyczne. Jak bardzo jest wymagana znajomość pisania kodu tak jak po prawej w praktyce? Czy jeśli ktoś uczy się/umie programować tak jak po lewej. To znaczy, że dla niego rynek pracy prędzej czy później się zamknie?

Nie zamknie. Ale nie idąc z nowszymi wersjami języka trochę się skurczy. Poza tym to co po lewej nadal będzie obsługiwane. Najwyżej koledzy wytkną Cię palcami, że robisz coś w 20 linijkach zamiast w 6.

PS. Ucz się programowania, a nie składni. Ja nie piszę w C# od ponad 4 lat, a doskonale rozumiem obydwa zapisy.


Ucz się programowania, a nie składni. raczej obu :D - WeiXiao 2020-09-15 20:56

Pozostało 580 znaków

2020-09-15 20:57

Rejestracja: 3 lata temu

Ostatnio: 26 sekund temu

0

Dokładnie, jak wyżej i @WeiXiao, nie przejmuj sie tak bardzo, sa ważniejsze rzeczy w programowaniu, design, clean code, etc... Jak tak bardzo jesteś dociekliwy, to przeczytaj w dokumentacji. Acha, fajna namespace XD :-)


edytowany 2x, ostatnio: lion137, 2020-09-15 20:59
namespace taki, bo to mój screen :D Nowy C# Python - WeiXiao 2020-09-15 20:57
Buahahahahhhh, rzeczywiście, cos mi to przypominało... ;-) - lion137 2020-09-15 20:59

Pozostało 580 znaków

2020-09-15 21:03
Moderator

Rejestracja: 18 lat temu

Ostatnio: 8 godzin temu

1

Ogólnie: aby zrozumieć switch expressions poszukaj pod hasłem "pattern matching". Jak wspomniał @purrll - to taki ficzer zaciągnięty z języków funkcyjnych.

Pozostało 580 znaków

2020-09-15 21:04

Rejestracja: 7 lat temu

Ostatnio: 1 dzień temu

Lokalizacja: Warszawa

1
gornada napisał(a):

Kolejny pytanie, trochę bardziej heurystyczne. Jak bardzo jest wymagana znajomość pisania kodu tak jak po prawej w praktyce? Czy jeśli ktoś uczy się/umie programować tak jak po lewej.

Jeśli trafisz do ogarniętej firmy gdzie używają Resharpera (polecam się z tym zapoznać jak już nauczysz się podstaw, możesz sobie triala zainstalować na miesiąc) to on ci prawdopodobnie sam podpowie że kod który napisałeś może zostać skrócony.

albo jeśli jesteś studentem ;) - maszrum 2020-09-15 21:08
każda firma używa resharpera, wystarczy poprosić - obscurity 2020-09-15 21:57
Roslynator też podpowie. Za darmo! - Ktos 2020-09-16 09:53

Pozostało 580 znaków

2020-09-15 21:10

Rejestracja: 5 lat temu

Ostatnio: 9 godzin temu

1

Nie jestem z świata C# ale jeśli chcesz załapać terminy wywodzące się z programowania funkcyjnego to wiele dobrego słyszałem o F#. Warto też zauważyć, że języki mainstreamowe coraz częściej zapożyczają koncepty z języków funkcyjnych więc czego byś się nie nauczył to nie będzie zmarnowany czas.

Pozostało 580 znaków

2020-09-15 21:20

Rejestracja: 16 lat temu

Ostatnio: 1 godzina temu

6

O ile czasami, może, elementy kodu po prawej będą przydatne, to nie widzę sensu w pisaniu w ten sposób zamiast kodu po lewej.

Nic to w tym przypadku nie daje, a kod zaciemnia. Funkcyjniacy niech sobie piszą w F#, po co tak psuć C#...
To już jest naprawdę faza feature bloat.

edytowany 2x, ostatnio: Azarien, 2020-09-15 21:22
Z tym zaciemnianiem kodu to moim zdaniem tylko kwestia przyzwyczajenia. - dam1an 2020-09-15 21:26

Pozostało 580 znaków

2020-09-15 21:27
Moderator

Rejestracja: 12 lat temu

Ostatnio: 5 godzin temu

Lokalizacja: Wrocław

3
gornada napisał(a):

To są chyba wyrażenia lambda? Poleca ktoś jakieś materiały na poziomie intermediate które będą zawierać te zaawansowane pojęcia?

Lambdy są dostępne w C# dwa razy dłużej niż @WeiXiao żyje, konkretnie od 2007 roku. Nie wydają mi się zaawansowane, a na pewno są prostsze niż mechanizmy, których trzeba było używać przed nimi.

Kolejny pytanie, trochę bardziej heurystyczne. Jak bardzo jest wymagana znajomość pisania kodu tak jak po prawej w praktyce? Czy jeśli ktoś uczy się/umie programować tak jak po lewej. To znaczy, że dla niego rynek pracy prędzej czy później się zamknie?

Jeśli ktoś nie śledzi zmian w języku, to znaczy, że się nie rozwija, więc najprawdopodobniej zmniejsza swoje szanse na zatrudnienie. Znać trzeba wszystkie sposoby zapisu, bo w pracy trafia się na kod powstały w różnych czasach według różnych standardów, i trzeba go umieć czytać ze zrozumieniem.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2020-09-15 21:29

Rejestracja: 4 lata temu

Ostatnio: 7 godzin temu

1
Azarien napisał(a):

To już jest naprawdę faza feature bloat.

czy ja wiem? wiele razy narzekałem dlaczego switch jest taki ograniczony, dla mnie na +

Pozostało 580 znaków

2020-09-15 21:44

Rejestracja: 7 miesięcy temu

Ostatnio: 1 minuta temu

Lokalizacja: Kraków

1

O ile Switch Expression często jest przydatny tak w tym przypadku według mnie został niepotrzebnie użyty i zaciemnia kod. Operator trójargumentowy ?: w zupełności by wystarczył.

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0