Хороший ли код?

Рейтинг: 0Ответов: 1Опубликовано: 12.03.2023

Я написал программу, которая генерирует случайные числа в диапазоне от 0 до 99, и если сгенерированное число попадёт в определенный диапазон, то на экране появится текст, смысл которого зависит от диапазона, в который попадет число. Нормальный ли получился код, или он слишком громоздкий?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class RandomNumberGenerate : MonoBehaviour
{
    public float random_number;
    public Text txt;
    // Update is called once per frame

    void Start()
    {
        random_number = Random.Range(0f, 100f);
        Debug.Log(random_number);
    }

    void Update()
    {
        if(random_number >= 1 && random_number <= 94f ||  random_number == 0)
    {
        txt.text = "0, 1-94";
    }

    else if (random_number <= 0.01f)
    {
        txt.text = "0.01-0.02";
    }

    else if (random_number >= 95f && random_number <= 98f)
    {
        txt.text = "95-98";
    }

    else if (random_number == 99f)
    {
        txt.text = "99";
    }
    else
        txt.text = "else";
}

}

Ответы

▲ 3

генерирует случайные числа в диапазоне от 0 до 99, и если сгенерированное число попадёт в определенный диапазон, то на экране появится текст

  • Если ответственность класса нельзя описать односложным предложением, то что-то не так. У тебя банально больше одной ответственности: генерация и визуализация, что нарушает принцип единственной ответственности.
  • Для генерации MonoBehaviour не нужен. Что делает Update? Зачем делать вереницу if в каждом кадре с тем-же результатом? if else if else if else в наборе однородных операция вообще не должно быть, для этого есть for.
  • Диапазоны просто выставлены в ручную, прямо в методе, не пойми как, это называется магические числа. Диапазоны могут пересекаться, полно результатов для которых нет никаких диапазонов, никакого порядка или логики не существует, даже читать больно.
  • public поля в классе, за что на районе расчехляют вилы и факелы.
  • Все названия либо врут, либо не несут смысла.
  • Для нейминга полей используют Camel Case, это стандарт.
  • Кривая табуляция строк, читаемость падает до кровь из глаз.
  • В коде комментарии из шаблона MonoBehaviour, которые к тому-же еще и не на своем месте, грязный мусор как есть.

Какие-то пункты могут показаться придирками и мелочью, но это не так, код должен быть похож на хирургическую палату а не свалку. На любом ревью форматирование и стандарты это первое, что бросается в глаза и если видно, что писал неряха, содержание могут даже не смотреть.