TGViewer
Unity Tech Дед: Борис Романчиков Unity Tech Дед: Борис Романчиков @unitytechded · 338 subscribers
Post #33 594
3 приёма, которые мгновенно сделают ваш код чище! 🚀

На этой неделе провел серию код ревью и решил сформировать 3 простых, но мощных совета, чтобы ваш код был читаемым и поддерживаемым!

✅ 1. Разбивайте сложные лямбда-выражения
Лямбда-методы удобны, но слишком сложные выражения ухудшают читаемость.

🔴 Плохо:

var evenNumbers = numbers
.Where(n => n % 2 == 0)
.Select(n => n * n)
.OrderByDescending(n => n)
.ToArray();


🟢 Хорошо (разбиваем на методы):

private bool IsEven(int number) => number % 2 == 0;
private int Square(int number) => number * number;

var evenNumbers = numbers
.Where(IsEven)
.Select(Square)
.OrderByDescending(n => n)
.ToArray();

Теперь код понятнее и легче отлаживать.

---

✅ 2. Используйте ранний return вместо вложенных if-else
Чем меньше вложенность, тем чище код.

🔴 Плохо:

public void Attack(int damage)
{
if (damage > 0)
{
health -= damage;
if (health <= 0)
{
Die();
}
else
{
Debug.Log("Player took damage");
}
}
else
{
Debug.Log("Invalid damage value");
}
}


🟢 Хорошо:

public void Attack(int damage)
{
if (damage <= 0)
{
Debug.Log("Invalid damage value");
return;
}

health -= damage;
if (health <= 0)
{
Die();
return;
}

Debug.Log("Player took damage");
}

Ранний return делает код проще и понятнее.

---

✅ 3. Избегайте глубокой вложенности логики
Чем меньше if в if, тем лучше.

🔴 Плохо:

public void ProcessEnemies(List<Enemy> enemies)
{
foreach (var enemy in enemies)
{
if (enemy.IsAlive)
{
if (enemy.DistanceToPlayer < 10)
{
if (enemy.HasWeapon)
{
enemy.Attack();
}
}
}
}
}


🟢 Хорошо (разбиваем на методы):

public void ProcessEnemies(List<Enemy> enemies)
{
foreach (var enemy in enemies)
{
HandleEnemy(enemy);
}
}

private void HandleEnemy(Enemy enemy)
{
if (!enemy.IsAlive)
return;

if (enemy.DistanceToPlayer >= 10)
return;

if (!enemy.HasWeapon)
return;

enemy.Attack();
}

Теперь основная функция короткая, а обработка вынесена в отдельный метод.

---

💡 Вывод:
✅ Разбивайте сложные выражения на методы
✅ Используйте ранний return, чтобы избежать лишних if-else
✅ Минимизируйте вложенность для лучшей читаемости

Используете ли вы эти методы на практике или они для вас вновинку?
Поделитесь в комментариях👇
  • 👍 13
  • 🔥 7
  • ❤ 2
  • 👌 1
More from @unitytechded
  1. Sep 25, 2026🛠 Как Astra меняет мой подход к разработке В последнее время много экспериментировал с As…
  2. Aug 30, 2026Bioneers Closed Demo — финальные результаты первых 48 часов Подвели итоги первых 48 часов…
  3. Aug 28, 2026Bioneers вышел в закрытое тестирование! Ровно год назад началась разработка игры, а сегодн…
  4. Jun 10, 2026Почему никто не использует Test-Driven Development в геймдеве? Разбирал тут наши старые до…
  5. May 18, 2026Как оформить CV разработчику. Часть 2 Если коммерческого опыта мало, можно указать pet-про…
  6. May 18, 2026Как оформить CV разработчику. Часть 1 Хочу начать с важной ремарки: я не профессиональный…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →