我很享受puppet声明模型。我想尝试将更多内容合并到我的代码中。
然而,我目前正在使用python进行编程,而且我倾向于在这样做时进行必要的思考。这就像我的平面设计问题:我知道我喜欢在最终产品中看到什么,但不知道如何组装它。
如何构建事物以使代码具有声明性?如果解决方案可以被识别为“声明性的”,那么采取了哪些初始步骤?
Functional, Declarative, and Imperative Programming我刚读过这篇文章,带来了一些见解。
虽然不够,但不能完全说出来,我的困惑:(
编辑:言语已经到来:声明的例子总是以其他高级别的东西给出:
Regexen是声明性的,当然,但你用C语言制作引擎。
Make是声明性的,当然但它是用C语言编写的。
Puppet mainifests当然是声明性的,但Ruby代码不是。
所以在什么时候我说:“好的,这是方法,现在我可以开始声明部分了吗?”
答案 0 :(得分:2)
在函数式语言中,以函数式写入,在命令式语言中写入命令式样式时,以及在声明性语言中,以声明式样式编写。
如上所述(不包括允许的所有“交叉风格”),当您使用您用语言风格书写的语言书写时。在以“命令式”或“功能性”语言“声明性地”编写的情况下,这通常会分解为编写声明性DSL和/或API而不实际更改用于公开(或甚至粘合)所述声明性友好的基本样式DSL / API。
例如,make
(或任何数量的XML语言,如ant
)只是声明性的DSL(有些模糊)。主持语言并不重要。这可以推广到几乎所有图灵完整主机语言。