问题标签 [dynamic-languages]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1644 浏览

refactoring - 动态语言中是否可以进行自动重构?

也许我受到动态语言(Netbeans 上的 Ruby 和 Eclipse 上的 Groovy)经验的限制,但在我看来,动态语言的本质使得重构变得不可能(重命名方法、类、上推、下拉、等)自动。

是否可以用任何动态语言(使用任何 IDE/工具)自动重构?我对 Ruby、Python 和 Groovy 以及重构与所有 Java IDE 中可用的 100% 自动重构的比较特别感兴趣。

0 投票
1 回答
90 浏览

python - 请求关于将对象从动态语言持久化到文档数据库的建议

您对将动态语言中的对象保存在文档数据库中的最优雅方式有任何见解吗?

我在 C# 方面有扎实的背景,并且刚刚开始使用 Python 进行编程。同时,我正在尝试学习 MongoDB 的诀窍。

现在我想知道:将数据保存到 MongoDB 数据库的最优雅的方法是什么?我考虑了几种方法:

  1. 使我所有的 Python 类都能够创建表示其状态的字典和列表图。此外,让他们能够从这样的图表初始化他们的状态。当我想持久化一个对象时,我会询问它的图形表示并持久化。当我想获取一个对象时,我将检索一个文档图并将其提供给__init__我的类的方法。

  2. 创建一个单独的 Mapper 类,能够检查给定对象并创建字典和列表图,然后我可以将其存储在 MongoDB 中。映射器还将负责创建其数据已从数据库中检索到的对象。

  3. 我尝试了mongoengine,一个文档对象映射器。但是,当它迫使我从特定类(文档)派生我的类时,我感到很失望。它让我想起了微软的 Entity Framework 1.0 和缺乏 POCO 的支持。我不想被迫从特定的类派生。感觉不对,但我不确定这是否真的是动态语言中的问题。

我的 C# 背景是否阻碍了我的思考?我确信我还没有理解动态语言提供的灵活性程度,因此任何关于最佳实践的建议或提示都将不胜感激。

谢谢你。

0 投票
1 回答
345 浏览

emacs - CEDET 为动态语言带来了哪些便利?

我一直在研究 CEDET,但似乎它的大部分功能更能吸引使用静态类型语言的开发人员,而且我对它似乎需要的大量修补工作感到有点冷淡。

由于我主要使用 ruby​​ 和 javascript,所以我想知道在普通 TAGS 文件上使用这些解释的、动态类型的语言会带来什么样的改进?

0 投票
4 回答
461 浏览

dynamic-languages - 所有动态语言都对打字友好吗?

一方面是 Java,另一方面是 Ruby/Groovy,我知道在第二个阵营中,我可以自由地打错字,直到运行时才会被发现。所有动态类型语言都是这样吗?

编辑:我被要求详细说明错字的类型。在 Ruby 和 Groovy 中,您可以将一个从未读取过的意外名称分配给一个变量。你可以调用不存在的方法(显然你的测试应该捕捉到这一点,据说)。您可以引用不存在的类等。基本上任何有效的语法,即使有印刷错误,在 Ruby 和 Groovy 中都是有效的。

0 投票
7 回答
631 浏览

python - 哪种动态语言可以轻松使用其他语言的库?

告诉你为什么你认为 Python、Perl、Ruby 等最容易插入其他语言的模块,而无需考虑。

为了澄清,一个例子:我想用 Python 编写业务逻辑,但使用作为 Perl 模块方便地存在的功能。

换句话说,哪种语言“适合”最多的模块?

0 投票
7 回答
2166 浏览

ruby - Scala 中缺少哪些动态语言(如 Ruby 或 Clojure)的特性?

当您选择静态类型语言如 Scala(或 F#、Haskell、C#)而不是动态类型语言如 Ruby、Python、Clojure、Groovy(具有宏或运行时元编程功能)时,您在实践中会失去什么?请考虑最好的静态类型语言和最好的(在您看来)动态类型的语言,而不是最差的语言。

答案摘要

像 Ruby 这样的动态语言相对于像 Scala 恕我直言的静态类型语言的主要优势是:

  • 快速编辑运行周期(JavaRebel 是否缩小了差距?)
  • 目前 Scala/Lift 的社区比 Ruby/Rails 或 Python/Django 小得多
  • 可以修改类型定义(尽管动机或需要不是很清楚)
0 投票
3 回答
119 浏览

javascript - 您如何知道您正在使用的 JavaScript 库是否会在升级后破坏您的代码?

因此,您在网站中使用了一堆 javascript 库。您的 javascript 代码会调用多个 API,但在升级后每隔一段时间,其中一个 API 会发生更改,并且您的代码会在您不知情的情况下中断。

你如何防止这种情况发生?

我最感兴趣的是 javascript,但任何关于动态类型语言的答案都是有价值的。

0 投票
3 回答
1258 浏览

interface - 动态语言界面?

接口(或所有方法抽象的抽象类)是 C#、JAVA 等静态类型语言的有力武器。它允许以统一的方式使用不同的派生类型。设计模式鼓励我们尽可能多地使用接口。

但是,在动态类型语言中,不会在编译时检查所有对象的类型。他们不必实现以特定方式使用的接口。您只需要确保它们定义了一些方法(属性)。这使得接口不是必需的,或者至少不像静态语言那样有用。

典型的动态语言(例如 ruby​​)是否有接口?如果有,那么拥有它有什么好处?如果不是这样,那么我们是否会失去许多需要界面的精美设计模式?

谢谢。

0 投票
5 回答
15138 浏览

ruby - 有什么方法可以确定哪个对象称为方法?

我希望 Ruby 的消息传递基础设施意味着可能有一些巧妙的技巧。

如何确定调用对象——哪个对象调用了我当前所在的方法?

0 投票
1 回答
1774 浏览

groovy - groovy 变量函数

我什至不确定如何命名这个 qn。但是,希望有一种简单的方法可以用像 groovy 这样的动态语言来实现。

假设我有一个服务类,我在其中委派业务逻辑。其中的方法是 funA(), funB()... funX()

现在我有一个控制器类,我在其中调用服务闭包,可以像 service.funA() 一样调用它。现在基于一个变量(可以有值A, B ... X),我需要调用正确的服务关闭。基本上是为了避免写很多 if 条件语句。像service."fun+var"()会做的事情。我不确定是否可以在闭包(函数)名称中替换变量。或通过将函数(名称)作为参数传递的任何方式...不确定

我认为 PHP 有类似的功能 http://php.net/manual/en/functions.variable-functions.php

感谢任何指针..