MobX или приправа реактивности для JS

Привет, Хабр! Меня зовут Сергей Волков, я фронтенд-разработчик в компании VK. Мы используем MobX для работы с реактивными значениями в веб-приложениях, поэтому я хочу познакомить вас с этим инструментом и показать, почему на него стоит обратить внимание. В этой статье я хочу поделиться своими мыслями о MobX - инструменте, который я искренне полюбил после многих лет разработки интерфейсов. Приятного чтения! :)

https://habr.com/ru/articles/1043240/

#mobx #react #reactjs #reactjs #frontendразработка #frontend #ооп #oop #oop_patterns #mvvm

MobX или приправа реактивности для JS

Привет, Хабр! Меня зовут Сергей Волков, я фронтенд-разработчик в компании VK. Мы используем MobX для работы с реактивными значениями в веб-приложениях, поэтому я хочу познакомить вас с этим...

Хабр

Компонентная разработка (reusable)

Это не разбор, не рекомендация, а скорее ценный опыт фронтовой команды с полей российского IT. Все что описано ниже - общий результат нашей работы. Перед любой командой со стороны менеджмента и бизнеса стоит одна и та же задача «давайте быстрее - надо было еще вчера». Нас эта судьба также не миновала. Первое, с чего начинается оптимизация, своя дизайн-система. У нас уже была своя дизайн-система, она выручала нас во многих кейсах, но она была старая, подходы к разработке давно изменились, и UI Kit уже не отвечал требованиям. Поэтому было принято решение параллельно разрабатывать новую, с учетом всех последних требований и подходов. Переезд не должен доставлять проблем и быть плавным. План такой: разрабатываем новый компонент, тестируем его, и как только результат радует, старый удаляем и внедряем новый. И так до тех пор, пока не останется ни одного старого компонента. Разработка имеет такую очередь: архитектурно наш UI Kit лежит в закрытом artifactory npm пакетом. Также есть шаблон со всеми необходимыми зависимостями и UI Kit’ом. Когда приходит время нового проекта, делается fork заготовки. Это дает быстрый старт. Начинаем Давайте посмотрим, как бы начиналась разработка приложения. Возьмем для примера компонент Select. Не будем писать сами, возьмем Antd Select и через обертку emotion стилизуем его под корпоративные стили. Структура получится такая:

https://habr.com/ru/companies/megafon/articles/1041500/

#frontend #react #mobx #design_system #uikit

Компонентная разработка (reusable)

Это не разбор, не рекомендация, а скорее ценный опыт фронтовой команды с полей российского IT. Все что описано ниже - общий результат нашей работы. Перед любой командой со стороны менеджмента и...

Хабр

Context-driven Reusable Form Pattern: Масштабируемая архитектура для Create / Edit / Create-from-Source

Как перестать копировать формы и построить масштабируемую архитектуру В enterprise-приложениях формы множатся быстро: create, edit, import, create-from-lead, duplicate — и вот у вас уже шесть копий одной формы, а внутри условный ад из if (mode === …). О чём статья: Почему mode prop и giant form component не масштабируются; Как разделить форму на четыре слоя: presentation, orchestration, context, data source; Что такое capabilities и почему они лучше условной логики; Как адаптеры отвязывают форму от source entities; Куда прятать submit, валидацию и внешний store; Как тестировать такую архитектуру изолированно. Примеры на React + TypeScript, но подход применим к любому компонентному UI. Для начинающих и тех, кто уже устал от копипасты в enterprise.

https://habr.com/ru/articles/1038754/

#react #mobx #zustand #frontend #typescript #javascript #enterprise_architecture #формы_react #react_hook_form #redux

Context-driven Reusable Form Pattern: Масштабируемая архитектура для Create / Edit / Create-from-Source

Как перестать копировать формы и построить масштабируемую архитектуру create/edit/create-from-source Термин “Context-driven Reusable Form Pattern” был придуман для названия статьи, у него нет...

Хабр

Облако своими руками для расчета пространственных стержней методом конечных элементов на Node js, React js и Three js

В данной статье (а возможно цикле статей) речь пойдет о собственной разработке облачного SPA приложения по моделированию пространственных стержневых систем методом конечных элементов с численно-аналитическим решением для инженеров-проектировщиков в основе которого математическая модель Эйлера-Бернулли, вариационные принципы и итерационный метод сопряжённых градиентов применяемый для большеразмерных СЛАУ с разреженной матрицей жёсткости с одной стороны, и JavaScripts экосистема облака, выполненного в стеке Node js, Express js бэкенд части, и React js, MobX, Three js, glsl shaders фронтенд части с другой стороны. Отображение эпюр усилий в пространственных стержневых элементах реализовано на шейдерах vertexShader и fragmentShader. Это позволяет вычислять эпюры для каждого стержня на лету и выполнять отображение графиков (в общем случае полиномов 5 степени) в пространстве мгновенно.

https://habr.com/ru/articles/1022206/

#webgl #mobx #мкэ #сопромат #расчеты_на_прочность #glsl #nodejs #инженерия

Облако своими руками для расчета пространственных стержней методом конечных элементов на Node js, React js и Three js

Моделирование пространственных стержневых систем ammonit.xyz ammonit3d в каталоге RuStore www.rustore.ru В данной статье (а возможно цикле статей) речь пойдет о собственной разработке облачного SPA...

Хабр

react-ui-kit-forms: новая библиотека для работы на React в стиле Angular

Связка React+MobX хорошо себя зарекомендовала при работе с формами, в то время как за реактивность модели данных в Angular обычно отвечает библиотека RxJS. Но что делать, если вы хотите воспользоваться преимуществами Angular в React или Node.js? В этой статье речь пойдет о новой библиотеке от Cloud X, которую мы разработали для того, чтобы проложить “мостик” из мира Angular, где всё богато, но дорого в мир React, где все дешево, но скудно. В этой статье я описываю применение ядра @cloudx/react-ui-kit-forms, которое отвечает за структуру модели данных, реактивность модели данных и контроль состава данных (валидацию), позволяя “скрестить” плюсы React и Angular на одном проекте.

https://habr.com/ru/companies/cloud_x/articles/1005500/

#формы #react #angular #reactjs #mobx #вебразработка #cloudx

react-ui-kit-forms: новая библиотека для работы на React в стиле Angular

Связка React+MobX хорошо себя зарекомендовала при работе с формами, в то время как за реактивность модели данных в Angular обычно отвечает библиотека RxJS. Но что делать, если вы хотите...

Хабр
How to Master State Management in Modern React https://jsdev.space/react-state-management/ #react #zustand #mobx #valtio #redux

Подходы к state management в React

У React-разработчика две беды: 1. Целевые данные изменились, а ререндера нет. 2. Целевые данные не изменились, а ререндер есть. Есть много вариантов подружить данные с интерфейсом, в рамках данной статьи я пройдусь по самым популярным из них. Выясним, как они устроены и для чего каждый из них подойдет лучше, обсудим конкретные реализации разных паттернов.

https://habr.com/ru/articles/984424/

#React #redux #zustand #mobx #valtio #jotai #state_management

Подходы к state management в React

Две проблемы React-разработчика У React-разработчика две беды: Целевые данные изменились, а ререндера не произошло. Целевые данные не изменились, а ререндер произошёл. Есть много способов подружить...

Хабр

Эволюция плеера RUTUBE: от монолита к гибким модулям

Принимая архитектурные решения, часто так или иначе приходится идти на компромисс: между качеством и скоростью разработки, сложностью реализации и удобством поддержки, быстротой решения бизнес-задачи и гибкостью. Со временем небольшие уступки накапливаются и проект покрывается легаси. Даже если исправно разгребать техдолг, то в любом случае на достаточно длинной дистанции решения и технологии устареют, и станет невозможно обойтись «генеральной уборкой» — потребуется смена архитектуры. В статье расскажу, как мы столкнулись с неизбежной необходимостью переделки веб-плеера RUTUBE — сервиса, который существует с 2006 года, пережил несколько смен команд и парадигм разработки и при этом достаточно большой и высоконагруженный, чтобы нельзя было «просто так взять и всё переписать».

https://habr.com/ru/companies/habr_rutube/articles/977276/

#rutube #mobx #ооп #видео #hls #ui #dependency_injection

Эволюция плеера RUTUBE: от монолита к гибким модулям

Принимая архитектурные решения, часто так или иначе приходится идти на компромисс: между качеством и скоростью разработки, сложностью реализации и удобством поддержки, быстротой решения...

Хабр
Chatting more closely with my team, it looks like we'll at least go with the "Watch in effect" solution for right now, at least. We were previously leveraging #mobX which behaved in this way. Opens fun questions around #effects should react to changes inside of them or not, but we'll get into that as we get further into our #signals adoption across @reveai.bsky.social

Собрать звуковую спектрограмму на React и MobX

Привет! Я Таня, фронтенд-разработчик в KTS и студент магистратуры МГТУ им. Баумана. На одном из недавних проектов я работала над интересной фичей — визуальным представлением аудиоданных, a.k.a. звуковой спектрограммой. Казалось бы, штука нехитрая: кто не видел график, прыгающий в такт с музыкой на разных частотах? Он есть в любом секвенсоре, на любом диджейском пульте и даже в динамическом островке последних айфонов. Однако задача оказалась нетривиальной, поскольку для целей проекта мне нужно было разработать звуковую спектрограмму на React и MobX в особом дизайне. Подробных разборов этой темы и готовых решений я не нашла, поэтому в процессе пришлось самостоятельно разобраться с кучей тонкостей и нюансов. Результат можете посмотреть по ссылке . А в этой статье я расскажу, как сделать такую же звуковую спектрограмму, а также как изменять ее стиль и другие параметры.

https://habr.com/ru/companies/kts/articles/955044/

#визуализация_данных #Звуковая_спектрограмма #FFT #mobx #react

Собрать звуковую спектрограмму на React и MobX

Привет! Я Таня, фронтенд-разработчик в KTS и студент магистратуры МГТУ им. Баумана. На одном из недавних проектов я работала над интересной фичей — визуальным представлением аудиоданных, a.k.a....

Хабр