Instantly share code, notes, and snippets.

Embed
What would you like to do?
seva-calculator

Функциональность

  • Некорректная обработка чисел больше размерности int. Например, 9999999999999999999=-1981284353.
  • IndexOutOfRangeException в случае пустого ввода и в случае если оператор умножения или сложения находятся в начале: +2, *2.
  • Программа не покрыта тестами.
  • Дублирование логики в switch - case. Символьный тип элементарно перевести в число, а блок с проверкой от '0' до '9' заменяется одной строчкой. То же самое относится к операторам '*' и '+'.
  • Программу тяжело будет расширять из-за жестко прописанной логики. А что если добавить новые операторы -, / и правоассоциативный ^? Обнуление элементов массива и потом их сложение - плохое решение.

Форматирование

  • Отсутствие отступов в некоторых местах. Чревато возникновением трудных для локализации ошибок.
  • Отсутствие переносов строк. Несколько инструкций на одной строке усложняют понимание. if (simb[i] == '*') { digt[i + 1] = digt[i + 1] * digt[i]; digt[i] = 0; }.

Именование

  • Транслитерация в строках: "Vvedite virajenie ", "Ochibka vvoda". Какой в этом вообще сейчас смысл? В крайнейм случае можно использовать русский текст.
  • Плохие, неинформативные и не необходимые сокращения: simb, flajok, digt, s, m.
  • Невнятное название проекта, папок и файлов: seva, ConsoleApp3 - нужно называть все понятно и по смыслу.

Разное

Console.Write(expr);
Console.Write("=");
Console.Write(s);

Целесообразно заменить на Console.Write($"{expr}={s}");

  • Наличие бинарных файлов в репозитории bin/Debug/netcoreapp1.1 - изменяемые, сгенерированные, скомпилированные файлы не должны хранится в репозитории. Тем более не текстовые.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment