Практика осознанного программирования на примере разработки библиотеки 1С Ozon

30.06.26

Разработка - Разработка внешних компонент

Осознанное программирование помогает разработчикам принимать более взвешенные решения, понимать ценность своей работы и снижать вероятность ошибок. Показываем, как этот подход естественным образом сочетается с библиотечным методом разработки, особенно когда стандартных инструментов, таких как БСП, уже недостаточно. На примере создания библиотеки 1С Ozon демонстрируем, как единый компонент может ускорять проекты, повышать качество и уменьшать bus-фактор. Также объясняем, какие практики помогают развивать осознанность в профессиональной деятельности и применять ее в ежедневной работе.

Я решил написать про смыслы: почему мы к этому идем, почему подходим именно так, почему используем библиотеку. Будут технические изображения, я дам информацию и ссылки, где можно посмотреть подробности.

Тема осознанной разработки и подхода в целом для меня очень важна. Будучи руководителем, я часто вижу, как люди в какой-то момент перестают эффективно работать, перестают понимать, зачем они работают. Это приводит к стрессу, затем к выгоранию. Люди меняют работу, приходят на новую, получают то же самое, через год снова меняют. Процесс может продолжаться бесконечно и привести к уходу из профессии.

О чем эта статья:

  • Что такое осознанное программирование,

  • При чем здесь разработка библиотек,

  • Как мы разрабатываем библиотеку БОЗОН,

  • Как развивать осознанность в работе.

 

Что такое осознанное программирование

 

Что такое осознанное программирование? Осознанность начинается с понимания самого термина. Осознанность – это mindfulness, способность замечать свои мысли и эмоции без оценки, сохранять сосредоточенность на том, что происходит в текущий момент. Это умение фиксировать внутренние состояния и реакции и не позволять им автоматически управлять действиями.

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

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

 

Как управлять осознанностью на практике

 

Как управлять осознанностью? Я задаю себе вопросы перед тем, как начать работу. Это вопросы:

  • Что я делаю? – конкретная техническая реализация, открываю конфигуратор, открываю проект или вначале готовлю техническое задание.

  • Как я это делаю? – про процесс и подход, в каком процессе я работаю, с чего начинаю.

  • Зачем я это делаю? – ценность проекта и задачи.

  • Для кого я это делаю? – пользователи, ведь мы работаем не в пустоту, у нас есть конкретные заказчики, и можно подумать о них, о их потребностях и о том, зачем им эта задача. Ведь задача точно нужна, нам за нее платят деньги.

  • Каковы последствия? – Что будет дальше? Завершили задачу, завершили проект – что будет через полгода, год? Как он будет развиваться и какие будут последствия?

Если задавать себе эти вопросы, вы будете осознанными в работе.

 

Роль руководителя в формировании осознанности

 

В обсуждении осознанности два первых пункта особенно важны. Эти вопросы не всегда позволяют управлять ответами. Если говорить про ценность, ее часто определяет руководитель. Он задает правила и формирует ориентиры. Изменения ценностей происходят на уровне руководства.

Приходя в команду, специалист фактически принимает ее ценности. Ему рассказывают о миссии, и он решает, подходит ли ему такой подход. Если нет, стоит искать другое место.

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

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

 

Исторические корни осознанности. Питер Друкер и эффективность

 

Питер Друкер

 

Американский исследователь и экономист Питер Друкер опубликовал множество книг о профессиональной эффективности. Раньше вместо понятия осознанности чаще использовался именно термин «эффективность». У Друкера есть интересные цитаты:

  • «Нет ничего бесполезнее, чем с максимальной эффективностью выполнять работу, которую делать не нужно»

  • «Самый серьезный источник неэффективности – это неспособность сконцентрироваться на главном»

  • «Делайте что получается лучше всего, остальное передайте другим»

Эти идеи привлекают внимание своей практичностью.

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

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

 

Почему мы разрабатываем библиотеки. Бизнес-контекст

 

Откуда возникает такая задача? Почему необходимо исследовать область библиотек и разрабатывать собственную библиотеку?

Причина в объемах – поддерживается большое количество проектов одновременно. В разных проектах параллельно появляются одинаковые задачи.

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

Сроки проектов стремятся к минимальным. Задачи нужно выполнять сейчас или вчера. Редко кто спрашивает о выполнении через год, максимум – через месяц.

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

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

Документации часто недостаточно, информация передается устно, поэтому желательно уменьшать объем подобных рисков.

Эти проблемы решает использование библиотек, единых паттернов и компонентов, которые остаются одинаковыми в разных проектах.

 

Мировой контекст. Фредерик Брукс и использование готовых решений

 

 

Еще один американский исследователь, связанный уже с миром IT – Фредерик Брукс. Он архитектор IBM, преподаватель и автор известных работ, включая сформулированные им законы Брукса. Его идеи касаются в том числе этических аспектов разработки. Он писал о том, что разработчики недооценивают стоимость, риски и сроки проектов:

  • «Разработчики склонны недооценивать стоимость создания новой программы»

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

  • «Не тратьте силы своих дорогих разработчиков на написание того, что можно купить готовым»

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

 

 

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

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

 

Особенности экосистемы 1С

 

В экосистеме 1С, как всегда, существуют свои особенности. Они связаны с технологической платформой, с механизмами встраивания библиотек и с практикой их применения. Значимую роль играет большое количество легаси-решений. До сих пор многие компании используют УПП или даже 1С 7.7. Обновление компонентов в таких системах чрезвычайно затратно или вовсе невозможно.

Для расширения возможностей вендор предлагает несколько инструментов:

  • Механизм расширений,

  • Обработки и отчеты,

  • Библиотеки.

Существуют стандартные библиотеки – БСП, БЭД, БПО, БИП. При необходимости можно обратиться к ним, использовать их функциональность и получить нужное решение. В «Инфостарте» тоже есть «1С Store», и уже существуют решения, которые могут подключать внешние отчеты и обработки к вашей конфигурации, однако это не полноценная библиотека, а надстройка над основным решением.

 

Подход к созданию собственных библиотек

 

Вендор подготовил методологию, описывающую процесс разработки библиотек и их встраивания.

 

 

На изображении показано, как прикладная функциональность взаимодействует с БСП, как может быть создана собственная библиотека и как она масштабируется между несколькими решениями.

 

 

Выделяются уровни: слои прикладного решения, переопределяемый слой библиотеки и сама библиотека.

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

 

 

  1. Сформировать команду. На первом этапе инициатор может быть единственным участником.

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

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

  4. Определить регламент и правила обновления. Продумать, как библиотека будет доставляться конечным потребителям.

  5. Перейти к разработке и поддержке. Наращивать экспертизу, расширять команду и распространять библиотеку.

 

Кейс разработка библиотеки БОЗОН

 

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

  • Разработка ведется в 1С:EDT.

  • Построена полная автоматизация: сборка, деплой, использование GitLab Pipeline.

  • Автоматические тесты с выводом результатов в Allure.

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

  • В конфигурации подготовлены демо-объекты и демо-база, что позволяет быстро понять структуру и принципы работы.

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

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

 

Статистика и достижения библиотеки БОЗОН

 

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

Объем кода превышает 50 тысяч строк, и работа продолжается: библиотека развивается и расширяется.

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

С начала года в репозитории GitLab зафиксировано 465 коммита.

Выпущено 17 релизов, и каждый релиз включает набор изменений, которые доводятся до потребителей.

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

 

 

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

Один из показательных кейсов связан с новым проектом на базе 1С:Документооборота. Библиотека была встроена в проект за один-два дня. После этого система сразу получила готовый сервис, который способен интегрироваться с различными источниками данных и стать полноценной частью инфраструктуры. Далее разработчики написали необходимый прикладной код для взаимодействия, и проект был быстро введен в эксплуатацию.

 

Связь библиотек с осознанностью

 

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

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

 

Практические рекомендации по развитию осознанности

 

Осознанность можно развивать с помощью практических действий, встроенных в повседневную работу.

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

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

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

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

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

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

 

Рекомендуемая литература

 

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

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART TECH EVENT.

Инфостарт Tech Event 2026

Инфостарт A&PM Event 2026

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Программист Пользователь 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Медиадисплей покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Экран можно использовать в качестве графического меню-борда в кафе и видеовывески. В качестве устройства отображения можно использовать Android-планшеты, смарт-телевизоры с Android, мониторы или проекторы под управлением Windows или Linux-компьютера. Linux-версия успешно запускается на одноплатных компьютерах Raspberri Pi и Orange Pi. Настраивается ЛЮБОЙ ДИЗАЙН экрана при помощи встроенного графического редактора! Решение можно масштабировать от одного экрана до тысяч экранов с централизованным управлением.

18300 руб.

30.05.2017    57335    11    71    

48

Разработка внешних компонент Программист 1С 8.3 Бесплатно (free)

В современных корпоративных решениях на платформе 1С:Предприятие 8.3 всё чаще возникает потребность в визуальном моделировании и автоматизации бизнес-процессов с использованием нотации BPMN 2.0. Стандартные средства платформы не предоставляют полноценного редактора BPMN, однако интеграция открытой библиотеки bpmn-js позволяет реализовать интерактивное моделирование бизнес-процессов непосредственно в 1С. В статье рассмотрены архитектура решения, пошаговая инструкция по сборке библиотеки из исходников для WebKit, а также примеры программного взаимодействия между 1С и JavaScript.

03.04.2026    2941    SultanovStas    8    

23

Разработка внешних компонент Системный администратор Программист Стажер Бесплатно (free)

Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

14.01.2025    7192    bayselonarrend    17    

54

Разработка внешних компонент Программист 1С:Предприятие 8 Россия Бесплатно (free)

В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.

04.12.2024    12394    kovalevdmv    29    

83

Разработка внешних компонент Механизмы платформы 1С Программист Стажер 1С:Предприятие 8 Бесплатно (free)

Некоторые практические аспекты создания внешних компонент на языке С++ для платформы 1С 8.3++.

26.01.2024    12389    starik-2005    40    

48

Инструментарий разработчика Разработка внешних компонент Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пример взаимодействия 1С с Apach Kafka посредством внешней компоненты, разработанной на основе официальной библиотеки librdkafka (the Apache Kafka C/C++ client library).

22.11.2023    8758    152    ivan1703    26    

45
Для отправки сообщения требуется регистрация/авторизация