Рубрики
Без рубрики

Почему мы выбрали Turbolinks вместо создания спа -салона

Мы активно выбрали Turbolinks, установили и интегрировали в наше приложение. Я думаю, что это делает нас довольно уникальными. Tagged with JavaScript, WebDev, производительность, Elixir.

Примечание: Я Первоначально написал это в 2016 году , но я перечитываю его сегодня, и это все еще очень актуально. Мы все еще используем Turbolinks без планов переключения. Наслаждаться!

Changelog.com не приложение Rails, но это A Turbolinks приложение. Подумайте об этом на мгновение.

Это означает, что мы не используем Turbolinks, потому что это Omakase . Мы не используем Turbolinks, потому что забыли удалить его из нашего Gemfile. Мы активно выбрали Turbolinks , установил и интегрировал в наше приложение. Я думаю, что это делает нас довольно уникальными.

Вопрос номер один, который мы получили с момента Открыть поиск сайта есть, “Почему турболинкс?” 1

Вот почему мы выбрали это (и, возможно, вам тоже следует).

Это сводится к одному слову: Мужество прагматизм

Легко получить новую жару. Я даже более склонна к этому, чем большинство, так как мы поговорить с создателями Новой горячей Все об их новой жаркостью на еженедельной основе. Но существует большая разница между а) не отставкой с открытым исходным кодом, и б) привязывание вашей телеги к каждой лошади, которая нажимает с новыми блестящими туфлями.

Я считаю, что я наиболее эффективен в качестве разработчика, когда мне сообщают, но осторожен в тенденциях. Одна тенденция, которую я давно скептически настроен, – это Деймо одностраничное приложение . Не поймите меня неправильно, спа -салоны – это законная (и часто лучшая) архитектура для многих приложений 2 Анкет Однако, когда приложение строится как спа -центр, когда оно не должно быть, Плохие вещи случаются с хорошими людьми Анкет

По моему опыту, мы слишком часто ухаживали за тем, чтобы спрашивать себя « Почему это не должно быть спа -салоном?» Вместо того, чтобы спрашивать себя “ Почему это приложение должно быть спа -салоном?” Потребности приложения должны управлять архитектурой, а не желания разработчика.

Сложная вещь, с которой я столкнулся, спрашивая себя: «Почему новый Changelog.com должен быть спа -салоном?» Это то, что у нас есть одна (важная) функция, которая просто кричит: «Спа!»

Постоянный аудиоплеер, который остается в нижнем колонтитуле и продолжает играть, когда вы ориентируетесь.

Но это все Анкет Есть Никакой другой функции или необходимости что мы представляли, что это потребует спа. Действительно ли я хотел раздвоить кодовую базу, увеличить полезную нагрузку JS и выберите фронтальную структуру все, чтобы у нас был постоянный аудиоплеер?

Технолог внутри меня абсолютно хотел. Прагматик знал, что был более простой путь.

Вещи изменились на земле турболанкса

Когда Turbolinks Сначала отправлены с рельсами 4.0 Еще в 2012 году это вызвало много головных болей для разработчиков по всему миру.

Некоторые люди думали, что это плохая идея вообще, но это не резонирует со мной, потому что GitHub использовал пиджакс (Вдохновение Turbolinks) с большим успехом.

Другие люди дали ему шанс, пока они не прибегают к краям, разочаровывающим ошибкам и более сложной умственной модели, чем рекламируют. Я попал в этот лагерь.

Другими словами, Turbolinks не соответствовал своему обещанию Таким образом, большинство людей списали это и переехали со своей жизнью (некоторые сбросили любое упоминание о его названии). Но команда, стоящая за библиотекой, продолжала работать над ней, улучшая вещи на этом пути. Спустя четыре года, и Turbolinks немного изменился Анкет Вот быстрый список функций и изменений, чтобы поднять вас на скорость:

  • Он подвергся полной переписывании для Turbolinks 5 (см. Turbolinks Classic )
  • Это не требует обнаружения запросов на стороне сервера или Альтернативный рендеринг
  • Это не зависит от jQuery или любой другой библиотеки
  • Он включает в себя панель прогресса на основе загрузки на основе CSS
  • Он может перезагружаться при изменении активов
  • Он может сохранять элементы по страницам
  • Вы можете установить его с NPM/пряжа и загрузите его WebPack

Эти последние два пулевых очка предоставили именно то, что нам нужно для нашего постоянного игрока. Если вы не смотрели на Turbolinks с момента выпуска версии 5, я рекомендую вам это сделать.

Использование его с Фениксом заняло меньше времени, чем чтение его Readme

Я ложно предположил, что использование турболонков за пределами рельсов было бы жестким. Вот что потребовалось:

  1. Добавить турболинк в зависимость в Наш пакет.json
  2. Импорт Turbolinks AT вершина app.js
  3. Позвоните Turbolinks.start (); в нижняя часть app.js
  4. Добавить Data-Turbolinks-Permanent к Игрок Div

С этим я закончил, и это просто сработало. При этом Turbolinks не совсем gotcha бесплатно. Есть несколько вещей, которые нужно помнить при написании JavaScript вашего приложения. Обязательно прочитайте и понимаете Создание вашего приложения Turbolinks Раздел Readme, и все будет в порядке.

Как однажды сказал мудрый старший разработчик: это зависит от

Знаю, знаю. Сбалансированные рассуждения о том, какие инструменты и практики мы должны использовать, не для популярного письма, но это делает для хороших систем. Я здесь не для того, чтобы вручить волну и заявить, что вы должны отказаться от своей текущей вещи и использовать Turbolinks.

Есть много причин, по которым наше приложение отличается от вашего, некоторые из которых подходят для этого решения. Я перечислю несколько Так что вам не нужно написать нам в гневе:

  • В конечном счете, мы сайт на первом контенте. Очень немногие контентные сайты требуют достаточно богатых взаимодействий, чтобы потребовать спа -салона.
  • У нас не так много JavaScript и очень немногие (общедоступные) подачи заявок, поэтому мы не достигли некоторых из более сложных сценариев, где Turbolinks могут упасть.
  • По мере роста наших потребностей мы можем прийти к тому, что нам нужна маршрутизация на стороне клиента. Я сомневаюсь в этом, но это возможно.

В конце концов, мы достигли нашей цели с минимальными инженерными усилиями и запустили наш сайт с большим признанием. Люди любят нашего настойчивого игрока, и я люблю Turbolinks за то, что он помогал нам справиться с таким апломбом. Если вы написали Turbolinks Off, сейчас может быть хорошее время, чтобы дать ему второй шанс Анкет

  1. Вопрос № 2: «Как это так быстро?» Turbolinks помогает в этом, но это в основном вина Эликсира. ↩

  2. Мой первый спа был в 2010 году, когда Я помог Grooveshark (RIP) Переключите от Flash на веб -приложение. ↩

Оригинал: “https://dev.to/jerodsanto/why-we-chose-turbolinks-instead-of-building-an-spa-21o0”