# Языки взаимодействия систем

Существуют языки, то есть формально определенные синтаксические системы, которые являются не языками программирования, а языками взаимодействия систем, созданными специально для облегчения взаимодействия через стандартизацию. В 2003 году самые важные из них это UML, XML и SQL. Вы должны быть знакомы с каждым из них, чтобы уметь использовать их и понимать, когда их следует применять.

UML - это обширная формальная система для создания схем и диаграмм, описывающих архитектуру. Ее прелесть в том, что она одновременно и визуальна, и формальна, и способна передать огромное количество информации, если автор и его аудитория понимают UML. Вам следует знать UML, потому что иногда архитектуру описывают с ее помощью. Существуют очень полезные инструменты для создания профессионально выглядящих схем UML. Во многих случаях, UML слишком строгая и формальная система, и я иногда находил, что для архитектурных схем проще использовать стрелки и прямоугольники. Но я уверен, что изучение UML полезно так же, как и изучение латыни.

XML - это стандарт для определения новых стандартов. Это не решение проблем передачи данных, хотя иногда вы увидите, что XML представляют именно так. Но скорее, это средство автоматизации самой скучной работы по обмену данных, а именно структурное представление данных в линейной последовательности и обратное преобразование этой последовательности в структуру данных. UML предоставляет неплохую проверку типов и правильности данных, хотя это лишь небольшая часть того, что вам понадобится в работе.

SQL - это очень мощный и богатый язык запросов и манипулирования данными. Это не совсем язык программирования. У него есть много вариаций, в основном зависимых от конкретного продукта, который его использует. Они не так важны как стандартное ядро языка. SQL - это основа всех реляционных баз данных. Вы можете не работать в области, где требуется понимание такого типа баз данных, но вам все равно следует иметь базовое представление о них, о синтаксисе и о назначении SQL.

Следующее: [Стандартные технологии](/how-to-be-a-programmer/ru/2-intermediate/personal-skills/10-heavy-tools.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/personal-skills/09-communication-languages.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
