Size: a a a

2020 January 01

RN

Roman Nevolin in pro.net
Карен
изменение уровня доступа это очевидное изменение, компилятор покажет что не так.
а изменение поля на свойство никак не отразится, у разраба бомбанет, и это ок если он сразу сообразит что не так было при обновлении либы
Дык это все равно плохо с позиции дизайна! Breaking change существующего класса, ну блин
источник

К

Карен in pro.net
Oleg Morozov
просто обычно заходишь в код и там тысячелетиями лежат эти гетсет

их либо сразу при проектировании размечают модификаторами доступа, либо они вот так всю свою жизнь и лежат
можно взять какую-нибудь ORM типа NHibernate, там просто так сделать Entity классы без свойств не выйдет
источник

RN

Roman Nevolin in pro.net
Oleg Morozov
просто обычно заходишь в код и там тысячелетиями лежат эти гетсет

их либо сразу при проектировании размечают модификаторами доступа, либо они вот так всю свою жизнь и лежат
Да. И ты рискуешь совершенно не заметить, что у этого get/set внезапно появилась новая логика. И даже не подумаешь искать проблему там, потому что практически всегда это голый get/set без логики
источник

IC

Iλyα Che in pro.net
Oleg Morozov
это больше выглядит как что-то аналогичное преждевременной оптимизации
когда-то там что-то должно наступить и оно не наступает

потому что просто, если и наступает, то касается сразу переписывания крупного участка
Неверная аналогия. Локальная оптимизация не затрагивает пользователей интерфейса.
источник

OM

Oleg Morozov in pro.net
Roman Nevolin
Да. И ты рискуешь совершенно не заметить, что у этого get/set внезапно появилась новая логика. И даже не подумаешь искать проблему там, потому что практически всегда это голый get/set без логики
это вообще жесткая подлянка, что во внутреннем коде, что в паблик апи
источник

RN

Roman Nevolin in pro.net
Но вообще, это холивор бесконечный. Я предпочитаю избегать пропертей, потому что уже встречался с проблемами в отладке из-за них, а с преимуществами пока нет. У многих других опыт противоположный, не буду с ним спорить
источник

RN

Roman Nevolin in pro.net
Oleg Morozov
это вообще жесткая подлянка, что во внутреннем коде, что в паблик апи
Именно. Поэтому я и избегаю их, это неочевидная логика. Не уровня аннотаций, конечно, но все же.
источник

К

Карен in pro.net
Roman Nevolin
Но вообще, это холивор бесконечный. Я предпочитаю избегать пропертей, потому что уже встречался с проблемами в отладке из-за них, а с преимуществами пока нет. У многих других опыт противоположный, не буду с ним спорить
хз, сижу пержу на энтерпрайзах, там всегда свойства, поля юзаются только для состояния объектов
источник

RN

Roman Nevolin in pro.net
Карен
хз, сижу пержу на энтерпрайзах, там всегда свойства, поля юзаются только для состояния объектов
Ну, в общем я сказал, просто разный опыт. Я натыкался, было больно, больше не хочу
источник

К

Карен in pro.net
DTO со свойствами, Entity со свойствами
источник

К

Карен in pro.net
Roman Nevolin
Ну, в общем я сказал, просто разный опыт. Я натыкался, было больно, больше не хочу
хз, если сидишь пишешь низкоуровневый код и перфомансный, тогда да, там можешь и структурки юзать, и свойства выкидывать, и аллоцировать на стеке
источник

К

Карен in pro.net
так-то да, вкусовщина, вообще пофиг что ты там юзать будешь
источник

VK

Vladislav Khapin in pro.net
Roman Nevolin
Не сказал бы, что это плохая практика - скорее трейдофф. Например, навешивание дополнительной логики на get/set, как по мне - это спорная идея, которая уменьшает понятность кода и увеличивает вероятность случайной ошибки, трудной для отладки
Пример - DateTime.Now )
источник

OM

Oleg Morozov in pro.net
Iλyα Che
Неверная аналогия. Локальная оптимизация не затрагивает пользователей интерфейса.
так твой интерфейс это публичный гет/сет, что аналогично полю

от того, что тебе легко разъебать этот контракт не звучит как плюс
что изменение модификаторов доступа, что внезапная вставка логики, на которую не расчитывали
источник

RN

Roman Nevolin in pro.net
Карен
хз, если сидишь пишешь низкоуровневый код и перфомансный, тогда да, там можешь и структурки юзать, и свойства выкидывать, и аллоцировать на стеке
Дело не в перфомансе, а в потенциальной ошибке и неочевидной логике
источник

К

Карен in pro.net
Roman Nevolin
Дело не в перфомансе, а в потенциальной ошибке и неочевидной логике
источник

К

Карен in pro.net
интерфейсы не юзаешь?
источник

К

Карен in pro.net
неочевидная логика..
источник

RN

Roman Nevolin in pro.net
Карен
интерфейсы не юзаешь?
Эээээээ?
источник

RN

Roman Nevolin in pro.net
Интерфейсы не содержат логику. Если без дефолтной реализации
источник