crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Правила именования идентификаторов в С++
trdm
  опции профиля:
сообщение 3.2.2010, 1:09
Сообщение #1


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


Цитата(igorenja @ 2.2.2010, 13:16) *
Спасибо большое тупанул по чёрному (плюсы тока изучаю).

а классы с приставкой "T" это привет из дельфы?
Что эта приставка означает?
ПС. Терпеть не могу когда так классы зовут...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igorenja
  опции профиля:
сообщение 3.2.2010, 5:26
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 22
Регистрация: 18.1.2010
Пользователь №: 1384

Спасибо сказали: 1 раз(а)




Репутация:   0  


Цитата(trdm @ 3.2.2010, 4:09) *
Цитата(igorenja @ 2.2.2010, 13:16) *
Спасибо большое тупанул по чёрному (плюсы тока изучаю).

а классы с приставкой "T" это привет из дельфы?

Привет это из C++Builder`a, но в дельфе по-моему тоже самое...

Цитата(trdm @ 3.2.2010, 4:09) *
Что эта приставка означает?


"Т" я так понимаю это сокращение от Type. Я использую для однозначного понимания что есть тип и что есть объект этого типа...

Цитата(trdm @ 3.2.2010, 4:09) *
ПС. Терпеть не могу когда так классы зовут...

пишу для себя, мне так понятнее
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.2.2010, 12:13
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(igorenja @ 3.2.2010, 8:26) *
"Т" я так понимаю это сокращение от Type. Я использую для однозначного понимания что есть тип и что есть объект этого типа...
В Qt принято довольно простое соглашение об именовании:
Имена классов (типов) всегда записываются с большой буквы
Имена переменных (объекты тоже переменные) и функций всегда с маленькой.
Все имена имеют форму "CamelCase", т.е. каждое слово начинается с большой буквы (для первой буквы смотри правила выше)

П.С. на практике оказалось очень удобным

П.П.С. Ещё можно почитать здесь, имеется перевод на русский язык
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 3.2.2010, 18:32
Сообщение #4


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Я вот классы всегда называю с большой буквы С. Потому что qt-ные начинаются с Q. Хотя может это последний пережиток, оставшийся у меня после MFC.
T - если struct.
E - если enum.
Да и вообще igorenja если только начинаете С++ изучать есть такая Венегрская нотация. Советую почитать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.2.2010, 20:30
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Rocky @ 3.2.2010, 21:32) *
есть такая Венегрская нотация. Советую почитать.
категорически не советую это читать. Венгерская нотация - то как не надо делать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 3.2.2010, 20:47
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(Litkevich Yuriy @ 3.2.2010, 20:30) *
Цитата(Rocky @ 3.2.2010, 21:32) *
есть такая Венегрская нотация. Советую почитать.
категорически не советую это читать. Венгерская нотация - то как не надо делать.


Сам Bjarne Stroustrup в FAQ'e по C++ не советует её использовать. В этом плане меня очень расстроил исходный код в последней книге Макса Шлее. Он повсеместно использует эту нотацию и в результате его код сложно читать. Кроме того венгерская нотация мне самому создавала трудности с переменными. Т.к. название типа как бы дублируется в имени переменной, то при смене типа переменной приходилось её тоже переименовывать и искать места во всех исходниках, где она могла бы употребляться. На тот момент небыло фичи QtCreator'a, чтобы переименовывать один раз и оно бы затрагивало все исходники.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 4.2.2010, 14:34
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Мне тоже не нравится венгерская нотация. Кстати к ее именованию во время пользования MFC, практически, так и не привык. А вот к Qt-шным правилам именования привык быстро. Правда, вот хотел спросить, нормальны ли следующие имена функций:
Цитата
takeLoader
indexDirectory
isDirListEmpty
addChartNameToList
?
Все время имеется чувство, что названия чересчур длинные или же не очень удачные... Для меня с названиями - беда просто. В 8-10 символов название функций удается поместить крайне редко.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 4.2.2010, 17:55
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(AD @ 4.2.2010, 17:34) *
В 8-10 символов название функций удается поместить крайне редко.
В данный момент я склоняюсь к тому, что не нужно жёстко определять длину имени. Хотя краткое удобнее. Я пишу код в программерском блокноте, автодополнения нет. Поэтому мне важно чтобы названия были легко вспоминаемые. И интуитивные.
Немного свыкнувшись со словами используемыми в Qt, можно ожидать определённое название. Например, по твоим названиям что я ожидаю:
takeLoader - берёт какой-то загрузчик, вынимая его из чего-то, т.е. его потом нужно будет удалять вручную или куда-то вставить, чтоды удалился сам
indexDirectory - непонятно, что это такое, какой индекс каталога
isDirListEmpty - "список каталогов пуст?", по моему избыточное название
addChartNameToList - "добавить имя диаграммы в список", по моему избыточное название

Если не знать название класса то сложно сказать точное значение. А по поводу двух последних похоже что в имени функции имеется дубль имени класса
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 4.2.2010, 19:13
Сообщение #9


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Я другого мнения =). Изменил тип - ctrl+shift+h и заменил все имена на нужные, делов на пол-секунды. Но спорить смысла нет, кому как удобнее. в qt разработчики вообще одной буквой обозначают переменные. Мне например неясно какого типа переменная "o" и т. п. Ладно, это все лирика =)


А... топик оказывается в трепе и есть =))))

Сообщение отредактировал Rocky - 4.2.2010, 19:15
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 4.2.2010, 19:45
Сообщение #10


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(Litkevich Yuriy @ 4.2.2010, 17:55) *
Например, по твоим названиям что я ожидаю:
takeLoader - берёт какой-то загрузчик, вынимая его из чего-то, т.е. его потом нужно будет удалять вручную или куда-то вставить, чтоды удалился сам
indexDirectory - непонятно, что это такое, какой индекс каталога
isDirListEmpty - "список каталогов пуст?", по моему избыточное название
addChartNameToList - "добавить имя диаграммы в список", по моему избыточное название

Если не знать название класса то сложно сказать точное значение. А по поводу двух последних похоже что в имени функции имеется дубль имени класса

Да я понимаю, что некоторые названия не сократить. :) Дело не в этом. Первые два - это просто показ того, что не все имена функций у меня кривые. :) Вторая функция именно то и делает, что написано. Определяет индекс каталога, который был выбран. А вот изменение последних двух имен я бы сделал. Но не знаю как лучше! Дело в том, что в классе, где есть функция isDirListEmpty, isEmpty уже есть и относится к другому списку (в классе их два).

Да.... Название класса - BaseLoader.

P.S. Юра, спасибо за критический разбор и отклик. Буду очень благодарен за дальнейшее обсуждение. Поправить кривые название - большая польза!

Сообщение отредактировал AD - 4.2.2010, 19:48
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Ответить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 11.12.2019, 9:05