Sasha
Нет
Дима
Ты просто тем самым отсекаешь значительную долю вариантов и проблем при отладке
Андрей
Дима
Так как чтение становится всегда заведомо статичным и не имеющим побочных эффектов
Ruslan
Proxy оптимизировали в V8, можно их юзать вместо геттеров/сеттеров
Андрей
Андрей
Ещё раз уточню. Мы не про js
Андрей
А про c#, java, etc
Дима
Какие проблемы?
Я иду от обратного, когда у тебя уже есть проблемы и нужно найти их решение, чем меньше аспектов нужно держать в голове тем проще. И тут статичные объекты становятся значительно более выигрышным вариантом
Андрей
В js геттеры-сеттеры скорее всего не нужны.
Андрей
Андрей
Дима
В джаве классы используют как миниатюрный глобал, из-за чего и идут их проблемы
Андрей
У тебя есть источник данных. Ты его используешь.
Андрей
Дима
Да, однократно
Дима
Андрей
Дима
Это не бойлерплейт
Дима
Вообще
Андрей
Я могу написать класс, который кеширует данные и выдаёт их. Вот здесь тебе геттер и пригодится.
Дима
Более того, это нормальный способ сделать немонолитный подход
Дима
Андрей
Наследуешься, перегружаешь и используешь.
Дима
Трижды нет
Дима
Я просто вызову функцию, а что она там кэширует уже не мои проблемы
Дима
Да, кстати, помимо всего прочего геттеры означают что ты обречён держать под рукой их контекст
Андрей
Дима
Если значение из источника может поменяться в процессе дальнейших вычислений без всяческой возможности определить это без ручной проверки повторным запросом, то у тебя просто некорректный алгоритм в коде и костыль для него
Андрей
Дима
В том что поле я могу забрать
Дима
Для того чтобы был геттер он должен быть у кого-то определен
Андрей
Дима
Нет
Андрей
Чтобы достать значение из поля оно должно существовать.
Дима
На момент изъятия
Дима
Про дальнейшую работу ничего не говорится
Дима
А сам объект?
Андрей
Эм... Объект не всегда.
Дима
Это значит что имея геттер ты всегда будешь таскать за собой объект на котором он объявлен, в то время как значение можно взять и отправить в функцию которая вообще ничего не знает кроме того что ей нужен определенный тип данных
Андрей
Дима
Это нормальный подход к разделению сущностей
Андрей
Вызов геттера и получания данных из поля не отличаются никак для пользователя.
Дима
В сущности это дискуссия между мутабельностью и иммутабельностью на уровне структуры объектов
Андрей
Дима
Отрицают
Андрей
Каким образом?
Дима
Они не гарантируют идемпотентность и воспроизводимость
Андрей
Если они чистые, то гарантируют.
Андрей
В общем виде - да, но мы не говорим про макак-программистов.
Дима
У тебя в языке нет способа декларировать степень чистоты функции, ввиду чего чистая функция — это шанс, а не то на что можно положиться
Андрей
Андрей
Я не представляю людей, которые будут в компилируемых языках поля выдавать наружу.
Андрей
Они обрекают себя на боль.
Дима
Если для получения данных тебе нужно вызвать функцию один раз — у тебя потенциально одно опасное место в коде, если ты используешь геттер — у тебя потенциально опасно каждое обращение к объекту
Ruslan
Дима
pure определяется не само по себе а через отсутствие сайд эффектов
Андрей
Даня
Помогите С:
Даня
Допустим пользователь выделил текст.
Дима
Андрей
Андрей
Но не со стороны либы.
Андрей
В либах нельзя разрешать прямой доступ к полям.
Даня
А потом перетащил его на рабочий стол в виде файла.
Даня
Куда копать?
Дима
Ты так ссылаешься на компилируемые языки, будто их проблемы чем-то актуальнее всех остальных и должны касаться кого-то, кто имеет несчастье использовать компилированные языки подобной надежности
Дима
Дима
Ты прямо будто стесняешься их
Андрей
Дима
Это не сфера, это полукруг костылей
Андрей
Ruslan
Андрей
В интерпретируемых языках ты можешь как угодно подменяь в рантайме, проблемы нет.
Дима
Просто в некоторых местах принято использовать геттеры и сеттеры а чем они это мотивируют это уже дело десятое
Андрей