🌀 Решение проблем связанных с параллелизмом в IOT
💡 Автор статьи предлагает радикально иной подход: заменить потоки и корутины на конечные автоматы для создания истинно параллельных программ на микроконтроллерах.
❗ Ключевые моменты статьи:
• конечные автоматы как математическая основа для параллельного программирования
• библиотека на C++ для ESP32, реализующая автоматное программирование
• параллелизм в одном потоке без проблем синхронизации и гонок данных
Основной фокус — практическая реализация технологии автоматного программирования на микроконтроллерах ESP32.
Особенно актуально для проектов умного дома и промышленного IoT, где требуется работа в жёстком реальном времени с множеством датчиков и исполнительных устройств.
Оказывается, реальный проект с датчиками температуры, влажности, освещённости и управлением реле работает без FreeRTOS, поддерживает WiFi, MQTT и Home Assistant — и всё это на одном потоке с дискретностью такта 10 мсек.
Библиотека C/C++ разработчика
💡 Автор статьи предлагает радикально иной подход: заменить потоки и корутины на конечные автоматы для создания истинно параллельных программ на микроконтроллерах.
❗ Ключевые моменты статьи:
• конечные автоматы как математическая основа для параллельного программирования
• библиотека на C++ для ESP32, реализующая автоматное программирование
• параллелизм в одном потоке без проблем синхронизации и гонок данных
Основной фокус — практическая реализация технологии автоматного программирования на микроконтроллерах ESP32.
Особенно актуально для проектов умного дома и промышленного IoT, где требуется работа в жёстком реальном времени с множеством датчиков и исполнительных устройств.
Оказывается, реальный проект с датчиками температуры, влажности, освещённости и управлением реле работает без FreeRTOS, поддерживает WiFi, MQTT и Home Assistant — и всё это на одном потоке с дискретностью такта 10 мсек.
Библиотека C/C++ разработчика
🤔1
😼 Перевод:
ПРОГРАММИСТЫ ИСПОЛЬЗУЙТЕ ЭТУ ИНФОРМАЦИЮ С УМОМ
U+003B ТОЧКА С ЗАПЯТОЙ
U+037E ГРЕЧЕСКИЙ ВОПРОСИТЕЛЬНЫЙ ЗНАК
Библиотека C/C++ разработчика
#развлекалово
Библиотека C/C++ разработчика
#развлекалово
🥱10👏3😁2❤1
Exception safety в C++ не нужна, мы просто не используем исключения
И вот тут я понял, что индустрия раскололась на два лагеря:
Лагерь No Exceptions: Google Style Guide, игровая индустрия, embedded. Их мантра: «Исключения = непредсказуемая производительность»
Лагерь RAII + Exceptions: Стандартная библиотека, большинство enterprise проектов. «Исключения - это элегантная обработка ошибок»
// Версия без исключений
std::optional<Data> parse(const std::string& input) {
if (input.empty()) return {};
// ...
}
// Версия с исключениями
Data parse(const std::string& input) {
if (input.empty()) throw std::invalid_argument("empty input");
// ...
}
Реальность:
90% C++ кода уже содержит исключения через STL. Даже new может бросить std::bad_alloc! 😱
Провокация:
Если ты пишешь код без exception safety, ты пишешь потенциально багованный код. Точка.
Библиотека C/C++ разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19❤17🌚4⚡3
😎 Вы просили — мы сделали. Самый долгожданный анонс этого лета!
Мы открываем набор на второй поток курса «AI-агенты для DS-специалистов»!
На курсе мы учим главному навыку 2025 года: не просто «болтать» с LLM, а строить из них рабочие системы с помощью Ollama, RAG, LangChain и crew.ai.
📆 Старт потока — 15 сентября.
💸 Цена 49 000 ₽ действует только в эти выходные — до 17 августа. С понедельника будет дороже.
👉 Занять место
Мы открываем набор на второй поток курса «AI-агенты для DS-специалистов»!
На курсе мы учим главному навыку 2025 года: не просто «болтать» с LLM, а строить из них рабочие системы с помощью Ollama, RAG, LangChain и crew.ai.
📆 Старт потока — 15 сентября.
💸 Цена 49 000 ₽ действует только в эти выходные — до 17 августа. С понедельника будет дороже.
👉 Занять место