#programowanie #naukaprogramowania Mam obiekt który przekazuje pomiędzy metodami i na podstawie danych w tym obiekcie wykonuje serię różnych operacji typu parsowanie, pobieranie id z zewnętrznego serwisu na podstawie danych z tego obiektu etc. jak można zoptymalizować następujący kod, lepiej użyć void i nic nie zwracać? Jak to wygląda od strony clean code?
Data data = new Data(); data = ExtractData(data); // sygnatura: public Data ExtractData(Data data) data = GetId(data); // sygnatura: public Data GetId(Data data) ... return data;
@Euwd: jaki język programowania? tzn parametr metody ExtractData to Data a zwracany typ to też Data? to trochę bez sensu. masz gettery do pól obiektu, to po prostu pobierz potrzebne dane i wykonuj co trzeba. i raczej nie powinno być tak, że ExtractData teoretycznie chce zwracać więcej niż jedną wartość (a zakładam, że jak zwracasz obiekt który jest to okrojony obiekt który przekazałeś to tak jest)
@Euwd: nie napisałeś jaki język, ale tam gdzie masz pass-by-reference nie potrzebujesz nic zwracać z metod żeby były zmiany w obiekcie, który im przekazujesz
@Kaczus2B: @dan3k: @Lewo: @cecyl: C# klasa zawiera same właściwości i jest serializowana. czyli lepiej zostawić je jako void Method(Data data)?
Problem w tym, że jest tych danych sporo pochodzą z zewnętrznego źródła i metoda Extract ma ten obiekt uzupełnić danymi (regexpy), GetId ma zwrócić id na podstawie wcześniej 'wyekstraktowanych' danych i jest jeszcze trochę więcej podobnych operacji.
#powodz #polska #beka #heheszki Wyobrazcie sobie, ze w tym chlewie obsranym gownie. Straz ma jeszcze takie wozy xD. Brakuje jeszcze koni a z tyłu sprzęt strazacki
Mam obiekt który przekazuje pomiędzy metodami i na podstawie danych w tym obiekcie wykonuje serię różnych operacji typu parsowanie, pobieranie id z zewnętrznego serwisu na podstawie danych z tego obiektu etc.
jak można zoptymalizować następujący kod, lepiej użyć void i nic nie zwracać?
Jak to wygląda od strony clean code?
Data data = new Data();
data = ExtractData(data); // sygnatura: public Data ExtractData(Data data)
data = GetId(data); // sygnatura: public Data GetId(Data data)
...
return data;
chyba mi coś umyka ¯\_(ツ)_/¯
Komentarz usunięty przez autora
tzn parametr metody ExtractData to Data a zwracany typ to też Data? to trochę bez sensu.
masz gettery do pól obiektu, to po prostu pobierz potrzebne dane i wykonuj co trzeba.
i raczej nie powinno być tak, że ExtractData teoretycznie chce zwracać więcej niż jedną wartość (a zakładam, że jak zwracasz obiekt który jest to okrojony obiekt który przekazałeś to tak jest)
czyli lepiej zostawić je jako void Method(Data data)?
Problem w tym, że jest tych danych sporo pochodzą z zewnętrznego źródła i metoda Extract ma ten obiekt uzupełnić danymi (regexpy), GetId ma zwrócić id na podstawie wcześniej 'wyekstraktowanych' danych i jest jeszcze trochę więcej podobnych operacji.
Komentarz usunięty przez autora