Библиотека программиста | программирование, кодинг, разработка
86.2K subscribers
3.13K photos
148 videos
88 files
6.36K links
Все самое полезное для программиста в одном канале.

Список наших каналов: https://tttttt.me/proglibrary/9197
Учиться у нас: https://proglib.io/w/a32a0d94

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv
Прайс: @proglib_advertising
Download Telegram
😀 Платные подписки есть? А если найду?!

💬 А у вас есть? На какие сервисы? Поделитесь в комментариях👇

#холивар
🏃 Самоучитель по Go для начинающих. Часть 16. Тестирование кода и его виды. Table-driven подход. Параллельные тесты

В статье познакомимся с концепцией тестирования кода и её основными видами, изучим инструменты стандартного пакета testing, научимся запускать и визуализировать тесты. В качестве практического задания напишем и протестируем алгоритм «Решето Эратосфена».

👉 Читать гайд

📌 Остальные части в серии:

1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
9. Структуры и методы. Интерфейсы. Указатели. Основы ООП
10. Введение в ООП. Наследование, абстракция, полиморфизм, инкапсуляция
11. Обработка ошибок. Паника. Восстановление. Логирование
12. Обобщенное программирование. Дженерики
13. Работа с датой и временем. Пакет time
14. Интерфейсы ввода-вывода. Буферизация. Работа с файлами. Пакеты io, bufio, os
15. Конкурентность. Горутины. Каналы
Привет, друзья! 👋

Мы готовим статью о самых странных и уникальных дистрибутивах Linux, и нам нужно ваше мнение! 🤔💬

1️⃣ Какой самый необычный дистрибутив Linux вы когда-либо пробовали? Почему он вас удивил?
2️⃣ Есть ли у вас советы для новичков, которые только начинают работать с Linux? 🐧

Поделитесь своими идеями в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙌
🔍 Детальное сравнение и углубленный анализ производительности Java, Go, C++, Rust: как сборка мусора влияет на производительность и эффективность использования ресурсов

Любопытное исследование, в котором рассматриваются накладные расходы, связанные с использованием языков с автоматической сборкой мусора (Java и Go) по сравнению с языками с ручным управлением памятью (C++ и Rust), в контексте систем репликации конечного автомата (SMR), работающих в облаке.

👉 Читать
😮 Японцы наняли 10 котов для своих айтишников

Они не просто домашние животные, а полноценные «employees». Среди них есть «главный клерк», «аудитор» и даже «председатель» — кот по имени Футаба.🤔

Коты помогают создать уютную атмосферу в офисе и даже способствуют снижению уровня увольнений. Самые важные сотрудники получают всё необходимое: собственные туалеты, полки и защиту от когтей на стенах.

😁 — Хочу котиков себе на работу
🌚 — У меня свой котик
🥱 — Не нужны котики, так как не сосредоточишься на работе (душнила)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🍉 Подборка лучших статей «Библиотеки программиста» за август: сохраняй в заметки, чтобы не пропустить #самыйсок

🎮🚀 Saturated Outer Space: как инди-разработчики перезапускают игру и бросают вызов жанровым стереотипам
🤖🛠 Секреты эффективного промптинга: 4 способа улучшить качество ответов чат-бота
🎮 Как зарабатывать на играх или зачем изучать игровую аналитику в 2024 году
🏄 6+ главных алгоритмов балансировки нагрузки
🖼 5 стратегий рендеринга веб-страниц: как выжать максимум из вашего сайта
🚀 Ускорьте свою базу данных: 7 проверенных методов масштабирования и оптимизации
🐘🧠 Оптимизация использования памяти в PostgreSQL: секреты профессионалов
🏃 Самоучитель по Go для начинающих. Часть 15. Конкурентность. Горутины. Каналы
🆕📜 Что нового в TypeScript 5.5: 4 ключевых улучшения
🎮📖 Библиотека геймдизайнера: 10 must-read книг 2024 года
🤖 6 основных алгоритмов машинного обучения: руководство для начинающих
🏗 Структуры данных для разработчиков: 10 самых важных
$1.1M — именно столько заработал американский школьник

Он использовал API ChatGPT и создал удобную оболочку, которая делает взаимодействие с ним еще проще.

В итоге получил:
приложение для App Store, которое считает калории по фото. Его скачали более 100 тысяч человек.

Как вам такой подход к бизнесу? Кажется, теперь каждый может заработать свой миллион 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
🛠 Сага: эффективный шаблон микросервисной архитектуры

Полную бизнес-транзакцию, как правило, очень сложно описать с помощью одной транзакции в базе данных. Возьмем, к примеру, процесс покупки в онлайн-магазине — с момента нажатия кнопки «Купить» до момента доставки заказа к вашей двери происходит серия шагов:

🔸 Размещение заказа. Пользователь выбирает нужные товары, добавляет их в корзину и начинает процесс оформления заказа. Система сохраняет информацию о видах товаров, их количестве, имени заказчика, адресе и способе доставки.
🔸 Создание счета-фактуры. После размещения заказа создается счет-фактура, который служит основной записью о транзакции и используется для выставления счета и учета.
🔸 Обработка платежа. Инициируется процесс оплаты, пользователь предоставляет данные банковской карты или электронного кошелька. Оплата безопасно обрабатывается, и после успешного завершения заказ подтверждается.
🔸 Отправка товара. После обработки платежа заказ готовится к отправке: создается информация для отслеживания, система уведомляет пользователя об ориентировочной дате доставки.

Каждый из этих шагов включает взаимодействие с различными микросервисами — сервисов заказов, платежным сервисом и сервисом доставки. Для успешного и последовательного выполнения бизнес-транзакции важна безупречная координация всех частей системы. Эта задача кажется очень сложной, но к счастью, есть универсальный и надежный паттерн, который помогает выстроить взаимодействие микросервисов самым оптимальным образом — Сага. О нем и пойдет речь в статье.
Telegram представил обновление Bot API 7.10 с рядом нововведений

Telegram продолжает активно развивать свою платформу, добавляя полезные функции и улучшения.

Что там по Bot API 7.10?

Добавлен новый класс PaidMediaPurchased и поле purchased_paid_media в классе Update, которые позволяют отслеживать обновления о покупке платного медиа.

Теперь можно указывать payload в sendPaidMedia, который бот получает обратно в TransactionPartnerUser и обновлениях о платном медиа.

А что ещё завезли? 👀

Также, как все заметили добавили новый способ взаимодействия с аудиторией — звёздные розыгрыши ⭐️

👉 Подробнее смотрите по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 Продвинутый TypeScript: 15 приемов для создания надежного кода

От рекурсивных псевдонимов типов до дискриминированных объединений — эти приемы помогут вам писать более эффективный и безопасный код. Здесь разберем основные моменты, а полностью читайте в статье:

☑️ Интерполяция строковых литералов: позволяет динамически создавать новые типы строковых литералов на основе существующих типов.
☑️ Брендирование: позволяет создавать уникальные идентификаторы для предотвращения смешивания типов, даже если они принадлежат к одному и тому же типу данных.
☑️ Условные типы: позволяют извлекать информацию о типах из сложных структур с помощью ключевого слова infer.
☑️ Шаблонные литералы — комбинация литеральных типов и операторов для манипуляций со строками, которая позволяет создавать мощные ограничения типов на уровне строк.
☑️ Рекурсивные псевдонимы типов (алиасы): позволяют определять типы, которые ссылаются на самих себя.
☑️ Вариативные типы (TypeScript 4.0+): позволяют более гибко манипулировать кортежами.
☑️ Переименование ключей с помощью as: при работе с объектами типа ключ-значения можно использовать as для переименования ключей — это позволяет создавать производные типы с измененными именами свойств.
☑️ Константные утверждения в TypeScript: позволяют создавать более конкретные литеральные типы из массивов и объектов.
☑️ Дискриминированные объединения: позволяют создавать типы, которые могут представлять несколько различных вариантов объекта.
☑️ Фильтрация ключей по типам значений: типы ключ-значение можно комбинировать с условными — для фильтрации по типам значений.
☑️ Создание типобезопасных эмиттеров событий с помощью дженериков: типобезопасные эмиттеры событий могут существенно улучшить надежность кода, основанного на событиях.
☑️ Самоссылающиеся типы: позволяют создавать сложные, вложенные структуры данных, сохраняя при этом типобезопасность.
☑️ Непрозрачные типы с использованием unique symbol: позволяют создавать типы, которые структурно похожи, но рассматриваются типовой системой как разные.
☑️ Последовательности целых чисел на уровне типов: подход, который позволяет создавать более точные типы для операций с массивами, обеспечивая проверку длины массива на этапе компиляции.
☑️ Типобезопасный DeepPartial с использованием рекурсивных условных типов: позволяет работать с частичными данными сложных объектов безопасным способом.
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет, друзья! 👋

Мы готовим статью о будущем AI и его влиянии на разработку. Нам важно ваше мнение!

1️⃣ Как вы думаете, AI действительно изменит мир разработки? 🤖
2️⃣ Какие плюсы и минусы использования AI в разработке вы видите? 💡
3️⃣ Есть ли у вас примеры успешного применения AI в ваших проектах? 🛠️

Поделитесь своими идеями в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙌