LINUX.ORG.RU

Выбор имени для переменных, функций и пр..

 


1

3

Правильный выбор имени — одна из самых важных и сложных вещей в программировании (особенно в opensource), есть какие-нибудь гайды, статьи как облегчить этот труд? Или может кто-нибудь поделиться своим опытом?

★★

Последнее исправление: MaxPower (всего исправлений: 1)

ну вообще то еще польский фантаст Станислав Лем писал о присвоении переменных имени любимых (девушек).

Чем плохо?

Stremitelnyj
()
Ответ на: комментарий от vvn_black

Да я больше про придумывание названия, а не про стиль. Понимаю, там абстракции и все дела, но охота ещё больше упростить себе жизнь.

MaxPower ★★
() автор топика
Ответ на: комментарий от MaxPower

Имена типов, переменные, константы - существительные. Имена методов, функций - глаголы или фразы описывающие действие.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 2)
Ответ на: комментарий от MaxPower

Да я больше про придумывание названия, а не про стиль.

Дык, там в каждом руководстве есть секция «naming». И там в том числе и про придумывание есть.

vvn_black ★★★★★
()
Ответ на: комментарий от vvn_black

Это всё правила, я их и так знаю, я про творческую составляющую.
Вот например:

class Timer {
  var x = 0; // переменная в которой содержится кол-во минут 
             // через которые сработает таймер
}

Как лучше обозвать икс, понятно что это будет существительное в соответствии c руководством по стилю, но вот какое?

MaxPower ★★
() автор топика
Ответ на: комментарий от anonymous

Там вода.

И что? На вопрос ТСа есть ответ, более конкретный, чем «придерживайся стиля, принятого в проекте, или, если не планируешь показывать свой код, делай как хочешь»?

vvn_black ★★★★★
()
Ответ на: комментарий от anonymous

Про творчество, я пас. Какие там могут быть правила, кроме стиля. Всё что кроме стиля - это как раз и есть индивидуальность, которую измерить не получиться.

vvn_black ★★★★★
()
Ответ на: комментарий от MaxPower

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

anonymous
()
Ответ на: комментарий от MaxPower

из названия очевидно что он в минутах, а не в миллисекундах?

timeout_ms, это если в шутку.

А если серьёзно, то есть ещё контекст, а в рамках конекста, можно и x оставить, будет только лучше. Конекст в данном случае - название класса, метода, функции или докстринги, из которых будет ясно, что x - это таймаут в милисекундах и никак иначе.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 2)
Ответ на: комментарий от vvn_black

Имена методов, функций - глаголы или фразы описывающие действие.

Давай убогий! Облегчай мне взлом! )))

anonymous
()
Ответ на: комментарий от vvn_black

Да я согласен, в данном случае контекст — это и есть в принципе абстракция, при правильной абстракции имена сами в голову придут.
Но как стать ниндзя?

MaxPower ★★
() автор топика
Ответ на: комментарий от vvn_black

Я с ним не знаком, но что то мне подсказывает что он их просто нумерует по порядку var#1, var#2, func#1, func#2

MaxPower ★★
() автор топика
Ответ на: комментарий от MaxPower

Но как стать ниндзя?

Как писать стихи?

Ну, достаточно рифмовать строчки.

Как писать стихи, чтобы не вяли уши?

Надо соблюдать стихотворный размер.

Как писать хорошие стихи?

????

vvn_black ★★★★★
()
Ответ на: комментарий от anonymous

Венгерская нотация явно придумана в состоянии передозировки крокодилом, других причин появления этого говна я придумать не могу.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от vvn_black

Как писать хорошие стихи?

????

Ага я здесь.

MaxPower ★★
() автор топика
Ответ на: комментарий от MaxPower

Это всё правила, я их и так знаю, я про творческую составляющую.

То есть ты знаешь правила, но у тебя нет объектов, к которым можно и нужно применить эти правила.

Из ничего ничего не получишь, какие бы ты правила не применил.

Проблема в тебе. Зачем ты учишь правила? Может сперва стоит наполнить себя объектами, испробовать всё без оценки по навязанным извне правилам, только после этого начать делить объекты по этим навязанным правилам?

anonymous
()
Ответ на: комментарий от Stremitelnyj

ну вообще то еще польский фантаст Станислав Лем писал о присвоении переменных имени любимых (девушек).

Это сейчас серьезно было? https://zxpress.ru/article.php?id=7478
GLODING PROGRAMMING (Программирование снизу вверх наискосок)

     Всем  переменным давайте имена ваших
знакомых,  любимых  блюд,  эстрадных  ан-
самблей,  сигарет, напитков и т. д. Легко
видеть, что фрагменты типа:

IF КАТJА >= 18  ТНЕN DО;
САLL GАSТRОNОМ;
САLL ТАХI;
GОТО ХАТА; ЕND;
ЕLSЕ GОТО VЕRА;


 GLОРING  СSЕСТ
          ...
 МАRINА   ЕQU   DURА
          ...
          L     АН,МАRUSJА
          SТ    UН,АNJUТА
          ВХLЕ  LЕТS,IRINА,DRINК(АGDАМ)
             /* АSSЕМВLЕR */


поражают  изяществом, остроумием и тонким
вкусом.
SZT ★★★★★
()
Ответ на: комментарий от MaxPower

ms_left. А так, особенно при использовании более-менее новых ЯП много выводится из контекста. Например, вполне приемлемо писать fn foo<R: Read>(r: &mut R){}. В типе аргумента уже указано достаточно много информации, и одной буквы вполне достаточно. Часть информации можно выносить в названия модулей/неймспейсов, например, sort::quick.

Siborgium ★★★★★
()
Ответ на: комментарий от MaxPower

Как лучше обозвать икс, понятно что это будет существительное в соответствии c руководством по стилю, но вот какое?

«минуты».

monk ★★★★★
()
Ответ на: комментарий от anonymous

Мораль басни такова - «Фантасту - фантастика, программисту - плетка».

Владимир

anonymous
()
Ответ на: комментарий от MaxPower

А у тебя много вариантов как назвать задержку таймера? delay.

Добавлю ещё для конкретного случая что для размерных числовых величин имеет смысл указывать размерность в названии, т.е. delayMinutes. По-хорошему конечно это должно выражаться типом, но такое пока не везде возможно/просто/удобно.

slovazap ★★★★★
()
Ответ на: комментарий от Siborgium

А вот в М$-ной сишке очень даже.

Ну так её в Микрософте и придумали. И она там была (есть?) стандартом.

anonymous
()
Ответ на: комментарий от slovazap

По-хорошему конечно это должно выражаться типом, но такое пока не везде возможно/просто/удобно.

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

MaxPower ★★
() автор топика
Ответ на: комментарий от pon4ik

Когерентность кэшей

ИМХО это частный случай — программирование вообще может обходиться (да и обходиться в большинстве случаев) без решения таких задач.

MaxPower ★★
() автор топика
Ответ на: комментарий от MaxPower

Ты явно не знаком с классикой, не бери в голову в общем.

pon4ik ★★★★★
()
Ответ на: комментарий от MaxPower

class Timer {
var x = 0; // переменная в которой содержится кол-во минут
// через которые сработает таймер
}
Как лучше обозвать икс, понятно что это будет существительное в соответствии c руководством по стилю, но вот какое?

cntMinutRunTimer

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Зачем? Достаточно просто перестать сковывать себя догматизмом.

Deleted
()

может кто-нибудь поделиться своим опытом?

В какую церковь суешься - по тем заветам и работай. В остальных случаях ты сам себе царь.

xDShot ★★★★★
()

Какие там гайды я иногда днями мучаюсь выбирая имя сраной переменной аж на ЛОР пишу что бы помогли придумать.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

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

bonta ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.