Какой профит в архитектуре приложения React + MobX + TS + OOP? Работаю фронтендером давненько, работал с AngularJS, сейчас с React больше, но суть такая, что большинство проектов с которым я работал (хоть многие были и немаленькие), с ними никто не изощрялся и делал по простой схеме best practices как совейтуют евангелисты из интернета. Но так сложилось, что последние пару проектов в команде большинство, так называемых гуру ФУЛ-СТЕК - это те, которые на самом деле Дотнетчики и фигачат вёрстку position: absolute вообще везде.Вопрос по фронту (в частности React): Лид переписал базовые компонент React, добавил свои правила и базовые функции в том числе и render, теперь мы пишем так:internalRender() { this.addCssClass(className); // Этот классней приходит из пропсов this.addCssClassIf('required', isRequired); // этот метод тоже вместо тернарного оператора, если у нас вдруг что-то required return (
) } Так же у нас теперь OOP, functional component у нас теперь нет, pure тоже, мы теперь всегда наследуемся только от чудо изобретения. В том числе у нас теперь по правилам OOP есть view, model, controller - что собственно из маленького компонента делает огроменный компонет и еще в трёх файлах.Внимание, вопрос знатокам! Какой профит от данного подхода? В чем, собственно преимущество? Лично я пока-что не вижу привычного React, не вижу преимущества, первое что приходит в голову "how to make simple things complicated". Уже не первый раз с таким сталкиваюсь, но впечатление будто бекендщики просто хотят писать код так, как им это привычно.
Подход, который вы описали - использование React с MobX, TypeScript и ООП принципами, может иметь несколько потенциальных преимуществ:
Улучшенная организация кода: использование классов и разделение на модель, представление и контроллер может помочь лучше структурировать код и упростить его поддержку и расширение в будущем.
Улучшенное управление состоянием: использование MobX позволяет эффективно управлять состоянием приложения и его изменениями, что может уменьшить количество багов и делает код более предсказуемым.
Улучшенная типизация: TypeScript добавляет статическую типизацию к JavaScript, что помогает выявить ошибки на ранних этапах разработки и улучшает автодополнение и документирование кода.
Улучшенная производительность: использование классов и оптимизированных решений для управления состоянием, таких как MobX, может улучшить производительность приложения и сделать его более отзывчивым.
Однако, важно помнить, что каждый проект уникален, и не всегда все эти преимущества будут актуальны или необходимы. Некоторым командам может быть удобнее работать с более простыми решениями, и использование сложных технологий или подходов может быть излишним. Поэтому важно оценить конкретную ситуацию и нужды проекта, прежде чем решить о применении данного подхода.
Подход, который вы описали - использование React с MobX, TypeScript и ООП принципами, может иметь несколько потенциальных преимуществ:
Улучшенная организация кода: использование классов и разделение на модель, представление и контроллер может помочь лучше структурировать код и упростить его поддержку и расширение в будущем.
Улучшенное управление состоянием: использование MobX позволяет эффективно управлять состоянием приложения и его изменениями, что может уменьшить количество багов и делает код более предсказуемым.
Улучшенная типизация: TypeScript добавляет статическую типизацию к JavaScript, что помогает выявить ошибки на ранних этапах разработки и улучшает автодополнение и документирование кода.
Улучшенная производительность: использование классов и оптимизированных решений для управления состоянием, таких как MobX, может улучшить производительность приложения и сделать его более отзывчивым.
Однако, важно помнить, что каждый проект уникален, и не всегда все эти преимущества будут актуальны или необходимы. Некоторым командам может быть удобнее работать с более простыми решениями, и использование сложных технологий или подходов может быть излишним. Поэтому важно оценить конкретную ситуацию и нужды проекта, прежде чем решить о применении данного подхода.