Раньше пользовался qt-подобным стилем именования, то есть имя типа всегда с большой буквы, имена методов — слова слитно первое слово с маленькой буквы.
Здравствуйте, navrocky, Вы писали:
N>В общем, я теперь мучаюсь с именованием параметров и методов. И не видно где тип, а где переменная или имя метода.
Это фича стиля. Различаются только шаблонные параметры/макро/всё-остальное.
N>Что делать? Кто что посоветует?
Типы, которые будут часто совпадать с другими идентификаторами используют с суффиксом _t, например size_t.
Кстати, в Delphi идентификаторы регистронезависимы, и таки проблем со стилем нет. Просто все типы с префиксом T, дата-мемберы с префиксом F, интерфейсы с префиксом I.
Здравствуйте, Alexander G, Вы писали:
N>>Что делать? Кто что посоветует?
AG>Типы, которые будут часто совпадать с другими идентификаторами используют с суффиксом _t, например size_t.
А насколько это будет красиво, если я все классы назову с суффиксом _t ? Или надо выдумывать какой-то критерий частоты совпадения... Тоже как-то решение не айс.
AG>Кстати, в Delphi идентификаторы регистронезависимы, и таки проблем со стилем нет. Просто все типы с префиксом T, дата-мемберы с префиксом F, интерфейсы с префиксом I.
Здравствуйте, navrocky, Вы писали:
N>А насколько это будет красиво, если я все классы назову с суффиксом _t ? Или надо выдумывать какой-то критерий частоты совпадения... Тоже как-то решение не айс.
В STL каждый раз по-своему
Класс
функция
binder1st
bind1st
back_insert_iterator
back_inserter
mem_fun_t
mem_fun
pair
make_pair
Не айс, согласен.
Нормальное решение: все классы — существительные, все фунции — глаголы (или содержат глаголы). Отсюда следует, что у геттеров таки нужен get. empty из STL, которое прилагательное — бесит, надо было is_empty.
Здравствуйте, Alexander G, Вы писали:
AG>Нормальное решение: все классы — существительные, все фунции — глаголы (или содержат глаголы). Отсюда следует, что у геттеров таки нужен get. empty из STL, которое прилагательное — бесит, надо было is_empty.
Угу, я тоже к этому пришел — единственный не кривой способ. Только, конечно, ломает писать везде get_ и исходники это захламляет...
НЕ парь себе мозг: назови GetLevel(...) или просто Get, если класс небольшой и больше Get-ов не предвидится. Или можно несколько Get(параметры) с разными параметрами(если они есть)...в этом и есть полезность "перегрузки"(по-моему так это называется функций.
Здравствуйте, HolyNick, Вы писали:
HN>НЕ парь себе мозг: назови GetLevel(...) или просто Get, если класс небольшой и больше Get-ов не предвидится. Или можно несколько Get(параметры) с разными параметрами(если они есть)...в этом и есть полезность "перегрузки"(по-моему так это называется функций.
То что в первом посте — это не вся моя задача %) у меня будет намного больше классов и они будут посложнее. Поэтому сейчас хочется прибиться к какому-нибудь правильному стилю, чтобы потом не заниматься рефакторингом.
От qt-стиля отталкивает то, что это не стандарт, и свистопляска с регистром. А в остальном — очень удобно.
Саттер с Александреску в своих 101 советах рекомендуют:
Don't overlegislate naming, but do use a consistent naming convention: There are only two must-dos: a) never use "underhanded names," ones that begin with an underscore or that contain a double underscore; and b) always use ONLY_UPPERCASE_NAMES for macros and never think about writing a macro that is a common word or abbreviation (including common template parameters, such as T and U; writing #define T anything is extremely disruptive). Otherwise, do use consistent and meaningful names and follow a file's or module's convention. (If you can't decide on your own naming convention, try this one: Name classes, functions, and enums LikeThis; name variables likeThis; name private member variables likeThis_; and name macros LIKE_THIS.)
Я только члены класса именую m_likeThis, а в остальном следую написанному.
Ну, в общем-то мой пост универсален, для любого количества классов. Используй большие и малые буквы в названиях функций — GetLevel.
По-моему мнению маленькие буквы и подчеркивания — неудачный вариант и приедается быстро для глаз...все(имена функций, переменных) становится монотонно-одноообразным и неудобным для восприятия.