Telegram Web Link
Высокая производительность и безопасность? Да, это про Rust.

Изучайте Rust в нашем курсе-тренажёре!
Получайте практические навыки с первого урока вместе с автором курса и опытным наставником.

Курс-тренажёр - это:
💡 100+ практических задач
💡 пет-проекты в портфолио: blockchain, frontend и backend
💡 code review от наших наставников 24/7 с нашим AI-помощником Ду-Ду
💡 бессрочный доступ к актуальной программе: обновляем каждые 3 месяца
💡 бесплатный демо-доступ с практикой

Для кого этот курс:
для разработчиков на системных языках C и C++
для разработчиков, которые взаимодействуют с высокоуровневыми языками (Python, JavaScript, Java и C#)

Уже сейчас вам доступны 3 первых урока:

Урок #1 | Выбор IDE, установка окружения и первый "hello world"
Соберёте и запустите первый "hello world" проект.

Урок #2 | Базовый синтаксис
Научитесь писать Rust код в процедурном стиле. Изучите типы данных, встроенные и пользовательские типы, функции и переменные

Урок #3 | Владение и заимствование
Используете механизмы управления памятью и ссылками. Решите несколько задач на владение, заимствование и слайсы.

➡️ Получить демо-доступ сейчас

Реклама. Информация о рекламодателе
Please open Telegram to view this post
VIEW IN TELEGRAM
Как правильно писать комментарии в коде, чтобы не бесить коллег?

Когда-то давно я думал, что комментарии — это зло. «Хороший код говорит сам за себя!» — говорил я. Потом пришел кода в большой проект и потратил три часа на разбор функции processData(), которая делала… что-то.

📝 Главное правило: комментарии нужны не для очевидных вещей, а для объяснения сложных решений и бизнес-логики.

Пишите почему, а не что
// Уменьшаем баланс пользователя
// Списываем сумму только после проверки, чтобы избежать дублей

Избегайте очевидных комментариев
// Устанавливаем X в 10
int x = 10;

Объясняйте магию
Если формула или алгоритм нетривиальны, объясните, почему они такие.

// Используем формулу Гаусса для быстрого вычисления суммы от 1 до N
return (n * (n + 1)) / 2;


Следите за актуальностью
Старые, нерелевантные комментарии хуже, чем их отсутствие. Они вводят в заблуждение.

Какой самый худший комментарий вам встречался? 😅

🔔@lifeproger
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🚀 Как выбрать идеальный стек технологий?

Каждый программист хоть раз задавался вопросом: на каком стеке писать проект? Кто-то гонится за хайпом, кто-то выбирает проверенные решения, а кто-то берёт первое, что пришло в голову. Давай разберёмся, как выбрать технологии правильно.

1️⃣ Определи цели проекта
Если тебе нужно быстро запустить MVP – смотри в сторону фреймворков с богатой экосистемой (Django, Laravel, Next.js).
Если важна масштабируемость – обрати внимание на микросервисную архитектуру и язык, который лучше всего подходит для этих целей (Golang, Java, Node.js).

2️⃣ Посмотри на рынок
Выбрал язык? Отлично! Теперь узнай:
- Насколько востребованы специалисты?
- Есть ли хорошие библиотеки и фреймворки?
- Как развиваются технологии?

💡 Пример: Python – крутой язык, но если пишешь highload-систему, лучше глянуть на Rust или C++.

3️⃣ Проверь документацию и комьюнити
Хорошая документация = меньше боли. Если у технологии дохлый форум и обновления раз в три года – беги оттуда.

4️⃣ Экспериментируй
Лучший способ проверить стек – сделать pet-проект. Так ты поймёшь, удобно ли тебе работать с этими инструментами.

👉 @Bookflow
👍21
🔥 Разбираемся с std::invoke в C++ 🔥

Сегодня разберём мощный инструмент из стандартной библиотеки — std::invoke. Многие его игнорируют, но он может упростить вызов функций и методов, особенно в шаблонном коде.

📌 Что такое std::invoke?
std::invoke — это универсальный механизм вызова вызываемых объектов (callable). Он может вызывать:
Обычные функции
Лямбды
Функторы
Указатели на методы и данные

🔹 Пример использования:


#include <iostream>
#include <functional>

struct Foo {
void method(int x) {
std::cout << "Method called with " << x << '\n';
}
};

void function(int x) {
std::cout << "Function called with " << x << '\n';
}

int main() {
Foo foo;

// Вызов обычной функции
std::invoke(function, 42);

// Вызов метода класса через объект
std::invoke(&Foo::method, foo, 24);

// Вызов метода через указатель на объект
Foo* ptr = &foo;
std::invoke(&Foo::method, ptr, 77);

return 0;
}


🔥 Чем std::invoke полезен?
Универсальность: избавляет от необходимости писать отдельные if constexpr для разных callable объектов.
Чистый код: особенно полезен в шаблонных алгоритмах, где callable передаётся как параметр.

👉 @Bookflow
👍4
🎥 🐧 На открытом уроке «Каталоги /proc, /sys и /dev: виртуальные файловые системы Linux» вы разберётесь в том, что скрыто за системными процессами и как использовать эти данные для диагностики и мониторинга.

Что вы узнаете:
— Как устроены виртуальные файловые системы /proc, /sys и /dev.
— Какие данные помогают решать реальные задачи администрирования.
— Как формируются устройства в /dev и как связаны с ядром Linux.

⭐️ Спикер Андрей Буранов — системный администратор в VK, входит в топ-3 лучших преподавателей образовательных порталов.

⭐️ Встречаемся 17 февраля в 20:00 мск. Урок пройдет перед стартом курса «Administrator Linux. Professional», а все участники получат скидку на обучение.

👉 Участвуйте в вебинаре и добавьте уникальные скиллы в свой арсенал: https://vk.cc/cIwd6a

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Ни одна реализация элементарных функций не соответствует стандарту IEEE 754

Введённый в 1985 году стандарт IEEE-754 для чисел с плавающей запятой был предназначен для решения проблемы разнородности реализаций чисел с плавающей запятой, мешавших портируемости кода, а также для повышения стабильности между платформами.

Он получил широкое применение и многократно пересматривался в течение прошедших лет. Если вы когда-нибудь работали с любыми вещественными числами в своих приложениях, то они, вероятно, отвечали этому стандарту.

Моя работа в течение последнего года заключалась в анализе погрешности различных математических функций, накопления этой погрешности и способов её уменьшения при помощи различных программных паттернов. Одной из исследованных мной тем были базовые математические функции, используемые в функциях активации нейронных сетей, а также способы их аппроксимации для повышения производительности. В процессе работы нам пришлось столкнуться с противодействием со стороны людей, активно стремящихся к корректной реализации математических функций и к соответствию их стандартам, в частности, к соблюдению обеспечения корректности одной наименее значимой единицы измерения (unit in last place, ULP) для элементарных функций.

https://habr.com/ru/hubs/algorithms/articles/

👉 @Bookflow
👍8🤷‍♂2🤔1
🚀 Тёмные стороны фриланса: что не рассказывают новички

Фриланс — это свобода, деньги и работа в пижаме… Но давайте честно: не всё так радужно. Вот тёмные стороны удалёнки, о которых редко говорят:

🔴 Нет стабильности
Один месяц ты купаешься в деньгах, другой – считаешь копейки. Нужно либо иметь "финансовую подушку", либо выстраивать поток заказов.

🔴 Клиенты-ужасы
ТЗ меняется на ходу, дедлайны горят, а оплата "вот-вот придёт". Учись фильтровать заказчиков и заключать договоры (или хотя бы брать предоплату).

🔴 Бесконечная работа
Фрилансер — это не только кодинг, но и маркетинг, переговоры, бухучёт и даже психология. Не готов? Придётся научиться.

🔴 Нет коллег – нет общения
Скучаешь по офлайн-тимбилдингам и офисным мемам? Добро пожаловать в мир Slack-чатов и созвонов, где ты сам себе HR и тимлид.

Фриланс — это круто, но только если ты понимаешь риски и умеешь ими управлять. Готов ли ты к такому формату работы? 🤔

🔔@lifeproger
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3😱1🤣1😈1
std::exception — это базовый класс для всех стандартных исключений в C++

Почему стоит наследоваться от std::exception?

• Единообразие в обработке исключений: Когда вы наследуетесь от std::exception, ваш класс исключения приобретает интерфейс, который делает его совместимым с другими стандартными исключениями

what() метод: std::exception предоставляет важный метод what(), который возвращает строковое представление исключения. Это позволяет вам предоставлять информативные сообщения об ошибке при обработке исключений

• Легкость в поддержке кода: Если вы используете сторонние библиотеки или фреймворки, они также могут ожидать обработку исключений, производных от std::exception

• Стандартные типы исключений: std::exception имеет несколько стандартных подклассов, таких как std::runtime_error, std::logic_error и другие. Вы можете использовать эти подклассы вместо базового std::exception, чтобы более точно определить характер ошибки

#cpp

👉 @Bookflow
🔥4👍2💊1
💪C++ — один из самых мощных и универсальных языков программирования. Его используют в геймдеве, финтехе, машинном обучении, разработке мобильных приложений и серверных решений.

Обучение «C++ Developer» даст вам фундаментальные знания и навыки, необходимые для работы с современными версиями языка, многопоточностью, CI/CD и сетевым программированием.

Вы с нуля получите практические знания, научитесь работать с библиотеками STL и Boost, освоите тестирование и подготовитесь к собеседованию на позиции Junior и Middle Developer.

➡️Регистрируйтесь на бесплатные вебинары прямо сейчас, получите скидку на курс и сделайте первый шаг к карьере C++-разработчика: https://vk.cc/cIJT8F

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
This media is not supported in your browser
VIEW IN TELEGRAM
CLI инструменты, которые облегчат времяпровождение в терминале и сделают его приятнее

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

В этом посте описан мой топ-25 обязательных инструментов CLI, на которые я привыкла полагаться.

Rus https://habr.com/ru/post/711968/

Eng https://dev.to/lissy93/cli-tools-you-cant-live-without-57f6#utils

#devops

👉 @Bookflow
👍5👎1😁1
Media is too big
VIEW IN TELEGRAM
STL с нуля | C++

1:24 - заполнение контейнеров.
2:44 - вопрос о передаче параметра в функцию (копия, ссылка, универсальная ссылка).
4:54 - как посмотреть, что генерит компилятор из универсальной ссылки.
8:53 - про рандом.
10:36 - list vs vector.
14:38 - как удалить элемент из std::vector.
16:19 - решение задачи про исчезнувший элемент.
18:11 - обсуждаем сложность алгоритмов.
21:37 - чем хороша STL.

#cpp

👉 @Bookflow
👏3
🌐Хотите войти в IT, но программирование кажется сложным? Вы уже пробовали учить Python, но застревали на базах данных, не понимали, как работает асинхронный код, и бросали попытки?

Тем временем компании продолжают искать Python-разработчиков. Они нужны в веб-разработке, data science, автоматизации. Этот язык один из самых востребованных, и освоить его — значит получить реальный шанс на хорошую работу.

Есть решение. Обучение «Python Developer. Basic» — это пошаговый путь от первых строк кода до уверенного Junior-разработчика. Вы освоите FastAPI, Django, работу с API, научитесь писать автотесты и работать с DevOps-инструментами.

👉Начните с нуля и получите сильное портфолио. Пройдите тест и получите доступ к бесплатным урокам и скидку на обучение: https://vk.cc/cIJW6b

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍1🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
🐾 Tabby

Это самостоятельный помощник по написанию кода с искусственным интеллектом, представляющий собой альтернативу GitHub Copilot с открытым исходным кодом и локальным ресурсом. Он может похвастаться несколькими ключевыми особенностями:

Самодостаточность, отсутствие необходимости в СУБД или облачном сервисе.
Интерфейс OpenAPI, легко интегрируемый с существующей инфраструктурой (например, Cloud IDE).
Поддержка графических процессоров потребительского класса.

https://github.com/TabbyML/tabby

#devops

👉 @Bookflow
👍3😁2
Облачные базы данных: Шпаргалка

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

Структурированные базы данных📌

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

Реляционные базы данных, такие как MySQL и PostgreSQL, хранят данные в таблицах со строками и столбцами.

Колоночные базы данных, такие как Amazon Redshift и Google BigQuery, также имеют структурированную модель данных, но хранят их по-другому, оптимизируя для аналитических запросов.

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

Примеры использования: CRM-системы, управление запасами, бухгалтерский учет, аналитика


Полуструктурированные базы данных📌

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

Примеры включают в себя документ-базы данных, такие как MongoDB, графовые базы данных, наподобие Neptune, широкие колоночные хранилища, такие как ScyllaDB, и хранилища ключ-значение, такие как DynamoDB.

Преимущества:
- Гибкость для изменяющихся данных
- Масштабируемость на разных серверах

Примеры использования: Электронная коммерция, ленты социальных сетей, данные IoT


Неструктурированные базы данных📌

Неструктурированные базы данных оптимизированы для хранения и обработки огромных объемов разнородных данных, таких как документы, изображения, видео. Примеры: AWS S3, Azure Blob Storage.

Преимущества:
- Хранение огромных объемов данных
- Высокая масштабируемость

Примеры использования: Медиарепозитории, управление контентом, океаны данных, журнальные данные, резервное копирование.

#database

👉 @Bookflow
👍42
😱❗️ Ваш сервер может работать быстрее — докажем на практике!

На открытом уроке «Оптимизация производительности Nginx/Angie» вы узнаете, как выжать максимум из веб-приложения.

Чем займёмся?
— Разберём системные настройки для улучшения работы серверов.
— Научимся оптимизировать TLS, кэширование и клиентскую часть.
— Поймём, какие параметры критичны для производительности.

⭐️ Спикер Николай Лавлинский — PhD Economic Sciences, опытный разработчик, автор курсов по администрированию и оптимизации веб-приложений, ведущий каналов «Ускорение сайтов» и «Поддержка сайтов».

Встречаемся 24 февраля в 19:00 мск. Урок пройдет перед стартом курса «Administrator Linux. Professional», а все участники получат скидку на обучение.

👉 Успейте зарегистрироваться: https://vk.cc/cIK4Y2

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
This media is not supported in your browser
VIEW IN TELEGRAM
DBDiagram

Бесплатный, простой инструмент для построения ER-диаграмм путем простого написания кода.
Предназначен для разработчиков и аналитиков данных.

https://dbdiagram.io/home

#database

👉 @Bookflow
👍8
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡10👍3🔥2
2025/07/14 18:25:51
Back to Top
HTML Embed Code: