Im tratando de codificar mi propia DSL para la manipulación de archivos, solo por el bien de aprender.Sintaxis DSL adecuada
Mi objetivo es hacer que sea comprensible y fácil de codificar.
Aquí hay 3 alternativas para anexar una cadena a un database.yml:
1. append("windows").to("database.yml")
2. append(string: "windows").to(file: "database.yml")
3. append_string("windows").to_file("database.yml")
4. append_string "windows", to_file: "database.yml"
5. append string: "windows", to_file: "database.yml"
soy un poco perdido en todas estas alternativas.
¿Podría alguien con experiencia en DSL darme una guía y explicarme cuáles son los pros y los contras de cada uno?
Todos son leídos igual, pero quiero saber cuál sigue las mejores prácticas para el estándar de codificación DRY y bueno.
EDIT: Creo que sería bueno si pudiera especificar algunos parámetros opcionales, por ej.
append(string: "windows").to(file: "database.yml", :force => true)
Así que, teniendo esto en cuenta, creo que tengo que usar las llamadas a métodos. Porque si uso las alternativas 4-5, cuando especifico: force => true, no puedo saber si es para la cadena o el archivo.
@musicfreak. todos ellos son leídos igual. La siguiente pregunta que creo es cuál sigue una "mejor práctica" para DRY. –
Quizás debería especificar el dominio: ¿quién es el usuario objetivo, qué tipo de manipulación de archivos desea, cuál será el alcance de su 'DSL'? – David