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

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

> -- Цитата:
> ZorkoЯ раньше называл константы только большими буквами, потом откатился до ВотТакогоСтиляКонстант и вотТакогоПеременных, а большие буквы отвёл типам, но теперь склоняюсь к тому, что типы тоже надо называть ПримерноВотТак, чтобы более легко отличать их от стандартных. Смысл – чтобы сразу отличать константы от переменных в тексте программы. Ведь по контексту не перепутаешь идентификатор константы с процедурой или типом.SashaПо официальной рекомендации в ББ константы именуются с маленькой буквы. А я с большой стал у себя называть. Есть вот такой интересный пассаж про процедуры:A procedure always starts with a capital letter, this is true for procedure constants, types, variables, parameters, and record fields.ZorkoЕсли с большой, то по контексту понятно где константа, а где переменная. Но согласись, что невозможно перепутать константу с типом или процедурой. Даже для процедур с результатами придуман интересный Пассаж(). И совершенно правильно придуман, как раз вводит полезное различие.SashaТ.е. процедурные переменные должны бы называться с большой буквы, даже если они являются параметрами или полями записи (если я правильно понял).ZorkoА, процедурные переменные. Это понятно. А как насчёт процедурных констант, что это такое они имели ввиду?SashaНу, обычную процедуру, наверноеZorkoТогда это меняет дело в сторону смысла объявления констант с маленькой буквы. Но мне было бы приятнее с большой. Почему-то. Может даже без логической аргументации. Просто так кажется более удобным. Ведь не так часто используются процедурные переменные. Да и отличить их можно по параметрам (включая пустые () ). Правда, их не перепутаешь с константой. И по имени процедуры не видно – переменная ли это процедурного типа, или же идентификатор статической процедуры.SashaМне больше нравятся константы с большой буквы, это их выделяет и подчёркивает особую роль. Когда присваиваешь переменной константу, то сразу видно, что это инициализация, а не какой-то рабочий момент переливания из одной переменной в другую.ZorkoЯ, пожалуй, тоже останусь на наименовании констант с большой буквы. ведь в доках ББ – это просто рекомендация. А потом, основываясь на ней, программист сам вырабатывает свой стиль наименования.SashaА процедурные переменные я с маленькой буквы называю – их и так видно, что они процедуры, когда их вызываешь, – по скобкам. Переменная – значит с маленькой буквы, всё остальное с большой. Вот моё правило.ZorkoЧто ж, мне нравится твой стиль. Потому что так в тексте программы появляется дополнительная информация, является ли объект переменной. А процедура это или нет – видно из способа использования.

Вот здесь в посте Евгения Темиргалееваviewtopic.php?f=80&t=1710упоминается Programming Conventions:

> -- Цитата:
> 6. Точки с запятымиТочки с запятыми используются для разделения операторов, а не для их завершения. Это означает, что не должно быть излишних точек с запятыми.

Так вот, я раньше тоже использовал “;” для разделения. А вот такой разговор повлиял на моё понимание вопроса существенно.


> -- Цитата:
> SashaЧто скажешь про лишние ";"? Убираешь их или не обращаешь внимания?ZorkoСам лишние ";" стараюсь не ставить, но где встречаю – не смертельно. Мне старинная советская книга попалась в детстве, про Паскаль на PDP-11. Из неё я понял, что “BEGIN Op1; Op2 END” – это составное выражение. Поэтому не ставить ";" перед END стало привычкой.SashaЯ чужое не переписываю (как в случае с LOOP'ами), свой код пишу со следующим правилом:ставлю ";" после всех операторов, кроме RETURN и EXIT. Просто чтобы после RETURN код не "забыть".ZorkoА при объявлении записей перед END ?SashaТоже ставлю. Это делаю для того, чтобы можно было любые 2 строки поменять местами без лишней мелкой правки. Copy-paste тогда работает беЗшовноZorkyЯ не против перейти на твой стиль кодинга. А могу остаться на своём, если тебя он не смущает.SashaЕщё одна причина есть для ";" везде: контроль версий. По поводу ";"  и контроля версий: когда начнёшь сравнивать соседние версии файлов, то увидишь, что строки с изменениями подсвечиваются, выделяются цветом. Когда делаешь это помногу, то удобнее, чтобы подсвечивалось только то, что действительно важно, что имеет отношение к сути внесённого изменения. В этот момент начинают мешать соседние строки, на которые ты только лишь добавил ";", чтобы написать новый код ниже. Понимаешь?ZorkoАга. Оградить мозг от лишней несущественной информации. Это святая правда, кто юзал SVN или GIT – поймёт.SashaТак что не только copy-paste, хотя и он тоже. В Notepad++ постоянно пользуюсь комбинацией Ctrl+Shift+Up/Down - для перемещения текущей строки выше или ниже по текстуЯ только после RETURN не ставлю ";", чтобы компилятор ругался, если чтоа все оставльные строки заканчиваются ";" – это связано со инструментами1) система контроля версий показывает более чистую разницу, если при удалении последней строки не правилась предпоследняя (удаление ";")2) клавиши Ctrl+Shift+Up/Down в Notepad++ позволяют перемещать строку выше/ниже в тексте; после этой автоматизации вручную удалять или добавлять ";" - явно лишний шаг, пусть уж лучше будут вездеZorkoСовершенно справедливо. Правда, я пытался показать одному человеку достоинства такой системы, но, по-моему, не убедил его. Это кстати был DarkLord/Madzi (Дмитрий Елисеев)SashaА вообще, идея ставить ";" только если далее есть ещё операторы – это несколько странное эстетство. Да и вообще, все эти ";" можно ставить в начале строки. Будет похоже на ассемблерные комментарииZorkoКонечно, их можно ставить скопом по несколько штук, компилятор не ругается. Кроме случаев типа “WHILE a DO ;” в Паскале. но в Обероне такого нет.

Вот так я перешёл на ";" перед и после END, ну вобщем, перенял стиль, рекомендованный Александром. Оценил удобство. При работе с системами контроля версий это действительно очень экономит время и внимание.