`
Goldice
  • 浏览: 105133 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Some Rules from wrting your own dsl with ruby

阅读更多

来自:http://blog.nofail.de/2010/02/writing-your-own-dsl-with-ruby/

 

Some Rules from wrting your own dsl with ruby

 

1. let the user choose how to use it

 

all implemented methods return the object instance itself,so one can chain method calls for convenient

 

2. make options optional

 

a well designed API does not force user to provide argument that are not mandatory

 

3. make use of an option hash for defaults

 

consider using an optional parameter hash as the last method argument

 

4. make use of scoped blocks

 

providing scopes is another way to improve the readability of your code

 

5. make use of instance_eval

 

rebuid do 

method1

method2

method3 

end

 

6. consider implementing method_missing

0
2
分享到:
评论

相关推荐

    Resources & Stream Reading & Wrting

    C++Builder6 资源 内存流 读写完整工程 备忘

    Art_of_writing_testbenches

    Art_of_writing_testbenches

    flash_all_lock.bat

    flash_all_lock.bat

    abt-coding

    前端 cd frontend yarn yarn run start 初步 cd backend yarn yarn run start

    简易图片检索软件(图像动态显示软件)

    首先设置待检索文件夹路径,设置完成解锁开始按钮,点击即可自动查阅文件夹下的图像。可设置每张图像的显示高度、显示停留时间及整体循环次数。 exe应用界面文件在路径disk/load_picture/load_picture.exe 点击exe应用及即可。

    树状数组详解资源.zip

    树状数组

    哈尔滨工程大学单独考试2020考研专业课初试大纲.pdf

    哈尔滨工程大学考研初试大纲

    基于OpenWatcom的链接器的链接器.zip

    链接器 二、链接器主要任务: GNU ld(链接器)是用于将多个目标文件(包括目标文件、共享库、目标文件的归档文件等)合并成一个可执行文件或共享库的重要工具。它的主要功能包括:符号解析和重定位:链接器识别并解析输入文件中的符号引用,然后执行重定位操作以确保这些引用指向正确的地址。这包括将模块中的符号引用与其定义进行匹配,以便在合并时连接它们。 合并输入文件:链接器将多个输入文件中的代码段、数据段等模块合并成一个单一的地址空间。这包括将不同模块中的代码和数据安排到正确的内存地址中。 生成输出文件:链接器将合并的模块和符号表等信息写入输出文件中,该输出文件可以是可执行文件、共享库、目标文件等,具体类型取决于链接器的参数和配置。 符号表处理:链接器生成输出文件的符号表,其中包含了可供调试和动态链接器使用的符号信息。 处理重定位信息:如果存在重定位信息,链接器将生成重定位表,用于在加载时修正代码和数据的地址。这使得程序可以在不同的内存地址上运行。 处理链接器脚本:链接器可以根据链接器脚本(linker script)中的规则和指令来组织和排列模块,以满足特定需求。链接器脚本可以

    tensorflow-2.9.0-cp37-cp37m-win-amd64.whl

    tensorflow安装

    基于STM32或RP2040的Asksinpp CO2传感器

    用于Homematic的CO2传感器,采用STM32或RP2040 pico 受到MHSteve出色工作的启发,我通过以下功能增强了他的解决方案: 使用 STM32 板(Blue Pill 或 Maple Mini)或 RP2040 微微板 与标准传感器外壳 (86x86 mm) 兼容 可选使用 Winsen MH-Z19 CO2 传感器代替 SCD30 使用触摸板作为配置按钮 使用RGB LED代替红绿灯 由于 STM32 和 RP2040 板缺少电池支持以及空间限制,我省略了可充电电池,这对我来说似乎是可以忍受的,因为无论如何都需要电源。

    基于Java的工程项目管理系统(源码+论文+任务书+数据库文件+演示视频).zip

    “工程项目管理系统”主要是为公司的经营活动提供信息服务,系统能够对客户信息管理、订单管理、零件信息管理、供应商管理、库存管理,系统用户管理等信息提供存储、更新、查询、统计的功能,使公司能够合理控制进销存各个环节,提高资金的利用率和结算速度,实现管理的高效率、实时性、安全性、科学化、现代化和智能化。系统的数据来源由各职能部门的业务人员通过键盘输入。此外,对系统的安全性方面也提出了明确的信息要求。 本基于Web技术的B/S结构的系统采用jsp技术进行开发设计,开发环境是MyEclipse,服务器采用tomcat,通过jdbc驱动和数据库进行无缝连接,具有较高的完整性,一致性和安全性。

    SM2258XT Q0407A 闪迪 海力士

    SM2258XT Q0407A 闪迪 海力士

    html如何用html+css写出一个漂亮的“众成教育”页面

    源码+图片资源

    大创研究总结报告pdf

    汽车悬架系统主要由弹性、阻尼元件及悬架导向机构组成,转向机构主要由梯形结构及摇臂机构组成,悬架系统与转向传动机构在运动过程必然引起干涉,这种干涉将引起车轮定位参数的变化,行驶中车轮摆振和轮胎异常磨损、制动时的干涉跑偏、以及稳态转向特性变差等。对于重型及大型车辆而言,悬架系统与转向传动机构的运动干涉问题尤为突出,有时会带来无法弥补的经济损失。

    grpcio-1.14.1-cp35-cp35m-macosx_10_7_intel.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    cryptography-2.2.1-cp34-abi3-manylinux1_i686.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    ASP+ACCESS客户管理信息系统(开题报告+源代码+论文+答辩PPT)【ASP】.zip

    ASP+ACCESS客户管理信息系统(开题报告+源代码+论文+答辩PPT)【ASP】

    PyQt5基于深度学习卷积神经网络开发的鼠标手写数字识别系统python源码+模型(含擦除、插入图片等多功能).zip

    PyQt5基于深度学习卷积神经网络开发的鼠标手写数字识别系统python源码+模型(含擦除、插入图片等多功能).zip 【优质项目推荐】 1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 2.项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、项目初期立项演示等用途。 4.如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能。 PyQt5基于深度学习卷积神经网络开发的鼠标手写数字识别系统python源码+模型(含擦除、插入图片等多功能).zipPyQt5基于深度学习卷积神经网络开发的鼠标手写数字识别系统python源码+模型(含擦除、插入图片等多功能).zipPyQt5基于深度学习卷积神经网络开发的鼠标手写数字识别系统python源码+模型(含擦除、插入图片等多功能).zipPyQt5基于深度学习卷积神经网络开发的鼠标手写数字识别系统python源码+模型(含擦除、插入图片等多功能).zipPyQt5基于深度学习卷积神经网络开发的鼠标手写数字识别系统python源码+模型(含擦除、插入图片等多功能).zipPyQt5基于深度学习卷积神经网络开发的鼠标手写数字识别系统python源码+模型(含擦除、插入图片等多功能).zipPyQt5基于深度学习卷积神经网络开发的鼠标手写数字识别系统python源码+模型(含擦除、插入图片等多功能).zipPyQt5基于深度学习卷积神经网络开发的鼠标手写数字识别系统python源码+模型(含擦除、插入图片等多功能).zipPyQt5基于深度学习卷积神经网络开发的鼠标手写数字识别系统python源码+模型(含擦除、插入图片等多功能).zipPyQt5基于深度学习卷积神经网络开发的鼠标手写数字识别系统python源码+模型(含擦除、插入图片等多功能).zip

    yolo开发教程以及案例

    yolo开发教程以及案例

    分享一个比较万能的Python爬虫案例

    分享一个比较万能的Python爬虫案例

Global site tag (gtag.js) - Google Analytics