Длинные строки кода против удобочитаемости
-
03-07-2019 - |
Вопрос
Это совершенно прекрасный код на C #, и он отлично работает при условии правильного URL.Но все это просто делается в одной строке за счет снижения читабельности кода.
Вот этот код :
return new StreamReader(WebRequest.Create(urlName).GetResponse().GetResponseStream()).ReadToEnd();
Мне просто интересно, каковы мнения коллег-разработчиков о таком коротком способе написания кода
Решение
Поместите это в хорошо названный метод и, возможно, разбейте его так, чтобы один statment растягивался на пару строк.Я бы также, вероятно, использовал WebClient:
return new WebClient().DownloadString(urlName);
Другие советы
Нет, на самом деле это не совсем идеальный код на C #.Вы должны утилизировать StreamReader, чтобы, по крайней мере, иметь using
заявление:
using (StreamReader reader = new StreamReader(WebRequest.Create(urlName).GetResponse().GetResponseStream()) {
return reader.ReadToEnd();
}
Этот код может стать немного читабельнее, если разделить его на большее количество строк, но не очень сильно.
Обычно я предпочитаю читаемый код компактному.Наличие одного оператора в каждой строке облегчает чтение и понимание кода.Например:
if (i <= 4) i = 4 - i;
Это становится более читабельным, если оператор if находится в одной строке, а код внутри него - в отдельной строке, причем оператор if всегда имеет квадратные скобки:
if (i <= 4) {
i = 4 - i;
}
Этот код, конечно, довольно удобочитаем даже в компактном виде, но чем сложнее код, тем больше он выигрывает от размещения каждого оператора в отдельной строке.
...ФУ.
Иногда я объединяю несколько вещей в одну строку, обычно когда я загружаю материал в поток, но никогда в таком количестве.
Большинство компиляторов (по крайней мере, компиляторы c ++) часто используют встроенные определения переменных, если определение используется только один раз, поэтому, если вы используете один раз, выбросьте переменную.Ваш компилятор C #, вероятно, просто заменит его имя на его определение.
В дополнение к проблеме с удобочитаемостью, вы должны удалить любой объект IDisposble, который вы используете.
Один оператор ! = одна строка, вы можете улучшить читаемость, улучшив форматирование вашего кода.Конечно, вы не должны предполагать, что другие люди используют мониторы с высоким разрешением.