2014-02-17 5 views
22

Использует ли кто-нибудь Scala-JS в реальном веб-проекте, но не только для простых JavaScript замена в изолированных env?Scala-JS для реального веб-проекта

Я хотел бы использовать Scala как можно больше (я бы хотел). И кажется Scala-JS претендует на то, что lib я мог бы использовать (сейчас) или в будущем.

Вот почему меня интересует небольшое рабочее решение, которое можно посмотреть, чтобы загрузить (например, PlayFramework приложение, где Scala-JS).

Решение/пример, который может продемонстрировать, что Scala-JS может использоваться в реальной работе по веб-разработке.

Я спрашиваю, потому что what I found около Scala-JS до сих пор вряд ли реально используется.

В: некоторые примеры/доказывает, что он готов к использованию в реальном проекте?

UPDATE (после 1 года):

Есть тонны примеров TypeScript, например .. То, что я имею в виду, когда я сказал, что «примеры» и «реальный веб-проекты». И там много онлайн-тренингов. И если я запрошу в Google: «машинописный github angular», он возвращает 172 000 страниц. ScalaJS не хватает всего этого, и, к сожалению.

Но у него есть некоторые: '"scala-js" github angular' - 4 980 совпадений. Но до сих пор большинство из них «ранняя стадия развития» с «без коммерческой поддержки»

Это одна кажется многообещающим: https://github.com/greencatsoft/scalajs-angular

ответ

27

я не видел форму проверки на сторону клиента конкретно, пока. Тем не менее, есть несколько проектов, которые эффективно используют Scala.js, среди которых:

+0

Существует также https://github.com/hussachai/play-scalajs-showcase –

6

Тогда

  1. W3C использует его в банановых-RF: github.com/w3c/banana-rdf

  2. @jducoeur строит Querki: github.com/jducoeur/Querki

  3. ТипSafe содержит очень существенный шаблон: typesafe.com/activator/template/play-scalajs-showcase

Все вышеперечисленное демонстрирует довольно продвинутые функции & техники.

Тщательный читатель может многому научиться и определить для себя это ScalaJS is ready for prime time.

И, наконец, это https://github.com/SemanticBeeng/play-scalajs-showcase является производным от оригинала, показывающего, как применять модели источников событий и функциональных доменов для перехода от API, ориентированного на CRUD, к функциональному API. Это эксперимент и работа.

+0

Мне это нравится: https://github.com/ greencatsoft/scalajs-angular и https://github.com/greencatsoft/scalajs-angular-todomvc в качестве примеров. Я также поставил ОБНОВЛЕНИЕ на мой вопрос. – ses

+0

С текущим клиентом мы разрабатываем приложение для управления кредитами с помощью ScalaJS, и оно идет гладко. Единственная серьезная проблема - большой размер сгенерированного JS-файла. Мы используем SJS по существу потому, что он позволяет сухую бизнес-логику (не столько для замены родной JS). Мы все еще пишем клиента с помощью TypeScript и используем Durandal. – SemanticBeeng

+0

@SemanticBeeng вы можете поделиться приблизительным размером сгенерированного JS против эквивалентного рукописного JS? Даже грубый постоянный фактор был бы очень полезен. – pkinsky

14

Я только что заметил этот вопрос и, вероятно, должен перезвонить - как уже упоминалось выше, продукт моей компании Querki имеет свой пользовательский интерфейс, который теперь полностью построен в Scala.js. Это около 8 тыс. SLOC Scala, последний раз я проверил: не самая большая программа в мире, но намного сложнее, чем большинство сайтов. Я бы предположил, что он заменит то, что было бы 20-30k SLOC JavaScript, и это действительно единственный способ, которым компания правдоподобна вообще.

Это бета для небольшой компании, но очень в производстве, и это было находкой: код SJS является значительно легче писать и поддерживать, чем JavaScript он заменил, и гораздо более стабильной на практике. Кроме того, подключение внешнего интерфейса SJS к моему заднему концу Akka/Play значительно ускоряет разработку и уменьшает количество ошибок, поскольку API строго типизирован и без шаблонов, в сквозной Scala.

С тех пор, как люди спросили: оптимизированный код JS в настоящее время составляет около 1 мегабайта, а сейчас растет медленно, когда написана вся моя инфраструктура. (Плюс примерно столько же, что и для библиотек JS, которые я использую.) Это не тривиально, но это одноразовая загрузка на выпуск; как только он кэшируется в браузере, пользовательский интерфейс чрезвычайно быстро, намного быстрее, чем динамические страницы, которые были там.

О, и так как вы ищете полностью обработанный пример: исходный код можно найти on GitHub. Это открытый, но ограниченный, поскольку это коммерческий продукт, но вы можете свободно копаться и использовать его для вдохновения. (И не стесняйтесь запрашивать полезные биты: я постепенно поднимаю широко используемые биты и куски в библиотеки, лицензированные MIT.)

+0

Да. Еще один момент: Scala.js взаимодействует с существующей инфраструктурой JS лучше, чем обычно ожидают люди. Querki - это ребенок-плакат: я использую [что-то вроде дюжины библиотек jQuery с открытым исходным кодом] (https://www.querki.net/help/#Credits-for-3rd-Party-Components), и он превращается чтобы было проще использовать jQuery из SJS, чем из JavaScript ... –

8

Я активно строил dashboard webapp для своего запуска с помощью scala.js. Он неполный, но быстро развивается.

Мой первоначальный прототип был основан на угловых.js, используя angulate bindings. Позднее я заменил угловую сетку реактивного типа scala.rx, scalatags и scalacss, которая использует систему типа scala. Вся логика/рендеринг безопасна по типу и на одном языке (scala), а не распространяется на «строкопечатаемые» HTML, CSS и JavaScript.

Хотя этот webapp разрабатывается как внутренний инструмент, он должен быть способен для демонстрации приложения scala.js в реальном мире после его завершения.

+0

Это сделано?) Попытка его с помощью скаляра. – ses

+1

Веб-приложение функционально с некоторыми рабочими примерами. Я также запустил библиотеку визуализации SVG для scala.js (используя D3 под капотом). Вы можете найти его здесь: https://github.com/yakticus/goggles – Julie

1

Официальные списки Scala.js стартовой проекты, созданные с помощью Scala.js: http://www.scala-js.org/community/

+0

Те, кто больше похож на рекламу, чем на проекты .. – ses

1

ThoughtWorks TodoMVC приложение игровая с помощью Binding.scala и Scala.js:

Я не знаю, действительно ли это настоящий веб-проект, потому что это кажется нерегулярным.DEMO содержит только один исходный файл, 147 строк кода, а реализация ReactJS той же функции TodoMVC заняла 488 строк кода.

2

Совсем недавно (2016) у вас есть sri (Scala React interface).

Это библиотека scalajs для создания действительно родной кросс-платформы (мобильных (ios and android) и веб-приложений).
Основано на reactjs и react-native.

Используйте этот модуль для создания приложений на основе браузера:

libraryDependencies += "com.github.chandu0101" %%% "sri-web" % "0.6.0" 
+0

Мне нравится, где он собирается. надеюсь, что он не будет отставать от оригинальной js-реакции (говоря о scalajs-реакции). – ses