C# Добри практики - k1zun4/dotnet-portfolio GitHub Wiki
💡 C# Добри практики
Добре дошли в раздела за добри практики при писане на C# код! 🎯
Тук ще откриете насоки за чист стил на писане, структуриране на код, избягване на грешки и прилагане на принципите на обектно-ориентирано програмиране.
🏷️ Конвенции за именуване
Променливи
- Използвайте
camelCase
→totalSum
,userAge
Методи
- Използвайте
PascalCase
→CalculateSalary()
,DisplayMenu()
Класове и интерфейси
- Класове:
PascalCase
→Employee
,GameManager
- Интерфейси: започвайте с
I
→ILogger
,IRepository
Константи
- Използвайте главни букви с подчертаване →
MAX_SPEED
,DEFAULT_TIMEOUT
🎨 Форматиране на код
- Отстъп: 4 интервала или табулация
- Скоби
{}
: поставяй на нов ред след условие/метод - Използвай празни редове между логически блокове
- Поддържай еднакъв стил в целия проект
if (isLoggedIn)
{
ShowDashboard();
}
🧱 SOLID принципи
S – Single Responsibility Principle
Всеки клас трябва да има само една отговорност.
O – Open/Closed Principle
Класовете трябва да са отворени за разширение, но затворени за промяна.
L – Liskov Substitution Principle
Подкласовете трябва да могат да заменят родителските класове без грешка.
I – Interface Segregation Principle
Използвай много малки интерфейси, вместо един обемен.
D – Dependency Inversion Principle
Зависимостите трябва да са към абстракции, не към конкретни реализации.
🧼 Примери за чист код
✅ Ясни и описателни имена
✅ Разделяне на логиката на малки методи
✅ Използване на константи вместо "магически числа"
✅ Коментари обясняват защо, не как
❌ Лошо:
if (x == 1) DoSomething();
✅ Добро:
const int ACTIVE_STATUS = 1;
if (status == ACTIVE_STATUS)
{
ActivateFeature();
}
⚠️ Чести грешки и как да ги избегнем
🚫 Липса на проверка за null
🚫 Използване на ==
за сравнение на string
🚫 Прекалено дълги методи без ясна структура
🚫 Непоследователни имена и отстъпи
Съвети:
- Използвай
string.Equals(a, b)
вместоa == b
- Проверявай входа на методи за
null
- Разделяй кода на логически части
- Използвай
try-catch
внимателно и целенасочено
📚 Полезни ресурси
- Microsoft C# Coding Conventions
- Clean Code: A Handbook of Agile Software Craftsmanship – Robert C. Martin
- SOLID Principles in C# – DotNetCurry