Senior C++ Developer – Telegram
Senior C++ Developer
12.4K subscribers
1.36K photos
3 videos
612 links
Изучаем C++.

По вопросам сотрудничества: @adv_and_pr

РКН: https://www.gosuslugi.ru/snet/676e9a1e4e740947beca35ba
Download Telegram
Алиасы в GIT

Большинство из нас знают, что такое GIT. При этом большинство из тех, кто им пользуется, постоянно применяют, по сути, одни и те же команды.

Например:

git status
git commit -m 'commit'

Git позволяет создавать алиасы команд. Благодаря этому вы можете вводить не длинную строку команды, а ее короткий псевдоним.

Создаём alias:

git config --global alias.st status
git config --global alias.cm 'commit -m'

Теперь нам не нужно постоянно вводить git status или git commit -m, достаточно ввести:

git st
git cm
SaneCppLibraries

SaneCppLibraries — это набор библиотек C++, разработанных для упрощения и ускорения разработки программного обеспечения, доступная на Windows, macOS, Linux и других платформах. Библиотеки имеют открытый исходный код и распространяются под лицензией MIT.

#для_продвинутых
Libevent

Libevent — это кроссплатформенная библиотека, предоставляющая API для работы с событиями в Unix-подобных операционных системах и Windows. Она позволяет разработчикам создавать асинхронные приложения, эффективно используя сетевые ресурсы.

#для_продвинутых
LibU

LibU — это кроссплатформенная библиотека с открытым исходным кодом, предоставляющая простой и унифицированный интерфейс для работы с графическим интерфейсом пользователя (GUI) в различных операционных системах. Она позволяет создавать приложения с интуитивно понятным интерфейсом, независимо от того, на какой платформе они будут работать.

#для_продвинутых
libPhenom

libPhenom — это фреймворк событий, разработанный Facebook для создания высокопроизводительных и масштабируемых систем на C++. Он обеспечивает простой и эффективный способ публикации и подписки на события, а также маршрутизации событий между различными компонентами системы.

#для_продвинутых
STXXL

STXXL, или Standard Template Library for Extra Large Data Sets, — это библиотека шаблонов C++, предназначенная для работы с очень большими наборами данных, которые не помещаются в оперативной памяти. Она реализует контейнеры и алгоритмы, способные обрабатывать терабайты данных на диске.

#для_продвинутых
ffead-cpp

ffead-cpp — это веб-фреймворк, фреймворк приложений и набор утилит, объединенные в один пакет. Он также предоставляет встроенное ядро сервера, совместимое с HTTP/HTT2/Web-Socket.

#для_продвинутых
Cxxomfort

Cxxomfort — это набор инструментов с открытым исходным кодом, предназначенный для облегчения работы с языком программирования C++. Он был создан, чтобы помочь разработчикам работать с постоянно развивающимся стандартом C++, снизить нагрузку при переписывании кода, обеспечить обратную и прямую переносимость

Это ценный инструмент для любого разработчика C++. Он может помочь вам повысить производительность, улучшить качество кода и упростить разработку программного обеспечения.

#для_продвинутых
Abseil

Abseil — это набор библиотек общего назначения для C++, открытый компанией Google. Он предназначен для расширения возможностей стандартной библиотеки C++ и включает в себя хорошо протестированный код, используемый во внутренних проектах Google.

Стоит отметить, что Abseil не является заменой стандартной библиотеки C++. Google скорее делится своим полезным и проверенным кодом с сообществом разработчиков.

#для_продвинутых
LevelDB

LevelDB — это высокопроизводительная библиотека C++ для хранения пар ключ-значение, разработанная Google. Она обеспечивает упорядоченное отображение строковых ключей к строковым значениям.

#для_продвинутых
CNTK

CNTK (Microsoft Cognitive Toolkit) - это набор инструментов с открытым исходным кодом для глубокого обучения, разработанный корпорацией Microsoft. Он позволяет создавать и обучать нейронные сети с помощью C++. CNTK обладает рядом преимуществ, делающих его привлекательным выбором для задач глубокого обучения.

#для_продвинутых
oneDNN

oneDNN — это высокопроизводительная библиотека с открытым исходным кодом, предназначенная для оптимизации машинного обучения и приложений глубокого обучения.

https://github.com/oneapi-src/oneDNN

#для_продвинутых
Kaldi

Kaldi — это бесплатная модульная библиотека с открытым исходным кодом для обработки речи, состоящая из различных компонентов, которые можно комбинировать для создания различных приложений.

#для_продвинутых
Evolving Objects

Evolving Objects (EO) — это библиотека эволюционных вычислений (ЭВ) с открытым исходным кодом, написанная на C++. Она предназначена для облегчения разработки эвристических алгоритмов для решения задач оптимизации и поиска.

EO предоставляет набор классов и компонентов, которые можно использовать для создания различных типов ЭВ-алгоритмов, таких как генетические алгоритмы, эволюционные стратегии и дифференциальная эволюция.

#для_продвинутых
BTSK

BTSK (Behavior Tree Starter Kit) — это бесплатная библиотека с открытым исходным кодом, написанная на C++, которая помогает разработчикам создавать системы искусственного интеллекта (ИИ) на основе поведенческих деревьев.

Поведенческие деревья — это иерархическая структура, которая представляет собой набор действий, которые может выполнять агент ИИ. BTSK упрощает создание и управление этими деревьями, предоставляя классы и функции для создания различных типов узлов деревьев.

#для_продвинутых
❤️ Как не попасть в ловушку масштабирования при росте нагрузки в PostgreSQL?

В видеопроекте Road to Highload разработчик ядра Яндекс Диска Андрей Колнооченко рассказывает, как проектировать и развивать базы данных так, чтобы они оставались стабильными и быстрыми даже при росте QPS и объёма данных.

Разберём реальные примеры и обсудим типичные ошибки и подходы, которые помогают избежать проблем с производительностью и консистентностью. Особое внимание уделим согласованности кода и данных в БД для предотвращения проблем с race conditions, которые часто возникают при росте нагрузки.

Road to Highload — это цикл видео от Яндекс 360 о том, как строятся системы, которыми ежедневно пользуются миллионы людей и тысячи компаний. Здесь говорят о highload и отказоустойчивости не по учебникам, а на основе многолетнего опыта разработки.


Смотрите проект, чтобы узнать, как создаются одни из крупнейших облачных сервисов в России:

Сайт проекта
VK Видео
Ютуб

Реклама. ООО «Яндекс». ИНН 7736207543
Please open Telegram to view this post
VIEW IN TELEGRAM
Объясните разницу между глубоким и поверхностным копированием и приведите пример, когда каждый тип копирования может быть предпочтительнее.

Глубокое копирование создаёт новый объект, копируя все поля источника и рекурсивно создавая копии всех объектов, на которые эти поля ссылаются. Таким образом, все ссылки в копии ведут на отдельные объекты, не связанные с оригиналом. Поверхностное копирование создаёт новый объект, но копирует только значения полей на верхнем уровне. Если поля являются ссылками на другие объекты, то копия будет ссылаться на те же объекты, что и исходный.

Глубокое копирование предпочтительно, когда нужно полностью изолировать копию от оригинала, чтобы изменения в одном не влияли на другой. Поверхностное копирование эффективно, когда нужно сэкономить память или время на копирование, и если объекты, на которые есть ссылки, не изменяются или их изменения допустимы в обоих экземплярах.

#вопросы_с_собеседований