
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.22.223.160] |
![]() |
|
![]() |
|
|
Как меня раздражает эта чувствительность к регистру, и все из-за того что Кериган или/и Ричи хотели побольше переменных в одном наборе символов
![]() Хотелось бы услышать ваше мнение по этому поводу, может кто-то даст вразумительные аргументы в защиту сабжа, относительно последнего пункта имеется ввиду, что вы сами следите за "чистотой" кода, и даже в дельфях не позволяете себе написать имя функции с маленькой буквы и т.д. СУВ. |
Сообщ.
#2
,
|
|
|
Меня например наоборот раздражало в языках типа TP, VB то, что "как хачу, так пишу". В одной книге все "BEGIN", "END", в другой "Begin", "End", в третьей "begin", "end".
Чувствительность к регистру дает больше возможностей для названия переменной. Например есть класс Ant, хочу создать переменную этого типа, будет логично и понятно, если назову ее "ant", что невозможно при отсутствии чувствительности - а тогда придется начинать вымышлять всякие "ant1" и пр. непонятно что. Ну и больше дисциплины. Чистота - залог здоровья. Порядок - прежде всего. Добавлено PS Например в Яве я бы вообще ввел обяз называть классы с большой буквы, переменные и методы - с маленькой. А то, понимаешь, привыкаешь к стандартам, а потом глянешь на чей-то код - и прямо в глазах рябит, больно смотреть. |
![]() |
Сообщ.
#3
,
|
|
Цитата Vex @ 24.12.04, 23:51 и даже в дельфях не позволяете себе написать имя функции с маленькой буквы Я, я даже в Делфях не позволяю! ![]() А не позволяю не потому, что следу за собой, а просто так получается. На подсознательном уровне. Это как писать по-русски без ошибок - никто же не задумывается о проверочных словах при письме другу... И в форумах, кстати, и в ICQ, пишу с большой буквы все, что положено. Да и код выглядит гораздо красивее, когда в ЯП есть чувствительность к регистру. Наряднее, так сказать. Опрятнее. |
Сообщ.
#4
,
|
|
|
ИМХО, чувствительность к регистру излишество, только проблемы создает. Называть одинаковым набором символов разные переменные я бы никогда не рискнул.
Довод, что код выглядит неаккуратно, отклоняется. Современные регистронезависимые редакторы автоматически исправляют введенное имя на объявленное. Объявляешь красиво, а потом вообще забываешь о верхнем регистре и кнопочке Shift, не боишься, что в какой-то момент она не сработает и метод вместо переменной Ant обратится к ant. Добавлено ИМХО, чувствительность к регистру излишество, только проблемы создает. Называть одинаковым набором символов разные переменные я бы никогда не рискнул. Довод, что код выглядит неаккуратно, отклоняется. Современные регистронезависимые редакторы автоматически исправляют введенное имя на объявленное. Объявляешь красиво, а потом вообще забываешь о верхнем регистре и кнопочке Shift, не боишься, что в какой-то момент она не сработает и метод вместо переменной Ant обратится к ant. |
Сообщ.
#5
,
|
|
|
А Code Completion отменили?
![]() Добавлено У меня на подсознательном, кстати |
Сообщ.
#6
,
|
|
|
Про переменные класса (с моей дельфевой колокольни) - гораздо логичнее и красивее использовать схему приставок-семафоров типа TClass-Class чем с регистром извращатся Сlass-class (последнее кстати дает возможность использовать только одну переменную, для второй все равно придется ставить цифры). Так что убрав "подсознательные" доводы тех кто просто привык регистр нафик не нужен. А если я щас чай с сухариком пью и фигачу все одним пальцем левой руки, чего ж мне кружку ставить?!
![]() ![]() Вывод: зло |
![]() |
Сообщ.
#7
,
|
|
Когда я с явы перешел на VB, мне очень понравилась именно регистронезависимость.
ИМХО скорость написания кода очень сильно снижается если обращать внимание на регистр. |
Сообщ.
#8
,
|
|
|
На подсознательном. Приучил себя. Раньше писал как попало, переменные с маленькой буквы, функции и процедуры называл как попало, отступы были дикие. Вот уже как год пишу нормально и мой код читается с легкостью. Я вот свои старые исходники когда вижу, повесится хочется.
Даже когда тороплюсь и написал ![]() ![]() var i: integer ![]() ![]() var I: Integer; Цитата TrivialCore @ 25.12.04, 01:06 А не легче ли назвать тип TAnt, а переменную этого типа просто Ant? Так намного логичнее, а с чувствительностью к регистру больше недопонимания кода, нежели без этой чувствительности. Тебе охота есть помнить что и с каким регистром писалось в начале проги, когда прога "растилается" уже на пять листов? Нет естественно. Надо себя приучать к порядку. Чувствительность к регистру дает больше возможностей для названия переменной. Например есть класс Ant, хочу создать переменную этого типа, будет логично и понятно, если назову ее "ant", |
Сообщ.
#9
,
|
|
|
Цитата Berill, 25.12.04, 10:36:02, 555058 А не легче ли назвать тип TAnt, а переменную этого типа просто Ant? Так намного логичнее, а с чувствительностью к регистру больше недопонимания кода, нежели без этой чувствительности. Тебе охота есть помнить что и с каким регистром писалось в начале проги, когда прога "растилается" уже на пять листов? Нет естественно. Надо себя приучать к порядку. Это не мой подход, если посмотреть все посты топика. Сам я предпичитаю систему префиксов и постфиксов. |
Сообщ.
#10
,
|
|
|
Где-то я видел спор насчёт того, "красиво" - ли пользоваться пропертями в Delphi. Оканчивался он одной очень умной фразой: "Считаешь, что некрасиво - не пользуй". Это можно и к регистру отнести...
ИМХО, однако ![]() P.S. Меня всегда бесили языки где val и Val - две разные переменные. На этапе изучения и привыкания это выробатывало... негативное отношение... ![]() |
Сообщ.
#11
,
|
|
|
Я за чувствительность к регистру прежде в всего в плане читабельности и аккуратности кода. А то посмотришь, как иные дельфисты пишут безобразия...
Ну, и во-вторых уже, бОльшие возможности. Например, при программировании математических задач приходится заводить переменные для минимума и максимума какой-либо функции. Как красиво и лаконично бы выглядел код: ![]() ![]() var m: Double; M: Double; |
Сообщ.
#12
,
|
|
|
min и max чем не устраивает?
И вообще, не понимаю отношения многих к паскалистам и дельфишникам, как к неряхам. ![]() Что за мода пошла любую тему переводить на личности и опускаться до оскорблений? ![]() |
Сообщ.
#13
,
|
|
|
Цитата TrivialCore @ 25.12.04, 00:06 Меня например наоборот раздражало в языках типа TP, VB то, что "как хачу, так пишу". В одной книге все "BEGIN", "END", в другой "Begin", "End", в третьей "begin", "end". Полностью согласен. |
Сообщ.
#14
,
|
|
|
Просто среди паскалистов особенно много нерях, на что не могла не повлиять нечувствительность к регистру =)
|
Сообщ.
#15
,
|
|
|
У меня - на подсознательном уровне.
Более того, обычно, когда набираю в Help'е или MSDN что-то для поиска - набираю с учетом регистра. Только иногда проскакивает мысль "А чего это я? Ему же регистр безразличен" ![]() Мне так кажется красивее. Не люблю сливающихся имен вроде thisismynewvariable. Либо пишу все слова в имени с заглавных букв(ThisIsMyNewVariable), либо разделяя подчеркиваниями(this_is_my_new_variable). Первое - чаще, потому как короче - больше помещается на экране. |
Сообщ.
#16
,
|
|
|
2 TrivialCore, rapido (и прочим фанатам сей):
Цитата Меня например наоборот раздражало в языках типа TP, VB то, что "как хачу, так пишу". В одной книге все "BEGIN", "END", в другой "Begin", "End", в третьей "begin", "end". А вас не раздражает то, что разные программисты используют разные стандарты для именования? Что одни вставляют лишние пробелы для читабельности, а другие - нет? Что одни пишут по одной операции в строке, а другие - по несколько? Что у одних отступ два знакоместа, а у других - четыре? Что одни выносят фигурную скобку на отдельную строку, а другие - нет? А вообще другие люди вас не раздражают - ведь они все такие разные? >:) |
Сообщ.
#17
,
|
|
|
Раздражают
![]() ![]() |
Сообщ.
#18
,
|
|
|
Мне нравится чувствительность к регистру. Не тем что позволяет создавать больше переменных, а тем что это приучает каким-то образом к порядочности что ли
![]() |
Сообщ.
#19
,
|
|
|
2 TrivialCore:
Цитата Раздражают :) Но с чувствительным регистром одним раздражителем меньше :) Это не аргумент. Если существует так много раздражающих тебя вещей, то избавление от всего одной из них ничего не меняет. И с другой стороны: если избавление от единственного "раздражителя" так много для тебя значит, то при столь огромном их количестве ты бы уже давно повесился >:) 2 DeVoid: Цитата Мне нравится чувствительность к регистру. Не тем что позволяет создавать больше переменных, а тем что это приучает каким-то образом к порядочности что ли :) . В таком случае ты должен люто ненавидеть си и подобные языки за то, что их синтаксис позволяет писать совершенно нечитабельный код >:) |
Сообщ.
#20
,
|
|
|
Цитата gnumus @ 25.12.04, 13:55 P.S. Меня всегда бесили языки где val и Val - две разные переменные. На этапе изучения и привыкания это выробатывало... негативное отношение... ![]() 1) С помощью заглавных букв в имени выделяются отдельные слова (MyNewVariable) которые несут какой-то смысл. Использование заглавных букв в другом месте может изменить смысл. Например: Brown и BrowN ... 2) Слово из трех букв можно записать 8 способами (val, Val, VAL и т.д.). Слово из 10 букв - уже 1024 способами. И все это должно обозначать одну и ту же переменную? Ничего себе свобода (вернее полная неразбериха)! |
Сообщ.
#21
,
|
|
|
2 eugene_:
Цитата Использование заглавных букв в другом месте может изменить смысл. И случайно нажатый (или не нажатый) шифт будет стоить многих бессонных ночей, проведенных в отладке... Цитата Слово из трех букв можно записать 8 способами (val, Val, VAL и т.д.)... Ничего себе свобода (вернее полная неразбериха)! Неразбериха? Почему? На мой взгляд, в сишной строке типа VAL = Val(val) неразберихи гораздо больше, чем в паскальной VaLreC := GETvAl(vALpTR) >:) А если программист лепит строчные и заглавные буквы как попало, значит, он хреновый программист, и язык тут совершенно ни при чем. |
Сообщ.
#22
,
|
|
|
Цитата AVA12, 26.12.2004, 1:59:28, 555891 А если программист лепит строчные и заглавные буквы как попало, значит, он хреновый программист, и язык тут совершенно ни при чем. ![]() ![]() ![]() ![]() ![]() |
Сообщ.
#23
,
|
|
|
У меня уже по привычке левый шифт нажимается и отпускается как морзянка при записи какогй-нибудь сложнословой процедуры типа InternetGetConnectedState
![]() Добавлено Просто большие буквы воспринимаются подсознательно плохо, потому как принято что это повышение тона или раздражение. Все маленькие - это можно, но ИМХО некрасиво. |
Сообщ.
#24
,
|
|
|
Цитата мыш @ 25.12.04, 09:14 Блин, как ты прав! =)А если я щас чай с сухариком пью и фигачу все одним пальцем левой руки, чего ж мне кружку ставить?! Дело в том, что если бы C++ и др. языки не были бы регистрочувствительными, многие писали бы как по-старинке в Basic-е и asm-е, т.е. кто-то пишет mov ax, cx, кто-то MOV AX, CX, а кто-то mov AX, CX. Это удобно тем, что работает в любом случае, а неудобно тем, что снова плодятся разные стили написания кода, поэтому, если я привык писать mov ax, cx, то мне не всегда приятно видеть MOV AX, CX. |
Сообщ.
#25
,
|
|
|
Эх, приснопамятного А. Голуба на вас нету
![]() ![]() - Имена классов и методов начинаются с большой буквы. В случае нескольких слов - каждое с большой буквы, без подчеркиваний. - Имена переменных классов - начинается с префикса m_ (это уже от себя) - Имена аргументов функций - первая буква первого слова маленькая, остальные слова начинаются с большой. Не содержат подчеркиваний. - Имена локальных переменных - все маленькими буквами, слова разделены подчеркиваниями. Все просто: ![]() ![]() class SomeClass { public: void SomeFunction(int someArg) { int some_local_var = m_SomeMember; } public: int m_SomeMember; }; И, вообще говоря, при некоторой сноровке всегда понимаешь - о чем идет речь, и что используется. У Голуба префиксов m_ не было, но именование методов должно было в обязательном порядке содержать глагол (если мне не изменяет память). |
Сообщ.
#26
,
|
|
|
Да, чувствительность к регистру - очень удобный штюк. Если, конечно, все придерживаются одинаковых правил.
|
Сообщ.
#27
,
|
|
|
Вы говорите не столько о чувствительности к регистру компилятора, сколько об аккуратности написания кода самим программистом и мнемонических правилах называния переменных, классов, процедур и проч. А это есть совсем не то!
|
Сообщ.
#28
,
|
|
|
Когда писал на Pascal'е - не раздражало (хотя каждое слово и название переменной писал с большой буквы).
Со временем начал переходить на Java - воспринял как должное (хотя по-началу кроме раздражения ничего не вызывало) |
Сообщ.
#29
,
|
|
|
Flex Ferrum:
Цитата И, вообще говоря, при некоторой сноровке всегда понимаешь - о чем идет речь, и что используется. Вот именно - при некоторой сноровке - то есть, благодаря выработанному рефлексу. Если же кто-то использует непривычный стиль именования, то этот самый рефлекс вступает в противоречие с действительностью, вызывая раздражение. Когда используется язык, нечувствительный к регистру, рефлекс не вырабатывается, и чужой стиль раздражения не вызывает (если этот стиль выдержан). Отсюда вывод: чувствительность языка к регистру символов - скорее вред, чем польза, ибо налагает излишние ограничения и мешает взаимопониманию. P. S. Уважаемые приверженцы паскаля, кого из вас раздражают тексты (на паскале), оформленные в (выдержанном) стиле, отличном от вашего? P. P. S. Уважаемые приверженцы си, кого из вас не раздражают тексты (на си), оформленные в (выдержанном) стиле, отличном от вашего? |
Сообщ.
#30
,
|
|
|
AVA12, меня раздражает любой чужой код. Раздражение тем сильнее, чем сложнее и объемнее задача. И приверженность к регистрочувствительности/нечувствительности здесь ни при чем. Код, выкладываемый на форуме или приводящийся в статье или учебнике отшлифован, снабжен комментариями и прочее. В жизни я практически не встречал рабочего (над которым работают) кода, оформленного по каким-либо правилам.
|
Сообщ.
#31
,
|
|
|
Цитата AVA12 @ 27.12.04, 19:11 Вот именно - при некоторой сноровке - то есть, благодаря выработанному рефлексу. Рефлекс тут не причем. В именовании есть некоторая система. И как только вникаешь в эту систему - все становиться просто. Как и в любом другом случае. Но по постам Delphi'стов могу судить, что и в их коде присутствует подобная система. И регистронезависимость в нее не входит. Т. е. в любом случае принимаются какие-то соглашения об именовании, и программист им следует. Т. е. регистронезависимый язык становится псевдорегистрозависимым. А в таком случае о чем спор? ![]() |
Сообщ.
#32
,
|
|
|
Цитата AVA12 @ 25.12.04, 19:52 А вас не раздражает то, что разные программисты используют разные стандарты для именования? Что одни вставляют лишние пробелы для читабельности, а другие - нет? Что одни пишут по одной операции в строке, а другие - по несколько? Что у одних отступ два знакоместа, а у других - четыре? Что одни выносят фигурную скобку на отдельную строку, а другие - нет? А вообще другие люди вас не раздражают - ведь они все такие разные? >:) Аргумент понятен. Но программирование (как и любая точная наука) в силу своей специфики является очень формализованной областью. Именно поэтому здесь уместны споры о чувствительности к регистру, равно как и о стандартах на кодирование в целом. И не путайте личное творчество с необходимостью обеспечить профессиональное программирование в коллективе программистов. Добавлено Цитата AVA12 @ 26.12.04, 01:59 На мой взгляд, в сишной строке типа VAL = Val(val) неразберихи гораздо больше, чем в паскальной VaLreC := GETvAl(vALpTR) Согласен. Просто любая полезная фишка (будь это чувствительность к регистру или нечувтсвительность) способны принести как пользу, так и вред. В зависимости от того, в чьих руках используется. Добавлено P.S. А результаты голосование показательны - убедительную победу одерживает чувствительность к регистру. Лично я вообще-то за VB.NET-овский подход, когда редактор сам исправляет регистр в соответствии с объявлением идентификатора. Добавлено Цитата Flex Ferrum @ 27.12.04, 23:31 Т. е. в любом случае принимаются какие-то соглашения об именовании, и программист им следует. Т. е. регистронезависимый язык становится псевдорегистрозависимым. А в таком случае о чем спор? И (с моей точки зрения) регистронезависимость добавляет некоторой расхлябанности. Т. е. здесь так напишу, там иначе, все равно компилятор поймет, что я имел в виду, и скушает... А это (на мой взгляд) не есть хорошо... Уес! Посмотрим на исходники VCL в Delphi - да там сплошь и рядом насаждена регистрозависимость, несмотря на то, что паскаль объявлен как регистронезависимый. |