Программирование {BookFlow}
16.2K subscribers
1.58K photos
468 videos
145 files
2.1K links
Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций, новости технологий.

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

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

РКН https://clck.ru/3KoAbH
Download Telegram
Подборка Telegram каналов для программистов

Системное администрирование 📌
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С

Программирование 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_1 Статьи из "Хакера"

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

Английский 📌
https://t.me/UchuEnglish Английский с нуля

Математика 📌
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
👍2
Путеводитель C++ программиста по неопределенному поведению

Все начинается просто и незатейливо: обычный десятиклассник увлекается программированием, знакомится с алгоритмическими задачками, решения которых должны быть быстрыми. Узнает о языке C++, учит минимальный синтаксис, основные конструкции, контейнеры, решает задачи с предопределенным и всегда корректным форматом ввода и вывода, и горя не знает...

В это же время, где-то в большом мире, матерые разработчики каждый день ругают то одни языки программирования, то другие. По самым разным причинам: не удобно, нет какой-то возможности, много лишних букв писать, ошибки в стандартной библиотеке... Но есть язык, который ругают за все и особенно за такую непонятную и таинственную вещь как неопределенное поведение (undefined behavior, UB).

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

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

Важно: этот сборник не является учебным пособием по языку и рассчитан на тех, кто уже знаком с программированием, с C++, и понимает основные его конструкции.

https://github.com/Nekrolm/ubbook

#cpp@bookflow

👉 @Bookflow
🎉2👍1
Шпаргалка по разрешениям файлов в Linux (разрешения SUID, SGID и Stick Bit)

#linux@bookflow

👉 @Bookflow
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Совет💡: Chrome DevTools позволяет переопределять содержимое Fetch/XHR-запросов! Это полезно для мокирования API без необходимости ждать изменений на стороне бэкенда.

#Tools@bookflow

👉 @Bookflow
👍8
Внутреннее устройство Linux - доступно, но всерьез.

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

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

#linux@bookflow

👉 @Bookflow
🔥6👍4
Как правильно писать комментарии в коде, чтобы не бесить коллег?

Когда-то давно я думал, что комментарии — это зло. «Хороший код говорит сам за себя!» — говорил я. Потом пришел кода в большой проект и потратил три часа на разбор функции 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
Ни одна реализация элементарных функций не соответствует стандарту 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