锁定老帖子 主题:scala的配套工具
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-29
scala的配套工具 我自己的博客http://www.kaopua.com/blog/2011/09/29/1317234000000.html 用的pebble博客引擎,好烂,看来得改其他的了,还是iteye这边显示的好啊scala的配套工具评估一种开发语言是否能在生产中使用,除了这种语言(语法)本身之外,它的配套工具和生态环境也是必须考虑的重要因素。本文介绍一下scala的配套工具 软件开发的基本环节这个图片我会在很多文章中引用,因为这是我对软件开发基本过程的理解,在考察一个开发环境时,我会考察它在过程中各个节点上的相应配套。scala本身是种编程语言,并不是某种厂商锁定的开发平台,因此需求、分析、设计等阶段并不受限于特定的工具,主要考察一下几方面 在这之前先介绍一下scala的sbaz小工具,这个工具是scala预装的命令行工具,当你把scala下载安装并配置好路径,可以在命令行执行scala的同时,这个sbaz也可用了。这个工具是用来更新和发布一些scala工具和包的,包括scala本身也可以用它来更新,它的官方说明在 http://www.scala-lang.org/node/93 ,不过我觉得记住一下3个命令就行了,因为这个工具并不是很重要,大量的scala包都不在这里发布的,但是在更新scala自身和开发环境时却很有帮助
编码
scalacheck一般不单独使用,前两个框架都有对scalacheck的集成。那scalatest和specs2这两个框架哪个好呢?这也是stackoverflow上的一个热门问题 不过得票第一的答案是scalatest的作者bill venners回答的(⊙ˍ⊙) ,所以。。。其实还是比较中肯啦 BDD风格的单元测试是我开始学scala以后才学到的,现在已经很喜欢这种风格了,因为1、自然,2、可以当作规格说明书看(所以会叫specs2),比如可以这么写
利用scala提供的强大的设计DSL的能力,两种框架都提供了非常好用的写BDD式单元测试的语法,上面的例子是scalatest的写法,也是我本人的开源项目recall中选用的,上面的代码来自MemorySpec scalacheck则完全不同,它让你定义一个等式,然后造各种参数来测试这个等式(默认造100个),比如下面的例子
这个测试的意思是在hint不为空,content不为空的前提下,只要mark了一个(hint,content),用同样的hint一定recall出同样的content,事实上当时一运行就发现hint或content为空时测试失败,才加上了hint不为空,content不为空这两个前提。。。 这个工具能有效的找到一些你没想到的漏洞,感谢haskell社区的数学家们! 构建scala与java有很好的交互性(好吧,其实java调scala并不容易,scala调java非常方便),原来java程序员熟悉的maven和ant一样可以用。 不过scala社区一般用自己开发的(不那么simple的)sbt--simple build tool , 这个工具。。。相当复杂,功能也强大,请务必仔细看官网的说明,好好学习。 我个人建议入门可以参考我的配置 我这个recall项目的0.1.0tag 仅有不到300行代码,功能也简单,并且配置好了scalatest, logback(log4j的升级),h2database等,可以取下来编译编译、把玩把玩。 sbt于maven一样,有compile,package,test等命令,它的强大之处有两点,1、可以sbt回车进入交互模式,输入~compile(或其他命令)监听代码改变,改变后自动执行相应的命令;2、极其有用的console模式,输入sbt console,它会加载你开发的代码和你配置文件里定义的依赖库,然后给你个交互窗口,你可以直接在这里面new加载了的对象,调用方法函数等试效果,如果有什么jar包不熟悉,可以在这里把玩把玩,这个作用只有自己去体会 另外提醒一下eclipse用户请参考IntegrationSupport使用IvyDE approach来搞定,其他的不好使 测试scala代码的测试可以用scalatest,它提供了FeatureSpecz做功能测试,specs2应该也有类似的东西,我没有试过,其他的测试方式我就不熟悉了,毕竟没怎么干过专业测试的活,就不多说了 部署没有什么特殊的,sbt publish可以发布到maven库里,所以原来怎么管理的还是怎么管理 哦了,希望这篇介绍对你进入scala的实用能有所帮助 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 3187 次