ФорумПрограммированиеПыхнуть хотите?F.A.Q. → именование переменных

именование переменных

  • zlodiak

    Сообщения: 17 Репутация: N Группа: Кто попало

    Spritz Май 1, 2016, 2:56 п.п.

    ребята, скажите как дальше жить?

    я, следуя совету автора популярной книжки "совершенный код", даю имена переменным очень конкретные. например такие:

    
    this.cityOfDestinationView = new APP.CityOfDestinationView({
      model: this.cityOfDestinationModel
    });
    

    но в результате у меня получается какой-то адский, неудобночитаемый код. вот небольшой пример:
    Edit fiddle - JSFiddle [jsfiddle.net]
    zlodiak/shippingCalculator1 [github.com]

    как думаете, это нормально? как бы вы посоветовали давать имена переменным?

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Май 1, 2016, 3:07 п.п., спустя 11 минут 2 секунды

    @zlodiak, продолжай давать конкретные имена, все ок с кодом.

    Сапожник без сапог
  • john2dark

    Сообщения: 99 Репутация: N Группа: Адекваты

    Spritz Май 1, 2016, 3:20 п.п., спустя 12 минут 36 секунд

    Можно я посоветую на основе своего опыта?
    Всегда лучше использовать полное наименование переменных, точно отражающих что именно в них ездит, вне зависимости от того как выглядит внешне код.
    Потому что идущий следом за вами разработчик выполняя code review будет вам благодарен и это в равной степени относится к вам самим, если спустя полгода надо вернуться к этому коду.
    Сюда же стоит отнести и комментирование кода в участках, где происходят вещи не совсем очевидные на первый взгляд.
    Я вообще стараюсь в таких местах оставлять детальный план описывающий порядок движухи, да, прямо в комментариях кода, а не только в проектной документации.

  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz Май 1, 2016, 4:13 п.п., спустя 52 минуты 51 секунду

    полные имена ок, за исключением локальных переменных. если весь скоуп переменной умещается на экран без скроллинга, ты не успеешь забыть откуда она и для чего )))
    тогда реально пусть она называется x или i.

    ιιlllιlllι унц-унц
  • john2dark

    Сообщения: 99 Репутация: N Группа: Адекваты

    Spritz Май 1, 2016, 4:19 п.п., спустя 6 минут 27 секунд

    @artoodetoo, это клёвое дополнение, у меня самого ездят всякие c, i, y, idx в пределах экрана :)))

  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz Май 1, 2016, 4:49 п.п., спустя 29 минут 44 секунды

    В динамических некомпилируемых языках обращение к переменным происходит по имени. Соответственно, длина имени переменной влияет на производительность. Например, в Ruby для переменных с именем больше 23х символов.
    Never create Ruby strings longer than 23 characters - Pat Shaughnessy [patshaughnessy.net]

    Если этим не заморачиваться, то строго похуй. Вообще, можно собрать интерпретатор с флагом -O3 (или вообще -Ofast, если выгорит) и с -march=native, а не с -O2 как обычно и march хуй пойми каким, и компенсировать проседание производительности. Но это на сервере. В браузерах - никак. Ну или прогонять через минификатор. Либо писать в многопоточном стиле (такое вообще возможно для javascript?).

    В компилируемых языках после компиляции никаких имён переменных, разумеется, не остаётся.

    Что касается осмысленности названий. Важно не то, как они называются, а то, чтобы в них лежало то, как они называются. Ну чтобы в переменной age не хранился рост. Полям и методам можно давать короткие имена, но рядом с объявлением писать подробный комментарий, что это, зачем это и как планируется её использовать. Реально, больше пользы. Ну вот сравните:

    var bestClientFirstCarEngineNumber;

    var engine_num; // Номер двигателя первого автомобиля лучшего клиента. Нужна для того, чтобы выводить в топе статистики. Не нужна, если не будет статистики.

    Кстати, нижнее подчёркивание удобнее читается.

    Спустя 175 сек.

    ребята, скажите как дальше жить?

    @zlodiak, рядом с объявлением переменной пиши комментарий нахуй она понадобилась и какой тип в ней должен храниться.

    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Май 1, 2016, 5:12 п.п., спустя 22 минуты 55 секунд

    Тип и для чего подписывать переменную это шлак. Имена просто адекватно длинные, возможно сокращение слов в имени переменной.

    Сапожник без сапог
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz Май 1, 2016, 5:14 п.п., спустя 2 минуты 6 секунд

    @phpdude, это шлак до тех пор пока не приходится разбираться в чужом говнокоде. открой битрикс какой-нибудь.

    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Май 1, 2016, 6:12 п.п., спустя 58 минут 7 секунд

    @phpdude, это шлак до тех пор пока не приходится разбираться в чужом говнокоде. открой битрикс какой-нибудь.

    @master, зачем мне копаться в чужом говне?)

    Сапожник без сапог
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz Май 1, 2016, 6:22 п.п., спустя 10 минут 3 секунды

    @phpdude, а в чьём зачем?

    не всё полезно, что в swap полезло
  • zlodiak

    Сообщения: 17 Репутация: N Группа: Кто попало

    Spritz Май 1, 2016, 7:34 п.п., спустя 1 час 11 минут 51 секунду

    спасибо за ответы. я всё таки решил продолжать использовать длинные имена. не думаю, что это сильно будет влиять на производительность так как сегодня почти не осталось разработчиков, которые не пользуются сборщиками типа проектов grunt. а это своего рода "компилятор", который кроме всего прочего, преобразует имена в легкоразрешимые

  • john2dark

    Сообщения: 99 Репутация: N Группа: Адекваты

    Spritz Май 2, 2016, 12:26 д.п., спустя 4 часа 51 минуту 59 секунд

    [заскипано цензурой]

  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz Май 2, 2016, 12:39 д.п., спустя 12 минут 39 секунд

    Есть книжка такая, называется "Совершенный код" там уже всё написано и обсосано с разных сторон, поэтому я ничего не буду писать ))))

Пожалуйста, авторизуйтесь, чтобы написать комментарий!