Rafael 🌵
Wss требует скурпулезной работы над системой ивентов
Rafael 🌵
Согласен с Ярославом что это преждевременная оптимизация
Yaroslav 🇺🇦
Ну у меня веб это просто фан а не работа, да и ковыряю я его по настроению, так что могу ошибаться. Но.. Ты можешь закинуть запрос и никогда не получить ответ. Так и ждать. Туда же пробемы с статусом, и то что написал Рафик. Ты не можешь на коленке склепать curl. И если твое апи становится хоть немного открытым, даже в закрытом круге ты превращаешь работу не твоих приложений с твоим сервисом в такой сбе местечковый ад
Yaroslav 🇺🇦
Могу ошибаться. Поправте если чего не так
Rafael 🌵
На самом деле я уверен, что это всё решено, если это модификация crud и под это дело уже сделали свой apipie/apicase
Roman
никто не мешает предоставлять и HTTPS и WSS, не вижу проблемы... просто интерфейсы разные, а функционал на сервере один и тот-же
Roman
просто с WSS все данные по одному каналу идут и аутентификация лишь одна
Roman
нам не нужен CRUD
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 🇺🇦
Кстати о похожем говорил Умпутун в послднем подкасте. Но фин, в частности банки и трейдинг, а так же игры на деньги это отдельно стоящая немного в стороне часть веба.
Yaroslav 🇺🇦
Обычно все пишут лендосы, максимум с калькуляторами и воронкой заказв. Магазины с базой товаров которая вся поместиться в 30% памяти средней паршивости вдс-ки. Блоги котигов. Админки и внутри корпоративные приложеньки.
Yaroslav 🇺🇦
Почему?
Почему трейдинг стоит в стороне?
Roman
Yaroslav 🇺🇦
REST по своей натуре проблематичен, GraphQL лучше в некоторых аспектах
Рома никто ж не спорит. Диктатуры тоже нет. Хотите gQL - берите. Пользуйтесь на здоровле, как говорится
Roman
угу)
Alisher
У кого есть проект на продакшн стоят уже , на vue , можно посмотреть ?
Vladimir
Вопрос от новичка) Есть такой код. Почему при срабатывании события данные не передаются в рут? tab.tabid точно есть, а в this.tabid не ложится?
Yaroslav 🇺🇦
рынок хавает)
Самое главное что у меня есть знакомый с вебстудией и людьми которые натурально а не виртуально берут заказы в штатах, эмиратах и так по мелочи дальше. В лофте сидит пачка прогреров на вордпресе. Я хз штук 50. В среднемпо штуке $ зп. Они просто мега пачками по своим шаблонам клепают разного рода такую утварь и летит у него. Летит очень. И человек который разрабатывает сложны сервис. Оптимизированный, по канонам сделанный может и доли не иметь от вала того что клепает первый.
Stanislav
Да так оно и есть)
Vladimir
this.$nextTick попробуй
Тогда надо в mounted перенести отлов события? Или и в created nextTick работает также?
ℝ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
Переведи ошибку все ясно же
вот именно я понял начало а вот зачем v-if нет
Vladimir
Не у тя там походу и правда this не к vue ссылается
Как сделать, чтобы ссылался на vue?
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] не катит
Alex
Как сделать, чтобы ссылался на vue?
Использовать стрелочные функции где надо например
Vladimir
Использовать стрелочные функции где надо например
Спасибо, стараюсь их избегать так как пишу без бабеля. Но видимо придется как-то потом прогонять это дело через него. И со стрелочной функцией помогло.
R
а я и не знал v-model="username" == @input="username = $event.target.value"😱
Alex
Без стрелочной функции тоже можно) просто сохранять ссылку, это обычный js
Alex
Можно пример, пожалуйста?)
ну как в JS можно сохранить ссылку)
Stanislav
Как сделать, чтобы ссылался на vue?
created: function() { var self = this; bus.$on('tab-selected', function(tab) { self.tabid = tab.tabid; }) }
Vladimir
Yaroslav 🇺🇦
Та блин народ, я уважаю ответы здесь и отвечающих. Но если человек недогоняет this он тратит ваше время.
Vladimir
Я из примера сразу вспомнил о чем речь)
Stanislav
Да тут после ухода Ильи ниодного серьезного вопроса не было)
да не сказать, что при Илье их прям куча была)
Vladimir
Зато столько плюсов ему в карму!)
Rafael 🌵
Зато столько плюсов ему в карму!)
Столько же, сколько и тебе минусов
Vladimir
Не страшно) Зато прокачаюсь, смогу сам помогать и компенсирую)
Завтра
Обычно те, кто больше гуглит и меньше задаёт глупых вопросов, добиваются большего
Завтра
Потому что сами ковыряются и лучше разбираются, нежели им какой-нибудь дядя готовое решение написал
Завтра
Вот
Завтра
Да тут после ухода Ильи ниодного серьезного вопроса не было)
Как будто при нем было лучше) он просто разбавлял трэш интересной инфой
Завтра
Не, он давал реальные развернутые ответы)
Не вижу смысла развёрнутых ответов на банальные вопросы
Завтра
Вообще не вижу смысла на них отвечать
Vladimir
Ребят, как в npm скачать отдельную версию пакета?