Wpis z mikrobloga

@nykaz nie ucz go złych praktyk. Taki kod potem jest nieczytelnym gównem.

@ugotowany_kamien to wciąż nie jest usprawiedliwienie dla użycia linq. Linq jest do przeszukiwania kolekcji. W ten sposób stworzysz #!$%@? kod, który w przyszłości ktoś będzie musiał przeczytać i zrozumieć. To się nazywa dobre praktyki programistyczne.
Pamiętaj żeby mieć nawyk pisania kodu tak by ktoś inny, kto przejmie go po tobie mógł się w nim szybko połapać. Dotyczy to też samego
  • Odpowiedz
Nie wiedziałem, że zapytanie wykonywane jest przez linqToSql / EF, które nie tłumaczy wielu metod (w tym regexów) do SQL-a. W tym przypadku, aby wykonało się to po stronie serwera, musisz ratować się czymś w stylu:

where jakaskolumna.Replace("-", "").Replace(" ", "") == 0

czyli spaghetti code (lepiej to rozwiązać w inny sposób). Więcej tutaj: https://msdn.microsoft.com/en-us/library/bb882672%28v=vs.100%29.aspx?f=255&MSPPError=-2147217396

@ugotowany_kamien BTW: Jeżeli chodzi o operacje w pamięci, moim zdaniem i tak powinno się wyodrębnić extension
  • Odpowiedz
@LeniwiecPracoholik: Nie zgadzam się, że zamiana na regex uczyni kod bardziej czytelnym. Powinnyśmy wyodrębnić osobną metodę. Poza tym w przypadku linq to sql, obie implementacje i tak nie zostaną zamienione na poprawny SQL, co wyjaśniłem wyżej.
  • Odpowiedz
@andrzej-kopara: Gdzie wychwalam regex? I przede wszystkim, gdzie wyśmiałem kogokolwiek z powodu nieznajomości wyrażeń regularnych? Spytałem tylko o to.
I owszem nie jestem mistrzem regex, bo z niego za często nie korzystam. Dlatego zwykle korzystam z konstrukcji {1,} zamiast * i +, które notorycznie mylę, co widać w mojej odpowiedzi. ¯\_(ツ)_/¯
A co do krytyki.
LinQ służy do operacji na kolekcjach. Jak ktoś zobaczyłby kod używający linq do wycinania z stringa
  • Odpowiedz