Задать вопрос
@Vovox91

Можно ревью супергрязного(наверное) кода на с#?

Написал свой первый проект(Программа для прибора-газоанализатора). Понимающих в программировании друзей нет, в онлайн-школах не обучался, поэтому прошу помощи...Гляньте, пожалуйста, насколько код плохой, грязный, нечитабельный и т.д.

https://github.com/HappyMaxStudio/SaxonMeasurement
  • Вопрос задан
  • 515 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
@OwDafuq
Вы промазали, это не фриланс, где можно заказать ревью кода.
Но я сегодня добрый:
0) ВинФормы не актуальны, извините, переходите в Web или WPF.
1) Именования: что за Form1, Form2, Form...? Какую смысловую нагрузку они несут?
2) Classes.cs где нет ничего похожего на названия файла? Имхо, но лучше уж MixtureController сделать отдельным файлом, Mixture так же, отдельным файлом и желательно куда-то в папочки это спрятать (первый статик класс, например, в Services, а второй, например, в Models).
3) static - зло, тем более если у вас оно используется в форме для контроллов, поддерживать это будет очень больно и сломать будет очень просто. Не используйте static без надобности вообще.
4) не используйте "+" для конкатенации строк, уже давно есть string.Format, интерполяция, StringBuilder и пр.
5)
mixture.cylinderNumber
в C# принято называть публичные свойства в CamelCase, а не lowerCamelCase.

За остальной код кто-то другой дополнит
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Я тоже добрый сегодня.

Общее впечатление что код - пенопласт. В нем очень много строк но очень мало бизнес логики.

1) Во первых непонятно где фокусироваться. Смотреть формочки - не интересно они состоят в
основном из шумящих событий которые радуют глаз но делают очень мало действий. Это как смотреть
байткод LLVM или Java.

2) Вот такой комментарий я-бы не писал. Он звучит как капитан-очевидность. И ежу понятно что это Main.

/// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main()


Если твой преподаватель требует - то пускай будет. Но я-бы убрал.

3) Вот такие название как Classes, надо убрать. Они считаются дурным тоном. У тебя-же есть понимание
что внутри? Вот прояви фантазию и дай какое-то бизнесовое название. У тебя в названии вообще висит
газо-анализатор. Используй это.

4) Вот здесь имеет смысл вводить поясняющую переменную. Это основы рефакторинга
о которых писал Кериевски.

Mixtures[mixture].measurementResults[cycle] = gasType == "mixture" ? concentration : Mixtures[mixture].measurementResults[cycle] - concentration;
        }//сохранение текущего результата в конкретный цикл конкретной смеси


И комментарий должен стоять над кодом а не внизу.

5) Я не знаю зачем в 21 веке так сложно конкатенировать строку. Это не Си и не Java1.1.

table.GetControlFromPosition(i, table.RowCount - 1).Text = String.Concat("СКО", ":", Mixtures[i].sko.ToString());


Вот я специально посмотрел в learn портал https://learn.microsoft.com/en-us/dotnet/csharp/ho... и там пишут что вполне можно брать операцию плюс или стринговую интерполяцию.

Вобщем старайтесь писать меньше слов. Это - хорошая точка приложения сил для развития как разработчика.
Ответ написан
yarosroman
@yarosroman Куратор тега C#
C# the best
Найди .gitignore для шарповых проектов, чтобы не тащить мусор в виде временных и исполняемых файлов на гит
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы