Библиотека программиста | программирование, кодинг, разработка
82.9K subscribers
3.84K photos
178 videos
89 files
6.89K links
Все самое полезное для программиста в одном канале.

По рекламе: @proglib_adv

Курс по ML: https://clc.to/eLH_zQ

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5ba2901234b69883a4d46
Download Telegram
🤯 Работа с конфликтами слияния (merge) и перебазирования (rebase) в Git может быть сложной и трудозатратной, особенно в больших проектах или при частых изменениях. Здесь на помощь приходит малоизвестная, но мощная функция Git — git rerere (reuse recorded resolution).

🛠 Этот инструмент позволяет Git запоминать, как вы разрешали конфликты, и автоматически применять эти решения в будущем, существенно упрощая процесс разрешения повторяющихся конфликтов.

📌 Существует несколько ситуаций, в которых данный функционал может пригодиться:

1️⃣ Один из примеров состоит в том, чтобы обеспечить в будущем простоту слияния некоторой долгоживущей ветки, не создавая при этом набор промежуточных коммитов слияния.

При использовании rerere вы можете время от времени выполнять слияния, разрешать конфликты, а затем откатывать слияния. Если делать это постоянно, то итоговое слияние должно пройти легко, так как rerere сможет разрешить все конфликты автоматически.

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

2️⃣ Другая ситуация возникает, когда вы изредка сливаете несколько веток, относящихся к ещё разрабатываемым задачам, в одну тестовую ветку. Если тесты завершатся неудачей, вы можете откатить все слияния и повторить их, исключив из них ветку, которая поломала тесты, при этом не разрешая конфликты снова.

📌 Для включения функциональности rerere достаточно изменить настройки следующим образом:

$ git config --global rerere.enabled true


После этого Git начнет автоматически записывать и применять решения для конфликтов.

💡Помните, что такими долгоживущими ветками не стоит злоупотреблять. Хорошая ветка живёт день-два и уезжает в main (ну или в версию, если у вас одновременно живёт несколько веток).

👉 Подробнее

#советыдляразрабов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥31😁1
🎙️ Подкаст «Доктор Кот»: вредный трудоголизм — программирую, учусь и работаю 24/7, но этого все еще мало

Знакомо? Еще бы, но за трудоголизмом не всегда кроется благородное достигаторство — там может быть много негативных последствий.

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

📺 Смотреть
🎧 Слушать

#подкасты
🥰12😁8👍4
🏃 Самоучитель по Go для начинающих. Часть 6. Функции и аргументы. Области видимости. Рекурсия. Defer

В этом уроке рассмотрим функции, аргументы, области видимости, затронем тему указателей, узнаем про рекурсию и её применение в программировании, а также научимся использовать ключевое слово defer.

👉 Читать статью
👉 Часть 1
👉 Часть 2
👉 Часть 3
👉 Часть 4
👉 Часть 5
👍15
🤯 Про нашумевший тред парня, который нашел жену из 5239 девушек с помощью ChatGPT, слышно из каждого утюга. Поэтому интересна уже не сама история, а то, как люди на нее реагируют. А люди обычно разбираются, правда это или хайп, а также делают мемы.

🤦 Так вот, здесь айтишник с технической точки зрения оценил этот самый тред. Спойлер: либо парень гений, либо врёт.

Ну а мемы прикрепили к посту 😉

#назлобудня
😁31👍102🥱1🌚1
😈 Даркнет: как устроен теневой рынок труда

Рассказываем, как устроен теневой рынок даркнета, каких ИТ-специалистов там ищут и какую зарплату предлагают.

🔗 Читать статью
🔗 Зеркало
👍26🥱6😁4❤‍🔥3🔥2
🤔 Как правильно формулировать вопросы?

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

📌 Его мысли можно выразить одной фразой: «Чтобы не задавать вопрос в духе "привет, а как делать N?", попробуйте разобраться сами и задайте его уже по сути, а не в общем».
👍33🔥11🤔43
🤩 Подборка случайных докладов на недавних конференциях (и не только) от известных специалистов в индустрии

📺 C++ Russia: «C++ трюки из userver» / Антон Полухин
📺 HolyJS: «CSS first. Когда JS не нужен» / Никита Дубко
📺 DotNext: «Поговорим об описательной статистике перформанс-распределений» / Андрей Акиньшин
📺 HighLoad++: «От 0 до 200 000 000 игроков — об эволюции бэкенда за 40 мин» / Андрей Михеев
📺 Heisenbug: «Используем JS в браузере для повседневных задачек» / Алексей Иванов
📺 TechTrain: «Что такое MLOps и как это работает на примере Сбера» / Дмитрий Бугайченко
👍181😍1
Пикассо однажды сказал: «Главный враг творчества — здравый смысл»


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

😎 Поэтому сегодняшний материал про искусство overkill, но с упором на веб-разработку. Автор размышляет про выбор хостинга, API, потоковой передаче данных, базы данных, системы полнотекстового поиска, мер безопасности, мониторинга, логирования и стратегий кэширования. Где-то с ним можно согласиться, где-то — нет. Но посыл о том, что не стоит усложнять там, где это не нужно, абсолютно верный!

🤯 И чтобы у вас больше не было такого:

Мой простенький блог размещён в S3 buckets за CDN и генерируется с помощью кода Python, который применяет HTML-шаблоны на основе Jinja к файлам Markdown. Почему? Потому что я могу!


👉 Читайте статью на Medium или в PDF (в комментариях к посту)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2442😁1
Программируемая, масштабируемая и безопасная конфигурация


🛠 Команда Apple представила язык для описания конфигураций под названием Pkl.

📌 Что внутри:

🔸 Возможность создания любого статического формата конфигурации: определите все свои данные в Pkl и сгенерируйте выходные данные для JSON, YAML, Property Lists и других форматов конфигурации.
🔸 Интегрированная конфигурация приложения: встраивайте Pkl в свои приложения для настройки во время выполнения и получайте возможность генерировать код для Java, Kotlin, Swift и Go.
🔸 Интеграция с IDE: отличный инструмент для написания Pkl с такой же лёгкостью, как и статически типизированный язык. Apple предлагает плагины и расширения для IntelliJ, Visual Studio Code и Neovim.
🔸 Выявляйте ошибки перед деплоем: благодаря богатой системе типов и валидации выявляйте ошибки конфигурации перед деплоем приложения.

#новости
🥱27👍13
This media is not supported in your browser
VIEW IN TELEGRAM
😳🧰 Сеньор фиксит баги на проде — обычный рабочий момент

#жиза
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥72😁31🌚9👍7❤‍🔥1