Luffy1
@Luffy1
Student, Junior .NET programmer, C#, JS, HTML/CSS

Читабельность кода или скорость его выполнения?

Дорогие Хабрачане, подскажите, пожалуйста, при написании проекта на что больше обратить внимание, на читабельность кода (если с ним будут работать другие программисты) или на скорость выполнения? Вопрос не только о выборе рекурсии и циклах, но и в общем, при написании любого проекта.
Вот откуда возник вопрос: рекурсия выполняется медленнее, но она более читабельна, чем цикл, который выполняется быстрее рекурсии.
  • Вопрос задан
  • 592 просмотра
Решения вопроса 7
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Вот откуда возник вопрос: рекурсия выполняется медленнее, но она более читабельна, чем цикл, который выполняется быстрее рекурсии.
Спасибо, поржал)
Лучше - учите операции досрочного выхода из "вихря" рекурсии.

1. Читабельность кода - определяется его архитектурой.
2. Скорость выполнения - правильно выбранным алгоритмом для конкретной задачи и количеством операций для динамической работы с памятью: выделение памяти под объекты, переменные, etc.
Ответ написан
Ni55aN
@Ni55aN
Конечно же чистота кода. В 99% процентах случаев не важно, выполняется ваша функция за O(n3) или O(log n). Про низкоуровневые оптимизации вообще стоит забыть, если изначально не стоит требования писать под "калькуляторы".
Наверное одно из немногих, о чем не стоит забывать, это применение правильных структур данных, чтобы не получилось так, что на каждый чих будет там что-то пересчитываться, когда этого можно избежать
Ответ написан
Комментировать
tomnolane
@tomnolane
профессиональный разработчик
DRY, KISS ваше все.
Остальное придет с опытом, особенно когда будете работать в команде
Ответ написан
Комментировать
Griboks
@Griboks Куратор тега C#
Однозначно, читабельность. За скорость выполнения не беспокойтесь, C# сам её обеспечит на достойном уровне.
Ответ написан
Комментировать
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
Читабельность вобщем важнее эффективности. "Код пишется не для машины а для других программистов"(c) Там где необходим низкоуровневый, слабоструктурированный код для производительности любой ценой много комментируйте.
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Несколько мыслей.

1) Существуют языки программирования в которых рекурсия вообще заменяет цикл (Haskell, Erlang) и другого способа описать итерацию кроме как через рекурсивную функцию - нету. Но наверное в топике тема рекурсии - не основная - а просто частный пример.

2) Во всех случаях всегда надо выбирать "читабельность". Прошли времена когда программисты отдавали дань ассемблеру или указателям на сырую память. Сегодня так пишут все меньше и меньше. И основная задача написания кода - сделать его понятным для вашего коллеги. Цитата : "Код пишется человеком для прочтения человека и лишь в очень редких случаях - для машины".

Вобщем пишите код. Просите коллег чтоб они его посмотрели и ПОНЯЛИ что вы имели в виду. И если коллеги будут кричать WTF! - фиксируйте их замечания и доводите до такого состояния чтобы ни у кого не было вопросов.
Это будет идеальный код по Роберту Мартину.
Ответ написан
Комментировать
tzlom
@tzlom
Читабельность тоже не простой вопрос, я встречал людей для которых рекурсия менее читабельна чем цикл. Но читабельность это главное, суть в чём - код все равно когда-то придется менять (например он работает слишком медленно), если он не читабельный - его проще выкинуть, а это и потраченные ресурсы и риск.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы