Wpis z mikrobloga

Proszę o odpowiedzi na pytania, skierowane do osób, które używają już .NET 8 i C# 12 w projektach.

1. Czy używacie Primary Constructors w swoich klasach?

public sealed class Foo(Bar bar) { ... }
2. Czy dotyczy to również klas ze wstrzykiwanymi zależnościami?

public sealed class Foo
{
private ILogger<Foo> logger;
public Foo(ILogger<Foo> logger)
{
this.logger = logger;
}
}

do:

public sealed class Foo(ILogger<Foo> logger)
{
}

3. Czy oznaczacie pola (fields) modyfikatorem 'readonly' w klasach z DI?
4. Jeżeli odpowiedzieliście TAK na pytanie 2 i 3, czy zachowujecie ten modyfikator również w przypadkach klas z Primary Constructorem?

public sealed class Foo
{
private readonly ILogger<Foo> logger;
public Foo(ILogger<Foo> logger)
{
this.logger = logger;
}
}

do:

public sealed class Foo(ILogger<Foo> logger)
{
private readonly ILogger<Foo> logger = logger;
}

5. Czy używacie w ogóle polskich nazw w Polskich firmach w odniesieniu do konceptów w C#/.NET, czy po prostu: DI, readonly, fields, property, primary constructor, service container?

#dotnet #csharp #ankieta #programowanie
  • 8
  • Odpowiedz
4.to jest absolutny potworek.

Kiedyś mnie bardzo irytował kod z tymi nudnym konstruktora mi i listą pół. Ale to przeszkadza tylko na samym początku istnienia projektu, czyli niedługo.

Uważam, że ten ficzer przynosi więcej szkody, niż pożytku.
  • Odpowiedz
@Hektorrr: 1. Generalnie nie, chociaż głównie po prostu dlatego, że nie lubię tego feature'a w przypadku klas, poza tym nie widzę sensu wprowadzania niespójności do kodu. Jeden czy dwa primary constructory mogły się gdzieś pojawić, ale to jedynie w rzadkich przypadkach klas, które pełnią bardzo konkretną funkcję. Zresztą wszystkie z tego co pamiętam są też opatrzone modyfikatorem file.
2. Tak, powiem więcej, jeżeli miałbym użyć gdzieś primary constructora to klasa
  • Odpowiedz
  • 0
@obieq: Stosowanie prefiksów this i '_' jest tak naprawdę kwestią gustu i konwencji przyjętej w zespole. Dotnet używa . Ale nie jest to w żaden sposób sugerowane jako 'najlepsza' praktyka we wszystkich C#-owych projektach. Często domyślny prefiks będzie wynikał z domyślnych ustawień IDE.
Ważne żeby było spójnie w projekcie/projektach.
  • Odpowiedz
@Hektorrr: ważne żeby było spójnie zgadzam się. Nie.narzucam.ale bardziej jako dobrą praktyka sugerowane jest unikanie this a to prowadzi właśnie do tego. (No i _ jednak krócej niż this.)
  • Odpowiedz