Maksim
начать сейчас серьезное приложение на бэкбон это убить и приложение и свою карьеру
Vitaliy
Мне для spa приложения
Я вот не понимаю. Ты спросил. Опытные тебе сказали - не стоит.
Артём
но я не вижу ответов почему, я вижу что "не модно"
Vitaliy
К чему все дальнейшее. Думаешь тут сидящим требуется тебя переубеждать по какой то причине?)
Артём
нет typescript нет es6
Артём
зачем меня переубеждать, я не заставляю, я спрашиваю в 3 раз что не так с ним
Артём
и 3 раз получаю ответ что не модно
Winni
По бэкбону тебе будет даже некого спросить сейчас, те кто на нем пишут, не смотрят в интернет. А те кто писали стесняются. Все штуки что ты описал есть в том же ангуляре, только в нем есть еще дополнительные вещи, которые избавят тебя от головняков.
Winni
Я в первый раз придумываю всю архитектуру по хотелкам заказчика(тз), и на бэкбоне это очень сложно
Артём
потому-что на основе динамеческих данных формируется контент на странице, т.е загружаются фоточки, текст и прочее в зависимости от желания юзера
Артём
обновления и тд
Winni
Смотри чем отличаются фреймворки, и выбери из них подходящий под твою задачу, сейчас топ это vue, react И angular 4
Vitaliy
Vitaliy
и jquery тебе поможет
Winni
Да, в бэкбоне тебе придется самому писать каждый чих модели, либо обновлять весь экран
Артём
причем здесь аякс и жкуери?)
Артём
тут про арххитектуру больше и компоненты
Vitaliy
причем здесь аякс и жкуери?)
ну тянет чувака на извращения. предлагаю полный набор))
Winni
В общем в бэкбоне нет компонента view, тебе придется самому его написать, некоторые извращенцы использовали рект для этого. И все связи между моделью и контроллером, самому писать, связи между моделями. Изменилось что-то в одной модели ребенке, и пошел описывать как менять модель родителя и вид родителя
Winni
Вот тебе сравнение в некотором роде, только с бэкбоном они не сравнили, потому что он давно не конкурент. https://vuejs.org/v2/guide/comparison.html
Артём
точь в тот, как тут😵 https://habrahabr.ru/post/312022/
Артём
точь*
Maksim
точь в тот, как тут😵 https://habrahabr.ru/post/312022/
так все примерно так и есть, если без иронии
Maksim
там еще много устаревшего уже, TS 1.7 уже древность )
Артём
ну а нафиг все это нужно, когда можно на чистом js написать. С помощью шаблонов организовать структуру приложения. Модули связать медиатором а на поступления и обновление данных прикрутить событийный-шаблон Наблюдатель. Итого: Приложение готово, есть ясность где и что. Есть возможность разширять его. Вес приложения минимальный. Не модно, да, но практично. Любой другой без знаний всего этого может залесть в код и работать с ним, кто хотя бы прочитал пару книжек по js. Это и плюс для бизнеса, приложение не зависит от конкретного работника. Да и на экране все одинакого выглядит и работает, даже если написано без jsx babel es6, достаточно знать как устроены модули, замыкание и объекты.
Артём
как раз архитектура приложения на паттернах, мало теории «Single Page Web Applications / Разработка одностраничных веб-приложений», Майкл С. Миковски, Джош К. Пауэлл
Артём
книга про паттерны «JavaScript Patterns / JavaScript. Шаблоны», Стоян Стефанов
Дима
и 3 раз получаю ответ что не модно
Ты взял устарелый кусок окаменевшей библиотеки, который тебе однако очень приглянулся; он не решает ни одной из проблем, стоящих сейчас перед разработчиком на самом деле, а не в твоём представлении; переубеждать его использовать я не буду, потратить кучу времени на аболютно бесполезную библиотеку из другой эпохи — это твоё право
Артём
к hash url, там про это написано. Его и отслеживаешь, при изменении url, переключаешь что нужно
Maksim
это не стейт
Артём
про флаги или про что?
Артём
ну делаешь объект флагов и там хранишь
Артём
stateMap = {x:1, y:0}
Артём
в каждом модуле в том за что он отвечает
Maksim
ок у тебя модуль мессенджера
Maksim
но в шапке есть каунтер сообщений
Дима
— Да я просто сделаю мутабельный стейт и распихаю его в каждую ды~WAIT OH SHI~~
Maksim
а еще на странице юзера надо вывести 5 непрочитанных сообщений
Maksim
как связывать?
Anonymous
Но лучше конечно потратить кучу времени на свой велосипед с квадратными колесами
Дима
Да ему просто нужно лично ощутить, каково это когда в твоём приложении, по впечатлениям, взорвалась граната
Артём
как связывать?
К примеру, модуль Data получает сообщение аяксом/вебсокетом, при поступление нового он публикует событие, на которое подписаны другие модули Messages, Users, User. Они обновляют свои данные, состояния, и т.д, потом публикуют события (различные) на которые подписан модуль DOM, которые занимается отображением данных на странице.
Maksim
это все прекрасно, только в момент поступления события о новом сообщении страница юзера где их тоже надо отобразить еще не открыта и подписок у нее нет
Maksim
когда она откроется где ей взять инфу?
Артём
так это в модуле user состояние должно быть
Maksim
ну мы уже практически придумали redux
Maksim
осталось только дойти до иммутабельности
Артём
к хешу можно сделать параметр
Артём
состояние чата можно будет добавить в закладки и перейти по url
Дима
Шины событий, эпики и т.д.
Maksim
состояние чата можно будет добавить в закладки и перейти по url
да чат может попапом быть вообще, хэши это мелочевка
Артём
как раз архитектура приложения на паттернах, мало теории «Single Page Web Applications / Разработка одностраничных веб-приложений», Майкл С. Миковски, Джош К. Пауэлл
Код книги https://www.manning.com/books/single-page-web-applications можно посмотреть структуру как он устроен на чистом js. Из плагинов для uriAncor для состояние хеша и jquery для открыть закрыть окно и прочее
Артём
плагины самосабой не главное
Maksim
никто же не спорит что это все можно навелосипедить и на чистом js самому
Дима
Ахахах
Дима
Крутая книжка
Дима
Как в 2007 вернулся
Дима
Жду когда будут рисовать скругления в пейнте
Артём
там про архитектуру больше
Дима
Там про шизофрению больше
Дима
Дима
Всё что вам нужно знать об это книженции
Дима
Maksim
ну это олдскул же
Артём
там модуль каждый файл во время разработке в конце собирается все
Дима
Ты понимаешь что тебя учат работе с палкой копалкой и деревянным топором?
Артём
я понимаю что модули должны быть раздельны друг от друга физически, чтобы не искать их по одному большому файлу. Это организация кода с которая и в C++ проектах и в каких-нибудь MVC Yii2, Laravel и прочее
Артём
require.js наверно?
как угодно, хоть в блокноте
Дима
Тебя. Учат. Говну. Мамонта
Дима
Не ркассказывай откуда это и прочий булщит
Артём
почему?)
Артём
посмотри как фреймворки организованы
Дима
Ну блин, странный вопрос. потому что это говно и потому что это мамонты. Это банально медленно и неудобно
Дима
Братан
Артём
на этапе разработки
Дима
Я знаю как фреймворки организовываются