Форум: "Основная";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизКак правильно назвать методы ? Найти похожие ветки
← →
Игорь Шевченко © (2005-12-15 13:01) [0]Имеется объект с набором свойств и форма с набором контролов. Свойства объекта отображаются в контролах формы и заполняются содержимым контролов. Отображаются после вызова одного метода, заполняются после вызова другого.
Вопрос в том, как наиболее оптимально назвать эти методы, чтобы из названия однозначно было понятно, не глядя в реализацию, что эти методы делают. Методы планируется использовать в любой форме или иерархии форм, где требуется подобная функциональность, объекты и набор их свойств могут быть разными, формы и наборы контролов, сооотвественно, тоже.
Сейчас используются названия методов вида DisplayObject/FillObject,
но...неэстетично :) (с) известный анекдот
← →
umbra © (2005-12-15 13:08) [1]GetProps/SetProps ?
← →
Джо © (2005-12-15 13:12) [2]А это методы формы? или чего?
← →
Игорь Шевченко © (2005-12-15 13:13) [3]
> GetProps/SetProps ?
И какой метод чем занимается ? Я не случайно про форму упомянул, то есть, мне хотелось бы видеть, что один метод именно распихивает значения свойств по контролам (или отображает, если так можно сказать), а второй собирает данные из контролов в объект. Мне бы не хотелось заучивать названия, чтобы держать в голове, что метод, заполняющий контролы, называется так-то, а заполняющий объект из контролов, называется так-то.
← →
Игорь Шевченко © (2005-12-15 13:14) [4]Джо © (15.12.05 13:12) [2]
Формы. Объекты не знают, что их можно отображать.
← →
k2 © (2005-12-15 13:16) [5]ObjectPropertiesFromControls/FillControlsFromObject :)
← →
umbra © (2005-12-15 13:19) [6]Как обычно, Get - получает значения, Set - устанавливает.
← →
umbra © (2005-12-15 13:22) [7]CaptureTarget/PopulateTarget
← →
Набережных С. © (2005-12-15 13:27) [8]CreateControlsSnapshot / RestoreFromSnapshot ?
Для меня имена придумывать тоже мука:)
← →
Игорь Шевченко © (2005-12-15 13:27) [9]umbra © (15.12.05 13:19) [6]
> Как обычно, Get - получает значения, Set - устанавливает.
Тут такой момент - и у формы и у объекта есть значения. У формы значениями является контролы, у объекта - свойства. Я запутаюсь.
> CaptureTarget/PopulateTarget
А мишень тут причем ? :) Хотелось бы, чтобы названия методов были очевидны не только мне :)
k2 © (15.12.05 13:16) [5]
> ObjectPropertiesFromControls/FillControlsFromObject :)
Хотелось бы, чтобы имя метода начиналось с глагола, это верно, так как метод подразумевает действие, но не хотелось бы, чтобы имя повторяло код. Код должен разъяснять, как именно производится то действие, которое заложено в названии метода :)
← →
Игорь Шевченко © (2005-12-15 13:29) [10]Набережных С. © (15.12.05 13:27) [8]
Снимка нету :) Есть объект, есть форма. Есть действие, которое и надо обозвать.
> Для меня имена придумывать тоже мука:)
"Важной частью пропагандируемого мною стиля программирования является
разложение сложных процедур на небольшие методы. Если делать это неправильно, то придется изрядно помучиться, выясняя, что же делают эти маленькие методы. Избежать таких мучений помогает назначение методам хороших имен. Методам следует давать имена, раскрывающие их назначение. Хороший способ для этого - представить себе, каким должен быть комментарий к методу, и преобразовать этот комментарий в имя метода.
Жизнь такова, что удачное имя может не сразу придти в голову. В подобной
ситуации может возникнуть соблазн бросить это занятие - в конце концов,
не в имени счастье. Это вас соблазняет бес, не слушайте его. Если вы видите, что у метода плохое имя, обязательно измените его. Помните, что ваш код в первую очередь предназначен человеку, а только потом - компьютеру.
Человеку нужны хорошие имена. Вспомните, сколько времени вы потратили,
пытаясь что-то сделать, и насколько проще было бы, окажись у пары методов более удачные имена. Создание хороших имен - это мастерство, требующее практики; совершенствование этого мастерства - ключ к превращению в действительно искусного программиста."
(с) Мартин Фаулер
← →
Набережных С. © (2005-12-15 13:34) [11]
> Снимка нету
Хм, состояние свойств набора контролов на момент вызова метода вполне можно назвать "снимком" состояния формы, ИМХО.
С цитатой-то согласен, потому и терзаю себе. Но что в результате получается - сам видишь:)) Жаль, уже убегать надо, ну да вечером посмотрю, кто чего выдаст:))
← →
umbra © (2005-12-15 13:35) [12]
> А мишень тут причем ?
абстрактное название для объекта, тип и назаначение котрого неизвестны
← →
Игорь Шевченко © (2005-12-15 13:37) [13]Набережных С. © (15.12.05 13:34) [11]
umbra © (15.12.05 13:35) [12]
Дело в том, что у формы может быть еще много разных и полезных методов, поэтому хотелось бы для каждого найти самоочевидное имя, без создания в мозгу дополнительных ассоциаций вроде мишени или снимка.
← →
umbra © (2005-12-15 13:39) [14]2 Игорь Шевченко © (15.12.05 13:37) [13]
т.е. в названии не должно быть указания на объект, над которым оперируют эти методы?
← →
Zeqfreed © (2005-12-15 13:42) [15]Игорь Шевченко © (15.12.05 13:01)
AllocateControlsProps / AbsorbControlsProps ?
← →
Zeqfreed © (2005-12-15 13:44) [16]Zeqfreed © (15.12.05 13:42) [15]
Или лучше, наверно, StoreControlsProps во втором случае.
← →
umbra © (2005-12-15 13:45) [17]ExtractData/InjectData
← →
Игорь Шевченко © (2005-12-15 13:46) [18]Zeqfreed © (15.12.05 13:42) [15]
Allocate подразумевает, что я что-то выделяю :) А я ничего не выделяю, я просто заполняю. Для отображения. Отсюда первое слово в моей версии было Display
umbra © (15.12.05 13:39) [14]
Да если бы я знал, что должно быть в названии, я бы не спрашивал. Объект произвольный (разумеется, для каждого конкретного метода свой конкретный объект или абстрактный предок для иерархии объектов). Разумеется, параметром метода будет объект.
← →
umbra © (2005-12-15 13:52) [19]ExtractFromObj/InjectInObj
← →
Игорь Шевченко © (2005-12-15 13:57) [20]umbra © (15.12.05 13:52) [19]
Боюсь, что подобные названия действия вызывают некую противоестественную ассоциацию. Потому что Extract подразумевает выделение части чего-либо, но непонятно, нафига эта часть выделяется. Inject, опять же, подразумевает внедрение чего-то, непонятно чего, в объект.
Есть у меня форма с двумя десятками методов, среди них я обнаружил названные тобой. Я должен посмотреть в реализацию метода, чтобы увидеть, что именно он делает ? Судя по названию - должен. А не хотелось бы.
← →
Владислав © (2005-12-15 13:59) [21]Алгоритм не будущее ;)
"Что сделать""С чем сделать""Как сделать"
в данном случае
"Сохранить/Восстановить""Наборы свойств контролов формы""В объект(хранилище)/Из объекта(хранилища)"
Я бы назвал:
LoadFormControlsProperties/SaveFormControlsProperties
поскольку: "объекты и набор их свойств могут быть разными".
Вариации на тему "Что сделать"
Load/Save, Restore/Store...
На тему "С чем сделать"
FormControlsProperties, FormControls, ControlsProperties...
На тему "Как сделать"
FromStorage/ToStorage, FromObject/ToObject
Я бы назвал:
LoadFormControlsProperties/SaveFormControlsProperties
"Как сделать" я опустил поскольку: "объекты и набор их свойств могут быть разными".
← →
umbra © (2005-12-15 13:59) [22]ReadObjProps/WriteObjProps
← →
Владислав © (2005-12-15 14:00) [23]> Владислав © (15.12.05 13:59) [21]
Немного перемудрил с написанием сообщения :о)
← →
Игорь Шевченко © (2005-12-15 14:22) [24]
> "Сохранить/Восстановить""Наборы свойств контролов формы""В
> объект(хранилище)/Из объекта(хранилища)"
Нет. Мне не надо сохранять и восстанавливать. Мне надо отображать и заполнять.
← →
Zeqfreed © (2005-12-15 14:26) [25]Игорь Шевченко © (15.12.05 13:46) [18]
Ну, тогда варианты:
ScatterControlsProps
DistributeControlsProps
AssignControlsProps
ApplyControlsProps
? :)
← →
DesWind © (2005-12-15 14:34) [26]
> Игорь Шевченко © (15.12.05 14:22) [24]
Fill..., Show...
← →
Игорь Шевченко © (2005-12-15 14:40) [27]DesWind © (15.12.05 14:34) [26]
С этого и начал, только не Show, а Display
Не совсем эстетично, может, синонимы какие получше ?
Zeqfreed © (15.12.05 14:26) [25]
Не совсем понятно, для чего надо Scatter/Gather. К тому же ScatterControlProps я переведу, как "разбросать свойства контрола", что не совсем соответствует задаче метода.
← →
Lamer@fools.ua © (2005-12-15 14:43) [28]SetObjectPropertiesToControls, GetObjectPropertiesFromControls
?
← →
DesWind © (2005-12-15 14:47) [29]Нет синонимов, по крайней мере, у меня в словаре. Чем не эстетично? Вполне логично и однозначно.
← →
Игорь Шевченко © (2005-12-15 14:59) [30]Lamer@fools.ua © (15.12.05 14:43) [28]
> не хотелось бы, чтобы имя повторяло код.
Точнее говоря, чтобы в названии метода было видно, не только что он должен делать, но и зачем.
Опять же, видя кучу методов у формы мне бы хотелось, не глядя в реализацию, тем более, что она может быть абстрактной, понять, что делает метод и нафига он вообще написан у формы. Хотелось бы, чтобы другому программисту потребовался бы минимум разъяснений для того, чтобы понять, как выполнить реализацию этого метода.
DesWind © (15.12.05 14:47) [29]
> Вполне логично и однозначно.
А вместо многоточия что будет ?
← →
Zeqfreed © (2005-12-15 15:04) [31]Игорь Шевченко © (15.12.05 14:40) [27]
> К тому же ScatterControlProps я переведу, как
> "разбросать свойства контрола"
Ну, я бы так же перевел, точнее "разбросать св-ва контролов" :)
> что не совсем соответствует задаче метода.
Ну, насколько я понимаю, то есть некий объект, отвечающий за набор контролов. У него два метода: один назначает всем контролам, за которые отвечает объект, необходимые свойства; второй - запоминает их св-ва в себе? Если так, то я бы, скорее всего, остановился на варианте (Assign|Store)ControlsProps.
p.s.
Show (verb)
Definition:demonstrate
Synonyms:afford, air, arrive, attend, bare, blazon, brandish, deal in, demonstrate, display, disport, exhibit, expose, flash, flaunt, flourish, hot dog, lay bare, lay out, mount, offer, parade, present, produce, proffer, put on, reveal, sell, set out, show off, showcase, sport, spread, stage, streak, submit, supply, trot out, unfold, unfurl, unveil, vaunt, wave around
Definition:exhibit
Synonyms:appear, arrive, assert, be visible, blow in, clarify, come, demonstrate, determine, disclose, discover, display, divulge, elucidate, emerge, establish, evidence, evince, explain, get, get in, illustrate, indicate, instruct, lay out, loom, make known, make out, manifest, mark, materialize, note, ostend, point, present, proclaim, project, prove, reach, register, reveal, show face, show up, teach, testify to, turn up, unveil
:)
← →
DesWind © (2005-12-15 15:07) [32]
> Игорь Шевченко © (15.12.05 14:59) [30]
Я бы оставил Object или добавил по вкусу что-то вроде TragetObject и т.п.
← →
Игорь Шевченко © (2005-12-15 15:11) [33]DesWind © (15.12.05 15:07) [32]
ShowObject или DisplayObject пожалуй достаточно очевидно.
А вот FillObject не нравится. Эстетически. Не совсем очевидно из названия.
← →
Lamer@fools.ua © (2005-12-15 15:11) [34]>>Игорь Шевченко © (15.12.05 14:59) [30]
>Хотелось бы, чтобы имя метода начиналось с глагола, это верно, так как метод подразумевает действие, но не хотелось бы, чтобы имя повторяло код. Код должен разъяснять, как именно производится то действие, которое заложено в названии метода
К сожалению, мне неизвестно "как именно производится то действие, которое заложено в названии метода". Вам видней. :o)
← →
Джо © (2005-12-15 15:14) [35]У меня в одном проекте похожая функциональность. Только что заглянул, у меня так:
procedure FillControlValues;
procedure ReadControlValues;
← →
Владислав © (2005-12-15 15:15) [36]Игорь, не переусердствуйте ;)
А то придется другому программисту использовать несколько словарей и привлекать коллективный разум для выяснения назначения методов :)
P.S.: А KISS нынче совсем не в моде?..
← →
Игорь Шевченко © (2005-12-15 15:24) [37]Владислав © (15.12.05 15:15) [36]
> А то придется другому программисту использовать несколько
> словарей и привлекать коллективный разум для выяснения назначения
> методов :)
А вот например, возьмем VCL - часто приходится коллективный разум и несколько словарей использовать ? Или в Help лазить только для того, чтобы понять, нафига тот или иной метод нужен ?
> А KISS нынче совсем не в моде?..
Не, не в моде. Я тут в одном из постов цитату Фаулера привел, которой стараюсь следовать.
Lamer@fools.ua © (15.12.05 15:11) [34]
> К сожалению, мне неизвестно "как именно производится то
> действие, которое заложено в названии метода".
Прошу прощения, ошибся. Не "как именно", а "для чего именно"
← →
clickmaker © (2005-12-15 15:30) [38]FormDataExchange(var From: boolean, ...); // true - в объект, false - в контрол
← →
Zeqfreed © (2005-12-15 15:47) [39]clickmaker © (15.12.05 15:30) [38]
SuspiciousMethod(const Action : String);
{
"Fill on-form controls" properties using data stored in object"/"Store on-form controls" properties in the object for further usage"
}
? :))
← →
Anatoly Podgoretsky © (2005-12-15 15:47) [40]По стилю Борланд, методы должны начинатьс с глагола-действия и далее может фигурировать существительное-субжект.
Имя должно быть само документированым.
Для методов манипулирующими со свойства приняты следующее соглашение
Get/Set имя свойства.
Страницы: 1 2 вся ветка
Форум: "Основная";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.04 c