Anton Saprykin
Саня ты все усложняешь
Anton Saprykin
Надо писать что бы самому в кайф было
Anton Saprykin
Для сложных калькуляторов у тебя своя библиотечка со своими тестами.
Александр
Александр
Увязка данных между функциями - это другое.
Александр
За годы я понял, что сами прогеры (нормальные прогеры, увлеченные люди и творческие личности в одном флаконе) делятся в основе на два типа, те, кто может выточить деталь, но не видит общей картины. И те, кто видит общую картину и может манипулировать глобальными сущностями, но с деталями туговато.
Александр
Но это не точно...
Андрей
🅅aleriy
@XaveScor "A new developer to the codebase will not struggle to find places where the business logic lives since every module should have a proper name and reference inside the components"
🅅aleriy
https://medium.com/3yourmind/large-scale-vuex-application-structures-651e44863e2f
Андрей
Every menu entry would basically be a module containing several actions, getters and mutations. All those parts are just listed inside a single module file. This will not really scale well, since even modules can get quite large given how much functionality a module needs and result in modules having more than 1000 lines of code.
Андрей
Ну да, vuex нужен для каждого чиха.
🅅aleriy
Андрей
Создаём себе проблемы, а потом их решаем.
🅅aleriy
тут надо помнить поговорку "заставь дурака богу молиться..."
🅅aleriy
и потом это для "Large-scale Vuex application structures"
Андрей
🅅aleriy
какие то мелкие поделки вполне могут обходиться и без vuex
🅅aleriy
там даже redux-thunk не заходил уже
Андрей
Андрей
Особенно "У меня не было проектов, где я бы не смог обойтись без ...".
🅅aleriy
да как бы нет цели тебя переубедить или навязать мнение тебе
🅅aleriy
просто о разного уровня веб проектах говорим
Андрей
Почему?
🅅aleriy
так то я тоже против стрельбу из пушек устраивать там где пушки не нужны
Андрей
Я не говорю, что подобные интсрументы не нужны. Я говорю, что эти инструменты нужно применять очень тонко. В единичных случаях.
Андрей
Я не "большое приложение === размажем всё в vuex"
Андрей
🅅aleriy
в vuex даже саму структуру папок принято называть modules и внутри по модулям все разложить
🅅aleriy
чтобы порядок был
🅅aleriy
чтобы ты знал где какую логику можно найти быстро
🅅aleriy
обращаясь к этой структуре не по именам компонентов, а по назначению сущностей моделей
🅅aleriy
🅅aleriy
я ищу компоненты только в одном случае - когда есть ошибка отображения
Андрей
🅅aleriy
ну ок
Андрей
Глазами просматриваешь?
🅅aleriy
например сущность products в соответствующей модели
🅅aleriy
там есть набор экшинов, которые можно вызывать из компоенентов с параметрами
🅅aleriy
этими экшинами компоненты просят модель измениться
🅅aleriy
забирают данные через геттеры из моделей
🅅aleriy
все красиво и прозрачно
Андрей
🅅aleriy
компоенеты ничего не знают о механике этих изменений, они просто делегируют эту работу моделям
🅅aleriy
ну это можно знаешь с чем сравнить
Андрей
Андрей
Сам об этом только что написал.
Андрей
Потому что бизнес требования не говорятся в виде "Добавьте функциональность в модель 'бла-бла'". А "хочу фигнюшку здесь на этой странице".
🅅aleriy
например ты начальник и у тебя есть подчиненные
ты как начальник должен предоставить генеральному директору отчет, т.е. срендерить его по данным которые дают твои подчиненные
ты можешь сам собирать их в кучу сидеть из raw даты которую тебе принесут и в ручном режиме эти данные запрашивать с каждого
а можешь просто дать команду, ребята сделайте мне отчет! у вас есть правила по которым его надо делать, занимайтесь
Андрей
И если ты лезешь в хранилище сразу, ну... крут. У тебя весь проект в голове сразу.
Андрей
🅅aleriy
надо смотреть на него немного шире
Андрей
Андрей
Я конечно понимаю, что во vue любят создавать новые сущности, но надо иногда останавливаться.
🅅aleriy
можно же просто обходиться document.append(document.createElement('div'))
🅅aleriy
🅅aleriy
но когда у тебя модели сложные и должны знать друг о друге все
🅅aleriy
то ты тут в рамках одного компонента зашьешься
Андрей
Андрей
Все знают о всех.
Андрей
Декомпозиция?
🅅aleriy
хорошо когда у тебя бакенд норм и ты можешь получать данные в нужном виде или юзать graphql для этого
Андрей
Ок, если ты считаешь, что во вью компоненты должны выглядеть как "только шаблон", то без проблем.
🅅aleriy
но часто бывает так, что бакенд на какой-нибудь java и менять его уже никто не собирается
🅅aleriy
Андрей
Я не говорю, что api должно быть частью отображения.
🅅aleriy
но делать это правильно
🅅aleriy
компонент не должен внутри себя делать ручную работу над обработкой моделей
🅅aleriy
он должен сказать getUserList, createUser и т.д.
но там не должно быть логики создания нового пользователя и обработки ошибок связанных с этим