Stanislav
При использовании хелперов все будет одинаково
qluqua
Поназапрещают такие все что можно, а потом фигак и ангуляр получился
Pavel
Ахахаха)
🐏 Alexander
Поназапрещают такие все что можно, а потом фигак и ангуляр получился
и охуенно, ибо нехуй в компонентах писать бизнес логику
Pavel
Ну это норм запрет, с ним я солидарен
Pavel
Но с ангуляром нет
qluqua
qluqua
Знакомый стикер, Пашок?))
qluqua
Обраточка)
Pavel
Да)
Pavel
Ребята, что почитать об структурах и архитектурах веб приложений ?
Tair
Ну понятно что может, я скорее о конкретном случае: в экшене только одна мутация Выше ответили
вот именно, что в акшнах нужно объединять связанные мутации, это и есть "бизнес логика", вопрос не в том, можно ли мутировать из компонент, а то что названия акшнов у вас будут более осмысленные, нежели названия мутаций
Anonymous
https://jsbin.com/xomorizowa/edit?html,css,output
Тут прокрутка появляется
Pavel
Что бы доходчиво, что где как делать и какие паттерны, а то устал все на собственных шишках узнаватт
Tair
Тут прокрутка появляется
это все решается, я просто не спец в CSS
🐏 Alexander
Ну там же нет запрета на вызов мутаций вне экшинов. Мы пишем слишком мала бойлерплейта, давайте еще добавим
если не соблюдать data-flow, то смысла тогда в сторе вообще нет, с таким же успехом можно и просто event-bus обойтись
Stanislav
если не соблюдать data-flow, то смысла тогда в сторе вообще нет, с таким же успехом можно и просто event-bus обойтись
В смысле? Основная "точка" изменения данных - это мутация. А что там вокруг нее - это пофиг
Anonymous
Но как решается, с добавлением border padding margin прокрутка появляется
Tair
Что бы доходчиво, что где как делать и какие паттерны, а то устал все на собственных шишках узнаватт
я бы начал с MVC и разделения формата данных для хранения и отображения, и где что должно обрабатываться
🐏 Alexander
В смысле? Основная "точка" изменения данных - это мутация. А что там вокруг нее - это пофиг
мутации это изменения какого-то проперти, а экшены это создания какогото осмысленного действия/события
Tair
я бы начал с MVC и разделения формата данных для хранения и отображения, и где что должно обрабатываться
потому что часто вижу люди пытаются данные прилетевшие с сервера сразу отрисовать в шаблоне, вместо того, чтобы их "подготовить" в контроллере и упростить шаблон
🐏 Alexander
есть четкое data-flow, не надо писать как хочется
qluqua
Красный кружок дело говорит
Tair
есть четкое data-flow, не надо писать как хочется
кстати, как считаете, state в данной схеме должен хранить ViewModel уже?
🐏 Alexander
кстати, как считаете, state в данной схеме должен хранить ViewModel уже?
что под vm подразумевается, данные с бэкенда и переменные для отображения UI компонентов?
Serge
есть четкое data-flow, не надо писать как хочется
Я вот тут не понимаю. С бэка всё нужно через vuex тащить? Нафига?
Tair
vue вроде не обязывает так сильно
🐏 Alexander
Я вот тут не понимаю. С бэка всё нужно через vuex тащить? Нафига?
это на самом деле сложный вопрос, потому в данном flow вся логика по работе с апи вынесена из компонента, но с другой стороны нахрена все данные хранить в сторе, если послсе unmount они уже не нужны
Tair
Я вот тут не понимаю. С бэка всё нужно через vuex тащить? Нафига?
можно и напрямую тащить, но если нужно будет отображать в нескольких компонентах одни и те же данные, то вы неизбежно придете к vuex
Serge
не "абсолютно" все
судя по картинке всё. Я наоборот во вьюксе храню только совсем общие вещи. Если это нужно только компоненту - сразу туда и передаю. Нахера бойлерплейт в виде вьюкса непонятно
🐏 Alexander
стора - это бизнес логика, а отдельно стору тестировать намного легче, чем компоненты
🐏 Alexander
короче это все сложно, даже в мире реакт люди еще не знают как правильно организовывать архитектуру приложения
Tair
Я так же
просто если вы в команде работаете, то может оказаться, что 2 разработчика независимо работают с бэкендом в разных компонентах над одними данными ))
Serge
короче это все сложно, даже в мире реакт люди еще не знают как правильно организовывать архитектуру приложения
Это одна из причин, по которой я не переношу реакт. Там каша из верстки, логики и данных. И героически их преодаление в виде всяких либ и всё это типо феншуйно
🐏 Alexander
у нас в проекта код такой, что любой компонент, будь то таблица с данными или сложная форма второго шага может быть запущен в отдельно в демо режиме от всего приложения, сторы и логики, чтобы можно было его протестить
Tair
Ну нет. Через общее апиконтроллер.жс )
а состояние не хранить же в апиконтроллере ))
Tair
чтобы лишний раз не дергать бэкенд
Tair
поэтому, имхо, в команде уж лучше сразу прийти к общему знаменателю
🐏 Alexander
Это одна из причин, по которой я не переношу реакт. Там каша из верстки, логики и данных. И героически их преодаление в виде всяких либ и всё это типо феншуйно
просто надо было, чтобы реакт был более умный, чтобы не приходилось самому все писать, там же даже в className передается только строка
Serge
а состояние не хранить же в апиконтроллере ))
Ну у меня бэк - это многопользовательская субд. И на фронте данные могут протухнуть еще не успев отрисоваться. Поэтому стейт особо не нужен. Нужно дергать актуальное
Tair
зачем тогда отрисовывать протухшие данные?
Tair
REST и MVCC -- наше все
Serge
зачем тогда отрисовывать протухшие данные?
Они ж могут протухнуть. А могут и нет. Как по другому то?
🐏 Alexander
потому что через пропсы все передавать гонево
наоборот, через просы передавать это хорошо, можно тестировать и всегда понятно поведение компонента, а если внутри компонента происходит fetch данных при created(), то это уже его чисто внутрення реализация, и со стороны это как магия
Erzed
Не можете подсказать, что за шрифт?
Serge
MVCC же есть, Etag , if-modified заголовки
База операционная. Изменения должны быть актуальны всем всегда.
Tair
База операционная. Изменения должны быть актуальны всем всегда.
ну это же нереально, вы сами пишете, что могут протухнуть еще до отрисовки
Tair
multi-version concurrency control
🐏 Alexander
Не можете подсказать, что за шрифт?
может если запустить веб версию телеграма там будет такой же шрифт, и тогда в девтулзе можно глянуть
Рэмуальд
народ, а как тесты пишете? отдельные юниты для стора, то есть для каждого модуля с его мутациями/экшенами/геттерми?
Serge
ну это же нереально, вы сами пишете, что могут протухнуть еще до отрисовки
Когда летят изменения обратно на бэк - там проверяется. Каждая сущность по своему. :/
Tair
Когда летят изменения обратно на бэк - там проверяется. Каждая сущность по своему. :/
ну так вот, часто это решается на уровне правильной модели данных + фишки протокола HTTP
Tair
Модель прибита гвоздями, к сожалению
ну тут уже сложней конечно
Tair
https://sookocheff.com/post/api/optimistic-locking-in-a-rest-api/
Serge
ну тут уже сложней конечно
Обратная совместимость и древнее наследие
Serge
Ну и стоимость разработки ессно
Tair
https://sookocheff.com/post/api/optimistic-locking-in-a-rest-api/
эта тема в целом называется "Optimistic Locking", MVCC -- это частный случай
Рэмуальд
никто тесты не пишет что ли ?)
🐏 Alexander
вы стор через пропсы передаете?
через пропсы передают только необходимые данные, которые из сторы достаются