Wpis z mikrobloga

#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;

chyba mi coś umyka ¯\_(ツ)_/¯
  • 6
@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)
@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.