R015.现场.快用Scala(4月)
不等不靠,有囧有料。终日乾乾,或跃在渊。
play是全栈式框架,借鉴了MVC和ROR,
有PHP/ROR的开发速度和JAVA的健壮。
天生异步,事件驱动,无状态热替换。
@史荣久 / 2015-04-29 / CC-BY-SA-3.0
观看视频
内容摘要
- play是全栈式框架,借鉴了MVC和ROR,有PHP/ROR的开发速度和JAVA的健壮。
- type safety,编译器和IDE做智能检查和提示,提高代码质量和开发效率。
- play相比于servlet:无状态热替换,非阻塞全异步,线程与CPU核心数相关。
- play基于Actor,天然的伸缩性(scalability),性能高于Servlet容器。
- 不科学粗糙测试(
siege -c N -r 50
),N: tomcat=500,play=1000。 - play和新技术结合紧密,支持长连接,Coffee,LESS,JSON,大数据等。
- actor-based是事件驱动,简单讲比object-based多了异步消息机制。
- actor始于1973年,业界案例是erlang,HA到9个9,全年31ms不可用。
- PS:2个不相干的设计模式:NIO的reactor,AIO的proactor模式。
- play的Session是一个token,使用cookie,不应该做cache。
- play有4个线程池。使用阻塞资源(JDBC/BIO/WS),需要使用Future。
- idea社区版,不支持play,开发scala正常,view模版不能高亮和提示。
- eclipse(scala-ide)进行测试(unit-test),调试(debug)。
- sublime装play2插件,语法标亮,适合阅读代码。
- sbt中的fork=true时,jvm-debug和热替换hotswapping不正常。
- sbt的evicted警告:版本统一(升或降级)或排除(
exclude(#,#)
)。 - 生成eclipse工程时,twirl产生的源码,没有加入src,是个bug。
- 代码讲解:电脑管理系统(bootstrap,jdbc,CRUD)。
- 代码演示:play提供filter来跨站请求伪造(CSRF)。
- 求助(一):Firfox不显示
activator ui
,Chrome好用。 - 求助(二):ScalaIDE在Cario-Dock里不显示图标,unity好用。
参考资源
- playframework官网
- play哲学:历史和一些为什么
- 作者说,为啥不要servlet
- play手册:很清秀简洁
- scala开发手册
- IDE设置:eclipse设置
- 会话管理:session和flash
- 模版引擎:twirl
- 跨站请求伪造 CSRF
- ScalaIDE官方网址
- Sublime插件:高亮和提示
- fork时jvm-debug问题
- 生成eclipse工程时src丢失
- 电脑管理系统:bootstrap,jdbc
欢迎围观
if (you.accept(MoilionCircle.SPIRIT)) {
if(you.haveADL()){
MoilionCircle we = you.search(MoilionCircle.SLOGAN);
we.welcome(you);
}
if(you.share(this)){
We.thank(you);
We.mayFind7Moilion();
}
}
花絮后记
【2015-04-29】
十分悲催,视频录制,失败了三次,:(
周日(26),30分钟,某楼某号,卡拉OK哥音响钢钢好,大半夜开动。囧!
周一(27),20分钟,网络突然中断,程序一下生活不能自理了。囧!
周二(28),40分钟,手欠出个编译错误,5分钟没搞定,重录。囧!
尝试了大量的窗口缩放,以便看的更清,结果弄得自己眼花。
快捷键也做了修改,还有片头的启动命令。
【2015-06-11】
升级到 ScalaIDE 4.1.0 和 playframework 2.4.0
eclipse中class问题就没有了,在project/plugin.sbt中添加
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0-RC2")
sbteclipse-plugin 4.0还不是稳定版,是自动添加路径解决了。
target/scala-2.11/routes/main
target/scala-2.11/twirl/main
题图:play的官网做的很清新和现代,官方文档也是。但是,好看就一定好用么?我们一起来见证。