开始使用Lift

10

我想学习Lift框架。不幸的是,我试过的所有文档都已经过时、难以阅读、错误或以上问题的组合体。我试过以下几个:

  • Simply Lift。我尝试书中的一些内容会导致错误。
  • Exploring Lift。这本书的结构非常糟糕。很难同时阅读和在项目中尝试代码。
  • Lift in Action。与前面的情况相同,但需要付费。

P.S. 我看到了类似的问题。大多数都是很久以前提出的。那时候的情况有改善吗?

P.P.S. 还有其他类型安全的Scala Web框架吗(请勿提供Play 2.0,它不是类型安全的。我看不到在Scala中创建它的任何理由)?


5
Play 2.0 中哪些特性不是类型安全的? - Erik Engbrecht
1
它过于依赖反射调用。有很多东西可以更加类型安全,比如会话变量。 - Konstantin Solomatov
会话变量是类型安全的。它们只支持一种类型!我认为这是有意设计的,以防止人们在会话中倾倒大量任意数据,因为会话始终存储为 cookie。反射在哪里使用?它似乎更依赖于代码生成。但我对此还很陌生。 - Erik Engbrecht
3
字符串不足以表示应用程序的状态,因此如果您需要在会话中存储一些更为复杂的结构,则需要编写序列化/反序列化代码。这并非类型安全。如果没有反射,将无法实现其支持的代码重新加载。请查看源代码。 - Konstantin Solomatov
4个回答

7
很不幸,Lift文档的质量参差不齐,存在很大的空缺。
然而,Lift社区充满了非常乐于助人的人。
我的建议是不要玩弄,而是尝试实现一些东西。如果你卡住了,就针对你正在做什么、如何做以及为什么不起作用这些具体的问题提问。
到目前为止,虽然我希望有更好的文档,但我已经能够通过Google或Lift邮件列表获得我需要的每一个答案,尽管我未来可能会在这里提出更多问题。

5

Lift的文档不是它的强项。其哲学更多是“遇到问题就尝试并询问”。以下是一些提示:

Assembla

一个非常有用的资源是http://www.assembla.com/wiki/show/liftweb,其中有很多示例,因此您可以逐步了解它的工作原理。

Mailing List

否则,如果您有特定问题,您始终可以使用邮件列表,即使在我看来,快速探索以解决已经遇到的问题真的很难。http://groups.google.com/group/liftweb

Stack Overflow

最后,Stackoverflow上有一个小社区,所以请随时提问。这是查找答案和创建文档的好方法。

源代码

如果您对函数的行为有特定的问题/疑虑,请不要犹豫探索源代码和scaladoc,它们通常很短,甚至有时还有注释!http://scala-tools.org/mvnsites/liftweb-2.4-M4/#package


3

"简单的Lift。我尝试了一些书中的东西,结果导致错误。"

您遇到了什么具体类型的错误?您是否尝试使用可以从GitHub https://github.com/dpp/simply_lift 下载的 "Simply Lift" 示例来跟随它?

我遇到的唯一错误与我对SBT的经验不足有关,但这是另一个故事。

我主要从那个来源开始使用Lift(Simply Lift + 示例),再加上其伟大的社区和Google(ChrisJamesC已经很好地列出了主要链接),对我来说还不错。

我建议您完成“Simply Lift”教程中提供的所有示例,或者至少在感觉足够自信之前先完成它们,然后再尝试自己做一些东西。这对我来说是学习Lift的最佳方式。此外,每当您陷入困境并且无法在网络上找到解决方案时,欢迎您在Lift Google Group(https://groups.google.com/forum/?fromgroups=#!forum/liftweb)上提问。David Pollak经常直接回答您的问题,因此我对这个框架的社区和Lift的创作者只有赞誉之词。
P.S. Lift的文档可以更好地组织,某些内容肯定可以更好地解释,但在我看来,这只是我必须支付的微不足道的代价,以享受如此美妙的框架。学习曲线比Play陡峭,特别是在开始阶段,但是在我“生存”了第一个星期之后,几乎不可能放弃它的所有优点和原始概念(Lift的“七件事”),并切换到另一个框架。

3

不幸的是,对我来说,这和其他电梯文档一样糟糕。 - Konstantin Solomatov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接