Inżynieria oprogramowania

9
kontekst otoczenia a wstrzykiwanie konstruktora

Mam wiele podstawowych klas, które wymagają ISessionContext bazy danych, ILogManager dla dziennika i IService używane do komunikacji z innymi usługami. Chcę użyć wstrzykiwania zależności dla tej klasy używanej przez wszystkie podstawowe klasy. Mam dwie możliwe implementacje. Klasa podstawowa,...

9
Podążasz ścieżką tego, co wiem, a następnie spróbuj wdrożyć prawidłowe praktyki kodowania lub zacząć od dobrych praktyk kodowania i próbować kroczyć moją drogą?

Po pierwsze, chcę powiedzieć, że jestem przyzwyczajony do programowania proceduralnego jako hobby - staram się uczyć OOP w kilku językach i rozumiem teorię , a nie praktykę. Mam projekt zwierzaka, który chciałem zbudować, szczególnie w PHP z zapleczem bazy danych (nie obchodziło mnie co). Moim...

9
Mikrousługi: MonolithFirst?

Badam architektury mikrousług, próbując uzyskać ogólny przegląd wszystkich zalet i wad, kiedy i dlaczego itp. Wiele informacji, które czytam / oglądam, pochodzi z ThoughtWorks (Martin Fowler, Neal Ford, i in. glin). Większość prac Martina Fowlera na ten temat ma kilka lat, kiedy Microservices...

9
Szczegółowość wyjątków

Natknąłem się na debatę między kilkoma przyjaciółmi i mną. Wolą ogólne wyjątki, takie jak ClientErrorExceptioni ServerErrorExceptionze szczegółami jako pola wyjątku, podczas gdy ja wolę sprecyzować rzeczy. Na przykład mogę mieć kilka wyjątków, takich

9
Anty-wzór

Czytałem w tym poście na temat anty-wzorca for-if i nie jestem pewien, czy rozumiem, dlaczego jest to anty-wzorzec. foreach (string filename in Directory.GetFiles(".")) { if (filename.Equals("desktop.ini", StringComparison.OrdinalIgnoreCase)) { return new StreamReader(filename); } } Pytanie...

9
Co oznacza „TILT” w komentarzu?

Czytam Clean Code autorstwa Roberta C. Martina, a wyrażenie w TILTniewytłumaczalny sposób pojawia się w niektórych przykładach kodu. Przykład (nawiasem mówiąc, jest w Javie): ... public String errorMessage() { switch (status) { case ErrorCode.OK: // TILT - Should not get here. return "";...