paip. dsl 编程语言优点以及 常见的dsl
作者Attilax 艾龙, EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.****.net/attilax
DSL主要分为三类:外部DSL、内部DSL,以及语言工作台。
//////////////规则
2.DSL = 整洁的代码
3.DSL必须以文本代码的形式出现
4.DSL的语法应该尽可能地接近英语或者其他自然语言
///////////常见的dsl
正则表达式
sql linq css ,html.业务api.通用模块。工作流语言。。图形化编程.ant
shell..Java 6注解,attilax c#..xml..json..yaml
//////DSL应用的优点
高级别的重用:如果仅适用通用编程语言,则每次只能解决一个问题,但如果应用特定领域开发方法设计并实现一些特殊语言,每个特殊语言可以高效地解决一类相似的问题
java DSL的优点是你使用的IDE可以在你开始编写时,智能的实例代码,而不需要在大量的XML上浪费时间。Java DSL非常有表现能力,因为你可以在语言中混合搭配你自己的代码,来进行表达式或断言评估,或容易地添加自定义的处理模块。
相关文章
- Paip.声明式编程以及DSL 总结
- RabbitMQ 优点和缺点- 消息可靠性:RabbitMQ 提供了持久化功能和消息确认机制,确保消息在各种情况下都能可靠地存储和处理。 灵活的路由:通过多种交换机类型和绑定规则,RabbitMQ 能够灵活地路由消息到指定的队列。 支持多种消息协议:实现了 AMQP 等(MQTT、STOMP)标准化、开放的消息队列协议,使其能够与多种语言编写的应用程序进行通信。 插件化扩展:RabbitMQ 提供了丰富的插件系统,可以通过插件扩展功能,如死信队列、压缩、追踪等。 高可用性:支持集群模式和镜像队列,确保服务的可用性 易用性和可管理性:提供了丰富的 API 和管理工具,以及多种客户端库和框架支持,易于集成和使用。 多语言支持:RabbitMQ 支持多种编程语言的客户端,包括 Java、Python、Ruby、C#、Node.js 等,方便开发人员集成到各种应用中。 高性能:在处理大量并发消息时表现出色。 广泛的社区支持:拥有庞大的开发者社区和丰富的文档资源。 劣势: 性能和吞吐量较低:相比于 Apache Kafka 等面向大数据流处理的消息队列系统,RabbitMQ 的吞吐量较低,不适合处理海量的实时数据流。RabbitMQ 的设计更注重消息的可靠性和灵活性,而非极高的吞吐性能。
- Linux Kernel C语言编程范式 内部DSL是嵌入到开发语言内部,与开发语言混合使用的DSL,它可以是一个接口,如printf,也可以是一个宏,如下示例。UNUSUAL_DEV呈现了2种信息,一种是设备id_table信息,用于驱动匹配,一种是unusual_dev_list,用于标示非标准设备。具体设计和实现细节可以参考《Linux设备驱动框架设计》一文中的“USB块设备驱动框架设计”小节,不再赘述。