Дима
Нет
Дима
Это традиция а не необходимость в подавляющем большинстве случаев
Дима
Конформизм дело такое
Андрей
Это традиция а не необходимость в подавляющем большинстве случаев
Ты предлагаешь пересобирать весь мир при изменении API в корне?
Ruslan
pure определяется не само по себе а через отсутствие сайд эффектов
Будет кидать exception при сайдэффектах. Например, чтобы можно было юзать только аргументы и другие pure функции
Дима
Ты предлагаешь пересобирать весь мир при изменении API в корне?
Ложная дилема, о том, что существует всего два варианта тебе сказал кто-то конкретный?
Андрей
Куда копать?
Что копать? Вопрос в чём?
Андрей
Ложная дилема, о том, что существует всего два варианта тебе сказал кто-то конкретный?
Ок, как не пересобирать весь мир, если бинарная совместимость нарушена?
Даня
Допустим пользователь выделил текст.
Даня
А потом перетащил его на рабочий стол в виде файла.
Андрей
Пользователь молодец.
Дима
Ок, как не пересобирать весь мир, если бинарная совместимость нарушена?
Спроси у того кто поставил тебя перед ложной дилемой Я же в очередной раз спрошу почему ты не хочешь экспортировать из API просто функции
Дима
При чем тут это? Я говорю о простом экспорте функций для явного вызова
Дима
Если у тебя в языке такое невозможно как явление, то это печально, несомненно
Андрей
При чем тут это? Я говорю о простом экспорте функций для явного вызова
Даже если возможно, то ты предлагаешь разделить всё на состояние и функции сбоку?
Дима
Я предлагаю явно показать юзерам кода то, что в данном апи это значение получается вызовом функции
Андрей
Геттеры в понимании js и c# - это сахар.
Андрей
Причём в c# их рекомендуется использовать везде, так что проблемы никакой.
Дима
Дима
Причём в c# их рекомендуется использовать везде, так что проблемы никакой.
Это равносильно признанию поражения и декларации всего кода как опасного Я же предлагал декларировать все объекты как безопасные, как говорится, небольшой нюанс
Дима
Спасиб 😄
Дима
Ёпта
Дима
ПОТОМУ ЧТО ФУНКЦИИ ПАДАЮТ
Дима
Нет
Дима
Чтение из нормального объекта без геттеров не упадёт никогда
Дима
В этом блин вся и разница
Андрей
Да. Забудь про поля. Их не существует.
Андрей
Их никто наружу не выносит.
Андрей
У тебя есть или getField или .Field. Это одно и тоже.
Дима
Это не одно и то же когда ты будешь искать причины проблем
Андрей
Дима
Сочувствую
Дима
У меня — нет
Андрей
Потому что ты пишешь на интерпретируемом языке и проблемы подмены кода нет.
Дима
Напоминаю, что в фронтенд я пришёл из Java
Андрей
Я знаю.
Дима
Потому что ты пишешь на интерпретируемом языке и проблемы подмены кода нет.
Нет никакой проблемы подмены если ты явно говоришь что не будешь отдавать эти данные напрямую и предложишь функцию для их получения
Андрей
Ты всегда получаешь данные через функцию.
Дима
Реально, ты меня сейчас убеждаешь в том, что проблемы вызванные твоим подходом можно решить с помощью этого же подхода, это нонсенс
Дима
Потому что ты пишешь на интерпретируемом языке и проблемы подмены кода нет.
Дима
У тебя всегда вызов функции. ВСЕГДА.
Андрей
Понял. Охренеть, если честно.
Андрей
Ну, такова жизнь. Процессор не умеет выполнять что-то отличное от машинного кода.
Андрей
Фундаментальная проблема.
Дима
У тебя рекурсивные аргументы
Дима
Я же в очередной раз спрошу почему ты не хочешь экспортировать из API просто функции
Дима
Тогда зачем тебе геттеры чтобы подменять код?
Андрей
Тебя раздражает, что геттер пишется так, как ты привык получать данные из поля?
Дима
Меня ничего не раздражает, я просто предпочитаю явно разделять сущности
Андрей
Тогда зачем тебе геттеры чтобы подменять код?
Чтобы заменить твою экспортируемую функцию.
Дима
Чтобы заменить твою экспортируемую функцию.
Зачем? Она знает что-то о чем знать не должна? Или почему ещё её имплементация должна как-то меняться после изменения внутреннего кода?
Дима
У тебя одна сущность. Разделять нечего.
Ты про себя говоришь, я про себя, ок? Я говою — у меня разделяемые сущности потому что это удобно и я могу их разделять, поэтому предпочитаю явное неявному
Андрей
Декоратор, другими словами.
Дима
Потому что ты хочешь добавить кеширование, к примеру, или логгирование.
Эта функция знает про кэширование и логгирование и при этом по прежнему считается оптимальным, не требуюжщим пересмотра кодом?
Андрей
Традиции
facepalm В чём?
Дима
Я понимаю, что ты загорелся идеей о бэке, но тем не менее есть ряд вещей которые фундаментальны и не меняются от того, что "здесь так принято"
Андрей
В том, что доступ к данным идёт исключительно через методы?
Дима
В использовании геттеров
Андрей
В использовании геттеров
Ок, назовём их функциями для получения данных. Что поменялось?
Дима
Прочем заметь, внешний апи это крайне малый процент от всего кода. Я даже готов допустить что здесь стоит использовать геттеры
Андрей
Прочем заметь, внешний апи это крайне малый процент от всего кода. Я даже готов допустить что здесь стоит использовать геттеры
Их стоит использовать почти всегда, если ты пишешь либу, потому что когда понадобится подменить "функцию для получения данных" будет уже поздно.
Андрей
Ты не можешь менять публичный API
Дима
Для подмены имплементации интерфейса геттеры не являются ни необходимым ни обязательным условием
Дима
В отличии от нормальной архитектуры