Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.03.2019, 12:51
Новичок на форуме
Отправить личное сообщение для QoreCode Посмотреть профиль Найти все сообщения от QoreCode
 
Регистрация: 25.03.2019
Сообщений: 8

Опрос по поводу определения сложности проекта. И необходимости в ней.
Уважаемое сообщество, я, как и любой другой разработчик, время от времени люблю попилить собственные проекты. Пускай небольшие, но полезные для компании в которой я работаю. Но с недавнего времени начал замечать что даже на небольших проектах я начал использовать инструменты которые могут показаться избыточными. Для большего понимания проблемы введу в контекст: сейчас пилю систему but report`а заточенную под ресурсы которыми мы пользуемся в компании (репка) и задумывалась она как очень простая вещь: тестировщик нажимает q+w+e, средствами js делается скриншот и отображается в попап-окне, тестировщик может что-то нарисовать на скриншоте, описать ошибку, и отправить на север, север же отправляет это дело в систему а-ля jira или worksection скрин.

По мере того как проект обрастал функционалом у меня начались проблемы с пониманием того как компоненты должны взаимодействовать между собой. Каким образом можно лучше организовать инициализацию виджета, дабы этот процесс был максимально прозрачен... Вот список функций и компонентов которые будут (или уже) реализованы:
- попап окно
- лоадер
- канвас с возможностью нарисовать (разными инструментами) что-то на картинке (которую можно получить из буфера, с устройства или сделать скрин html2canvas)
- форма с валидацией и динамическими полями (добавили прямоугольник на картинку - добавилось поле в форму)
- список issue который будет загружать issue с сервера или с локального хранилища, с возможностью сортировки, группировки, перехода на нужную страницу, и прочим взаимодействием
- eventList - эдакий список всего что делал пользователь дабы можно было по ctrl+z откатить эти изменения.

Вот примерно мои мысли которыми я руководствовался при сборке проекта (этой версии еще нету на репке):
- так... функционала становится много, нужно как-то организовать иначе потом поддерживать будет невозможно
- крч, нативный js не дает мне тех возможностей что я хотел бы иметь. Многие паттерны, в виду остутствия интерфейсов и абстракции, можно реализовать лишь "условно"... нужно попробовать заюзать ts
- окай, завел сборку проекта webpack+ts+scss... вроде всё круто. Заведу mvvm паттерн для того что бы сценарий работы программы был очевиден. Темболее он подходит как нельзя лучше
- так... мне нужно вести обмен данными между компонентами. Прям напрашивается redux.
- окай, есть redux, но что с него толку если я не смогу подписываться на изменения? RxJS я иду к тебе!
- так.... есть подписка на observer`ах. Но мне нужно менять отдельные участки дома при изменениии этих данных... можно писать функции и руками менять дом, а можно завести реакт.... (тут я еще не решил)
- блин... а не усложнил ли я?)

Собственно с последним вопросом я и пришел к Вам. Интересно ваше мнение где проходит та "грань", после которой стоит переводить проект на перечисленные технологии, и стоило ли мне это делать?

P.S. Вполне возможно что я - дитя js-фреймворков и просто не вижу возможности организовать код иначе, если кто-то видит - буду благодарен дельному совету.

Последний раз редактировалось QoreCode, 25.03.2019 в 12:55. Причина: Не отображаетя картинка, вставлю ссылкой
Ответить с цитированием
  #2 (permalink)  
Старый 25.03.2019, 13:01
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Я думаю, что ваш проект обрастает зависимостями из-за того, что вы думаете о том, как его потом поддерживать.
Не нужно было бы поддерживать, можно было бы на коленке собрать проект из отходов жизнедеятельности и палок и зарелизить, а-ля "буяк-буяк и в продакшен")
Ответить с цитированием
  #3 (permalink)  
Старый 25.03.2019, 13:06
Новичок на форуме
Отправить личное сообщение для QoreCode Посмотреть профиль Найти все сообщения от QoreCode
 
Регистрация: 25.03.2019
Сообщений: 8

По началу так и было. Реализовывал на es5 простыми объектами. Но по мере роста начал понимать что внедрение каждого следующего инструмента вызывает боль. Посему и начал внедрять знакомые мне инструменты (попутно перепиливая проект).
Но возможно я следую по протоптанной дорожке и не вижу лучшего пути реализации проекта... ведь по сути сейчас проект выглядит и очень классно (с точки зрения реализации) и очень странно (столько инструментов ради такой простой задачи... виджета).
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск