Обновить
32K+

Системы управления версиями *

GIT, SVN и иже с ними

0,73
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Хватит использовать Conventional Commits

Время на прочтение7 мин
Охват и читатели2K

Вы почти наверняка уже встречались с Conventional Commits. Их уродливые лица можно заметить в changelog опенсорсного проекта, которым вы пользовались. Возможно, это был обязательный формат коммитов опенсорсного проекта, в котором вы были контрибьютором. Многие люди безгранично им верят. Я им безгранично не верю.

Хоть он и применяется в большом количестве разных популярных опенсорсных проектов, Conventional Commits — это глубоко порочный стандарт, стимулирующий фокусироваться не на том и не оправдывающий свои ожидания.

Читать далее

Новости

Сайты-шринкфляторы: законно ли «урезание» купленного цифрового продукта?

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели7.5K

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

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

Читать далее

Александрийская библиотека: краткая история античной системы хранения

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели7.1K

Вчера, если вы не в курсе, в стране отмечался Общероссийский день библиотек. Чем не повод отметить сие событие тематичной статьёй.

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

Всё началось с власти. Птолемеи, закрепившиеся в конце IV века до н.э. в Египте после распада державы Александра Македонского, строят Александрию как столицу нового типа — не только административную, но и культурную. Библиотека здесь возникает не просто ради собрания книг, а как политический проект: собрать тексты — значит собрать знание, а что знание — сила, понимали уже тогда.

Библиотека изначально была встроена в Мусейон — учреждение, которое Страбон в книге «География» описывает как часть царского дворца, где учёные живут, питаются и работают за счёт царя. Это был не архив, а научное производство: свитки не лежали мёртвым грузом, их читали, переписывали, сравнивали, исправляли.

Фактически библиотечных собраний было два: главное — в царском дворце в квартале Брухейон, и вспомогательное — в храме Сераписа (Серапеуме), где хранились общедоступные фонды и учебная литература.

Читать далее

История IDE в Google

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели8.5K

В предыдущей статье я говорил о том, что основная кодовая база Google обязывает использовать строгий инструментарий и стандарты для обеспечения её масштабирования. В течение многих лет единственным исключением оставались IDE.

Контекст: я работал в Google в 2011 по 2024 год. Часть информации может быть приблизительной, и я буду дополнять её, если мне сообщат об ошибках. В этом посте речь пойдёт об основном монорепозитории Google (google3).

Фрагментированная экосистема

Как и во многих компаниях, в Google разработчики имели возможность самостоятельно выбирать IDE, и из-за этого возникла высокая степень фрагментированности. В 2011 году одним из самых опытных разработчиков-сениоров задали вопрос: «Можно ли как-то сделать так, чтобы все гуглеры пользовались одной хорошей IDE?». Если вкратце, они ответили «Нет». Джефф Дин ответил так:

«Попытки достичь компромисса в выборе общего редактора для группы разработчиков приведут к недовольству. У каждого есть собственное мнение о том, что здесь важно, а плюсы и минусы разных систем имеют для разных разработчиков различный вес. Да и в конечном итоге, это не так уж важно.»

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

Читать далее

Автотестирование пайплайнов в GitLab CI: наш опыт и практика

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели8.1K

Когда речь заходит про автотесты, первыми на ум приходят проверки для UI, API или для мобильных устройств. Однако автотесты нужны не только для проверки пользовательских сценариев. Они могут решать и менее очевидные, но не менее важные задачи, например проверять работу пайплайнов. Если одни и те же пайплайны используют сотни сервисов и библиотек, любая ошибка в них быстро выходит за пределы одного проекта. У многих команд одновременно могут сломаться сборки, релизы и привычный процесс разработки. В нашем случае такие пайплайны работали примерно для 700 сервисов и более 200 библиотечных репозиториев. Чтобы гарантировать работоспособность пайплайнов, мы пришли к идее покрытия их автотестами.

В статье я расскажу, как мы в Ozon покрывали тестами работу пайплайнов в GitLab CI, какие требования нужно было учесть и как в итоге были устроены end-to-end-тесты для таких сценариев.

Читать далее

Эволюция цифрового двойника компании: как управлять изменениями в сложном ИТ-ландшафте

Время на прочтение13 мин
Охват и читатели7.7K

Как победить хаос изменений в 1C, SAP и микросервисах? Авторская модель управления изменениями через Задания на разработку (ЗНР) и Релизные контейнеры, которая синхронизирует бизнес-процессы и код, предотвращая сбои в сложном ИТ-ландшафте.

Читать далее

Повышение эффективности компании при совершенствовании процессов управления

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели4K

Повышение конкурентоспособности и борьба за клиента требуют от компаний постоянного поиска новых способов повышения эффективности их деятельности. Традиционные способы повышения эффективности путем внедрения новых технологий и использования современных орудий труда (роботов и автоматизация процессов) используется многими компаниями и дают определенный эффект. Однако все эти способы касаются совершенствования и автоматизации операционных процессов. Имеется еще одно направление в деятельности компаний, которое практически еще не освоено и где имеется большой потенциал в повышении эффективности их деятельности – это процессы управления.

Почему на процессы управления практически никто не обращает внимание?

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

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

Читать далее

OLAP-кубы в финансах: превращаем бюджетирование в управляемую систему

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели4.6K

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

Евгения Крюкова, старший аналитик «Оптимакрос», разобрала в статье, как OLAP-кубы (Online Analytical Processing) меняют бюджетирование и планирование в организации и почему именно их выбор становится критически важным этапом цифровой трансформации финансового подразделения компании.

Материал будет полезен финансовым директорам, руководителям планово-экономических отделов и аналитикам, которые ищут инструменты для повышения качества управленческой отчетности.

Читать далее

Гайд по Git для начинающих: основные команды, работа с ветками и типичные ошибки

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели16K

Собрали гайд по работе с Git для новичков. 

Разберём, как Git хранит изменения, какие команды нужны для базовой работы с репозиторием и ветками и какие ошибки чаще всего допускают новички. Все команды показываем на примерах в терминале, чтобы их можно было сразу попробовать.

Сохраняйте и пользуйтесь.

Читать дальше →

Перебазирование в Magit

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.4K

Статья Яна Уитлока о том, почему он не может отказаться от Magit, вдохновила меня поделиться своим взглядом на Magit. Этот текст посвящён перебазированию.

Я открыл лог Git. Вызвал Magit, привязанный к F3, и нажал lL. Первая l включает работу с логом, вторая — показывает его для всех локальных и отслеживаемых ими удалённых веток.

Читать далее

Что такое OpenUSD, или Как подружить Blender и Git

Время на прочтение3 мин
Охват и читатели5.8K

Недавно автор решил попробовать что-то помоделить в Blender. На данный момент он ещё только начинает осваиваться в 3D, но имеет небольшой опыт в разработке ПО, преимущественно с использованием Git, потому хотел бы и тут избежать версионирования проектов в духе "projectN_final5_20260305_fix3.blend", который подразумевается при "инкрементальном" сохранении.

На первый взгляд ничего сложного тут быть не должно: в Blender работа ведётся с набором точек-координат-чисел и их связей, настроек модификаторов, ссылок на текстуры и референсы и т.п.; потому всё это должно иметь некоторую стандартизированную структуру, возможно упакованную в ZIP-архив. Файл проекта .blend же является таким ZIP-архивом, ведь так? Распакуем его и просто занесём в Git? Неправильно!

В данном случае придётся прибегнуть к помощи фреймворка OpenUSD. Но для начала хотелось бы рассказать о том, какие проблемы он был изначально призван решить и какими ограничениями обладает.

Читать далее

CRM, регуляторные ограничения и автоматизация: как мы выстроили надёжный процесс релизов

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели7.1K

Как мы превратили стрессовые ручные релизы в предсказуемый one-click процесс с GitOps и автоматикой. 60+ модулей, аудиторы и регуляторика — в едином шаблоне, который масштабировался на 30+ сервисов. Без магии, но с инженерной дисциплиной

Читать далее

Создатели Gentoo уходят с GitHub из-за ИИ. Разбираем причины и нюансы

Время на прочтение4 мин
Охват и читатели22K

Gentoo — один из самых старых дистрибутивов Linux. Он появился в 2002 году и до сих пор работает по тем же принципам: сборка пакетов из исходных текстов, тщательная настройка под любое железо и полное отсутствие компромиссов. В феврале 2026-го появилась новость о начале переноса зеркал репозиториев с GitHub на Codeberg. И это не просто технический маневр, а принципиальный выбор сообщества. 

В чем основные причины ухода, что повлияло на выбор площадки и какие дальнейшие планы у Gentoo — разберемся под катом.

Читать далее

Ближайшие события

Как можно упростить исправление конфликтов в «git rebase»

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели7K

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

Читать далее

Тюнинг .gitlab-ci.yml: 7 неочевидных фич GitLab CE для чистых и быстрых пайплайнов

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели9K

Сложно поддерживать CI/CD, когда граф пайплайна в GitLab превращается в бесконечную «простыню», параллельные запуски terraform apply приводят к блокировкам, а для игнорирования некритичных ошибок приходится писать || true

Может показаться, что для решения этих проблем нужны «костыли» или переход на enterprise-лицензию. На деле же с ними помогут встроенные возможности GitLab CE. В статье разбираем неочевидные ключевые слова .gitlab-ci.yml, которые сэкономят вам время и нервы.

Читать далее

Как реализовать CTRL + Z на уровне проекта?

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели7.5K

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

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

Чтобы иметь возможность откатиться – необходимо понимать куда откатываться, на какое состояние кода. И по хорошему бы иметь удобную систему контроля состояний, или же систему контроля версий для кода.

От самых базовых "сохранить –> откатиться" мы постепенно эволюционировали до продвинутых инструментов контроля версий. Глобально системы контроля версий можно поделить на три типа:

Читать далее

Как не держать код на сервере

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели7.7K

Кому эта статья может быть полезна?

Многие сегодня припарковали свои проекты на виртуальных серверах типа vps/vds или физическом сервере. И вот, по каким-то причинам, вы не хотели бы показывать свой код напрямую.

Если вы уже знаете про GitLab runner, Docker и registry – то можно пройти мимо и сберечь свое время. А кто не знает - добро пожаловать. Постараюсь, чтобы было не сложно.

Какие могут быть причины?

Читать далее

Не Git-ом единым: гид по системам контроля версий для особых случаев

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели9.4K

А есть ли жизнь вне GIT? Что там? Может там летают птеродактили или НЛО? Или там просто пустое поле? Давайте разбираться.

Читать далее

Эволюция методологий версионирования

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели10K

Привет, Хабр. Всех с наступившим Новым Годом.

На днях наткнулся на статью Махмуда Хашеми, в которой обсуждаются некоторые недостатки методологии семантического версионирования (SemVer), и в качестве решения этих недостатков предлагается использовать календарное версионирование (CalVer). В организации, где я работаю, по стандарту разработки требуется обязательно версионировать приложения по SemVer. Из собственного опыта использования SemVer скажу, что нашёл в ней ещё ряд недостатков, для исправления которых пришлось искать новый способ версионирования.

Читать далее

Конфигурирование MES-систем: от ручного через UI к автоматизированному с помощью утилит и конвейера поставки

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6.1K

Привет! Меня зовут Егор Сизов, в компании «Цифра» (дивизион Непрерывные производства) я руковожу направлением «Системы управления производством».

За этот год, среди прочего, я занимался двумя крупными проектами: организации сбора библиотеки готовых конфигураций и конвертацией конфигураций PI System в Платформу ZIIoT. 

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

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

Читать далее
1
23 ...