帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:模式  Javascript  SCA  JAVA  Scala  
WOOT model for Scala and JavaScript via Scala.js

  • 源代码名称:wootjs
  • 源代码网址:http://www.github.com/d6y/wootjs
  • wootjs源代码文档
  • wootjs源代码下载
  • Git URL:
    git://www.github.com/d6y/wootjs.git
  • Git Clone代码到本地:
    git clone http://www.github.com/d6y/wootjs
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/d6y/wootjs
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
  • Build Status

    带 Scala.js的 WOOT
    • 协作文本编辑,使用WOOT算法。
    • 在 Scala 中实现,在JVM和JavaScript解释器上运行。

    不耐烦的

     
    $ sbt server/run
    
    
    
     

    然后打开 http://127.0.0.1: 8080/ 以编辑文档。

    在同一地址打开另一个浏览器,你将得到协作的想法。

    什么是 WOOT?

    WOOT是协作文本编辑算法,允许多用户("站点") 从共享文档( WString ) 中插入或者 delete 字符的( WChar )。 算法保留了用户的意图,并保证了文本收敛到所有用户的相同状态。

    它的关键属性是简单的,避免了可以靠的网络或者矢量时钟( 可以是 peer-to-peer )的需求。

    密钥引用包括:

    • Oster et,Real,without,without,Real,Real,Real,report,report,report,report,report。

    • Oster,,cscw,cscw,cscw,cscw,cscw,cscw,cscw,cscw,cscw,cscw。

    WOOT代表外操作转换系统。

    演示文稿

    我在 Scala 天 2015处讨论过这个项目: 有视频,也有幻灯片。

    这里项目

    这里项目包含WOOT的Scala 实现。 工具已经用 Scala.js. 编译到JavaScript了,换句话说,这是一个在JavaScript和 Scala 上下文中共享一个实现(。WOOT模型)的例子。

    WOOT只是文本一致性的算法。 你需要带你自己的编辑器和网络层。

    这里示例包括 ACE 编辑器,它连接到浏览器中本地的实现。 更新通过网络套接字发送到http4s服务器,后者还维护模型的副本,但在JVM上。

    Screen Shot of Editor being Used

    性能

    这是一个简单的实现,对于批量操作来说。

    要提高性能,你需要执行以下操作:

    • 衡量你的方案的速度
    • 客户端和服务器之间的批处理消息( 可能)
    • 优化 trimcanIntegrateindexOf 方法。

    我可以在某一点上做到这一点 !

    运行Web服务器时发生的情况

    运行切断代码可能会产生:

    
    $ sbt"project server" run
    
    
    [info] Loading global plugins from.. .
    
    
    [info] Loading project definition from wootjs/project/project
    
    
    [info] Loading project definition from wootjs/project
    
    
    [info] Set current project to woot
    
    
    [info] Set current project to woot-server
    
    
    [info] Fast optimizing wootjs/client/target/scala-2.11/woot-client-fastopt.js
    
    
    [info] Running Main
    
    
    2015-04-08 13:43:52 [run-main-0] INFO WootServer - Starting Http4s-blaze WootServer on '0.0.0.0:8080'
    
    
    ...
    
    
    
    

    要注意,Scala.js 编译器已经在客户机项目上运行,将客户端 Scala 代码转换为 JavaScript。 这个 JavaScript,,是在服务器的类路径上提供的,因此它可以包含在网页中。 网页是 server/src/main/resources/index.html。

    这反映了项目的结构:

    • 客户端 - Scala 源代码,要编译到 JavaScript。
    • 服务器端服务器- - 运行服务器端的源代码,加上其他要服务的资源,比如 HTML,CSS和普通的旧 JavaScript。
    • wootModel - 由客户端和服务器项目共享的Scala 源代码。 这是在JVM和JavaScript运行时中实现的一次WOOT算法。

    探索代码

    • server/src/main/resources/index.html 是客户端的起始点。 这个文件夹还包含一个简单的web socket JavaScript客户端( ws.js ) 和编辑器绑定( editor.js )。
    • editor.js 创建"woot客户端"的本地实例,并启动网络套接字交互。
    • client/src/main/scala/client/WootClient.scala 是WOOT模型的公开接口。 这是 Scala 编译为 JavaScript。
    • server/src/main/scala/main.scala 是接受和广播WOOT操作到客户端的服务器。

    测试

    这里项目的测试是作为 ScalaCheck 属性实现的。

    在JVM中运行测试

    
    sbt> project wootModelJVM
    
    
    sbt> coverage
    
    
    sbt> test
    
    
    
    

    然后打开 wootModel/jvm/target/scala-2.11/scoverage-report/index.html

    发布Woot模型

    它现在将可用

    resolvers +="<repo-name>" at "http://dl.bintray.com/content/<repo-name>/maven",
    libraryDependencies +="com.dallaway.richard"%%%"woot-model"%"<current-version>",

    引用

    Scala.js-学习路径

    如果你是 Scala的新手:

    • 创造性 Scala - 一个免费课程从下划线教学,使用绘画原语支持的图形

    然后。

    许可证

    版权所有 2015 Richard Dallaway

    在Apache许可以证下许可以证版本 2.0 ("许可以证") ;你可以能不使用这里文件,除了符合许可以证。 你可以获得许可证的副本在*

    http://www.apache.org/licenses/LICENSE-2.0

    在规定的法律或者书面许可下,在许可条款下分发的软件在不保证任何种类的担保或者条件的前提下分发,或者明示或者隐含。 查看许可协议下特定语言的许可权限和限制的许可证。



    文章标签:JAVA  Javascript  模式  SCA  Scala  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语