Kilka pytań na temat jakości kodu - NTriq

0

Witam,

Przeanalizowałem dziś mój kod za pomocą narzędzia NTriq. Większość elementów jest zielona, czyli pozytywnie.
Niektóre jednak elementy są oznaczone jako Warning i chciałbym Was prosić o:

  • rady
  • wyjaśnienie

1.) Abstrakcyjne klasy nie powinny zawierać konstruktora.
W moim kodzie pewne zmienne instancyjne danej klasy abstrakcyjne ustawiam właśnie w jej konstruktorze. Narzędzie Ntriq zgłasza mi warning, iż tak być nie powinno i powinienem przemyśleć zmianę tego fragmentu kodu.
Możecie mi wytłumaczyć dlaczego jest złą praktyka by w klasie abstrakcyjnej tworzyć konstruktor?

2.) Avoid Namespaces with few types
Czy ten komunikat oznacza, aby unikać jednej przestrzeni nazw dla wielu typów? Może źle rozumiem?
Możecie mi to wytłumaczyć? W moich dll-kach używam dla każdej klasy jednego namespace co prawda, ale tych klas nie jest znów tak wiele by generować warning - ot raptem 2 klasy w jednej dll-ce a mimo to zgłoszono warning.

Pozdrawiam.

0
  1. Nie chodzi o konstruktor w ogóle, ale o publiczny konstruktor. Po co w klasie konstruktor, którego Ty nie możesz wywołać?
  2. Nie, ten komunikat oznacza, aby unikać namespaców dla niewielu typów. Jeśli masz tylko jeden typ w każdym namespace, to coś masz mocno nie tak z organizacją kodu.
0

Rozumiem, bardzo dziękuję.
Co do punktu 1 faktycznie. Logiczne. Już poprawione.

Co do punktu 2, to narzędzie to wykrywa nawet System.Data jako Warning, więc czyżby nawet platforma .NET była napisana z pewnymi problemami organizacyjnymi? Faktem jest, że u mnie mam dll-kę z dwoma tylko klasami, więc faktycznie biorąc pod uwagę reguły zostanie to wykryte jako Warning. Jednak czy to ostrzeżenie nie jest zbyt restrykcyjne?

0

Taka już jest idea ostrzeżeń, żeby były restrykcyjne, a programista może się do nich zastosować lub nie w zależności od kontekstu.

0

Co do punktu 2, to narzędzie to wykrywa nawet System.Data jako Warning, więc czyżby nawet platforma .NET była napisana z pewnymi problemami organizacyjnymi?

Kiedy projektowano System.Data to nie wiedziano jeszcze, że kiedyś ktoś napisze Nitriq które będzie się czepiać namespace'ów z małą ilością klas.

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