Kek*_*koa 28 dsl project-management
我想在何时使用领域特定语言时提供一些实用指导.我找到了有关优缺点的资源,但是哪种项目可以保证使用?
似乎在创建和维护DSL方面需要投入大量资金,因此在什么应用领域我可以获得投资回报率?
编辑:似乎DSL的最常见用途是用于保持数据状态的文件格式,使用DSL进行程序逻辑和结构(可能是代码生成)怎么样?什么时候可行?
编辑#2我主要询问何时创建特定的DSL值得.当然,我们应尽可能使用现有的DSL来节省时间.
S.L*_*ott 16
创建另一个DSL的原因很少.使用专用语言,世界变得肥胖.
与这些线一起思考.
使用Python,Java,C++等通用语言解决问题.
优化该解决方案以分解常见功能并构建一个非常好,非常优雅,真正可扩展的类库.
优化该类库以强调"正交性".确保所有功能都能很好地协同工作,没有任何问题.
如果您只需要简化语法,请在您的好类库周围创建一个脚本包装器.这是你的DSL.对于Python来说,这很简单 - 它已经是一种动态语言.对于Java,您可以利用一些东西.对于C++,构建这种灵活的脚本环境可能需要一些工作.
如果仍需要进一步优化,请考虑为DSL编写编译器.
Jos*_*eph 11
首先,我想用一个DSL当问题域的发展对是一种被广泛熟知域,该域的一些业务专家已经通过很大的篇幅去建立这样一个DSL,这样你就不必去通过让自己解决他们已经弄清楚的所有问题.
如果您正在考虑创建 DSL,我会考虑这样做,如果您的业务是在一个非常特定的领域完成的,并且您将大部分时间都花在了特定问题域上.如果你在为多个问题域做应用程序时,我就不建议采用这种方法.
例如,如果您的企业在构建税务申请方面非常谨慎,那么构建税务系统DSL可能是个好主意.这将使你的语言不仅要在各种税收应用由你可用的,但它也将是其他企业在你的行业,要做到这一点你正在努力完成类似的事情marketeable(可用).
当然,您必须在已有语言的基础上加权构建DSL与框架的成本/收益.