Программирование {BookFlow}
16.9K subscribers
1.41K photos
419 videos
143 files
1.94K links
Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций, новости технологий.

Группа в https://vk.com/bookflow.

По всем вопросам @evgenycarter

Канал в РКН https://clck.ru/3FYhNV
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Совет💡: Chrome DevTools позволяет переопределять содержимое Fetch/XHR-запросов! Это полезно для мокирования API без необходимости ждать изменений на стороне бэкенда.

#Tools@bookflow

👉 @Bookflow
🐧 Вы уже работаете с Linux, но хотите оперативно устранять сбои и решать нестандартные задачи при настройке серверов?

💪 Все продвинутые навыки — от баш-скриптов и умения гибко рулить авторизацией до применения подхода Infrastructure as code — ждут вас на онлайн-курсе «Administrator Linux. Professional» от OTUS.

Пройдите тестирование, чтобы:
- оценить свои навыки;
- занять место на курсе по специальной цене;
- получить доступ к бесплатным урокам курса (доступны сайте курса).

👉 Полное тестирование: https://vk.cc/cIcXO5

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Внутреннее устройство Linux - доступно, но всерьез.

Уроки по Linux от Дмитрия Кетова для самостоятельного обучаения.

https://www.youtube.com/c/DmitryKetov/playlists

#linux@bookflow

👉 @Bookflow
Высокая производительность и безопасность? Да, это про 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
🚀 Как выбрать идеальный стек технологий?

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

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

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

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

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

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

👉 @Bookflow
🔥 Разбираемся с 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
🎥 🐧 На открытом уроке «Каталоги /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
🚀 Тёмные стороны фриланса: что не рассказывают новички

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

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

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

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

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

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

🔔@lifeproger
Please open Telegram to view this post
VIEW IN TELEGRAM