Wszystko to DSL ...
Asembler: MOV R1 do R2
Kompilatory: Instrukcje przypisania - A = A + 1, Warunki - IF (TRUE) ..., Branch - RETURN
HTML: ... opisz zagnieżdżoną strukturę
TCP / IP: opisz do / z adresy
PDF: opisz rozmieszczenie tekstu / obrazu na papierze
Czcionki: opisz znaki
Każdy język, którego używamy do opisania określonego procesu, to DSL. Niestety brakuje języków specyficznych dla domeny, aby opisać nawet nasze najbardziej podstawowe procesy, więc używamy kilku języków, które mamy, aby opisać wszystko, co robimy. Spakowanie wszystkich plików html w mojej witrynie internetowej wymaga do wykonania 300 wierszy w 3 lub 4 różnych językach.
Aby zbudować DSL, określ minimalną liczbę znaków potrzebną do opisania procesu, który możesz zapamiętać i który nie wymaga dokumentacji. Pamiętaj, że szybkość i łatwość obsługi to podstawowe kryteria projektowe. Przetwarzanie jest tak szybkie, że każda składnia, której używasz, jest w porządku. W większości przypadków wolę język naturalny jako moją składnię: „Płać pracownikom pierwszego dnia miesiąca”, ale specyficzna dla domeny jest tylko to, specyficzna dla domeny, składnię określasz najlepiej pasuje do problemu.
Trzymałbym się z daleka od stosowania innych rozwiązań, które mogą być wygodne, ale nie pasują do problemu, takich jak HTML, który został użyty do zdefiniowania danych (XML). CSV jest bardzo przydatny, pasuje do większości problemów. JSON nie pasuje do części związanej z łatwością użycia, jest to przesada, która dodaje niepotrzebnych komplikacji, gdy CSV działa dla większości problemów. Używamy EXCEL często do DSL, świetnie sprawdza się przy opisywaniu małych problemów, poniżej 65K do 1M wierszy, takich jak struktury drzewiaste lub menu, kolumna A to poziom, inne kolumny to ikony, kolory, etykiety i tym podobne (EXCEL to edytowalny CSV).
Odkryłem, że HTML nie rozwiązał tak naprawdę problemu układu strony, więc pozbyłem się go i zdefiniowałem DSL, który pasuje. Zdefiniowałem 6 regionów na stronie: NAGŁÓWEK, CIAŁO, STOPKA, LEWE / PRAWE MARGINESY i LEWY / PRAWY PEŁNY MARGINES. Mógłbym wtedy powiedzieć generatorowi stron, aby dodał PASEK TYTUŁU, PASEK STATUSU, MENU, TABELA, FORMULARZE ... do określonych komórek. Każdą z tych komórek można następnie podzielić na wiersze i kolumny na dowolną głębokość. Układ strony w każdym stylu zajmuje kilka sekund.
BODY zawiera tabelę moich pracowników
NAGŁÓWEK zawiera napis „Hello World” na pasku tytułu z loginem do oprogramowania Collins
Menu DSL nie pasuje do układu strony DSL, więc stworzyłem unikalny DSL dla menu.
Zasób Moje menu główne
* zdefiniuj: menu, m, poziom, etykieta, ikona, akcja;
m, 0, plik;
m, 1, otwórz, otwórz.gif, okno dialogowe Otwórz plik;
Każdy problem jest wyjątkowy, komputer może używać dowolnego formatu, DSL jest przeznaczony dla człowieka, więc uczyń go zrozumiałym dla ludzi, czymś, co mogą wpisać, i uczyń język z prawdziwych słów; bo opisujemy prawdziwych ludzi, miejsca i rzeczy.