Все це DSL ...
Асемблер:
Компілятори MOV R1 до R2 : Виписки про призначення - A = A + 1, Умови - ЯКЩО (ІСТИНА) ..., Відділення - ПОВЕРНЕННЯ
HTML: ... опишіть вкладену структуру
TCP / IP: опишіть до / з адреси
PDF: опису розміщення тексту / зображення на папері
Шрифти: описуйте символи
Будь-яка мова, яку ми використовуємо для опису конкретного процесу, - це DSL. На жаль, не вистачає доменних мов, щоб описати навіть наші основні процеси, тому ми використовуємо кілька мов, які ми маємо, щоб описати все, що ми робимо. "Зіпсувати всі HTML-файли на моєму веб-сайті" потрібно 300 рядків з 3 або 4 різних мов.
Для побудови DSL визначте мінімальну кількість символів, необхідну для опису процесу, який ви можете запам'ятати і не потребує документації. Пам'ятайте, що швидкість та простота використання - це основні критерії дизайну. Розбір проходить настільки швидко, що будь-який синтаксис, який ви використовуєте, прекрасний, я віддаю перевагу природній мові, як мій синтаксис, у більшості випадків "Оплачуйте працівників у першій місяці", але конкретний домен - це саме те, що стосується домену, ви визначаєте синтаксис, який найкраще підходить до проблеми.
Я б утримався від використання інших рішень, які можуть бути зручними, але не підходять до такої проблеми, як HTML, який використовувався для визначення даних (XML). CSV дуже корисний, він підходить для більшості проблем. JSON не підходить для простоти використання, але надмірна кількість додає зайвих ускладнень, якщо CSV працює для більшості проблем. Ми використовуємо EXCEL дуже багато для DSL, він чудово підходить для опису невеликих проблем, під 65К до 1М рядків, таких як дерева структури або меню, стовпець А - рівень, інші стовпці - значки, кольори, мітки тощо (EXCEL - це редагований CSV).
Я виявив, що HTML насправді не вирішує проблему компонування сторінки, тому я позбувся її та визначив DSL, який справді підходить. Я визначив 6 регіонів на сторінці, HEADER, TODY, FOOTER, LEFT / Right MARGINS та LEFT / Right FULL MARGINS. Тоді я міг би сказати генератору сторінок, щоб додати заголовки заголовків, діалогове вікно СТАТУС, МЕНЮ, ТАБЛИЦЮ, ФОРМИ, ..., до певних комірок. Кожну з цих комірок потім можна розділити на рядки та стовпці на будь-яку глибину. Макет сторінки займає секунди для будь-якого стилю.
BODY містить таблицю моїх співробітників
HEADER містить підпис заголовка "Hello World" із входом до програмного забезпечення Collins
DSL меню не підходить для макета сторінки DSL, тому я створив унікальний DSL для меню.
Ресурс Моє головне меню
* визначте: меню, m, рівень, мітка, значок, дія;
m, 0, файл;
m, 1, відкрити, відкрити.gif, відкрити діалоговий файл;
Кожна проблема є унікальною, комп'ютер може використовувати будь-який формат, саме DSL призначені для людини, тому зробіть це зрозумілим людям, те, що вони можуть набрати, і зробіть мову з реальних слів; бо ми описуємо справжніх людей, місця та речі.