DarthJS
@DarthJS

Какой профит в архитектуре приложения React + MobX + TS + OOP?

Работаю фронтендером давненько, работал с AngularJS, сейчас с React больше, но суть такая, что большинство проектов с которым я работал (хоть многие были и немаленькие), с ними никто не изощрялся и делал по простой схеме best practices как совейтуют евангелисты из интернета. Но так сложилось, что последние пару проектов в команде большинство, так называемых гуру ФУЛ-СТЕК - это те, которые на самом деле Дотнетчики и фигачат вёрстку position: absolute вообще везде.

Вопрос по фронту (в частности React):
Лид переписал базовые компонент React, добавил свои правила и базовые функции в том числе и render,
теперь мы пишем так:
internalRender() {
        this.addCssClass(className);  // Этот классней приходит из пропсов
        this.addCssClassIf('required', isRequired); // этот метод тоже вместо тернарного оператора, если у нас вдруг что-то required
return (
  <Какой-то-компонент  className={this.renderCssClasses()} />
)
}


Так же у нас теперь OOP, functional component у нас теперь нет, pure тоже, мы теперь всегда наследуемся только от чудо изобретения.
В том числе у нас теперь по правилам OOP есть view, model, controller - что собственно из маленького компонента делает огроменный компонет и еще в трёх файлах.

Внимание, вопрос знатокам!
Какой профит от данного подхода?
В чем, собственно преимущество?

Лично я пока-что не вижу привычного React, не вижу преимущества, первое что приходит в голову "how to make simple things complicated".
Уже не первый раз с таким сталкиваюсь, но впечатление будто бекендщики просто хотят писать код так, как им это привычно.
  • Вопрос задан
  • 638 просмотров
Решения вопроса 1
Какой профит в архитектуре приложения React + MobX + TS + OOP?

Если абстрактно ответить на этот вопрос, то профит - огромен. MobX - прекрасный фреймворк и позволяет писать поддерживаемый код. Намного лучше той лапши, которую пропагандирует Редакс.

Если углубляться в ваш пример, то выглядит всё странно. Например, мне совершенно непонятен этот пункт:
В том числе у нас теперь по правилам OOP есть view, model, controller - что собственно из маленького компонента делает огроменный компонет и еще в трёх файлах.

Компоненты Реакт - это исключительно View. Нету никакой логики делать model-компоненты, ибо вся модель лежит где-то в области MobX в файлах с расширением .ts. Реакт - это вьюшка и то, что они пишут модель и контроллеры во вьюшке - это странно.

this.addCssClassIf - пример того, где злоупотребляют наследованием там, где, очевидно, нужна композиция.

functional component

В Ф.К. лично я смысла вижу мало. В любом приложении нужны классические компоненты. Так зачем пользоваться двумя типами компонентов, если можно пользоваться одним.

pure

Чистый pure (простите за тафтологию) в Реакте встречается редко. Обычно только в каких-то мелких вьюшках. И pure как самоцель, на самом деле, не нужна, если только вы не гонитесь за временным хайпом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы