Scalaã§WebAppã®éçºã«å¿ è¦ãªNåã®ãã¨
PerlでWebAppの開発に必要なN個のこと - Islands in the byte stream ã® Scala çã§ãã
ããããã°ã©ãã³ã°è¨èªã§å®éã«WebAppãéçºã§ããããã«ãªãã¾ã§ãä½ãå¿
è¦ã ããããè¨èªä»æ§ã®ç¿å¾ã¯çµãã¦ããã¨ãããããããããæä½é以ä¸ã®ãããªç¥èãå¿
è¦ã ã¨æããããã¨ããããScalaã«ã¤ãã¦ç¥ã£ã¦ãããã¨ãæ¸ããã
ããã±ã¼ã¸ããã¼ã¸ã£
sbt ãå
¨ã¦ãã£ã¦ããããScala ã®ãã¼ã¸ã§ã³ç®¡çããã©ã¤ãã©ãªã®ãã¼ã¸ã§ã³ç®¡çãã
http://www.scala-sbt.org/
Maven ã gradle ã使ç¨ãããã¨ãã§ããã
ã¢ããªã±ã¼ã·ã§ã³ãµã¼ã
Scala ã® Web ã¢ããªã¯ 2 ã¤ã®ã¿ã¤ãã«åãããããJava ã® Servlet API ã使ç¨ãããã®ã¨ã使ç¨ããªããã®ã§ãããã©ã®ãã¬ã¼ã ã¯ã¼ã¯ãã©ã¤ãã©ãªã使ããã«ãã£ã¦å¤ãã£ã¦ããã
Servlet API ãç´æ¥ã¾ãã¯éæ¥çã«ä½¿ç¨ããå ´å㯠Tomcat ã Jetty ãªã©ã®ãµã¼ãã¬ããã³ã³ããã使ç¨ãããã
http://tomcat.apache.org/
http://www.eclipse.org/jetty/
Servlet API ã使ç¨ããªããã®ã®å¤ã㯠Akka ã Nettyãã¾ã㯠Netty ã®ã©ããã¼ã§ãã finagle ãå©ç¨ããç¬èªã«å®è£
ããã¦ããã
http://akka.io/
http://netty.io/
https://github.com/twitter/finagle
PSGIãRack ã®ãããªãã®ã¯ã¾ã ãªããhttp4s ããããç®çã«éçºããã¦ããããã ã
https://github.com/http4s/http4s
ã«ã¼ãã£ã³ã°ã¨ãªã¯ã¨ã¹ããã©ã¡ã¼ã¿ã®å¦ç
æãã¨ã£ã¤ããããã®ã¯ scalatra ã ãããServlet API ã®ä¸ã« Ruby ã® Sinatra ã©ã¤ã¯ãª DSL ãæ§ç¯ãããã®ã ã
http://scalatra.org/
unfiltered ã Akka ãã¼ã¹ã® spray ã人æ°ãããã
http://unfiltered.databinder.net/Unfiltered.html
http://spray.io/
ãã¼ã¿ãã¼ã¹
ãããä¸çªã®æ©ã¿ã©ããã ã
Scala ãããã¼ã¿ãã¼ã¹ã¸æ¥ç¶ããã®ã«ã¯ JDBC ãå©ç¨ããã®ãä¸è¬çã§ãJDBC ããã¼ã¹ã«æ§ã 㪠ORM ã DSL ãä½ããã¦ããã
Scala ã®ç·æ¬å±± Typesafe ãéçºãã¦ããã®ã¯ Slick ã ããã¼ã¿ãã¼ã¹ã®ãã¼ãã«ã Scala ã®ã³ã¬ã¯ã·ã§ã³ã®ããã«æ±ããã¨ãã§ããã
http://slick.typesafe.com/
ORM ã¨ãã¦ã¯ Squeryl ã人æ°ãããã
http://squeryl.org/
ç§ã®ãããã㯠scalikejdbc ã ã
https://github.com/seratch/scalikejdbc
JDBC ãå©ç¨ããªããã®ã§ã¯ postgresql-async, mysql-async ããããnon-blocking 㪠DB ã¢ã¯ã»ã¹ã«èå³ãããã°ãã§ãã¯ãã¦ããã¨è¯ãã ããã
https://github.com/mauricio/postgresql-async
ãã¥ã¼ã®ã¬ã³ããªã³ã°
XML,HTML ã«ã¤ãã¦ã¯ããåç´ãªå ´å㯠Scala ã® XML ãªãã©ã« ã§äºè¶³ãã¦ãã¾ãã
è¤éã«ãªã£ã¦ããã Scalate ã使ãã¨è¯ããJade, SSP, Mustache, Scaml ãªã©ã®è¨æ³ã«å¯¾å¿ãã¦ããã
http://scalate.fusesource.org/
Play ã® Scala Template ã«æ
£ãã¦ããã®ã§ããã° Twirl ã¨ããé¸æè¢ãããã
https://github.com/spray/twirl
Json ã®ã¬ã³ããªã³ã°ã«ã¯ Json4s ã便å©ã ã
https://github.com/json4s/json4s
HTTPã¯ã©ã¤ã¢ã³ã
dispatch ãæåã ã
https://github.com/dispatch/dispatch
https://github.com/dispatch/reboot
dispatch ã® API ã¯ããªãå¥å¦ãªã®ã§å¥½ãå«ããå¥ããã
æ°ã«å
¥ããªããã° Apache ã® HTTP ã¯ã©ã¤ã¢ã³ãããAsyncHttpClient ãªã©ãJava ã®ã©ã¤ãã©ãªãé¸ãã§ä½¿ãã°è¯ãã
dispatch ãããããå©ç¨ãã¦å®è£
ããã¦ããã
http://hc.apache.org/
https://github.com/AsyncHttpClient/async-http-client
ãã¹ããã¬ã¼ã ã¯ã¼ã¯
ScalaTestãSpecs2 ãåç§ããªãã¦ããã
ç§ã¯ Scalatest ã好ãã ã
http://www.scalatest.org/
http://etorreborre.github.io/specs2/
å®è¡ã¯ sbt ã® test ã³ãã³ãã§è¡ãã
WAF
以å㯠Lift ãä¸çªäººæ°ã ã£ããä»ã§ã¯ Play 2 ãåã£ã¦ä»£ãã£ãã
http://www.playframework.com/
Play 2 ã使ç¨ããã°ä¸ã«æããã¢ã¸ã¥ã¼ã«ã®å¤ãã¯å¿
è¦ãªããªãã
以ä¸ãä»ã«ãããã°ææãã¦ã»ããã