Библиотека C/C++ разработчика
6.79K subscribers
651 photos
689 videos
8 files
937 links
Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter
Download Telegram
👩‍💻 C — это фундамент программирования, а не просто язык.

Если вы хотите работать с производительностью, встроенными системами и взаимодействием с ОС — пора его освоить

В OTUS в рамках онлайн-курса «Программист С» пройдут бесплатные вебинары для разработчиков, админов и IoT-специалистов:

📌11 марта (вт) в 20:00 мск — открытый урок «Практический Си: Разрабатываем игру-викторину» научит вас работать с памятью, использовать стандартную библиотеку и создавать полноценные консольные приложения.

➡️ Регистрация: https://vk.cc/cJpRPx

📌24 марта(пн) в 20:00 мск — открытый урок «Язык и алгоритмы: Увлекательное путешествие в лексический анализ на C».
Разработаем простое приложение для лексического анализа простейшего языка программирования на языке С и рассмотрим:
-Основные алгоритмы и технологии создания приложений для лексического анализа.
-Области применения лексического анализа и особенности реализации.
-Поиск и определение ошибок в тексте.

➡️Регистрация: https://vk.cc/cJpRPx

Не упустите возможность протестировать курс и познакомиться с экспертами. Полный курс можно будет оплатить любым удобным для вас способом. Для участия нужно пройти тест на странице с описанием курса.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Улучшенные версии STL-контейнеров из библиотеки Boost
Илья Мещерин

В любом учебном курсе по C++, даже начального уровня, обязательно изучают, как устроен std::vector. Детали внутреннего устройства std::vector в подробностях продолжают изучать в вузах, спрашивать на собеседованиях, обсуждать на конференциях. То же самое происходит с контейнерами std::list, std::deque, std::map и std::unordered_map: про их реализацию и особенности внутреннего устройства можно говорить бесконечно долго, про них все еще делают доклады, снимают лекции и пишут статьи. И их продолжают использовать в продакшен-коде даже в самых крупных и известных компаниях.

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

Спикер обсудил внутреннее устройство не таких уж стандартных контейнеров: stable_vector, devector, bimap, circular_buffer, а также интрузивных версий list, map, unordered_map и их разновидностей.

источник

#cpp #programming

👉 @cpp_lib
Не покупайте грузовик для похода за хлебом и другие принципы программирования

Мне недавно встретился код вывода количества FPS на экран, написанный начинающим программистом, и в этом коде был базовый класс, класс-потомок, виртуальные функции, конструктор с множеством параметров, variant. Код позволял выводить любое количество счетчиков FPS на экран разными шрифтами, но все, что было на самом деле нужно, это простая функция на 3 строки, считающая количество FPS и выводящая его на экран.

https://habr.com/ru/articles/888570/

#cpp #programming

👉 @cpp_lib
Лексический анализ — один из важнейших этапов обработки текста, без которого не обходятся компиляторы, интерпретаторы и даже системы NLP.

💻 На открытом уроке рассмотрим:

-Основные алгоритмы и технологии создания приложений для лексического анализа.
-Области применения лексического анализа и особенности реализации.
-Поиск и определение ошибок в тексте.

Создадим простое приложение и разберем алгоритмы, которые помогают анализировать код.

📌 Встречаемся 24 марта в 20:00 мск.

Регистрируйтесь и получите гарантированную скидку на курсе «Программист С»: https://vk.cc/cJBPrt

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Оптимизация кода на C++: Ранний возврат вместо вложенных условий

Привет, друзья! Сегодня хочу поговорить об одной важной технике, которая делает код чище и читабельнее — ранний возврат (early return). Часто встречаю код, который уходит в глубину вложенных if, превращаясь в настоящий лабиринт. Давайте разберем, как этого избежать.

Плохой пример: Вложенные условия

void process(int value) {
if (value > 0) {
if (value % 2 == 0) {
if (value < 100) {
std::cout << "Обрабатываем " << value << std::endl;
} else {
std::cout << "Слишком большое число" << std::endl;
}
} else {
std::cout << "Нечетное число" << std::endl;
}
} else {
std::cout << "Отрицательное число" << std::endl;
}
}

Здесь код уходит вглубь из-за множества вложенных if, что делает его сложным для чтения.

Хороший пример: Ранний возврат

void process(int value) {
if (value <= 0) {
std::cout << "Отрицательное число" << std::endl;
return;
}
if (value % 2 != 0) {
std::cout << "Нечетное число" << std::endl;
return;
}
if (value >= 100) {
std::cout << "Слишком большое число" << std::endl;
return;
}

std::cout << "Обрабатываем " << value << std::endl;
}

Теперь код сразу проверяет граничные условия и делает ранний возврат (return), если условия не выполнены. В итоге у нас получился плоский код, который проще читать и сопровождать.

🎯 Вывод:
- Избегайте вложенных if, если можно этого не делать.
- Используйте ранний возврат, чтобы код был линейным и понятным.
- Чем меньше уровней вложенности — тем легче отладка и сопровождение.


#cpp #programming

👉 @cpp_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
Реальный кейс: создание REST API движка на С++

История, полная ошибок и боли белорусских разработчиков, которая поможет вам избежать типичных проблем при создании REST API.

Узнайте, стал ли этот проект успешным, на бесплатном вебинаре «Движок REST API на C++. Кейс компании СКБ Радиотехпроект (SKB RTP)».

Разберём:
1. Зачем писать свой движок REST
2. Swagger в C++ как fail
3. Почему Rest это не просто url — это философия

📆Когда: 25 марта в 19:00

Спикер: Юрий Вашинко, Tech Lead/Lead Developer

👉 Занять место на вебинаре — через бота.

В конце вебинара — подарок🎁

Вебинар проходит в рамках курса «Разработчик С++20».

#реклама
О рекламодателе
erid: 2W5zFHANXz8
Подборка Telegram каналов для программистов

https://t.me/bash_srv Bash Советы
https://t.me/win_sysadmin Системный Администратор Windows
https://t.me/lifeproger Жизнь программиста. Авторский канал.
https://t.me/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://t.me/rabota1C_rus Вакансии для программистов 1С

Системное администрирование 📌
https://t.me/sysadmin_girl Девочка Сисадмин
https://t.me/srv_admin_linux Админские угодья
https://t.me/linux_srv Типичный Сисадмин

https://t.me/linux_odmin Linux: Системный администратор
https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux

1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://t.me/DevLab1C 1С:Предприятие 8

Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus

Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах

GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
https://t.me/game_devv Все о разработке игр

Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов

БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста

QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://t.me/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_2 Хакер Free

Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров

Математика 📌
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике

Excel лайфхак📌
https://t.me/Excel_lifehack

https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)

Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Media is too big
VIEW IN TELEGRAM
Что можно знать о C++ в 16 лет?

Сегодня мы собеседуем Богдана и проверяем его познания в C++
Проверим, насколько рано можно программировать.
Приятного просмотра!

источник

#cpp #programming

👉 @cpp_lib
Метапрограммирование

1. Введение в шаблоны
2. C++20: requires keyword
3. C++20: concepts
4. Operator spaceship
5. ADL и CRTP
6 (семинар). Typelist
7. Traits, Policy Based Design, Mixins
8. Полиморфизм
9 (семинар). Реализация std::function
10 (семинар). Реализация std::any без виртуальных функций

источник

#cpp #programming

👉 @cpp_lib
😮‍💨Устали вручную разруливать зависимости в C++ проектах? Время автоматизировать процесс! 🕒💻

Пакетные менеджеры Conan и vcpkg позволяют легко управлять библиотеками, устанавливать зависимости и ускорять сборку. Разберем, как это работает, на открытом уроке.

Упростите себе жизнь: научитесь использовать пакетные менеджеры, чтобы писать код, а не разбираться с проблемами сборки.

Спикер Денис Злобинстарший инженер-программист в Astra Linux, опытный наставник разработчиков.

➡️Встречаемся 20 марта в 20:00 мск, разберем всё на практике! Участники получат скидку на большое обучение по разработке на С++.

Регистрация: https://vk.cc/cJOUIw

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Пишем калькулятор на C++ с SFML

Привет, коллеги и доброжелательные критики! Сегодня я решил отвлечься от своей громоздкой работы, чтобы написать что-то простое, но с изюминкой — калькулятор с графическим интерфейсом на C++20 и SFML. Этот проект — не претензия на что-то грандиозное, а скорее лёгкий эксперимент, чтобы вспомнить, как приятно писать код, который сразу видно на экране. Заодно я поделюсь с вами своими мыслями, подходами и парой советов. Давайте разберём, как я это закрутил и почему выбрал именно SFML.

https://habr.com/ru/articles/891354/

#cpp #programming

👉 @cpp_lib