问题描述
我只是对领域特定语言感到好奇.我已经在文章中多次看到它们,而且似乎可以将它们用于保证或银行数据定义问题之外.
I'm just curious about Domain-Specific Languages. I have seen them several times in articles, and it seems that they can be used outside assurance or bank data definition problems.
因此,我来SO进行一些具体的投入.
So I come to SO to have some concrete input.
您曾经使用过DSL吗?写一个.如果是,感觉如何?
Did you ever use a DSL? Write one. If yes, what's it feel like?
您认为使用DSL可以使您的项目中的一个更好(生产力更高,更可维护...)吗?
Do you think one of your projects could be better (more productive, more maintainable, ...) with a DSL?
很抱歉,以后再讲,但是我的意思是您编写了自己的特定DSL.不包括Tex,HTML,Make和SQL.实际上,问题更多是:编写DSL"
Edit : I'm sorry to put this after, but i was meanning a specific DSL that you wrote yourself.It's exclude Tex, HTML, Make , SQL. I fact, the question was more : "writing a DSL"
推荐答案
我是从事 NUnit 2.0版及更高版本.它是使用C#属性编写的DSL,用于描述单元测试.它不是DSL最明显的例子,但我已经将其视为一个例子.我使用ANTLR甚至MGrammar编写了其他一些文章.经验通常是相同的.一旦将其展示给其他人,他们就会想做一堆您从未想到的事情.很好,但是您必须做好准备并添加功能.
I was one of the people that worked on NUnit version 2.0 and up for a few years. It is a DSL written using C# attributes to describe unit tests. It isn't the most obvious example of a DSL, but I have come to think of it as one.I have written some other ones using ANTLR and even MGrammar. The experience is often the same. As soon as you show it to someone else they want to do a bunch of things you never thought of. That's a good thing, but you have to be prepared to keep going and add functionality.
我现在习惯于经常思考和编写DSL.我当前使用的对象关系映射器是dsl.这不是一种新语言.它是纯C#,但是考虑到域的语言,并且该域不仅仅是业务域,我们创建了一种迷你语言来映射对象.关于DSL的思考改变了我们的API和框架构建方法.
I'm now in the habit of thinking about and writing DSLs quite often. The current object relational mapper I use is a dsl. It isn't a new language. It is pure C#, but by thinking of the language of the Domain, and that Domain is more than just Business Domain, we created a mini language to map objects. Thinking in terms of DSLs has changed our approach to API and framework building.
这篇关于您写DSL遇到什么样的问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!