proglibrary | Технологии

Telegram-канал proglibrary - Библиотека программиста | программирование, кодинг, разработка

77043

Все самое полезное для программиста в одном канале. Список наших каналов: https://t.me/proglibrary/9197 Учиться у нас: https://proglib.io/w/a32a0d94 Обратная связь: @proglibrary_feedback_bot По рекламе: @proglib_adv Прайс: @proglib_advertising

Подписаться на канал

Библиотека программиста | программирование, кодинг, разработка

💡Развитие протоколов API в 2023 году: по мотивам статьи Alex Xu в блоге Postman

В PDF-файле — обзорная демонстрация, а в статье вас ждет подробный взгляд на шесть самых популярных протоколов API с акцентом на преимущества и проблемы каждого:

1️⃣ REST
2️⃣ Webhooks
3️⃣ GraphQL
4️⃣ SOAP
5️⃣ WebSocket
6️⃣ gRPC

💬 Какой используется в вашем проекте? Делитесь в комментариях мыслями по данной теме👇

#проектирование_систем

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🤔 Размышления о 18 годах работы в Google

Google давно ушла от своей миссии «Упорядочить мировую информацию и сделать ее универсально доступной и полезной» к погоне за краткосрочными колебаниями курса акций.

Почему так произошло и можно ли это исправить? Читайте перевод статьи-откровения Ian Hickson, который проработал в Google 18 лет.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Pattern Guru - канал по паттернам программирования.

Знаешь как работает Singleton?

Используешь шаблон Fabrica?

Можешь сам написать Decorator?

Понимаешь что такое Best Practices?

Всё это и не только мы разбираем у нас в канале.

Подписывайся: @highloadmicro

Реклама. Киренкина Марина Дмитриевна, ИНН 345702417736. Erid 2VtzqvSLi6D

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🔂 4 наиболее часто используемых типов очередей на одной диаграмме: наглядная иллюстрация от ByteByteGo (Alex Xu)

1️⃣Простая очередь FIFO. Следует принципу First In First Out — первым пришел, первым ушел. Все новые элементы добавляются в конец очереди. Когда элемент удаляется из очереди, удаляется элемент, который находится в начале очереди, то есть добавленный первым.

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

2️⃣Круговая очередь или кольцевой буфер. Ее последний элемент связан с первым элементом. Вставка происходит в начале очереди, а удаление — в конце.

💡Применение: управление аудиоданными в реальном времени, где кольцевой буфер может использоваться для временного хранения аудиоданных перед их обработкой. 

3️⃣Очередь с приоритетами. Каждый элемент имеет определенный приоритет, и элементы обрабатываются в порядке их приоритета, а не в порядке их добавления.

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

4️⃣ Двухсторонняя очередь. Вставка и удаление могут происходить как в начале, так и в конце очереди. Двухсторонняя очередь поддерживает как FIFO, так и LIFO (Last In First Out — последним пришел, первым ушел), поэтому мы можем использовать ее для реализации структуры данных стека.

💡Применение: навигация в веб-браузере. Пользователь переходит по различным веб-страницам, и браузер должен запоминать историю этих переходов, чтобы пользователь мог вернуться на предыдущие страницы или перейти обратно вперед.

#вопросы_с_собесов

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🛠 Обзор GitHub на некоторые из наиболее интересных функций и изменений Git (обзор от OpenNET)

▫️В команду git repack добавлены опции "--filter" и "--filter-to", позволяющие выполнить переупаковку репозитория c учётом заданного фильтра объектов, и при необходимости перенести в отдельное место объекты, не удовлетворяющие заданному фильтру.

▫️Например для оставления в репозитории блобов, размером менее 1 МБ, и выносом в отдельный репозиторий остальных крупных объектов, можно выполнить:

$ git init --bare ../backup.git
$ git repack -ad --filter='blob:limit=1m' \
--filter-to=../backup.git/objects/pack/pack


▫️Инициализация репозитория при помощи частичного клонирования позволяет работать с неполной копией репозитория, корректно обрабатывая обращения к отсутствующим объектам (при обращении к отсутствующим объектам, они на лету будут загружаться по мере необходимости).

$ git clone --filter=tree:0 git@github.com:git/git.git


▫️Добавлена возможность работы (git repack --max-cruft-size) с несколькими pack-файлами с информацией о недостижимых объектах (cruft packs), на которые в репозитории отсутствуют ссылки (не ссылаются ветки или теги).

▫️Добавлено распознавание попыток выполнения двойной отмены коммита через git revert и учёт этого факта при формировании сообщения об отмене

$ git revert --no-edit HEAD >/dev/null
$ git revert --no-edit HEAD >/dev/null
$ git log --oneline
a300922 (HEAD -> main) Reapply "fix bug"
0050730 Revert "fix bug"
b290810 fix bug


▫️Разрешено совместное использование опций "--rfc" и "--subject-prefix". Например, для формирования письма с префиксом "[RFC PATCH bpf-next]" в теме сообщения можно указать:

$ git format-patch --subject-prefix="PATCH bpf-next" --rfc


▫️В команде git log разрешено указание заполнителя "%(decorate)" для показа имён связанных веток при определении формата при помощи опции "--format", например:

$ git log --format='%cr%(decorate) (%h) %s'


#новости #инструменты

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

📌 То, что зацепило на это неделе:

🤯 Как сооснователя Сэма Альтмана уволили с поста СЕО, а затем вернули обратно: разбор истории.
🤩 Dota 2 стала образовательной дисциплиной по стратегии в Филиппинском университете.
🤩 DALL-E 3 заработала в Paint для всех пользователей Windows 11.

🔸 Опубликован выпуск IDE Qt Creator 12.0, предназначенной для создания кроссплатформенных приложений с использованием Qt.
🔸 Представлен релиз PHP 8.3. Новая ветка включает ряд новых возможностей, а также несколько изменений, нарушающих совместимость.
🔸 Доступен выпуск Git 2.43. О новых фичах на русском читайте здесь.
🔸 Состоялся релиз Firefox 120. Новый выпуск поддерживает операцию Copy Link Without Site Tracking, позволяющую скопировать URL выбранной ссылки, предварительно вырезав из него опции, которые используются для отслеживания переходов. Читайте подробнее об этой и многих других фичах на русском.
🔸 В репозитории PyPI выявлено около 5000 оставленных в коде секретов и 8 вредоносных обфускаторов.

#чтопроисходит

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🤩 Ребята из Honeypot продолжают снимать замечательные доки про языки программирования, популярные технологии, библиотеки и инструменты. Из последнего — Ruby on Rails.

Ruby on Rails (Rails) — один из самых обсуждаемых полнофункциональных фреймворков, который за 20 лет превратился из «сумасшедшей идеи» в ключевой инструмент в мире веб-разработки. Основатель Rails, датский программист Давид Хейнемейер Ханссон, известный как DHH, является одной из самых спорных и влиятельных фигур в сообществе. Он рассказывает о том, как Rails развивался и менялся.

Вас ждут интервью с ключевыми фигурами Rails, которые делятся историей языка и фреймворка, страстью, противостоянием и зрелостью, наступившей после выпуска Rails 3.0.

📌 Другие доки:
📺 React.js
📺 Prometheus
📺 Kubernetes: часть 1 & часть 2
📺 Vue.js
📺 GraphQL
📺 Elixir
📺 Ember.js

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

👁Помогите «Библиотеке программиста» лучше узнать свою аудиторию

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

Пожалуйста, ответьте на несколько вопросов — это не займет у вас много времени, но поможет нам делать более полезные и интересные посты!

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🤷‍♂️ «Питомцы vs Скот»: 99% вашей работы в итоге выбросят, но это и сделает вас профи

Раньше в DevOps, когда каждый сервер был уникален и имел свое имя (как домашний питомец), админы уделяли много внимания каждому серверу. Если сервер падал, его восстанавливали (лечили больного питомца).

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

Может разработчикам тоже стоит изменить свое отношение к коду и проектам? Вместо того чтобы относиться к каждой строке кода, как к домашнему питомцу (с бесконечными рефакторингами и заботой), нужно принять, что большая часть кода со временем станет ненужной и будет заменена.

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

И хоть с 99-ю процентами автор загнул (хотя кто знает) , это весьма любопытная аналогия. https://sider.ai/lp/linkReader?source=lr&p1=vision&p2=lp

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🛠 Как проектировать REST API: полезные советы для разработчика

1. Используйте существительные во множественном числе для обозначения коллекций.

# Хорошо
GET /products
GET /products/{product_id}

# Плохо
GET /product/{product_id}


2. Не добавляйте ненужные пути в структуру URL-адресов.

# Хорошо
GET /v3/application/listings/{listing_id}

# Плохо
PATCH /v3/application/shops/{shop_id}/listings/{listing_id}


3. Не добавляйте .json или другие расширения к URL-адресу.

4. Не возвращайте массивы в качестве ответов верхнего уровня от эндпоинтов. Верхний уровень ответа должен быть объектом, а не массивом, чтобы обеспечить обратную совместимость и возможность добавления пагинации.

# Хорошо
GET /things returns:
{ "data": [{ ...thing1...}, { ...thing2...}] }

# Плохо
GET /things returns:
[{ ...thing1...}, { ...thing2...}]


5. Не возвращайте структуры map. Вместо этого используйте массивы объектов, чтобы избежать проблем при работе с типизированными языками и не усложнять обработку данных.

# Хорошо
GET /things returns:
{
"data": [
{ "id": "KEY3", "foo": "bat" }
]
}

# Плохо
GET /things returns:
{
"KEY3": { "id": "KEY3", "foo": "bat" }
}


6. Используйте строки для всех идентификаторов.

# Хорошо
{ "id": "123" }

# Плохо
{ "id": 123 }


7. Добавляйте префиксы к идентификаторам. Это улучшает читаемость API и помогает различать разные типы идентификаторов.

8. Не используйте 404 для обозначения "not found". Вместо этого рекомендуется использовать другие коды ошибок, чтобы точно указать на отсутствие ресурса.

9. Будьте последовательными. Несоответствие в схемах и структурах может вызвать путаницу и усложнить работу с API.

10. Используйте структурированный формат ошибок. Это облегчает отладку и обработку ошибок на разных уровнях системы.

11. Обеспечьте механизмы идемпотентности. Это важно для предотвращения дублирования операций в условиях нестабильной сети.

12. Используйте строки ISO8601 для временных меток. Строковое представление времени более читаемо и удобно для работы.

👉 Подробнее

#проектирование_систем

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🐍 У нас есть еженедельная email-рассылка, посвященная последним открытиям и тенденциям в мире Python.

В ней:
● Новые возможности в последних версиях Python
● Работа с базами данных и SQL в Python
● Веб-разработка на Django и Flask
● Машинное обучение и анализ данных с помощью Python
● Автоматизация и работа с API на Python
● Тестирование и отладка кода на Python
● Задачи для новичков с решениями

👉Подписаться👈

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🔢 Как научиться решать сложные задачи

Нам может не даваться решение сложных математических задач по многим причинам: от стереотипов до негативного школьного опыта. К счастью, это можно исправить. В карточках перечислили лучшие на наш взгляд книги, которые помогут понять, полюбить и подтянуть математику.

Ещё больше книг, а также курсы, игры, методики и приложения — в нашей статье 👈

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

😈 Самые черные скидки в академии. -50% на курсы

🔥 В честь черной пятницы до 30 ноября мы запустили масштабную распродажу на все наши курсы – https://proglib.io/w/80fc1817

На всех курсах вас ждет:

⚫️ Лучший преподавательский состав.
Например, математику вам будут преподавать доценты ВМК МГУ. А алгоритмы разработчик из Яндекса и преподаватель МФТИ и НИУ ВШЭ.

⚫️ Бессрочный доступ ко всем курсам.
А это значит, что вы сможете проходить обучение в своем темпе, без жестких дедлайнов.

⚫️ Поддержка преподавателей в чате и на платформе Coreapp.
Вам всегда помогут разобраться в сложной теме и ответят на любые вопросы.

👉 А если вы сомневаетесь подходит ли вам курс, то вы можете начать изучение с бесплатных вводных занятий, чтобы познакомиться с преподавателями и форматом обучения.

Переходите на сайт и оставляйте заявку на вводные занятия – https://proglib.io/w/80fc1817

До встречи на обучении 🙌

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

💻 Комфортный сетап и качественное рабочее пространство — это то, что прямо пропорционально влияет на вашу продуктивность. Кто-то тратит на всё это очень большие деньги, а кому-то вообще по барабану, в какой монитор смотреть, на чём сидеть и на что нажимать.

В любом случае эта тема важная и интересная. Смотрите подкаст «Мы обречены» о том, как собрать идеальное рабочее место для программиста:

📺 02:58 — Представление гостей
📺 05:31 — Значение и смысл личного и рабочего комфорта
📺 16:23 — Поднимающийся стол
📺 23:16 — Стул
📺 30:23 — Монитор
📺 45:23 — Клавиатура
📺 1:08:51 — Мышка
📺 1:15:28 — Странные бесполезные устройства
📺 1:21:33 — Умный дом
📺 1:47:52 — Важность комфорта для продуктивности
📺 1:58:07 — С чего начать в осваивании комфорта
📺 2:02:32 — Обнадеживающее аутро

#подкасты

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🦀 Отличная новость для начинающих и начавших Rust-разрабов!

На roadmap.sh вышла дорожная карта, которая поможет выбрать правильный вектор в обучении.

#roadmap #rust

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Подборка лучших статей «Библиотеки программиста» за ноябрь: сохраняй в заметки, чтобы не пропустить #самыйсок

🗺️ Дорожная карта Go-разработчика в 2023 году
🧑‍💻 6 карьерных советов программисту
⚖️ 25 курсов, книг и подкастов для развития критического мышления
🐍🎨 Генерация красивых QR-кодов с помощью Python
🔈16+ лучших нейронок для синтеза речи
FAQ по трудоустройству: разбираем самые популярные вопросы
👨‍💻 7 типов «сложных» разработчиков
Дорожная карта DevOps-инженера в 2023 году
❤️🙏 Путь к мечте: как инвалидность не помешала стать разработчиком и продолжить борьбу за здоровье
👀 6 способов привлечь внимание работодателя
🤖📜 Искусственный интеллект: краткая история
🔤 Азбука SQL в примерах (часть 1 + часть 2)
🔢 Как научиться решать сложные задачи
🏆 Самые популярные языки программирования 2023
📰❌ 10 признаков фейковой вакансии
🏃 Самоучитель по Go для начинающих (часть 1 + часть 2)
⚛️ 45 вопросов для подготовки к собеседованию по React
🐍 5 задач для подготовки к собеседованию по Python
🐍🤖✍️ Документирование кода и проектов на Python с помощью ChatGPT

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🏆 Самые популярные языки программирования 2023

Популярность ЯП зависит от нескольких факторов. Мы разобрались с ними, составили сводный рейтинг и обсудили особенности, преимущества, недостатки и причины популярности каждого языка. Заходите и читайте👇

🔗 Читать статью
🔗 Зеркало

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🧠Полезные каналы по Data Science

Напоминаем про наши каналы по Data Science, в которых мы готовимся к собеседованиям проверяем себя на практических задачках — специально для специалистов по Data Science и тех, кто хочет ими стать👨‍🏫

Подписывайтесь:
👉Библиотека собеса по Data Science — тут мы готовимся к интервью
👉Библиотека задач по Data Science — тут решаем задачи, проходим тесты и изучаем код

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Чёрная Пятница в Практикуме заканчивается 30 ноября. Выберите любой курс до 30.11 и учитесь на 20% дешевле. На курсах вас будут ждать:

— YandexGPT, который объяснит всё в любое время дня и ночи;
— интерактивный учебник, собранный на основе реальных задач специальности;
— команда сопровождения, которая поможет, подбодрит и увлечёт.

Чёрная Пятница в Практикуме — время карьерных перспектив!

→ Выбрать курс

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

👨‍🏫Полезные каналы по Go

Напоминаем, что «Библиотека программиста» запустила два канала специально для Go-разработчиков и тех, кто хочет ими стать.

Подписывайтесь:
👉Библиотека собеса по Go — тут мы готовимся к интервью
👉Библиотека задач по Go — тут решаем задачи, проходим тесты и изучаем код

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

❗️Мы запускаем серию исследований — и вы можете нам в этом помочь!

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

Помогите нам выбрать интересные темы: может быть, вы давно хотели узнать, как изменилась зарплата у тех, кто релоцировался? Или гадаете, сколько лет нужно, чтобы стать миддлом?

Присылайте интересующие вас темы в комментарии — интересные мы возьмем в работу и поделимся с вами результатами 💙

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🥷Это путь воина

Напоминаем, что «Библиотека программиста» запустила два новых канала специально для специалистов по C++ и тех, кто хочет ими стать👨‍🏫

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

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🤖 «Генеративный ИИ для начинающих» — новый курс от Microsoft, который включает 12 уроков от Microsoft Cloud Advocates. Каждый урок охватывает ключевые аспекты принципов генеративного ИИ и разработки приложений и включает:

☑️ Видеообзор темы
☑️ Текстовая лекция
☑️ Jupyter Notebook с примерами кода
☑️ Задание для самостоятельной работы
☑️ Ссылки на полезные ресурсы

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🤖 Напоминаем, что у нас есть еженедельная email-рассылка, посвященная последним новостям и тенденциям в мире искусственного интеллекта.

В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги

👉Подписаться👈

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🤔 Переосмысление привычных нам уровней разработчиков (junior, middle, senior)

Автор делится видением уровней разработчиков, в которых главный критерий разделения — способность решать проблемы. По его классификации 2-й и 4-й уровни дают предсказуемый результат эффективным способом, отличается только сложность решаемой проблемы:

1️⃣ Простое решение проблем случайным образом
2️⃣ Простое решение простых проблем
3️⃣ Решение сложных проблем случайным образом
4️⃣ Простое решение сложных проблем

По сравнению с классическим набором уровней эти уровни:

☑️ Более прозрачны
☑️ Измеримы
☑️ Соотносятся с опытом
☑️ Соответствуют ожиданиям

👉 Подробнее о каждом уровне с примерами читайте в статье

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

☝️🚀 Рейтинг Low Code опенсорсных инструментов разработки за последние 28 дней

🔝 Топ-5 в нашей подборке:

1️⃣ AppFlowy-IO/AppFlowy — альтернатива Notion на Flutter и Rust. Вы отвечаете за свои данные и настройки.
2️⃣ supabase/supabase — альтернатива Firebase. Один из самых быстрорастущих проектов на GitHub.
3️⃣ refinedev/refine — основанный на React фреймворк для создания внутренних инструментов, панелей администратора, информационных панелей и приложений B2B с акцентом на гибкость.
4️⃣ n8n-io/n8n — расширяемый инструмент автоматизации рабочих процессов.
5️⃣ appwrite/appwrite — end-to-end бэкенд сервер для веб-, мобильных, нативных или серверных приложений, упакованный в виде набора микросервисов Docker.

#инструменты

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

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

🤔 Можно уволить программиста, на его место придет другой и через условные месяц-два-полгода начнет закрывать таски не хуже. Если увольняется дизайнер, его монстр, пушка или контент повисает без хозяина и без «видения». Если её не перехватил сосед (а у соседа свой монстр), то в большинстве случаев его работа просто уходит в стол и монстра пишут заново на тех же ассетах и принципах, но заново.

🤯 Это не поток мыслей, а мнение и опыт автора статьи и разработчика игр в Ea Spb. И как вы уже поняли, этот материал об обратной стороне любви к играм и том, что из себя представляет геймдев в конкретной компании. 

💬 Ситуация в других компаниях может отличаться. Если у вас есть положительный опыт, поделитесь в комментариях👇

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🗣Можно напевать после очередного отказа...

#жиза

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

💻 Если ввести в браузере «стажировка в Aston», то можно узнать, как начать карьеру в ИТ и найти первую работу

Каждый месяц мы запускаем набор на стажировки по разным направлениям👍
Подавать заявку можно без практического опыта в ИТ.

Достаточно быть коммуникабельным, мотивированным и иметь крепкие теоретические знания по выбранному направлению. Мы гарантируем трудоустройство всем, кто успешно пройдет стажировку 🕺

💯 Оставить заявку можно здесь

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

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

Расскажите, что именно вдохновляет вас писать код и создавать новые программы.

👉Опрос тут👈

Читать полностью…
Подписаться на канал