3

我看到需要额外“短”语法来生成底层代码(通常是 HTML 和 JS)的在线项目数量有所增加,每次我看到另一个弹出窗口时,我都想知道我是否遗漏了什么。

当在不同的团队成员(设计师等)之间传递项目时,他们必须重新学习 HTML 和 JS 等基本语言,肯定会浪费学习和记住这些短代码的额外时间吗?

问题点:YAML用于生成模板,项目(例如) CoffeeScript用于生成 Javascript。我只是想知道其他 Stackoverflow 人是否认为这种粒度级别的抽象有很大的好处,或者考虑到基础技术的改进(我在想 HTML5 / CSS /JQuery) 这里。标记语言是否发展得不足以真正保证这些?

意识到这并不是一个真正的问题,但有兴趣听听社区的观点。我确信在创建自生成代码时这些类型的项目确实有充分的理由,但除此之外,我很困惑 - 许多人每天都在使用它们。这是一个值得加入的潮流吗?

4

3 回答 3

1

就我个人而言,我不认为这是值得的,因为您可以在 javascript 中做的大多数事情已经被 jQuery 等库简化了。至于他们的寿命,很难说。但是,只要您了解 javascript,并且您了解代码输出,那么迁移到一个不使用 CoffeeScript 的新项目就很简单,只需带上输出代码即可。

于 2010-11-06T14:08:06.073 回答
1

任何足够复杂的程序都包含 Lisp 的实现

这是 Lisp 和朋友们多年来提倡的意识形态。基本上,不鼓励您使用“原始”语言编写任何应用程序逻辑。原始语言是通用的和低级的,因此您的逻辑很快就会变得冗长并被支持语言本身所需的大量代码所污染。

相反,创建一个最适合您的应用程序的DSL并在此 DSL 中编写您的逻辑,除了逻辑之外别无他物。将所有讨厌的语言细节隐藏在 DSL 后面。这使得逻辑更容易改进和支持。

另一方面,像 Coffescript、Groovy 等是 IMO 错误的做法。他们基本上是在尝试创建新的通用语言,但使用“更好”的语法,然而,这并不能解决根本问题——这些语言仍然描述抽象计算而不是你的问题域。一种更有效的方法是拥有一种非常基本的底层语言和一个开发良好的宏工具,以简化创建 DLS。这就是 lisp 本身的工作原理,这种方法的另一个例子是Haxe/Neko

于 2010-11-06T14:59:50.753 回答
0

在我看来,我更喜欢 jQuery 来编写简短的 JS 指令,并防止每个人臃肿最终产品。我不喜欢 css 框架,因为我们正在构建巨大的门户,而您并不总是需要隐藏在其中的所有东西。我更喜欢基于一些常见规则编写模块化 css,例如使用 clearfix 清除使用 css 重置。:)

于 2010-11-06T15:00:24.013 回答