Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Подскажите по проектировке таблиц БД.   Найти похожие ветки 

 
Ega23 ©   (2012-10-01 17:40) [120]


> property Foo: TFoo read SetFooEx write Create;
> ваще крышу сорвет :)


Ну да.

TSomeClass = class
private
 procedure Create(Value: TFoo); overload;
public
 constructor SetFoo;
 class procedure Create; overload;
 property Foo: TFoo read GetFoo write Create;
end;

Что-то типа этого... :)))


 
vuk ©   (2012-10-01 18:19) [121]

to AV ©   (01.10.12 17:30) [119]:

> а еще можно в стиле "define True = False" написать property
> Foo: TFoo read SetFooEx write Create;ваще крышу сорвет :
> )

Тока последовательность перепутана. Сначала - крышу, и только потом уже - написать.


 
asail ©   (2012-10-01 21:40) [122]


> Ega23 ©   (01.10.12 16:25) [117]

> Delphi 2010, никаких варнингов:

Это потому, что ты смухлевал... Убери вызов неиспользуемых геттера и сеттера из конструктора и будет тебе счастие! :)
Кстати, так это напоминает индусскую попытку от этих самых варнингов избавиться. Я такое уже видел, только там компактней записали - в одну строчку: SetSomething(GetSomething). :)

> AV ©   (01.10.12 17:30) [119]
> вот, даже в "тестовом" примере asail попался на невнимательность
> :)

В чем конкретно "попался"?


 
Ega23 ©   (2012-10-01 22:38) [123]


> Это потому, что ты смухлевал... Убери вызов неиспользуемых
> геттера и сеттера из конструктора и будет тебе счастие!
> :)

Я не "смухлевал", а показал пример кода, в котором геттер и сеттер были обозваны не так, как привычно.
Естественно кода в этом классе было больше и естественно данные методы использовались.


 
Ega23 ©   (2012-10-01 23:12) [124]


> Убери вызов неиспользуемых геттера и сеттера из конструктора
> и будет тебе счастие! :)

Ну и если уж на то пошло, то, во-первых, они вовсе не геттер и сеттер, а во-вторых - их достаточно в public перенести.


 
asail ©   (2012-10-01 23:20) [125]


> Ega23 ©   (01.10.12 22:38) [123]

> показал пример кода, в котором геттер и сеттер были обозваны
> не так, как привычно

Это понятно.

> естественно данные методы использовались

А вот это уже нет. Из примера не видно. Отсюда и моя ремарка про варнинги. И всего делов.

> Ega23 ©   (01.10.12 23:12) [124]

> Ну и если уж на то пошло

В-третьих, они могли оказаться геттером и сеттором для какого-то другого свойтства. А можно еще и в-четвертых и в-пятых придумать... Только зачем? :)


 
Ega23 ©   (2012-10-02 00:48) [126]


> А вот это уже нет. Из примера не видно.

Кому надо - тот увидел.


 
AV ©   (2012-10-02 08:45) [127]


> Отсюда и моя ремарка про варнинги.

> В чем конкретно "попался"?

Да нет там варгнингов, и быть не может
Методы названы в пределах правил
А попался в том, что подумал про варнинги, тк. невнимательно пробежал по названиям, типа, сокрытие произойдет, наверное, подумал.


 
AV ©   (2012-10-02 08:56) [128]

Кстати по сабжу.. А не так все просто оказалось :) Автор хитер :)
я сделал эмуляцию, в реляциях, получилось довольно плохо.


 
Компромисс ©   (2012-10-02 09:43) [129]


> Тупо традиция, не более того.


Нет, это не традиция,  а следствие того, что английский не только язык международного общения, но и язык большинства языков программирования (извините за тавтологию) и даже родной язык наиболее продвинутых программистов (во всяком случае, в прошлом).
В последнем случае действительно можно написать: тупо родной язык Вирта, Страуструпа, Ричи и т.д.


 
Компромисс ©   (2012-10-02 09:47) [130]

Да уж, вот я написал про родной язык, а потом решил-таки проверить...
Вирт - швейцарец, Страуструп - датчанин...


 
Ega23 ©   (2012-10-02 10:06) [131]

Да и Ритчи наверняка не ариец...


 
asail ©   (2012-10-02 14:33) [132]


> AV ©   (02.10.12 08:45) [127]

> Да нет там варгнингов, и быть не может

Может. См. ниже...

> Методы названы в пределах правил

Хто бы спорил... Тут вопросов нет.

> А попался в том, что подумал про варнинги, тк. невнимательно
> пробежал по названиям, типа, сокрытие произойдет, наверное,
>  подумал.

А вот тут ошибаешься. Сокрытие тут не причем. Я про другой варнинг говорил - о неиспользуемом privet методе. Вот, Олег понял, потому и добавил вызов этих самых методов в конструкторе в своем следующем посте...


 
Ega23 ©   (2012-10-02 14:52) [133]


>  Вот, Олег понял, потому и добавил вызов этих самых методов
> в конструкторе в своем следующем посте...

Олег понял, что кое-кому заняться нечем, кроме придирок к возможным варнингам вообще не компилируемого кода.
Как-то так.


 
asail ©   (2012-10-02 14:56) [134]


> Ega23 ©   (02.10.12 14:52) [133]

> Олег понял, что кое-кому заняться нечем, кроме придирок

Да где ж ты там придирки-то увидел?


 
Ega23 ©   (2012-10-02 14:58) [135]


> Да где ж ты там придирки-то увидел?

А где ты там увидел варнинги?


 
asail ©   (2012-10-02 16:06) [136]


> Ega23 ©   (02.10.12 14:58) [135]

Я в приведенном тобой примере увидел следующее:
1. Для свойства Foo были назначенны сеттер и геттер SetFooEx и GetFooEx.
2. Учитывая, что более привычные SetFoo и GetFoo остались в коде, я предположил, что они просто были заменены теми, что Ex.
3. Соответственно, можно было предположить, что старые методы перестали использоваться.
4. И, соответственно, должен был быть варнинг о двух не использующихся приват-методах.

Понятно, что все могло быть и не совсем так, но мне приведенный выше сценарий показался наиболее логичным.
Особенно, учитывая, что я такое в реале видел в исполнении индусов. И заглушили они там эти варнинги именно тем самым способом, что и у тебя в [117] - бесполезным вызовом в конструкторе... :)


 
Ega23 ©   (2012-10-02 16:26) [137]


> Понятно, что все могло быть и не совсем так, но мне приведенный
> выше сценарий показался наиболее логичным.


Если бы ты прочитал то, что написано после этого кода, то не строил бы предположений.
Эмуляция в конструкторе - мне просто лень было писать код.


 
asail ©   (2012-10-02 16:32) [138]


> Ega23 ©   (02.10.12 16:26) [137]

> Если бы ты прочитал то, что написано после этого кода, то
> не строил бы предположений.

А я прочитал. И фраза о том, что отладчик не заходит в SetFoo и GetFoo только укрепила мое предположение, что они не используются...

> Эмуляция в конструкторе - мне просто лень было писать код

Да я понял. Ты этим хотел сказать, что варнинга может и не быть. Согласен. При определенных условиях - может не быть.


 
Ega23 ©   (2012-10-02 16:41) [139]


> И фраза о том, что отладчик не заходит в SetFoo и GetFoo
> только укрепила мое предположение, что они не используются.


Они - используются. Если тебе так стрёмнор - перенеси их в паблик и успокойся уже.


 
asail ©   (2012-10-02 17:35) [140]


> Ega23 ©   (02.10.12 16:41) [139]

> Они - используются.

В таком случае, вопрос закрыт. Варнингов не будет.

> перенеси их в паблик

Зачем дурное советуешь, а? :)


 
Ega23 ©   (2012-10-02 17:40) [141]


> Зачем дурное советуешь, а?


Обоснуй.


 
asail ©   (2012-10-02 19:06) [142]


> Обоснуй.

А нафига они в паблике? Давай я немного перефразирую этот вопрос - а нафига эти два метода были вообще внесены в твой тестовый пример? С какой целью? Я так понимаю, чтоб запутать где чей геттер/сеттер... А если бы они были бы в паблике, то пример стал бы гораздо более прозрачным, и тебе бы не пришлось "Интуитивно искать геттер и сеттер с именем GetFoo и SetFoo". Сразу бы наткнулся на Ех... Бо, геттеры и сеттеры обычно в паблик не пихают... Ну, разве только в случае класса, реализующего интерфейс.


 
Ega23 ©   (2012-10-02 19:31) [143]

Начнём с конца.


> Ну, разве только в случае класса, реализующего интерфейс.

Какая разница, куда это дело пихать? Хоть в приват, хочть в паблик, ты не с классом а с интерфейсом работаешь.


> Бо, геттеры и сеттеры обычно в паблик не пихают

Ключевое слово - обычно. У меня же рассматривался не обычный пример. Мне никто не мешает обозвать геттер именем SaveToStream, а процедуру сериализации - GetItem.
Вообще никто (ну если я не в команде работаю). Как хочу, так и обзываю.
Где это дело будет стоять - опять же мои половые проблемы. Возможно я понятия не имею про инкапсуляцию, я вообще сторонник максимально открытого кода и у меня все поля и методы - в published сидят :) .
Но вот тому, кто потом такой код разбирать будет, я не позавидую.


>  Давай я немного перефразирую этот вопрос - а нафига эти
> два метода были вообще внесены в твой тестовый пример?

Ты издеваешься? Я просто устал уже объяснять. Это не тестовый пример. Это вообще набросок маленькой части кода, с которой я столкнулся. Где метод с привычным именем для свойства Items GetItem выполнял не помню уже что. А реальный геттер свойства Items был GetChild (вроде).


> Я так понимаю, чтоб запутать где чей геттер/сеттер...

Не так понимаешь. Впрочем я уже выше всё написал. Кому надо - тот понял.


 
asail ©   (2012-10-02 20:11) [144]


> Ega23 ©   (02.10.12 19:31) [143]

Я уже писал - согласен, что варнинга может и не быть. В том виде, в котором ты его привел, он должен был быть. Телепатор пошел по наиболее простому и очевидному пути (см [136] и [138])... Потом ты говоришь, что там все не так просто было, как в приведенном куске кода. Ну да, тогда все что угодно может быть - и варнинги, и ошибки компиляции, и ни того и ни другого.
Чего взъелся-то? :)


 
MonoLife ©   (2012-10-03 03:54) [145]


> AV ©   (02.10.12 08:56) [128]

расскажешь?


 
BiN ©   (2012-10-03 16:50) [146]

По сабжу:
Задача проектирования хранилища для произвольной таксономии не очень хорошо согласуется с реляционной моделью. Может быть стоит смотреть в сторону графоописывающих СУБД типа HyperGraphDB?

Правда, нам в свое время пришлось отказаться от гиперграфа.


 
MonoLife ©   (2012-10-03 17:07) [147]


> не очень хорошо согласуется с реляционной моделью

Видимо, да..



Страницы: 1 2 3 4 вся ветка

Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.78 MB
Время: 0.071 c
15-1330664086
CleriC
2012-03-02 08:54
2013.03.22
HotKey в среде Delphi (не могу назначить)


15-1338322058
Bluejohn
2012-05-30 00:07
2013.03.22
Чем порезать видео?


15-1349261272
Jeer
2012-10-03 14:47
2013.03.22
Визуализация данных


2-1337924665
leklerk
2012-05-25 09:44
2013.03.22
Отослать сообщения пользователям


2-1328461488
Xmen
2012-02-05 21:04
2013.03.22
архивация открытого документа





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский