Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
13.07.2017, 12:21
|
|||
|---|---|---|---|
Пятничные синонимы |
|||
|
#18+
Недавно я поднимал тему "правильного" наименования функций, согласно такой схеме: Объект##глагол Т.е. ValueGet вместо GetValue. Суть в том, что работая с классом в IDE, вы набираете после имени объекта точку, потом Value и получаете список методов, которые с Value работают (ValueGet, ValueSet, ValueReset, ValueDrop, и так далее) - удобно! С другой стороны, если вы используете объект "незнакомого" класса, и хотите узнать, что из него можно извлечь для работы, вы набираете: obj.Get и листаете список геттеров. И то и то полезно, получается. А компилятору всё равно, как называется функция. И, по идее, сколько у неё вообще имён, так ведь? В конце концов это адрес в объектом коде, про который потом должен знать линкер. А компилятор теоретически может запросто разные имена приравнивать к одному адресу. Поэтому было бы удобно задавать как-то синонимы функций, чтобы можно было искать в списке как по объекту, так и по действию. Но, подозреваю, в с++(в компиляторах) такой возможности сейчас нет? Есть дефайны, конечно, но это препроцессор, и IDE на них не реагирует адекватно. Можно, наверно, ещё оформлять, как перевызов c std::forward. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.07.2017, 13:38
|
|||
|---|---|---|---|
Пятничные синонимы |
|||
|
#18+
CEMb, Современные IDE обычно используют full-text search при автодополнении. Так что когда ты набрал "value" после точки, IDE тебе вывалит список из "GetValue", "SetValue", "ToValue" и так далее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.07.2017, 15:50
|
|||
|---|---|---|---|
Пятничные синонимы |
|||
|
#18+
CEMbНедавно я поднимал тему "правильного" наименования функций, согласно такой схеме: Объект##глагол Т.е. ValueGet вместо GetValue. Суть в том, что работая с классом в IDE, вы набираете после имени объекта точку, потом Value и получаете список методов, которые с Value работают (ValueGet, ValueSet, ValueReset, ValueDrop, и так далее) - удобно! Бред. Как работают IDE , ты всё равно не предскажешь. А в коде нужно именовать функции так, чтобы было ясно, что они делают, а не чтобы IDE угодить. Если GetValue -- это значит "Получить (выдать) значение" Если GetSettings -- "Получить настройки" Вторая часть названия функции тут -- OBJECT, дополнение, предмет, на который направлено действие. Если оно есть, то оно должно быть вторым. Если делать наоборот, то существительное первой части будет формировать назывное предложение для действия. Само действие тогда будет называть получаемый атрибут объекта. Как например obj.Id() -- выдать Id объекта obj.Code() -- выдать код объекта obj.Value() -- выдать значение (стоимость, ценность) объекта. Так тоже можно, и так называют геттеры в некоторых фреймворках (например, в QT) IdGet CodeGet ValueGet -- это можно будет интерпретировать как атрибутивное описание самого атрибута Id, Code, Get, т.е. Ид, код или Get, относящиеся к Get (Bid,Ask,Continue и так далее) или наоборот, Value будет атрибутом к Get (Тут может это и не имеет смысла, но часто глаголы в английском языке являются также омонимами с однокоренными существительными, как например Set, Put, Go и т.д) Кроме этого, это можно интерпретировать, как сокращение с опущенным предлогом. (IdOfGet, IdForGet и т.д.) В общем, я и дальше могу искать варианты толкований, но уже ясно, что смысловая однозначность тут же теряется. В английском вообще предложения строятся по схемам (в простейших случаях) S V S V O где S -- subject , подлежащее V -- verb , сказуемое O -- object , дополнение. Вот так и нужно именовать методы или функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.07.2017, 15:53
|
|||
|---|---|---|---|
Пятничные синонимы |
|||
|
#18+
CEMbПоэтому было бы удобно задавать как-то синонимы функций, чтобы можно было искать в списке как по объекту, так и по действию. Но, подозреваю, в с++(в компиляторах) такой возможности сейчас нет? Заводишь inline-функцию с такой же сигнатурой, но с другим именем -- и всё. Можно также завести указатель на функцию с такой же сигнатурой, и дать переменной типа этого указателя любое синонимичное имя, но нужно ещё не забыть проинициализировать эту переменную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.07.2017, 18:06
|
|||
|---|---|---|---|
Пятничные синонимы |
|||
|
#18+
CEMbНедавно я поднимал тему "правильного" наименования функций, согласно такой схеме: Объект##глагол Т.е. ValueGet вместо GetValue. Потом в твой исходник заглядывает кто-нибудь и идет тебя убивать. По правилам английского, объект должен следовать за глаголом, отсюда и родилась традиция GetValue. А сейчас это уже и всеобщая привычка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.07.2017, 05:19
|
|||
|---|---|---|---|
Пятничные синонимы |
|||
|
#18+
Cerebrum типа этого ? ага, та тема, спасибо! NekZСовременные IDE обычно используют full-text search при автодополнении. Так что когда ты набрал "value" после точки, IDE тебе вывалит список из "GetValue", "SetValue", "ToValue" и так далее.Да, но не всегда получается в них работать. А так да, очень разумно поиск работает, даже когда ошибаешься в наборе. MasterZivБред.Тоже спасибо. White OwlПотом в твой исходник заглядывает кто-нибудь и идет тебя убивать.Ну это пока на уровне идеи. Пока пишу или так или так. Ну и хотелось бы, чтобы в исходнике была одна функция. Синонимы чтобы не было видно, конечно, иначе это замусоревание кода. White OwlПо правилам английского, объект должен следовать за глаголомЭм, I feel like I forgot English, don't I? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.07.2017, 10:23
|
|||
|---|---|---|---|
Пятничные синонимы |
|||
|
#18+
Это спор на тему как лучше складывать числа. Префиксной операцией. Инфиксной. Или не дай бох как в мк60. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.07.2017, 10:55
|
|||
|---|---|---|---|
Пятничные синонимы |
|||
|
#18+
mayton, А как в МК60? Постфиксной ? Как Forth ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.07.2017, 11:23
|
|||
|---|---|---|---|
|
|||
Пятничные синонимы |
|||
|
#18+
MasterZivmayton, А как в МК60? Постфиксной ? Как Forth ? Да. Только не 60, а 61 (ну и 52). Ну и конечно не "не дай бог", а очень удобно. Ибо стек явный, и с глубиной не ошибёшься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.07.2017, 13:22
|
|||
|---|---|---|---|
Пятничные синонимы |
|||
|
#18+
Я до сих пор считаю научные калькуляторы серии мк (со стеком) самыми лучшими. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.07.2017, 15:12
|
|||
|---|---|---|---|
Пятничные синонимы |
|||
|
#18+
jmp_originalMasterZivmayton, А как в МК60? Постфиксной ? Как Forth ? Да. Только не 60, а 61 (ну и 52). Ну и конечно не "не дай бог", а очень удобно. Ибо стек явный, и с глубиной не ошибёшься. Согласен. Очень удобно и -- главное -- естественно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.07.2017, 15:59
|
|||
|---|---|---|---|
|
|||
Пятничные синонимы |
|||
|
#18+
MasterZivСогласен. Очень удобно и -- главное -- естественно! IMHO: более естественно, чем скобки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.07.2017, 09:13
|
|||
|---|---|---|---|
|
|||
Пятничные синонимы |
|||
|
#18+
CEMbОбъект##глагол Т.е. ValueGet вместо GetValue. просто val_t value() const ; get лишнее. так же как и set. для этого существует перегрузка функций void value(const val_t& nv) ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.07.2017, 05:12
|
|||
|---|---|---|---|
Пятничные синонимы |
|||
|
#18+
alexy_blackпросто val_t value() const ; get лишнее. так же как и set. для этого существует перегрузка функций void value(const val_t& nv) ; тоже вариант, но тогда всё как-то в куче. Хотя я где-то когда-то тоже так делал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.07.2017, 22:04
|
|||
|---|---|---|---|
|
|||
Пятничные синонимы |
|||
|
#18+
CEMbтогда всё как-то в куче почему в куче? не очень понял. я как-то слышал "не понятно какую функцию вызываешь, сетер или гетер". но визуально сразу видно передаешь что-нибудь в скобки или нет. то есть вариант auto old_cool_value = some.value(); визуально очень легко отличить от some.value( new_cool_value ); имхо - таких метод должно быть мало. то есть если в классе много таких методов, то лучше использовать структуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.07.2017, 05:02
|
|||
|---|---|---|---|
Пятничные синонимы |
|||
|
#18+
alexy_blackпочему в куче? не очень понял.Да не, нормальный вариант. Куча, это типа, когда в редакторе набираешь имя функции, потом скобку, и там список вариантов :) А так да, визуально они в написанном виде нормально выглядят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2018125]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
167ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 285ms |

| 0 / 0 |
