卷二第五章过关套是一款由腾讯游戏开发的游戏,它是一款以传统的中国文化为背景的休闲益智类游戏。在这个游戏中,玩家将扮演一位古代的少年,在古代中国的大唐帝国里寻找宝藏。
卷二第五章过关套有多个关卡,玩家需要通过各种障碍和考验来通过关卡。在不同的关卡中,有不同的障碍和考验:有些是数学问题、有些是解谜、有些是对话、有些是打怪物、有些是打BOSS。
此外,卷二第五章过关套也包含一个多人对战功能:当你通过一个关卡时,你可以和别人一起来对战。你可以和别人分享你的成就;也可以和别人分享你遇到的难题。
// 初始化函数 function init(){ // 初始化界面 initUI(); // 初始化数据 initData(); // 初始化场景 initScene(); // 初始化怪物 initMonster(); // 初始化BOSS initBoss(); // 初始化多人对战功能 initMultiplayerBattle(); }
Preface:
这篇文章是在图灵社区中接受的第一份翻译工作 ---- 翻译AOSA(The Architecture of Open Source Application),目的是:
- 在翻译文档的过程中深入学习开源软件架构,同时进行知识共享
- 认识更多的人
以下是AOSA的第2卷的第22章,关于Yesod这个Web框架的(由),Yesod的简单介绍可以参照Wiki,及其官网. 由于是初稿翻译,今后也将不断完善,欢迎指正。
Yesod 是用Haskell语言编写的Web框架。目前流行的众多Web框架得益于其宿主动态语言的某些特性,而Yesod则不同----其得益于Haskell的静态语言的特性,使得代码更高效,也更安全。
Yesod的开发从两年前起至今,一路不断地发展,也使之变得越发地强大。Yesod被创造伊始,便是为了满足解决实际项目问题的需要,同时其也在实际项目经验积累中不断地完善起来。起初,该框架的开发以及维护完全就是“个人秀”的行为,而紧接下来的一年里,在源自于社区不断开发以及维护努力之下,终于使得Yesod一跃成为了非常活跃的一个开源项目。
Yesod处于萌芽阶段时,并没有很好的定义、设计,有哪个实际项目组愿意尝试其进行开发是一件让人想都不敢想的事。后来,Yesod的变更使之逐渐进入稳定阶段,并且也被应用到了一些实际项目中,这时候我们也开始着手对设计决策的不足进行重新考察。那时起,我们将改善项目的主要精力投放于如何让面向用户的API更易用 ---- 很快我们有了稳定的1.0发行版。
你可能会问:为什么要再开发一个Web框架呢? 或者让我们换一种提问方式:为什么要用Haskell呢? 一般看来,目前世界上大多数开发者都围绕以下两类语言风格:
静态类型语言,比如Java,C#和C++。这些编程语言提供高效的代码执行以及类型安全,但开发起来总让人觉得比较笨重
这是对语言的一种错误的二分法。静态类型语言没有理由变得这么愚蠢。Haskell在作为强类型语言的同时,也兼顾了许多Ruby和Python中的表达特性。事实上,Haskell的类型系统比Java及其语言家族更加严谨,能在编译期纠正更多的错误:空指针异常被排除了;不可变的数据结构简化了代码推理的同时,也简化了并行与并发编程。
那么为什么选择Haskell? 它是一门高效的,对开发者友好的编程语言,它也提供了许多编译时期程序正确性的检查。
Yesod的目标就是Haskell的强大特性引入到Web开发中去。Yesod努力让你的代码更加紧凑,尽最大可能让你的每一行代码在编译器都完成正确性检查。换句话说,与需要大型库去单元测试程序基本属性相对地,编译器都为你做好了。
从深层面来说,我们在Yesod中运用了尽可能多的高级性能优化技术,有了它们的帮助,你的高层次代码运行起来便能如虎添翼。
总的来说,Yesod与其他主流框架(Rails,Django之流)大同小异。其主要采用了MVC范式----通过一个模板系统将逻辑与表现分离,同时提供了一个对象关系映射(ORM)系统,以及一个用于完成路由的前端控制器。
Yesod强大的地方在于一些细节之处。Yesod尽可能在编译阶段捕获错误或者异常,而非延迟到运行时,并且通过类型系统提供自动化捕捉bug以及保证安全性缺陷。尽管Yesod的目标是维护一系列用户友好,高层的API,但其采用了许多函数式编程世界的新技术来提升程序的性能的同时,也不惧对开发者暴露这些内部细节。
Yesod在架构上的主要挑战来自于如何平衡这两个看上去相互冲突的目标。举例来说,Yesod的路由方式(称为类型安全的路由)并没有格外标新立异。从历史上来看,实现类似问题的解决方案总是一个乏味,伴随错误丛生的过程。应对类似的问题,Yesod的解决方案在于采用了模板Haskell(Template Haskell,代码生成的一种形式)使得一些中间步骤实现了自动化,从而加速了解决方案实现的过程。
类型安全的HTML已经存在好一段时间了,在这个方面,Yesod既保证类型安全的威力得到充分发挥,也保持了对于开发者友好的通用模板语言所应有的特点。
待续..
jQuery removeClass() 方法jQuery HTML/CSS 方法实例 从所有的 p 元素移除 intro 类:$(button).click(function(){ $(p).removeC...
jQuery first() 方法jQuery 遍历方法实例 选取第一个 div 元素内的第一个 p 元素:$(div p).first()定义和用法 first() 方法返回...
jQuery slice() 方法jQuery 遍历方法实例 从带有索引号为 2 的 p 元素开始选中 p 元素:$(p).slice(2)定义和用法 slice() 方法选...
jQuery 文档操作参考手册实例在 div 元素中包裹每个段落:$(.btn1).click(function(){ $(p).wrap(div/div);});亲自试一试定义和...
jQuery - 选择器jQuery 库利用级联样式表(CSS)选择器让我们快速而方便地访问文档对象模型(DOM)中的元素或元素组。jQuery 选择器...