Rafael 🌵
Wss требует скурпулезной работы над системой ивентов
Rafael 🌵
Согласен с Ярославом что это преждевременная оптимизация
Yaroslav 🇺🇦
Ну у меня веб это просто фан а не работа, да и ковыряю я его по настроению, так что могу ошибаться. Но..
Ты можешь закинуть запрос и никогда не получить ответ. Так и ждать.
Туда же пробемы с статусом, и то что написал Рафик.
Ты не можешь на коленке склепать curl.
И если твое апи становится хоть немного открытым, даже в закрытом круге ты превращаешь работу не твоих приложений с твоим сервисом в такой сбе местечковый ад
Yaroslav 🇺🇦
Могу ошибаться. Поправте если чего не так
Rafael 🌵
На самом деле я уверен, что это всё решено, если это модификация crud и под это дело уже сделали свой apipie/apicase
Roman
никто не мешает предоставлять и HTTPS и WSS, не вижу проблемы... просто интерфейсы разные, а функционал на сервере один и тот-же
Roman
просто с WSS все данные по одному каналу идут и аутентификация лишь одна
Roman
Roman
нам не нужен CRUD
Rafael 🌵
Rafael 🌵
Типо у них коннекторы написаны, чтобы абстрагироваться от слоя запросов
Rafael 🌵
Козуля рассказывал про фронтэнд Финама.
Стек
Очень core-части пишутся на Java, гоняются в GWT и closure compiler. Потому что кроссплатформенность. Protobuf, TypeScript.
Архитектура
Разбито по модулям: ПАПКА (господи, я же просил) со всем, что относится к модулю (иконки, хелперы, etc).
Сначала пытались класть по src/{components, reducers, actions}, но решили группировать по модулям src/{module}/{reducers|components|actions|helpers}.
Логично — так намного удобнее работать, сам в какой-то момент пришёл к этому.
Нейминг
Сначала было Form, потом SuperFormOfSubmitUserData, но затем из-за модульной архитектуры (см. выше) откатились к Form — когда импортишь форму из какого-то модуля, всё и так семантично становится.
Про архитектуру, pt. 2
В проекте есть куча мапперов, куча форматтеров, коннекторов. Всё в модулях.
Маппер: функция преобразующая одну структуру в другую
Форматтер: форматирует значение по правилам
Коннекторы: HoC, в который пробрасываются данные с сервера. Абстрагирует работу с сервером от рендера
Датафлоу
Источник данных → коннектор → маппер → форматтер → интерфейс. Из интерфейса данные отправляются в источник данных через редакс.
Способы оптимизации рендера
Самые тупые: sCU, PureComponent
Поумнее: recompose, reselect
Если не помогло: выпилить Редакс
Если и это не помогло: выпилить Реакт
Переходите на ХТМЛ! Мораль: Редакс или Реакт не всегда нужны для каких-то вещей, иногда можно тултип сделать через атрибут title.
В Редаксе хранят данные, которые отправят в локалсторейдж, чисто данные. Интерфейсные вещи хранятся в локальном стейте (открыто/закрыто меню, показан тултип, etc).
Лайфсайкл вывода продукта
Выходят много спецпроектов, много релизов, поэтому есть четкий флоу.
1. прототип — create-react-app, все компоненты в одной куче, плюс material-ui
2. релиз — вставляют редакс потому что нужно систематизировать (минутка рекламы: редакс )
3. рефакторинг — бьют на модули, разбивают на подкомпоненты, етц
4. оптимизация — кладут по пакетам бизнес-логику, помогает jFrog Artifactory, самое сложное — ридми и ченджлог
В итоге когда всё в пакетах, то разработка продукта превращается в конфигурацию и шаблон.
Rafael 🌵
Вот выжимка
Yaroslav 🇺🇦
я не вижу кабздец проблемы в том чтобы использовать Rest и гонять в хедере куку или токен приложеньки
Yaroslav 🇺🇦
Выпилить реакт - вот там подгорело наверно у смузи-фронтов)
Rafael 🌵
Yaroslav 🇺🇦
Кстати о похожем говорил Умпутун в послднем подкасте. Но фин, в частности банки и трейдинг, а так же игры на деньги это отдельно стоящая немного в стороне часть веба.
Rafael 🌵
Yaroslav 🇺🇦
Обычно все пишут лендосы, максимум с калькуляторами и воронкой заказв. Магазины с базой товаров которая вся поместиться в 30% памяти средней паршивости вдс-ки. Блоги котигов. Админки и внутри корпоративные приложеньки.
Yaroslav 🇺🇦
Почему?
Почему трейдинг стоит в стороне?
Roman
Roman
угу)
Roman
Alisher
У кого есть проект на продакшн стоят уже , на vue , можно посмотреть ?
Vladimir
Вопрос от новичка) Есть такой код. Почему при срабатывании события данные не передаются в рут? tab.tabid точно есть, а в this.tabid не ложится?
Ivan
Stanislav
Yaroslav 🇺🇦
рынок хавает)
Самое главное что у меня есть знакомый с вебстудией и людьми которые натурально а не виртуально берут заказы в штатах, эмиратах и так по мелочи дальше.
В лофте сидит пачка прогреров на вордпресе. Я хз штук 50. В среднемпо штуке $ зп.
Они просто мега пачками по своим шаблонам клепают разного рода такую утварь и летит у него. Летит очень.
И человек который разрабатывает сложны сервис. Оптимизированный, по канонам сделанный может и доли не иметь от вала того что клепает первый.
Stanislav
Да так оно и есть)
ℝei
Stanislav
Vladimir
this.$nextTick попробуй
Тогда надо в mounted перенести отлов события? Или и в created nextTick работает также?
Stanislav
ℝei
Roman
ℝei
Для асинхронных action, для всего остального мутации
Stanislav
> что все будет через computed
А как должно быть?
R
Слушайте, генерю форму в ручную тоесть отправляю запрос получаю json с типами инпутов сохранил допустим в formData.
отображаю в темплейте фориком. Problem -> v-model does not support dynamic input types. Use v-if branches instead. Как быть?
Stanislav
а как их еще передавать?
Roman
Apache? в 2017? серьёзно?) сори, не удержался
R
ℝei
Vladimir
R
https://jsfiddle.net/c01nd01r/mm9szqvy/1/
не у меня не все так просто
получаю я что-то ввиде
{
"username": {
"model": "String",
"title": "Имя пользователя",
"value": "Имя",
"type": "text"
},
}
по этому форик выглядит так
<div class="form-group" v-for="(form, key) in formData">
и если делать v-model=formData[key] не катит
Stanislav
R
ℝei
R
а я и не знал v-model="username" == @input="username = $event.target.value"😱
Alex
Без стрелочной функции тоже можно) просто сохранять ссылку, это обычный js
Alex
Vladimir
ℝei
Vladimir
Yaroslav 🇺🇦
Та блин народ, я уважаю ответы здесь и отвечающих. Но если человек недогоняет this он тратит ваше время.
ℝei
Vladimir
Я из примера сразу вспомнил о чем речь)
Stanislav
Rafael 🌵
Yaroslav 🇺🇦
Vladimir
Зато столько плюсов ему в карму!)
Vladimir
Не страшно) Зато прокачаюсь, смогу сам помогать и компенсирую)
Завтра
Roman
Завтра
Завтра
Обычно те, кто больше гуглит и меньше задаёт глупых вопросов, добиваются большего
Завтра
Потому что сами ковыряются и лучше разбираются, нежели им какой-нибудь дядя готовое решение написал
Завтра
Вот
ℝei
Завтра
Вообще не вижу смысла на них отвечать
Vladimir
Ребят, как в npm скачать отдельную версию пакета?