Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2013, 08:06   #1
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию Как правильно давать имена переменным?

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

С тех пор я решил добавлять префиксы к именам переменных.

Последний раз редактировалось Скрипт; 17.02.2013 в 11:32.
Скрипт вне форума Ответить с цитированием
Старый 17.02.2013, 12:18   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Так чтобы тебе было понятно с чем ты имеешь дело. Я, например, тоже использую префиксы: "o" — для объектов типа Range, Cell, Document и т.д.; "s" — для строк; "n" — для чисел; "b" — для булевых значений; "ar" — для массивов; "col" — для коллекций. Ну и само имя должно как-то соотносится с назначением переменной, например массив с путями к файлам у меня скорее всего будет называться arFilePaths, а переменная, хранящая имя файла (без пути) — sFileName.
Пока ты пишешь код для себя, то можешь именовать как тебе угодно, лишь бы было понятно. А вот если пишешь код в команде, тогда нужно придерживаться оговорённых стандартов.
И, конечно, никакой кириллицы — это у меня вызывает тяжкие воспоминания о работе с 1С, типа такого:
Код:
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	
	ОтраженоВОперУчете           = Истина;
	ОтражатьВБухгалтерскомУчете  = Истина;
	ОтражатьВНалоговомУчете      = Истина;
	
	Если НЕ ДокументОснование = Неопределено Тогда
		ЭлементыФормы.Проект.Значение = ДокументОснование.Проект;
	КонецЕсли;	
		
КонецПроцедуры // ПередОткрытием()
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 17.02.2013, 12:59   #3
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Пункт 1

viter.alex, я одно время тоже начал добавлять префиксы, которые означали тип данных. Но эти префиксы очень мешают дать нормальное имя переменной, т.к. читать очень неудобно. А знать, какой тип данных содержится в переменной, - мне не надо.

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


Пункт 2

Цитата:
viter.alex: И, конечно, никакой кириллицы
в VBA-справочниках написано (точно не помню, написано там или нет, кажется написано), что можно кириллицу использовать.


Пункт 3

Цитата:
viter.alex: типа такого:
что вы хотели этим сказать?

Последний раз редактировалось Скрипт; 17.02.2013 в 13:05.
Скрипт вне форума Ответить с цитированием
Старый 17.02.2013, 13:24   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от Скрипт Посмотреть сообщение
в VBA-справочниках написано (точно не помню, написано там или нет, кажется написано), что можно кириллицу использовать.
Я не сказал, что нельзя. Можно, но код читается ужасно (лично для меня) и я представляю какая мука постоянно переключаться между языками при наборе (опять же лично для меня).

Что я хотел сказать примером? Показать как в реальной жизни выглядит код, набранный кириллицей. Оксюморон
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 17.02.2013, 13:32   #5
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Цитата:
viter.alex: Оксюморон
что это?


Цитата:
viter.alex: код читается ужасно
я думаю, что привыкнуть надо. Естественно, если одни пишут на английском, а другие на русском, то тяжело будет вникать. А если все будут одинаково делать, то должно быть нормально, по идее.


Цитата:
viter.alex: и я представляю какая мука постоянно переключаться между языками при наборе
если язык у клавиатуры переключается Shift + Alt (когда, если неодновременно нажал, происходит активирование панели инструментов), то в любом случае язык переключать - тяжёлая задача. А если переключать язык клавиатуры с помощью сочетания клавиш Shift + Ctrl, то может быть уже проще.
А так согласен - в русском языке точка, запятая и другие знаки препинания находятся на одних клавишах, а в английском - на других. В данном случае, действительно, неудобно набирать текст кода на двух языках.

Последний раз редактировалось Скрипт; 17.02.2013 в 13:41.
Скрипт вне форума Ответить с цитированием
Старый 17.02.2013, 13:39   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Оксюморон? Это сочетание несочетаемого. Например, "Живой труп" Чехова или "ужасно смешно" или кириллица в наименовании переменных
Для переключения у меня каждому языку (а их 4) назначена отдельная клавиша, но всё равно это утомительно.
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 17.02.2013 в 13:42.
viter.alex вне форума Ответить с цитированием
Старый 17.02.2013, 13:46   #7
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Цитата:
Сообщение от viter.alex Посмотреть сообщение
Я, например, тоже использую префиксы: "o" — для объектов типа Range, Cell, Document и т.д.; "s" — для строк; "n" — для чисел; "b" — для булевых значений; "ar" — для массивов; "col" — для коллекций.
какие префиксы ты добавляешь для:
1. массивов объектов
2. коллекций, в кот. содержатся массивы
3. массивов строк
4. переменных/массивов типа Variant

Цитата:
Сообщение от viter.alex Посмотреть сообщение
И, конечно, никакой кириллицы
+

Цитата:
Сообщение от viter.alex Посмотреть сообщение
Так чтобы тебе было понятно с чем ты имеешь дело
про это говорить не буду, т.к. много букв

Цитата:
Сообщение от viter.alex Посмотреть сообщение
А вот если пишешь код в команде, тогда нужно придерживаться оговорённых стандартов.
если ты пишешь в команде, то обязан придерживаться соглашений о наименовании в рамках кодинга в команде
еще есть соглашения о наименовании в рамках проекта

Цитата:
Сообщение от viter.alex Посмотреть сообщение
Оксюморон


Скрипт, гляжу ты темой проникся Выложи любой свой код ~ на 200 строк.
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 17.02.2013, 14:19   #8
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Цитата:
nerv: Выложи любой свой код
у меня на компьютере нет кодов. Я не храню коды, которые делаю. Т.к. я не занимаюсь профессионально программированием.


Цитата:
nerv: Скрипт, гляжу ты темой проникся
нет, мне эта тема не интересна - эта тема мне ничего не даёт.
Я просто с другой темы сюда перешёл, чтобы ту тему не испортить (http://www.programmersforum.ru/showthread.php?t=227896)

Последний раз редактировалось Скрипт; 17.02.2013 в 14:22.
Скрипт вне форума Ответить с цитированием
Старый 17.02.2013, 17:47   #9
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Цитата:
Т.к. я не занимаюсь профессионально программированием.
я тоже

Цитата:
у меня на компьютере нет кодов. Я не храню коды, которые делаю. Т.к. я не занимаюсь профессионально программированием.
я не ем еду которую готовлю, т.к. я не профессиональный повар
я не вожу машину, т.к. я не шумахер
я не слушаю музыку, т.к. я не композитор
...

Цитата:
нет, мне эта тема не интересна
поэтому ты ее создал

Цитата:
Я просто с другой темы сюда перешёл, чтобы ту тему не испортить
больше не буду портить твои темы своими ответами. Наверное, не только я...
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 17.02.2013, 17:52   #10
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Цитата:
nerv: больше не буду портить твои темы своими ответами.
nerv, я ещё не разобрался с кодом, который вы предложили здесь: http://www.programmersforum.ru/showthread.php?t=227896,
но если он поможет мне решить мою задачу, то без вас бы я может быть и не додумался до такого. Просто там тема пошла вообще в другое русло, а я считаю ту тему уникальной во всём интернете.


Цитата:
nerv: я не ем еду которую готовлю
да, я не использую коды, которые пишу, т.к. не работаю в MS Office. Раньше работал в MS Office - с тех пор и пишу макросы для развития.

Последний раз редактировалось Скрипт; 17.02.2013 в 17:57.
Скрипт вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функции с переменным количеством параметров. Функция, как тип данных. Кудаив Помощь студентам 0 27.05.2012 14:21
как вернуть имена пользователей в домене? kate158 Win Api 4 10.05.2012 12:57
Как правильно сохранять имена файлов. Jl6owa Общие вопросы Delphi 4 19.03.2012 01:48
Как создать функцию с переменным кол-во параметров? VintProg Общие вопросы Delphi 12 11.08.2009 12:49
Как отловить имена таблиц? mik Microsoft Office Excel 1 18.11.2007 17:02