Конференция "Прочее" » Стиль написания кода
 
  • Игорь Шевченко © (16.02.17 22:33) [40]

    > Но кстати это очень удобно, причем когда ставишь приставку
    > именно с маленькой буквы, тогда она не сливается с первой
    > буквой имени:


    Есть VCL, где подобные имена не приняты, следовательно, непривычны и отвлекают от анализа кода. Вся суть coding conventions состоит в том, чтобы код было легко, просто и удобно читать большинству людей.
  • Кто б сомневался © (16.02.17 23:50) [41]
    Игорь Шевченко ©   (16.02.17 22:33) [40]

    По идее это наоборот упрощает чтение. Т.к. не нужно скролить туда сюда и прыгать по переменным чтобы узнать что это property или локальная переменная или аргумент метода.


    > Тимохов Дима ©   (16.02.17 22:19) [39]


    >> k - для лок. переменных.
    И как это расшифровать? не variable и не local, а kkk... ?


    >  fu - для переменных под implementation.


    Ну те кто будет разбирать ваш код, первой мыслью наверное будет тот самый fu face mem  :)
    Других ассоциаций у меня нет :)

    Префиксы должны быть такие, чтобы любому челу знающему английский, было понятно что это..
    Например:
    'A' = 'Argument'. 'F' = 'Field', 'V' - 'Variable', 'P' - 'Pointer', 'T' = 'Type', 'E' = 'Exception', 'I' = 'Interface'.
  • Кто б сомневался © (17.02.17 00:02) [42]

    > _ - для классовых методов.


    Зачем?
    Там же все равно нужно писать название класса TMyName.FuncName - что уже как бы говорит о том что или это class procedure.
    И вообще что это дает? Зачем отличать классовые процедуры от методов?
  • Кто б сомневался © (17.02.17 00:08) [43]
    * или это class procedure или перечисление (enumeration)

    Не могу молчать ("когда в интернете кто-то неправ")..  :)

    >> а. Отступ 3 (привык).

    Wa-аt?

    А как же клавиши Ctrl + Shift + I и Ctrl + Shift + U - они только по 2 двигают...
    Т.е. отступ явно должен быть из четного числа.

    А как же клавиша Tab? Она же по 2 двигает...
  • Германн © (17.02.17 02:07) [44]

    > аргументы, зачастую, именуют с заглавной A, хотя в VCL вроде
    > не практикуется

    ACol, ARow навскидку первое, что пришло в голову.
  • Владислав © (17.02.17 08:33) [45]
    Кто б сомневался ©   (16.02.17 23:50) [41]

    Сначала:

    По идее это наоборот упрощает чтение. Т.к. не нужно скролить туда сюда ...

    А следом:

    >> k - для лок. переменных.
    И как это расшифровать? не variable и не local, а kkk... ?


    Упс. Идея не сработала. А как же не скролить?

    В итоге все таки пришлось вводить coding conventions:

    'A' = 'Argument'. 'F' = 'Field', 'V' - 'Variable', 'P' - 'Pointer', 'T' = 'Type', 'E' = 'Exception', 'I' = 'Interface'.

    Кто б сомневался ©   (17.02.17 00:02) [42]
    > _ - для классовых методов.
    Зачем?


    Ну так чтобы не скролить. Или уже не работает? ;)

    Поэтому Игорь и пишет о том, что лучше использовать стиль, который в VCL принят. В этом случае, если VCL смотрел, то и с остальным кодом в этом стиле парсер в голове не ломается.

    Но кстати это очень удобно, причем когда ставишь приставку именно с маленькой буквы, тогда она не сливается с первой буквой имени:

    В том же VCL принято писать с маленькой буквы только зарезервированные слова.
  • Тимохов Дима © (17.02.17 09:00) [46]

    > Кто б сомневался ©   (16.02.17 23:50) [41]

    Отвечу скопом:
    1. k - т.к. видно хорошо.
    2. _ - у меня сильно используются классовые методы, с т.ч. и виртуальные (в общем-то весь фрейморк построен на этом). Поэтому при методе часто нету имени класса.
    3. fu - f по аналогии с f перед private членами, u - юнит.
    4. Отступы регулируются options / editor / source options - надо ставить block indent 3, tab stops 4 7.

    Дело привычки.

    Еще. Не придеживаюь подхода VCL в классах: сначала private, потом protected и т.д. Пишу по смысловым группам:


    > // Тема такая-то
    > private var fData: Integer;
    > public property Data: Integer read fData;
    > public procedure AddData(...)
    >
    > // Тема другая-то
    > private var fData1: Integer;
    > public property Data1: Integer read fData1;
    > public procedure AddData1(...)
    >
  • Игорь Шевченко © (17.02.17 10:13) [47]

    > Еще. Не придеживаюь подхода VCL в классах: сначала private,
    >  потом protected и т.д. Пишу по смысловым группам:


    Ты ж один пишешь, насколько я в курсе. А все стили, соглашения и т.п. - они для совместной работы.
  • sniknik © (17.02.17 10:58) [48]
    > А как же клавиши Ctrl + Shift + I и Ctrl + Shift + U - они только по 2 двигают...
    не на 2, а на значение Editor Properties -> Block indent которое по дефолту равно 2.

    > А как же клавиша Tab? Она же по 2 двигает...
    то же самое, но Tab Stops.
  • ухты © (17.02.17 12:29) [49]
    Сам или не сам, все равно стиль какойто вырабатывается, привычки, удобства и тп способствуют.
    вот префиксы мы используем для того чтобы иде "помогала", по префиксу групируются в списках, что иногда помогает. Вся остальная смысловая нагрузка - ерунда на постном масле. )) Лок переменным достаточно простого короткого названия, как и параметрам.
    В делфи регистронезависимость, на мой взгляд зло.
  • Тимохов Дима © (17.02.17 16:45) [50]

    > Игорь Шевченко ©   (17.02.17 10:13) [47]
    > > Еще. Не придеживаюь подхода VCL в классах: сначала private,
    > >  потом protected и т.д. Пишу по смысловым группам:
    > Ты ж один пишешь, насколько я в курсе. А все стили, соглашения
    > и т.п. - они для совместной работы.

    К сожалению, до сих пор пишу один. В какой-то момент это был осознанный выбор, т.к. справляюсь. Вот именно в моем случае (много кода на одного) выработал свой стиль, привычный и понятный мне. Без него я бы сдох.
    Я это к тому, что согласно твоей любимой фразе... каждый овощ и т.д. (концовку не помню).
  • Игорь Шевченко © (17.02.17 16:55) [51]
    Тимохов Дима ©   (17.02.17 16:45) [50]

    Согласно моей фразе всякий овощ приносит пользу будучи употреблен надлежащим образом в надлежащее время. Видимо, в твоем случае стоило раньше прочитать книгу братьев Тейксейры и Пачеко.
  • Kerk © (17.02.17 17:11) [52]
    если для проекта в котором ничего не понятно вы делаете костыль, то вероятно вы используете бестпрактис этого проекта, а как результат не будете выделяться на общем фоне и нарушать хрупкий баланс и эстетику остального кода
  • rrrrr © (17.02.17 17:58) [53]
    стиль ничто, дизайн - гораздо важнее.

    открываешь отчет строк на 1000, который надо допеределать.
    со стилем там все окейно, но с дизайном полный швах.

    десятикратные вложенные циклы, вперемежку получение, обработка и вывод данных.
    потянешь за веревочку в одном месте - в ста местах дверка откроется.
    а со стилем все хорошо
  • Кто б сомневался © (18.02.17 01:33) [54]

    > В делфи регистронезависимость, на мой взгляд зло.


    Слава богу что разработчики не додумались такое извращение добавить в этот язык.
    Тьфу-тьфу.
    С точки зрения здравомыслия - какой же идиотизм с этой регистрозависимостью придумали.
    Когда Double <> double и когда myData и mydata это разные переменные.

    Человек воспринимает большую и маленькую букву как одну и ту же, а машина нет.
    И ... решили угодить машине.

    Ну может с древних времен, во времена С с точки зрения производительности это было целесообразно, но нафига это ввели в современные языки, такие как Java, во времена когда языки стремились (и стремятся) к обычному английскому тексту..
  • ухты © (18.02.17 02:12) [55]
    Разработчики шарпа, теже впрочем что и делфи, както вот ввели зависимость, и никто еще не умер. Странно все это. )
  • Германн © (18.02.17 02:18) [56]

    > ухты ©   (17.02.17 12:29) [49]
    >
    > Сам или не сам, все равно стиль какойто вырабатывается,
    > привычки, удобства и тп способствуют.
    > вот префиксы мы используем для того чтобы иде "помогала",
    >  по префиксу групируются в списках, что иногда помогает.
    >  Вся остальная смысловая нагрузка - ерунда на постном масле.
    >  )) Лок переменным достаточно простого короткого названия,
    >  как и параметрам.
    > В делфи регистронезависимость, на мой взгляд зло.

    Всё что вам в локальной группе удобно использовать - используйте. Никто не против.
    А вот насчёт "В делфи регистронезависимость, на мой взгляд зло" я решительно не согласен.
  • Inovet © (18.02.17 09:35) [57]
    > [54] Кто б сомневался ©   (18.02.17 01:33)
    > Когда Double <> double и когда myData и mydata это разные переменные.

    Это издержки. А вот когда регистр необязателен некоторые хабивают на него совсем и у них в когде одинаковые переменные и компилятор это пропускает
    moiasuperperemenaia
    MOIASUPERPEREMENAIA
    а так им просто лень записывать
    MoiaSuperPeremenaia

    Это же касается идентификаторов библиотечных переменных и функций. Компилятор ошибку не выдаёт, значит принципиально пишу как хочу, и никто мне ничё не скажет.
  • rrrrr © (18.02.17 09:40) [58]
    но нафига это ввели в современные языки, такие как Java,

    начать надо не с языков, а с регистрозависимых файловых систем.
  • Германн © (19.02.17 03:00) [59]

    > Inovet ©   (18.02.17 09:35) [57]

    Лично я вообще не понимаю зачем нужна "регистрозависимость" хоть где либо в программировании.
 
Конференция "Прочее" » Стиль написания кода
Есть новые Нет новых   [118604   +22][b:0][p:0.001]