„Domeniul de programare” în informatică și programarea computerelor este un termen general care se referă la domeniul sau problema pe care un program, un limbaj de programare sau o sintaxă a limbajului este proiectat să opereze sau să o rezolve. Termenul este folosit cel mai adesea atunci când se face referire la limbaje de programare specifice domeniului, care sunt limbaje de programare care sunt concepute pentru a răspunde în mod specific nevoilor unui singur domeniu sau problemă. Nu există o specificație formală reală pentru ceea ce este sau nu un domeniu de programare, deși există câteva categorii largi utilizate în mod obișnuit, cum ar fi afaceri, Internet și rețele, și unele domenii mai specifice, cum ar fi recunoașterea optică sau mesageria. Termenul este destul de abstract, așa că cel mai adesea este aplicat în timpul cercetării academice sau în timpul etapei de proiectare a dezvoltării software.
Un scop al definirii unui domeniu de programare poate fi acela de a ajuta la modelarea unui limbaj de programare specific domeniului. Aceasta înseamnă că, dacă un domeniu de programare este definit ca e-mail de Internet, atunci limbajul de programare va fi proiectat în timpul etapei inițiale de proiectare special pentru a aborda probleme legate doar de e-mail-ul de pe Internet, de obicei la un nivel foarte înalt pentru programatorul final. În acest exemplu, un limbaj de programare specific domeniului pentru domeniul de programare a e-mail-ului pe Internet ar putea include comenzi precum „send_to_address” sau „check_valid_address” care sunt utilizate pentru a rezolva probleme specifice de rețea asociate cu e-mail-ul pe Internet, dar nu au un scop mai larg și mai general în afară de acesta. .
Într-un sens mai larg, un domeniu de programare poate fi, de asemenea, un concept important atunci când se utilizează designul bazat pe domeniu. Acest tip de model de proiectare software adaptează limbajul de programare și întreaga infrastructură de aplicație și logica de control în jurul domeniului. Prin conectarea domeniului de programare la diferite niveluri și stadii de dezvoltare, apare contextul anumitor părți ale aplicației și, în programele foarte complexe, poate facilita programatorilor și inginerilor rezolvarea problemelor și vizualizarea funcționării interioare a programului.
O complicație care poate fi întâlnită în industria mai largă de dezvoltare de software este aceea că, în timp ce multe echipe de dezvoltare ar putea folosi un domeniu de programare și modele legate de domeniu, nu există o standardizare cu privire la ceea ce implică de fapt un domeniu, cum este numit sau cum ar trebui. fi vizualizat. Ceea ce o companie ar putea numi un domeniu de afaceri ar putea fi numit domeniu de întreprindere de către o altă companie. Atunci când aplicațiile, modelele și cadrele sunt dezvoltate pentru un anumit domeniu de către o companie, acestea pot fi publicate, promovate sau vândute ca instrumente de dezvoltare sau soluții pentru o altă companie care ar putea lucra în același domeniu. Fără un standard pentru denumirea domeniilor, soluțiile existente bazate pe domenii ar putea trece complet neobservate.