Идея для развития

1. Информационная безопасность для микросервисов 2. Датчики, которые устанавливаются на старые станки и собирают телеметрию - например, вибрация станка. https://everactive.com/

Docker и базы данных

Ответить на вопрос обеспечить консистентность БД в процессе переключения версии приложения и обслуживания запросов при выполнении миграции) https://qastack.ru/devops/1293/what-are-the-reasons-docker-should-not-be-used-for-databases https://www.linux.org.ru/forum/development/13522801

Язык Си в 21 веке

### Стек и куча У любой функции есть область в памяти - кадр, где хранится информация о ней, в том числе адрес возврата по завершении и место для хранения всех автоматических переменных. Когда функция (`main`) вызывает другую функцию, то операции в кадре первой функции приостанавливаются, а для вызванной функции создается новый кадр и помещается в стек кадров. По окончании работы функции ее кадр выталкивается из стека, а все хранившиеся в этом кадре переменные пропадают.

Три основные модели управления памятью

|Модель | Описание | |---|---| | Автоматическая |Вы объявляете переменную при первом использовании, и она автоматически удаляется при выходе из области видимости. Без ключевого слова `static` любая переменная, объявленная внутри функции, является автоматической. В типичном языке программирования все данные автоматические. | |Статическая | Статические переменные находятся в одном и том же месте в течение всего времени работы программы. Размер массива фиксирован в момент создания, но значения в нем могут изменяться (поэтому массив нельзя назвать истинно статическим ). Данные инициализируются до начала выполнения функции `main`, поэтому ининиализировать их можно только константами, не требующими вычислений. Переменные, объявленные вне функций ( в области видимости файла) и внутри функций с ключевым словом `static`, являются статическими. Если вы забудете инициализировать статическую переменную, она будет инициализирована нулями (или значением NULL).| | Динамическая | Динамическая память неразрывно связана с функциями `malloc` и `free`, именно здесь происходит большинство ошибок нарушения защиты памяти (segfault). Кроме того, это единственный тип памяти, позволяющий изменять размер массива после его объявления. |

Производительность системы

### Различия между многопроцессорностью и многопоточностью | Параметр | Multiprocess | Multithreading | |---|---|---| | Development | Проще для использования. Использует fork (). | Использует threads API. |