Александр
Основные фичи тайпскрипт как раз относятся к ООП
Не правда! Ну или я плохой разработчик недопонимаю чего
Cenator 🐈
Я юзаю и то, и то
Это не значит что концепции фреймворка А применимы в В
Roman
Кроме ООП нет способов решить проблему?
Есть, но это вопрос вкусовщины и устоявшихся практик в компании. У нас ООП код пишут. Вот я и спрашиваю, как правильно писать с точки зрения реакта, но оставаясь в ООП парадигме
Daniil
опять срачи за опп и тайпскрипт?
Roman
Не правда! Ну или я плохой разработчик недопонимаю чего
Классы, интерфейсы, обобщения - это все про ООП
Александр
Отказаться от этой парадигмы
Это будет по реактовски, но вы может тянуть свой оооп на глобус
Cenator 🐈
Классы, интерфейсы, обобщения - это все про ООП
Реакт прекрасно работает без классов вообще
Paul
Вот ща у меня взорвется
Roman
Это не значит что концепции фреймворка А применимы в В
Вот поэтому я и спрашиваю, что применимо в случае реакта
Cenator 🐈
Вот поэтому я и спрашиваю, что применимо в случае реакта
Если есть сср то пускай синглтон через контекст, если нет то импорты
Roman
Нет не про ООП
А про что? Эти концепции прямо из мира ООП
Александр
Классы, интерфейсы, обобщения - это все про ООП
Интерфейсы и дженерики (параметрический полиморфизм по научному ) вообще никак от ООП не зависят
Paul
Интерфейсы в тс имеют мало общего с интерфейсами в ооп джавы\сешорпа
Paul
В тайпскрипте это инструмент утиной типизации
Paul
По факту это не интерфейсы, а "схемы"
Ilya
В тайпскрипте это инструмент утиной типизации
молодой человек, эко вас понесло
Александр
В TS вообще говоря в основном структурная типизация продвигается как принято в мире Джаваскрипт а не номинальная как в мире ООП
Roman
Интерфейсы и дженерики (параметрический полиморфизм по научному ) вообще никак от ООП не зависят
Интерфейс имеет непосредственное отношение к ООП, эта концепция там и возникла
Китикет
Чтобы сразу вернулся результат
Ты явно не тот Климов, да xD
Roman
По факту это не интерфейсы, а "схемы"
Правильно, так как в рантайме их нет, они только для удобства кодирования
Paul
А ооп тут причем тогда?
Paul
Пишем на тс+реакте в чисто функционально стиле
Paul
Чувствуем себя отлично
Ilya
молодой человек, эко вас понесло
это как раз инструмент ее преодоления, статический на этапе описания. И про то что интерфейсы имеют мало общего - тоже такое себе утверждение
Roman
Пишем на тс+реакте в чисто функционально стиле
Вот не нравится мне так, хочу в ООП-стиле
Александр
Пишем на тс+реакте в чисто функционально стиле
И мы так же и все живы, кроме юниров но они подтягивают знания
Roman
И мы так же и все живы, кроме юниров но они подтягивают знания
А что же ты тогда не на Elm пишете? Вот там тру функциональщина
Александр
Вот не нравится мне так, хочу в ООП-стиле
Ну ваше право... но у нас тут таких не любят, в смысле что в мире реакта не принято использовать ООП подход, и тому есть объяснение
Александр
А что же ты тогда не на Elm пишете? Вот там тру функциональщина
Мне на TS нормально, пожалуйста не надо за меня язык выбирать
Александр
Roman
а что же ты на джаве не пишешь))
На шарпах потому что пишу)
Roman
ООП это культ
Для кого-то да, для меня просто инструмент
from
Для кого-то да, для меня просто инструмент
очевидно не "просто", раз пытаешься использовать там, где проку от этого нет
Александр
Для кого-то да, для меня просто инструмент
Ну тогда пишите как вам нравится, тайпскрипт вас не ограничивает, но в реалиях реакта вас ограничит другое...
Roman
очевидно не "просто", раз пытаешься использовать там, где проку от этого нет
что значит нет проку? Я видел проекты в ООП-стиле на реакте, все работало
from
что значит нет проку? Я видел проекты в ООП-стиле на реакте, все работало
я про твой изначальный вопрос Так-то если хочется использовать ООП вместе с реактом, то пожалуйста, никто не запрещает. Реакт хоть и продвигает некоторые фп принципы, но не настолько opinionated, чтобы их навязывать
Roman
Ок, изначальный вопрос, как правильно писать сервисы?
from
Но когда хочется свой DI написать ради синглтона, это ооп головного мозга кажется
Roman
Без классов, тупо набор функций в файле?
Александр
Какое объяснение этому?
Надеюсь не потеряется среди срача ответ. Объяснение довольно простое, ООП это один из способов инкапсуляции поведения и состояния...в объекты (не говорю про классы, потому что это исторически более позднее изобретение не являющее необходимым атрибутом ООП). Так вот, в реакте единица собирающая в себе поведение и состояние - компонент реакта, и от этого пляшут и строят архитектуру.
Roman
Компонент реакта нормально делать в виде класса
Александр
Без классов, тупо набор функций в файле?
А функция обязательно в классе должна быть? Даже такая как parseInt скажем? Вот это уже ООП головного мозга, без обид, простите
Александр
Компонент реакта нормально делать в виде класса
Делайте, но развитие реакта идёт по другой ветке, в сторону функциональных компонентов и хуков
Roman
Я хочу иметь возможность подменять реализации сервисов, для этого нужно обращаться к ним через интерфейсы
Roman
А теперь по-русски можно?
Контракт=интерфейс
Александр
В классе должны быть методы, соответствующие контракту сервиса
Простите ещё раз, имхо у вас паттерны Энтерпрайз приложений в голове
Cenator 🐈
Контракт=интерфейс
Что если нет сервиса, просто функция — принимает строку и отдает отформатированную строку?
Cenator 🐈
Класс форматтер ебашить?
Александр
Контракт=интерфейс
В чем разница можете пояснить? Чисто для того чтобы на одно языке общаться
Cenator 🐈
Это не метод а функция, давно пора привыкнуть что во всех адекватных современных языках функция это first class citizen
Александр
Тогда это не сервис, а просто утилитный метод
А что такое сервис тогда? Я без подьеба спрашиваю, просто интересна ваша позиция тут
Roman
В чем разница можете пояснить? Чисто для того чтобы на одно языке общаться
Я использовал слово контракт, чтобы подчеркнуть, что клиент класса ожидает от класса некоторой функциональности, и такое соглашение закрепляется как раз в виде интерфейса
Aleksandr
Привет, подскажите, есть ли аналог for in в рендере реакта? Ко мне с сервера приходят данные в виде объекта с вложенными в него объектами, и мне нужно отрендерить данные в этих вложенных объектах. На for in реакт огрызается, получается надо перегнать этот объект в массив с объектами? Или как?
Александр
Ну вот в TS type описывает интерфейс или контракт?
Roman
А что такое сервис тогда? Я без подьеба спрашиваю, просто интересна ваша позиция тут
Повторно используемая логическая единица, содержащая функционал, не связанный напрямую с рендерингом и UI.
from
Я использовал слово контракт, чтобы подчеркнуть, что клиент класса ожидает от класса некоторой функциональности, и такое соглашение закрепляется как раз в виде интерфейса
в контексте опять же твоего вопроса — когда у тебя набор функций, то ничто не мешает поменять их реализацию, не тронув сигнатуру В том как бы и прелесть функций
Александр