gpt4 book ai didi

ruby - 适当的 DSL 语法

转载 作者:数据小太阳 更新时间:2023-10-29 07:10:56 24 4
gpt4 key购买 nike

我正在尝试为文件操作编写自己的 DSL,只是为了学习。

我的目标是让它易于理解和编码。

这里有 3 种将字符串附加到 database.yml 的替代方法:

1. append("windows").to("database.yml")

2. append(string: "windows").to(file: "database.yml")

3. append_string("windows").to_file("database.yml")

4. append_string "windows", to_file: "database.yml"

5. append string: "windows", to_file: "database.yml"

我有点迷失在所有这些选择中。

有 DSL 经验的人可以给我一些指导并解释每种方法的优缺点吗?

每个人的阅读方式都一样,但我想知道哪一个遵循 DRY 的最佳实践和良好的编码标准。

编辑:我认为如果我可以指定一些可选参数会很好,例如。

append(string: "windows").to(file: "database.yml", :force => true)

考虑到这一点,我想我必须使用方法调用。因为如果我使用备选方案 4-5,那么当我指定 :force => true 时,我不知道它是针对字符串还是针对文件。

最佳答案

对我来说,任何选择似乎都不错。

如果您(或用户)总是写入“database.yml”但附加内容不同,以下可能会更好。

on "database.yml" {
append "windows"
append "ubuntsu"
append "Leopard"

remove_if "bsd" do |..|
....#if condition satisfied, "bsd" will be removed
end
..
}

如果您(或用户)想为不同的数据库文件附加“windows”,以下可能没问题。 (也许很少见,,)

append "windows".to {
to "database.yml"
to "database2.yml"
to "database3.xml", :force=>true
}

无论如何,我认为更好的选择是自己使用它或询问您的用户,然后再完善。

关于ruby - 适当的 DSL 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3519123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com