Задать вопрос
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".
Уже не первый раз с таким сталкиваюсь, но впечатление будто бекендщики просто хотят писать код так, как им это привычно.
  • Вопрос задан
  • 640 просмотров
Подписаться 1 Простой 13 комментариев
Решения вопроса 1
Какой профит в архитектуре приложения React + MobX + TS + OOP?

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

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

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

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

functional component

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

pure

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

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

Похожие вопросы