Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Абасс... обсудите рахитекурту

3762  1 2 3 4 5 6 7 8 все
AlexNek патриот18.05.24 14:57
AlexNek
NEW 18.05.24 14:57 
в ответ alex445 18.05.24 14:49
что я два раза вызываю один и тот же код для currentValue

не вижу особых проблем в этом


Мне больше не нравится, что проперти имеют логику.

#21 
alex445 патриот18.05.24 14:58
NEW 18.05.24 14:58 
в ответ alex445 18.05.24 14:54

Короче, оставлю у себя зелёный вариант - он требует меньше всего переписывания и по сути лишь рефакторинг без изменения логики по отношению к варианту в первом посте.

#22 
alex445 патриот18.05.24 14:59
NEW 18.05.24 14:59 
в ответ AlexNek 18.05.24 14:57
что я два раза вызываю один и тот же код для currentValue

не вижу особых проблем в этом

Мне больше не нравится, что проперти имеют логику.

По классике в пропертях вполне делается валидация. Просто у меня зависимые проперти, поэтому некоторые из них валидируют не только себя, а и другие проперти. А проперти совсем без логики не имеют смысла.

#23 
AlexNek патриот18.05.24 15:02
AlexNek
NEW 18.05.24 15:02 
в ответ alex445 18.05.24 14:54
Просто вы привыкли, что валидация, это когда юзеру сообщаешь, а он исправляет.

не обязательно. Просто имя ожидается в этом случае другое. Типа: GetValidObject

К тому же "по параметрам" можно сделать вывод что функция должна быть статической.

#24 
AlexNek патриот18.05.24 15:08
AlexNek
NEW 18.05.24 15:08 
в ответ alex445 18.05.24 14:59
А проперти совсем без логики не имеют смысла.

ну да public поле будет гораздо лучше спок

Но данном случае "SetValue()" было бы более наглядным.

#25 
alex445 патриот18.05.24 15:34
NEW 18.05.24 15:34 
в ответ AlexNek 18.05.24 15:08, Последний раз изменено 18.05.24 15:35 (alex445)
А проперти совсем без логики не имеют смысла.
ну да public поле будет гораздо лучше спок

В Unity 3D всё на публичных полях делается, что касается работы с их редактором:


public string myName = "none";


улыб

Это для облегчения сериализации, как они объясняют.

#26 
Срыв покровов патриот18.05.24 16:00
NEW 18.05.24 16:00 
в ответ alex445 18.05.24 14:35
Ну да - в этом и смысла сокрытия.

так в каком из них тогда хранится текущее значение?

#27 
alex445 патриот18.05.24 16:07
NEW 18.05.24 16:07 
в ответ Срыв покровов 18.05.24 16:00

В варианте с new я отказываюсь от механики родительского свойства и пишу свою миханику - т.е. хранится в поддерживающем поле потомка. Тут мне нужно лишь свойство с тем же именем. В варианте с override - в поддерживающем поле родителя, но тогда мне не нужно отдельное поле в потомке.

#28 
AlexNek патриот18.05.24 18:13
AlexNek
NEW 18.05.24 18:13 
в ответ alex445 18.05.24 15:34
В Unity 3D всё на публичных полях делается

Если кому нравится играться в навозе пусть играется. бебе

#29 
Срыв покровов патриот18.05.24 18:24
NEW 18.05.24 18:24 
в ответ alex445 18.05.24 16:07

зачем тебе в варианте с new вообще родительское свойство?

#30 
alex445 патриот18.05.24 19:40
NEW 18.05.24 19:40 
в ответ Срыв покровов 18.05.24 18:24

Пушо клиентский код вызывает свойство с этим именем у объектов родительского и потомкового класса одинаково. Но вариант с new мне не нравится - я буду использовать с override.

#31 
alex445 патриот18.05.24 19:43
NEW 18.05.24 19:43 
в ответ AlexNek 18.05.24 18:13
В Unity 3D всё на публичных полях делается

Если кому нравится играться в навозе пусть играется.

Я говорю, у них на это есть своя причина - сериализация. И это только для классов, скажем так, view. Можно писать и привычным способом - с публичными пропертями и приватными полями. Но требуется немного костылей.

#32 
AlexNek патриот18.05.24 19:51
AlexNek
18.05.24 19:51 
в ответ alex445 18.05.24 19:43

А причём вообще тут Unity 3D? Как хотят пусть так и делают.

#33 
alex445 патриот18.05.24 19:52
NEW 18.05.24 19:52 
в ответ AlexNek 18.05.24 14:05, Последний раз изменено 18.05.24 19:54 (alex445)
вообще то называть это архитектурой у меня язык не поворачивается. Слишком мелко.
Типа в озере на доске катался, а после говорить как на море тренировался.

Нифига, я уже морской волк! ))


CurrentValue = CurrentValue; // чтобы принудительно вызвать валидацию CurrentValue
Сразу не проходит review смущ нужна валидация, значит делаем, а не вызываем side эффект с комментарием.


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

А то разное бывает. "На ноль делить нельзя" - иногда можно. "Поля не должны быть публичными" - если надо, то можно. "Земля вращается вокруг Солнца" - а мой личный опыт подсказывает, что это Солнце вращается вокруг Земли.

#34 
alex445 патриот18.05.24 19:53
NEW 18.05.24 19:53 
в ответ AlexNek 18.05.24 19:51
А причём вообще тут Unity 3D? Как хотят пусть так и делают.

Ну, я в принципе более-менее подходящий ответ на свой вопрос нашёл. Теперь можно и побарагозить. ))

#35 
AlexNek патриот18.05.24 19:58
AlexNek
NEW 18.05.24 19:58 
в ответ alex445 18.05.24 19:52
понимают хоть, что происходит и зачем это нужно

Может все по разному понимают смущ

Хотя даже и понимать не нужно:

1. строка без коммента выглядит бессмысленной

2. коммент говорит о том, что мы используем side эффект


Вполне достаточно для зловония

#36 
AlexNek патриот18.05.24 20:04
AlexNek
NEW 18.05.24 20:04 
в ответ alex445 18.05.24 19:52
а мой личный опыт подсказывает,

Если личный опыт сильно расходится с устоявшимися нормами, то требуется дополнительное исследование.

При этом, в настоящее время, вероятность того, что личный опыт правильнее устоявшихся норм довольна мала.

#37 
alex445 патриот18.05.24 20:33
NEW 18.05.24 20:33 
в ответ AlexNek 18.05.24 19:58
Вполне достаточно для зловония

Но-но, это тонкая оптимизация!

#38 
AlexNek патриот18.05.24 20:53
AlexNek
NEW 18.05.24 20:53 
в ответ alex445 18.05.24 20:33

угу, духи: perdon la couture

#39 
anly патриот19.05.24 19:15
anly
NEW 19.05.24 19:15 
в ответ alex445 18.05.24 07:37

начал читать и вспомнил Библию:


Посрамились мудрецы, смутились и запутались в сеть: вот, они отвергли слово Господне; в чем же мудрость их?
Иеремия 8:9 — Иер 8:9

улыб

Как то слишком много умного в простейшей задаче.



Проклят нарушающий межи ближнего своего (Втор.27:17)
#40 
1 2 3 4 5 6 7 8 все