This media is not supported in your browser
VIEW IN TELEGRAM
Завершён важный этап проекта «Логистика ТК-Ямщик»
В сентябре мы успешно завершили очередной значимый этап проекта «Логистика ТК-Ямщик». Работы по нему стартовали ещё весной, и за это время нам удалось реализовать целый ряд изменений, которые серьёзно расширяют возможности системы:
- Миграция системы учёта транспортировки грузов. Теперь можно разделять грузоместа одного заказа и отправлять их разными рейсами и маршрутами. Для этого пришлось серьёзно переработать внутреннюю логику системы.
- Обновлённый дизайн и унификация интерфейса. Мы привели внешний вид приложения к единому стилю и внедрили систему компонентов, что сделало интерфейс более аккуратным и удобным в поддержке.
- Реорганизация backend и приложения на ТСД для кладовщиков. В связи с изменением бизнес-логики переработаны почти все экраны, добавлены новые функции и данные, включая возможность сохранять фотографии груза на каждом этапе. (о приложении на ТСД расскажем подробнее в отдельном посте)
- Новое приложение для печати этикеток. Теперь кладовщики могут печатать этикетки прямо с ТСД: приложение отправляет задание на печать через RabbitMQ, а клиент на ПК — передаёт его на подключённый принтер.
- Улучшения в веб-системе. Реализовано сохранение незавершённых заказов в локальном кеше браузера, переработан интерфейс формирования рейсов (стал удобнее и функциональнее), добавлены новые отчёты и множество мелких улучшений, упрощающих повседневную работу.
- Расширенное логирование. В системе фиксируются действия пользователей, что позволяет анализировать изменения и быстрее находить источники ошибок.
В сентябре мы успешно завершили очередной значимый этап проекта «Логистика ТК-Ямщик». Работы по нему стартовали ещё весной, и за это время нам удалось реализовать целый ряд изменений, которые серьёзно расширяют возможности системы:
- Миграция системы учёта транспортировки грузов. Теперь можно разделять грузоместа одного заказа и отправлять их разными рейсами и маршрутами. Для этого пришлось серьёзно переработать внутреннюю логику системы.
- Обновлённый дизайн и унификация интерфейса. Мы привели внешний вид приложения к единому стилю и внедрили систему компонентов, что сделало интерфейс более аккуратным и удобным в поддержке.
- Реорганизация backend и приложения на ТСД для кладовщиков. В связи с изменением бизнес-логики переработаны почти все экраны, добавлены новые функции и данные, включая возможность сохранять фотографии груза на каждом этапе. (о приложении на ТСД расскажем подробнее в отдельном посте)
- Новое приложение для печати этикеток. Теперь кладовщики могут печатать этикетки прямо с ТСД: приложение отправляет задание на печать через RabbitMQ, а клиент на ПК — передаёт его на подключённый принтер.
- Улучшения в веб-системе. Реализовано сохранение незавершённых заказов в локальном кеше браузера, переработан интерфейс формирования рейсов (стал удобнее и функциональнее), добавлены новые отчёты и множество мелких улучшений, упрощающих повседневную работу.
- Расширенное логирование. В системе фиксируются действия пользователей, что позволяет анализировать изменения и быстрее находить источники ошибок.
❤8
This media is not supported in your browser
VIEW IN TELEGRAM
Наконец-то у нас дошли руки полностью переделать систему удалённого доступа к постаматам приёма и выдачи спецодежды в Казани.
Сейчас там работает под нашим управлением около 25 постаматов, которые принимают и выдают спецодежду в стирку и из стирки. Все они подключены через мобильный интернет, и прямого доступа к ним (по IP) изначально не предусматривалось.
В далёком 2023 году поставщики оборудования предложили использовать AnyDesk для удалённого управления. Тогда это решение выглядело вполне рабочим, и мы его использовали.
Со временем ситуация изменилась: всем известные проблемы с мобильным интернетом, плюс дополнительные глушилки на предприятии сделали скорость и стабильность связи почти никакой. Через AnyDesk стало невозможно нормально работать — постоянные разрывы, короткие сессии по 15 секунд и долгие минуты без возможности переподключиться.
Мы давно искали альтернативу. Для многих задач нам нужен был именно консольный доступ (например, быстро посмотреть логи), потому что он стабильно работает даже на плохих каналах и требует минимальной скорости. Но без прямых IP-адресов оставалось непонятно, как это реализовать.
💡 Решение оказалось в reverse SSH. Теперь каждый постамат через autoSSH подключается к нашему серверу и открывает там свой канал на определенном порту. Мы же для подключения к постамату подключаемся к нужному порту сервера и попадаем напрямую попадаем в консоль конкретного постамата.
Но этого было недостаточно для случаев, когда нужно именно видеть экран. Поэтому мы решили перейти на RustDesk, подняли свой сервер-ретранслятор. Первые тесты показали, что RustDesk заметно лучше справляется на плохом интернете.
Чтобы всё это не превращалось в ручную настройку, мы написали два скрипта — для конфигурации reverse SSH и для установки RustDesk с настройкой его на соединение с нашим ретранслятором. Теперь для настройки достаточно запустить оба скрипта, и всё готово.
⚙️Еще не все аппараты перенастроены, но уже видно — стало надёжнее, быстрее и удобнее.
Сейчас там работает под нашим управлением около 25 постаматов, которые принимают и выдают спецодежду в стирку и из стирки. Все они подключены через мобильный интернет, и прямого доступа к ним (по IP) изначально не предусматривалось.
В далёком 2023 году поставщики оборудования предложили использовать AnyDesk для удалённого управления. Тогда это решение выглядело вполне рабочим, и мы его использовали.
Со временем ситуация изменилась: всем известные проблемы с мобильным интернетом, плюс дополнительные глушилки на предприятии сделали скорость и стабильность связи почти никакой. Через AnyDesk стало невозможно нормально работать — постоянные разрывы, короткие сессии по 15 секунд и долгие минуты без возможности переподключиться.
Мы давно искали альтернативу. Для многих задач нам нужен был именно консольный доступ (например, быстро посмотреть логи), потому что он стабильно работает даже на плохих каналах и требует минимальной скорости. Но без прямых IP-адресов оставалось непонятно, как это реализовать.
💡 Решение оказалось в reverse SSH. Теперь каждый постамат через autoSSH подключается к нашему серверу и открывает там свой канал на определенном порту. Мы же для подключения к постамату подключаемся к нужному порту сервера и попадаем напрямую попадаем в консоль конкретного постамата.
Но этого было недостаточно для случаев, когда нужно именно видеть экран. Поэтому мы решили перейти на RustDesk, подняли свой сервер-ретранслятор. Первые тесты показали, что RustDesk заметно лучше справляется на плохом интернете.
Чтобы всё это не превращалось в ручную настройку, мы написали два скрипта — для конфигурации reverse SSH и для установки RustDesk с настройкой его на соединение с нашим ретранслятором. Теперь для настройки достаточно запустить оба скрипта, и всё готово.
⚙️Еще не все аппараты перенастроены, но уже видно — стало надёжнее, быстрее и удобнее.
🔥4❤1👍1🤯1
ВНИМАНИЕ! Система оповещения "Качественных решений" сообщает о трёх октябрьских апдейтах! 🚨
Дорогие коллеги! Поздравляем наших системных администраторов с обновлением версии!🎉
Приносим извинения за небольшую задержку в доставке патчей — мы тщательно тестировали их стабильность! 😉
Земсков Вадим (v.24.0) — наш надёжный файервол, защищающий нас от пользователей "Веселого Водовоза"! 🛡 Желаем безупречного аптайма и нулевых инцидентов! Пусть все флуд-атаки судьбы будут успешно заблокированы!
Тролуков Алексей (v.29.0) — наш главный любитель дата-центров и высоконагруженных систем! 🖥 Пусть твоя жизнь работает быстрее, чем SSD-массив, а счастье реплицируется в геометрической прогрессии!
Кудряшов Владислав (v.23.0) — наш специалист по мониторингу Zabbix! 📊 Желаем, чтобы все жизненные метрики были зелеными, личное счастье было отказоустойчивым, а триггеры срабатывали только на приятные события!
Ребята! Пусть ваши личные системы всегда будут стабильны, бэкапы — актуальны, а биосы счастья — обновлены до последней версии! С Днём Рождения! 🎂⚡️🖥
P.S. А вот и долгожданные физические патчи к вашим системам! 👇
Дорогие коллеги! Поздравляем наших системных администраторов с обновлением версии!🎉
Приносим извинения за небольшую задержку в доставке патчей — мы тщательно тестировали их стабильность! 😉
Земсков Вадим (v.24.0) — наш надёжный файервол, защищающий нас от пользователей "Веселого Водовоза"! 🛡 Желаем безупречного аптайма и нулевых инцидентов! Пусть все флуд-атаки судьбы будут успешно заблокированы!
Тролуков Алексей (v.29.0) — наш главный любитель дата-центров и высоконагруженных систем! 🖥 Пусть твоя жизнь работает быстрее, чем SSD-массив, а счастье реплицируется в геометрической прогрессии!
Кудряшов Владислав (v.23.0) — наш специалист по мониторингу Zabbix! 📊 Желаем, чтобы все жизненные метрики были зелеными, личное счастье было отказоустойчивым, а триггеры срабатывали только на приятные события!
Ребята! Пусть ваши личные системы всегда будут стабильны, бэкапы — актуальны, а биосы счастья — обновлены до последней версии! С Днём Рождения! 🎂⚡️🖥
P.S. А вот и долгожданные физические патчи к вашим системам! 👇
❤9👍2
Приложение на ТСД в проекте «Логистика ТК-Ямщик»
Три новости назад мы рассказали о большом этапе проекта «Логистика ТК-Ямщик». Сегодня — подробнее о мобильном приложении для ТСД, без которого современная работа терминалов и складов уже немыслима.
Это полноценное мобильное приложение, которое помогает сотрудникам выполнять все операции с грузами прямо «в полях»:
✓ Первичная приёмка груза на склад. Кладовщик взвешивает и измеряет груз, вводит параметры в систему (объём, вес и т.д.) — как по каждому грузоместу, так и массово. Для каждого грузоместа печатается индивидуальная этикетка.
✓ Приёмка (разгрузка) рейса. Сотрудник сканирует QR-коды всех мест, чтобы проконтролировать выгрузку.
✓ Погрузка и отправка рейса. Аналогично — сканирование грузомест перед отправкой, с автоматической сверкой и фиксацией результатов.
✓ Приёмка и выдача заказов клиенту — если клиент забирает или сдаёт груз прямо на терминале.
✓ Полное логирование всех сканирований. Система хранит историю каждого сканирования — даже ошибочного. Это помогает находить «потерявшиеся» грузы по последнему месту, где они были зафиксированы, включая информационные сканирования.
✓ Работа с фотографиями. Пользователь может делать фото груза или сопроводительных документов, а также привязывать их к конкретным грузоместам.
Техническая сторона
Приложение не просто функциональное, но и технологически продвинутое:
👉 Надёжное хранилище фотографий. Все снимки сохраняются в кластере, доступном по протоколу S3, что обеспечивает масштабируемость и устойчивость хранения.
👉 Печать этикеток. Для этого разработано отдельное Windows-приложение, установленное на компьютер с подключённым принтером этикеток. Оно получает задания на печать через RabbitMQ, что гарантирует доставку задач даже при временной недоступности принтера.
👉 Современные технологии разработки. Приложение создано на Flutter с использованием языка Dart — это уже наш стандарт де-факто для мобильных решений.
Этот начальная версия приложения думаю в процессе эксплуатации мы еще будем улучшать и добавлять функциональность. У разработке уже новые функции не предусмотренные в первоначальном ТЗ, например перенос грузомест из одного рейса в следующий для транзитных грузов без полного сканирования машины.
Три новости назад мы рассказали о большом этапе проекта «Логистика ТК-Ямщик». Сегодня — подробнее о мобильном приложении для ТСД, без которого современная работа терминалов и складов уже немыслима.
Это полноценное мобильное приложение, которое помогает сотрудникам выполнять все операции с грузами прямо «в полях»:
✓ Первичная приёмка груза на склад. Кладовщик взвешивает и измеряет груз, вводит параметры в систему (объём, вес и т.д.) — как по каждому грузоместу, так и массово. Для каждого грузоместа печатается индивидуальная этикетка.
✓ Приёмка (разгрузка) рейса. Сотрудник сканирует QR-коды всех мест, чтобы проконтролировать выгрузку.
✓ Погрузка и отправка рейса. Аналогично — сканирование грузомест перед отправкой, с автоматической сверкой и фиксацией результатов.
✓ Приёмка и выдача заказов клиенту — если клиент забирает или сдаёт груз прямо на терминале.
✓ Полное логирование всех сканирований. Система хранит историю каждого сканирования — даже ошибочного. Это помогает находить «потерявшиеся» грузы по последнему месту, где они были зафиксированы, включая информационные сканирования.
✓ Работа с фотографиями. Пользователь может делать фото груза или сопроводительных документов, а также привязывать их к конкретным грузоместам.
Техническая сторона
Приложение не просто функциональное, но и технологически продвинутое:
👉 Надёжное хранилище фотографий. Все снимки сохраняются в кластере, доступном по протоколу S3, что обеспечивает масштабируемость и устойчивость хранения.
👉 Печать этикеток. Для этого разработано отдельное Windows-приложение, установленное на компьютер с подключённым принтером этикеток. Оно получает задания на печать через RabbitMQ, что гарантирует доставку задач даже при временной недоступности принтера.
👉 Современные технологии разработки. Приложение создано на Flutter с использованием языка Dart — это уже наш стандарт де-факто для мобильных решений.
Этот начальная версия приложения думаю в процессе эксплуатации мы еще будем улучшать и добавлять функциональность. У разработке уже новые функции не предусмотренные в первоначальном ТЗ, например перенос грузомест из одного рейса в следующий для транзитных грузов без полного сканирования машины.
🔥2🤪2
Сегодня мы получили журнал с исследованием ИТ отрасли в России. Уже 2 год наша компания принимает участие в масштабном отраслевом исследовании, проводимым ассоциацией «Руссофт».
Исследование «Руссофт» является одним из наиболее авторитетных источников данных о состоянии IT-отрасли в России. Для нас участие в исследовании «Руссофт» — это возможность внести вклад в формирование объективной картины рынка.
Об ассоциации «Руссофт»:
«Руссофт» — крупнейшая ассоциация отечественных разработчиков программного обеспечения, выступающая в качестве экспертного центра и защищающая интересы IT-отрасли в России и за рубежом. Одно из основных направлений - лоббирование в органах государственной власти интересов предприятий индустрии разработки программного обеспечения,
Исследование «Руссофт» является одним из наиболее авторитетных источников данных о состоянии IT-отрасли в России. Для нас участие в исследовании «Руссофт» — это возможность внести вклад в формирование объективной картины рынка.
Об ассоциации «Руссофт»:
«Руссофт» — крупнейшая ассоциация отечественных разработчиков программного обеспечения, выступающая в качестве экспертного центра и защищающая интересы IT-отрасли в России и за рубежом. Одно из основных направлений - лоббирование в органах государственной власти интересов предприятий индустрии разработки программного обеспечения,
❤5
Мы выпустили очередное обновление мобильного приложения спецодежды. В нём появилась новая возможность — выбор конкретной модели для получении спецодежды. Теперь сотрудник может указать, какую именно модель он хотел бы получать, если предприятие предоставляет такой выбор.
На первый взгляд функция выглядит простой, но при её реализации мы заложили архитектурные принципы, которые важны для дальнейшего развития нашей системы как единой платформы.
🛠 Как это устроено технически сейчас
Каждое предприятие работает со своей собственной базой данных. Эти базы размещены на сертифицированном по ФЗ-152 оборудовании и программном обеспечении с 4-м уровнем защиты. Данные предприятий не смешиваются — каждое предприятие работает в своей отдельной базе, и даже может разместить базу данных на своих серверах.
При этом существуют общие облачные сервисы, такие как мобильное приложение, чей единый бекенд обслуживает всех пользователей разных предприятий и умеет получать данные из разных баз.
📦 Единый каталог спецодежды
Каталог спецодежды мы изначально спроектировали как единый облачный каталог, не привязанный к конкретному предприятию. Такой подход позволяет:
- централизованно управлять описаниями и характеристиками моделей;
- хранить общую информацию о сертификации продукции;
- получать и обрабатывать общие отзывы на конкретные модели спецодежды, независимо от того, на каком предприятии сотрудники их получили;
Спецодежда из каталога привязывается к имеющейся номенклатурой в базе каждого предприятия. Это не только упрощает работу с модельным рядом, но и формирует фундамент для тех функциональных возможностей, которые мы планируем развивать дальше.
🚀 В будущее
Подход добавил сложности на этапе реализации, но он открывает путь к созданию действительно единой платформы. Функция выбора модели — первый шаг к более глубоким возможностям вокруг модельного ряда и к целостной экосистеме данных вокруг спецодежды, которую мы строим.
На первый взгляд функция выглядит простой, но при её реализации мы заложили архитектурные принципы, которые важны для дальнейшего развития нашей системы как единой платформы.
🛠 Как это устроено технически сейчас
Каждое предприятие работает со своей собственной базой данных. Эти базы размещены на сертифицированном по ФЗ-152 оборудовании и программном обеспечении с 4-м уровнем защиты. Данные предприятий не смешиваются — каждое предприятие работает в своей отдельной базе, и даже может разместить базу данных на своих серверах.
При этом существуют общие облачные сервисы, такие как мобильное приложение, чей единый бекенд обслуживает всех пользователей разных предприятий и умеет получать данные из разных баз.
📦 Единый каталог спецодежды
Каталог спецодежды мы изначально спроектировали как единый облачный каталог, не привязанный к конкретному предприятию. Такой подход позволяет:
- централизованно управлять описаниями и характеристиками моделей;
- хранить общую информацию о сертификации продукции;
- получать и обрабатывать общие отзывы на конкретные модели спецодежды, независимо от того, на каком предприятии сотрудники их получили;
Спецодежда из каталога привязывается к имеющейся номенклатурой в базе каждого предприятия. Это не только упрощает работу с модельным рядом, но и формирует фундамент для тех функциональных возможностей, которые мы планируем развивать дальше.
🚀 В будущее
Подход добавил сложности на этапе реализации, но он открывает путь к созданию действительно единой платформы. Функция выбора модели — первый шаг к более глубоким возможностям вокруг модельного ряда и к целостной экосистеме данных вокруг спецодежды, которую мы строим.
🔥5❤2
Елена, с днём рождения! 🎉
Желаем тебе такого счастья, которое не требует доработок, уточнений и согласований.
Пусть жизнь выдаёт тебе только стабильные релизы, а все проблемы сразу отправляются в архив со статусом «не воспроизводится».
Пусть задачи приходят простые, требования — понятные,
а разработчики — всегда трезвые и добрые.
Оставайся такой же яркой, умной и опасно обаятельной брюнеткой, которую уважают даже самые капризные сервисы и интеграции.
С днём рождения, Лена!
Твои коллеги из «Качественных решений» 😄💙🎈
Желаем тебе такого счастья, которое не требует доработок, уточнений и согласований.
Пусть жизнь выдаёт тебе только стабильные релизы, а все проблемы сразу отправляются в архив со статусом «не воспроизводится».
Пусть задачи приходят простые, требования — понятные,
а разработчики — всегда трезвые и добрые.
Оставайся такой же яркой, умной и опасно обаятельной брюнеткой, которую уважают даже самые капризные сервисы и интеграции.
С днём рождения, Лена!
Твои коллеги из «Качественных решений» 😄💙🎈
❤🔥8👍2
Команда разработки внедрила уведомления в Telegram о новых ошибках в трекере.
Трекер ошибок у нас работает давно: туда автоматически улетали сбои из десктоп-приложений, ведь если ошибка случалась на компьютере пользователя, узнать о ней иначе было практически невозможно.
С серверными системами ситуация всегда была проще — есть логи, где можно всё посмотреть. Но как показала практика, заходить в логи или даже на сам трекер надо сознательно, а в потоке задач это легко откладывается «на потом».
С ростом количества сервисов и появлением десятка скриптов в cron проблема стала заметнее: особенно если скрипт падает не каждый раз, найти такие ошибки вовремя всё труднее.
Поэтому мы добавили в трекер механизм отправки уведомлений об ошибках прямо в Telegram — с умным контролем повторов.
Теперь, если ошибка повторяется, сообщения не сыплются без остановки, появляется напоминание о накоплении на отметках 10, 50 и далее каждые 100 повторов.
Отдельный приятный бонус — стало удобно отмечать реакциями в Telegram, кто берёт ошибку в работу. Программисты перестали «сталкиваться» друг с другом, и сразу видно, какие проблемы уже в процессе исправления, а какие ещё ждут внимания.
Так как эта задача в первую очередь возникла в проекте автоматизации маркетплейсов, мы реализовали отправку ошибок не только из C# кода, но и из Ruby, так же используемом на проекте — теперь трекер стал универсальным для всех языков.
В будущем, вероятно, добавим отправку ошибок из Python, Dart и может быть JavaScript — тогда будет полное покрытие для всех языков, на которых мы активно разрабатываем.
В итоге команда разработки получила гораздо более оперативную обратную связь по проблемам в важных проектах. Это уже помогает быстрее реагировать и, надеемся уменьшит количество ошибок которые замечают пользователи.
Трекер ошибок у нас работает давно: туда автоматически улетали сбои из десктоп-приложений, ведь если ошибка случалась на компьютере пользователя, узнать о ней иначе было практически невозможно.
С серверными системами ситуация всегда была проще — есть логи, где можно всё посмотреть. Но как показала практика, заходить в логи или даже на сам трекер надо сознательно, а в потоке задач это легко откладывается «на потом».
С ростом количества сервисов и появлением десятка скриптов в cron проблема стала заметнее: особенно если скрипт падает не каждый раз, найти такие ошибки вовремя всё труднее.
Поэтому мы добавили в трекер механизм отправки уведомлений об ошибках прямо в Telegram — с умным контролем повторов.
Теперь, если ошибка повторяется, сообщения не сыплются без остановки, появляется напоминание о накоплении на отметках 10, 50 и далее каждые 100 повторов.
Отдельный приятный бонус — стало удобно отмечать реакциями в Telegram, кто берёт ошибку в работу. Программисты перестали «сталкиваться» друг с другом, и сразу видно, какие проблемы уже в процессе исправления, а какие ещё ждут внимания.
Так как эта задача в первую очередь возникла в проекте автоматизации маркетплейсов, мы реализовали отправку ошибок не только из C# кода, но и из Ruby, так же используемом на проекте — теперь трекер стал универсальным для всех языков.
В будущем, вероятно, добавим отправку ошибок из Python, Dart и может быть JavaScript — тогда будет полное покрытие для всех языков, на которых мы активно разрабатываем.
В итоге команда разработки получила гораздо более оперативную обратную связь по проблемам в важных проектах. Это уже помогает быстрее реагировать и, надеемся уменьшит количество ошибок которые замечают пользователи.
🔥5
Катя, с днём рождения! 🎂🌟
Ты — как солнечный луч среди питерских туч, миниатюрная, светлая и всегда с искрой в глазах, которая делает серый город удивительно тёплым.
Пусть мосты в Петербурге разводятся только перед новыми возможностями,
пусть дороги ведут туда, где ждут вдохновение, люди и мечты, пусть на твоём пути будет больше ярких маршрутов, чем капель дождя на твоём окне.
Ты — талантливый разработчик, внимательный человек и тот самый светлый оттенок, который выделяется среди всех — как блондинка на фоне питерских фасадов.
Сохраняй свой характер, уверенность и мечту о мотоцикле 🏍💛
— всему своё время, и твой разгон ещё впереди.
Твои коллеги.
Ты — как солнечный луч среди питерских туч, миниатюрная, светлая и всегда с искрой в глазах, которая делает серый город удивительно тёплым.
Пусть мосты в Петербурге разводятся только перед новыми возможностями,
пусть дороги ведут туда, где ждут вдохновение, люди и мечты, пусть на твоём пути будет больше ярких маршрутов, чем капель дождя на твоём окне.
Ты — талантливый разработчик, внимательный человек и тот самый светлый оттенок, который выделяется среди всех — как блондинка на фоне питерских фасадов.
Сохраняй свой характер, уверенность и мечту о мотоцикле 🏍💛
— всему своё время, и твой разгон ещё впереди.
Твои коллеги.
❤5👏3
Во время командировки в Липецк, в промежутках между встречами и общением, я написал небольшой скрипт, который мы будем использовать для просмотра результатов работы над релизом.
Он автоматически собирает из Git статистику по изменениям кода за период работы над конкретным релизом и показывает вклад разработчиков.
📊 Что означают эти цифры
Небольшое пояснение терминологии, для тех, кто не программист:
Количество коммитов — это количество зафиксированных правок.
Коммит -какое то самодостаточное изменение в коде. Условно одна задача может быть оформлена одним или несколькими коммитами, при этом задачи бывают как совсем небольшими, изменено пару строк, так и крупными, затрагивающими тысячи строк.
Добавленные и удалённые строки — технический способ оценить объём изменений:
если строка была изменена, Git считает это как одну удалённую и одну добавленную строку;
более точного автоматического подсчёта на уровне кода не существует.
Важно понимать, что это очень косвенные цифры, которые показывают объём изменений, но не сложность работы.
Можно за короткое время изменить тысячи строк однотипным рефакторингом, а можно несколько дней разбираться со сложной задачей, результатом которой станет всего пара сотен новых строк.
📦 О чём ещё есть статистика
Статистика собирается не только по основному проекту:
Общие библиотеки (сабмодули)
Это код, который используется сразу в нескольких проектах. Изменения в них часто делаются в рамках работы над кодом проекта, но могут приносить пользу и другим проектам.
Отдельный репозиторий серверной части
В него входят:
- серверы управления облаком и базами данных,
- серверы управления постоматами,
- сервер для мобильного приложения,
- и разные другие бекенды, отправка писем, обработка ошибок и т.п.
Как правило, изменения в серверной части связаны с функциональностью десктопного приложения, поэтому такая работа также может соотносится с релизами, но не всегда.
Ниже пример отчёта недавнего релиза, чтобы было понятно, как выглядит итоговая статистика и в каком формате она собирается 👇
Он автоматически собирает из Git статистику по изменениям кода за период работы над конкретным релизом и показывает вклад разработчиков.
📊 Что означают эти цифры
Небольшое пояснение терминологии, для тех, кто не программист:
Количество коммитов — это количество зафиксированных правок.
Коммит -какое то самодостаточное изменение в коде. Условно одна задача может быть оформлена одним или несколькими коммитами, при этом задачи бывают как совсем небольшими, изменено пару строк, так и крупными, затрагивающими тысячи строк.
Добавленные и удалённые строки — технический способ оценить объём изменений:
если строка была изменена, Git считает это как одну удалённую и одну добавленную строку;
более точного автоматического подсчёта на уровне кода не существует.
Важно понимать, что это очень косвенные цифры, которые показывают объём изменений, но не сложность работы.
Можно за короткое время изменить тысячи строк однотипным рефакторингом, а можно несколько дней разбираться со сложной задачей, результатом которой станет всего пара сотен новых строк.
📦 О чём ещё есть статистика
Статистика собирается не только по основному проекту:
Общие библиотеки (сабмодули)
Это код, который используется сразу в нескольких проектах. Изменения в них часто делаются в рамках работы над кодом проекта, но могут приносить пользу и другим проектам.
Отдельный репозиторий серверной части
В него входят:
- серверы управления облаком и базами данных,
- серверы управления постоматами,
- сервер для мобильного приложения,
- и разные другие бекенды, отправка писем, обработка ошибок и т.п.
Как правило, изменения в серверной части связаны с функциональностью десктопного приложения, поэтому такая работа также может соотносится с релизами, но не всегда.
Ниже пример отчёта недавнего релиза, чтобы было понятно, как выглядит итоговая статистика и в каком формате она собирается 👇
🔥4
🚀 Статистика по релизу QS: Спецодежда 2.10.4
📊 Статистика изменений:
Всего коммитов:
Добавлено строк:
Удалено строк:
Всего изменено строк:
👥 Вклад разработчиков:
Ганьков Андрей
Коммитов: 103 (35.15%)
Строк: 14458 (49.89%) +13904 -554
Горячев Иван
Коммитов: 60 (20.48%)
Строк: 7460 (25.74%) +5728 -1732
Тимирева Екатерина
Коммитов: 125 (42.66%)
Строк: 6897 (23.8%) +4871 -2026
Максимов Артём
Коммитов: 5 (1.71%)
Строк: 164 (0.57%) +137 -27
📦 Изменения в сабмодулях:
• Общие библиотеки QS
Всего коммитов:
Добавлено строк:
Удалено строк:
Всего изменено строк:
👥 Вклад разработчиков:
Ганьков Андрей
Коммитов: 71 (80.68%)
Строк: 4512 (70.47%) +3424 -1088
Максимов Артём
Коммитов: 7 (7.95%)
Строк: 1265 (19.76%) +965 -300
Хайрлиев Салтан
Коммитов: 4 (4.55%)
Строк: 319 (4.98%) +316 -3
Шаклеин Андрей (ВВ)
Коммитов: 3 (3.41%)
Строк: 277 (4.33%) +253 -24
work.semen.sd@gmail.com
Коммитов: 1 (1.14%)
Строк: 18 (0.28%) +16 -2
Беляев Артем (ВВ)
Коммитов: 1 (1.14%)
Строк: 9 (0.14%) +6 -3
Тимирева Екатерина
Коммитов: 1 (1.14%)
Строк: 3 (0.05%) +2 -1
🔧 Изменения во внешних модулях:
• Серверный Backend
Всего коммитов:
Добавлено строк:
Удалено строк:
Всего изменено строк:
👥 Вклад разработчиков:
Максимов Артём
Коммитов: 58 (33.53%)
Строк: 9927 (58.33%) +7467 -2460
Ганьков Андрей
Коммитов: 100 (57.8%)
Строк: 5045 (29.64%) +3666 -1379
Хайрлиев Салтан
Коммитов: 12 (6.94%)
Строк: 1856 (10.91%) +865 -991
Шейн Виталий
Коммитов: 3 (1.73%)
Строк: 191 (1.12%) +112 -79
📊 Статистика изменений:
Всего коммитов:
293Добавлено строк:
24640Удалено строк:
4339Всего изменено строк:
28979👥 Вклад разработчиков:
Ганьков Андрей
Коммитов: 103 (35.15%)
Строк: 14458 (49.89%) +13904 -554
Горячев Иван
Коммитов: 60 (20.48%)
Строк: 7460 (25.74%) +5728 -1732
Тимирева Екатерина
Коммитов: 125 (42.66%)
Строк: 6897 (23.8%) +4871 -2026
Максимов Артём
Коммитов: 5 (1.71%)
Строк: 164 (0.57%) +137 -27
📦 Изменения в сабмодулях:
• Общие библиотеки QS
Всего коммитов:
88Добавлено строк:
4982Удалено строк:
1421Всего изменено строк:
6403👥 Вклад разработчиков:
Ганьков Андрей
Коммитов: 71 (80.68%)
Строк: 4512 (70.47%) +3424 -1088
Максимов Артём
Коммитов: 7 (7.95%)
Строк: 1265 (19.76%) +965 -300
Хайрлиев Салтан
Коммитов: 4 (4.55%)
Строк: 319 (4.98%) +316 -3
Шаклеин Андрей (ВВ)
Коммитов: 3 (3.41%)
Строк: 277 (4.33%) +253 -24
work.semen.sd@gmail.com
Коммитов: 1 (1.14%)
Строк: 18 (0.28%) +16 -2
Беляев Артем (ВВ)
Коммитов: 1 (1.14%)
Строк: 9 (0.14%) +6 -3
Тимирева Екатерина
Коммитов: 1 (1.14%)
Строк: 3 (0.05%) +2 -1
🔧 Изменения во внешних модулях:
• Серверный Backend
Всего коммитов:
173Добавлено строк:
12110Удалено строк:
4909Всего изменено строк:
17019👥 Вклад разработчиков:
Максимов Артём
Коммитов: 58 (33.53%)
Строк: 9927 (58.33%) +7467 -2460
Ганьков Андрей
Коммитов: 100 (57.8%)
Строк: 5045 (29.64%) +3666 -1379
Хайрлиев Салтан
Коммитов: 12 (6.94%)
Строк: 1856 (10.91%) +865 -991
Шейн Виталий
Коммитов: 3 (1.73%)
Строк: 191 (1.12%) +112 -79
❤3👍1
Бюджет и нервы: Сегодня был пройден последний этап в подписании контракта на поставку нашей программы училищу олимпийского резерва.
Санкт-Петербургское государственное бюджетное профессиональное образовательное учреждение «Училище олимпийского резерва №1» (СПб ГБПОУ «УОР №1») официально заключило контракт на использование программного обеспечения «QS Спецодежда». Закупка была осуществлена в строгом соответствии с Федеральным законом № 44-ФЗ через электронный магазин Комитета по государственному заказу Санкт-Петербурга.
Важно отметить, что перед заключением платного контракта учреждение в течение почти 6 месяцев активно пользовалось бесплатной версией программного продукта.
Проект реализован через электронный магазин Комитета по государственному заказу Санкт-Петербурга.
Данный кейс наглядно показывает, как стратегия длительного бесплатного теста снимает барьеры для принятия решений в бюджетной сфере. Когда клиент сам, без давления, приходит к пониманию ценности продукта, процесс продажи и внедрения проходит максимально гладко и приводит к долгосрочному сотрудничеству.
Для справки:
СПб ГБПОУ «Училище олимпийского резерва №1» — ведущее учреждение по подготовке спортивного резерва в Санкт-Петербурге. В училище работает множество сотрудников — от тренерского состава и преподавателей до технического персонала, обеспечение которых спецодеждой и СИЗ требует строгого документального учета.
Санкт-Петербургское государственное бюджетное профессиональное образовательное учреждение «Училище олимпийского резерва №1» (СПб ГБПОУ «УОР №1») официально заключило контракт на использование программного обеспечения «QS Спецодежда». Закупка была осуществлена в строгом соответствии с Федеральным законом № 44-ФЗ через электронный магазин Комитета по государственному заказу Санкт-Петербурга.
Важно отметить, что перед заключением платного контракта учреждение в течение почти 6 месяцев активно пользовалось бесплатной версией программного продукта.
Проект реализован через электронный магазин Комитета по государственному заказу Санкт-Петербурга.
Данный кейс наглядно показывает, как стратегия длительного бесплатного теста снимает барьеры для принятия решений в бюджетной сфере. Когда клиент сам, без давления, приходит к пониманию ценности продукта, процесс продажи и внедрения проходит максимально гладко и приводит к долгосрочному сотрудничеству.
Для справки:
СПб ГБПОУ «Училище олимпийского резерва №1» — ведущее учреждение по подготовке спортивного резерва в Санкт-Петербурге. В училище работает множество сотрудников — от тренерского состава и преподавателей до технического персонала, обеспечение которых спецодеждой и СИЗ требует строгого документального учета.
🎉9🔥1
ОСНОВАТЕЛЬ, ГЛАВНЫЙ РАЗРАБОТЧИК И ГЕНЕРАЛЬНЫЙ ДИРЕКТОР: ИСТОРИЯ, КОТОРУЮ МЫ ПИШЕМ ВМЕСТЕ
Дорогой Андрей Владимирович!
Сегодня мы поздравляем не просто руководителя. Мы поздравляем человека, который в 2008 году заложил первый кирпич в фундамент нашего общего дела — с парой компьютеров и верой в качественный сервис.
Вы прошли путь от IT-обслуживания до создания уникальных продуктов — от «Доставки Воды» и «Учёт договоров» до флагмана нашего отдела разработки - «QS Спецодежда». Каждый ваш проект — это наша точка роста.
Вы — архитектор нашего цифрового будущего, превращающий идеи в рабочий код. Ваша работа связывает замысел и результат.
Желаем вдохновения, лёгких компиляций и баланса между гениальными алгоритмами и простыми радостями. Пусть триггеры срабатывают на удачу, а логи будут чистыми!
А где рождается будущее, которое придумывает наш руководитель? Правильно — на вашем рабочем месте. С Днём рождения!
Коллектив «Качественных Решений» желает вам крепкого здоровья, новых свершений и уверенности: лучшее — ещё впереди!
Дорогой Андрей Владимирович!
Сегодня мы поздравляем не просто руководителя. Мы поздравляем человека, который в 2008 году заложил первый кирпич в фундамент нашего общего дела — с парой компьютеров и верой в качественный сервис.
Вы прошли путь от IT-обслуживания до создания уникальных продуктов — от «Доставки Воды» и «Учёт договоров» до флагмана нашего отдела разработки - «QS Спецодежда». Каждый ваш проект — это наша точка роста.
Вы — архитектор нашего цифрового будущего, превращающий идеи в рабочий код. Ваша работа связывает замысел и результат.
Желаем вдохновения, лёгких компиляций и баланса между гениальными алгоритмами и простыми радостями. Пусть триггеры срабатывают на удачу, а логи будут чистыми!
А где рождается будущее, которое придумывает наш руководитель? Правильно — на вашем рабочем месте. С Днём рождения!
Коллектив «Качественных Решений» желает вам крепкого здоровья, новых свершений и уверенности: лучшее — ещё впереди!
⚡7👏4🍾3🔥2🎄1💘1😎1