Разработка студента Университета ИТМО поможет программистам больше спать

Редко создание компьютерных программ идет гладко и без ошибок. Иногда неверную строчку в коде программист замечает на последнем этапе работы. Чтобы исправить ошибку, можно пользоваться системами контроля версий, которые сохраняют все варианты создаваемого ПО, но и они зачастую работают неэффективно. Студент кафедры информатики и прикладной математики Университета ИТМО Максим Скороходов разработал дополнение к системам контроля версий, которое существенно упростит труд программистов. О своем продукте он расскажет в финале лиги Science Slam ITMO University.

Университет ИТМО. Максим Скороходов

Что такое системы контроля версий

Когда программист или группа программистов разрабатывают программное обеспечение, неизбежно возникают ошибки, которые нужно исправлять. Иногда заказчик ПО требует что-то добавить или убрать в программном продукте. Если проект небольшой, то исправления не займут много времени. А если разработка содержит огромное количество файлов? Ситуация может еще более усложниться, если члены команды работают удаленно друг от друга — при корректировке программы может начаться путаница с верными и неверными версиями проекта.

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

«Приведу простой пример использования систем контроля версий. Предположим, что завтра команда должна сдать заказчику проект, который делала 3−4 месяца. Но произошел какой-нибудь технический сбой, и написанная программа была потеряна. Если в системе контроля версий сохранен предыдущий вариант проекта, то разработчики могут презентовать хотя бы его. Ведь заказчику главное видеть результат работы, пусть и промежуточный», — пояснил Максим Скороходов.

Решение проблемы

Максим Скороходов на HackDay#41
Максим Скороходов на HackDay#41

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

«У меня есть опыт работы инженером-программистом. Иногда случались такие ситуации, когда я делал простейшие изменения в программном коде, например, менял местами две функции, а система контроля версий считала, что я заменил целый файл. Она просто считывала изменения по принципу „такие-то строчки добавлены, такие-то удалены“. Это было неудобно, поэтому я решил исследовать эту тему, чтобы исправить недочет», — сказал участник Science Slam ITMO University.

Для решения проблемы Максим Скороходов предлагает представлять исходные коды в виде так называемых абстрактных синтаксических деревьев. Это такая структура данных, которая распределяет программные файлы «по старшинству». Так, корень дерева — это программный файл, далее идут его функции, каждая функция выполняет некоторые операции и так далее.

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

Как можно реализовать разработку

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

«Такие программы можно использовать для улучшения систем антиплагиата. Либо сравнивать перевод текста с оригиналом, чтобы в переводе не нарушалась общая структура текста, последовательность изложенных фактов. Дело в том, что системы контроля версий с использованием абстрактных синтаксических деревьев оперируют не содержимым, которое может быть одинаковым в двух текстах, написанных по-разному, а именно структурой текста. Возможно использование этой программы и в других сферах», — отметил Максим Скороходов.

Университет ИТМО. HackDay#41
Университет ИТМО. HackDay#41

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

«Такие студенческие конкурсы, как лига Science Slam Университета ИТМО, и хакатоны, в которых я стараюсь участвовать, являются не только местом развития навыков презентации и продажи своего продукта, но и местом популяризации науки и запуска стартапов. Многие проекты, прошедшие через подобные мероприятия, затем коммерциализируются. Кроме того, это безумно здорово реализовывать какую-либо идею вместе с такими же мотивированными людьми, если говорить именно о командных конкурсах», — заключил Максим Скороходов.

Редакция новостного портала
Архив по годам:
Пресс-служба