Что такое исходный код и почему он важен для заказчика
Просмотры:322
7минут
26 июля 2023
Коротко
Без исходного кода на руках любая правка сайта возможна только через того, кто его написал, — по его цене и в его сроки.
Код — объект авторского права. Когда компания заказывает разработку у подрядчика, права на код по умолчанию принадлежат заказчику, а не подрядчику, — если в договоре не написано иначе.
Доступ в админку — это не контроль над сайтом. Админка меняет тексты и картинки, а всё остальное лежит в коде.
Открытый код можно передать любой команде. Закрытый обычно обслуживает только его владелец — и цену диктует тоже он.
Полный комплект — это код в системе хранения версий, доступы на имя заказчика, инструкция по запуску и права по договору.
Исходный код — это текст, который пишет программист. Обычный текст, набранный буквами и знаками, только по строгим правилам. Из него потом получается программа, сайт или приложение.
Сравнение простое: исходный код — это чертёж и рецепт одновременно. По нему собирают готовую вещь, но сам он вещью не является — и именно поэтому вопрос «а где код» намного важнее, чем кажется заказчику на старте проекта.
Почему код и программа — это разное
Компьютер не понимает текст, который пишет человек. Он понимает только числа. Между понятным человеку кодом и числами, которые выполняет компьютер, стоит преобразование.
В одних языках код заранее переводят в машинный вид целиком — получается файл, который просто запускается. Исходного текста в нём уже нет, и прочитать его обратно в человекочитаемом виде почти невозможно.
В других код переводится на ходу, во время работы программы. Так устроены сайты: браузер получает текст и выполняет его прямо у пользователя на экране.
Отсюда практическое следствие: часть кода сайта видна любому посетителю через браузер, а часть — та, что работает на сервере, — не видна никому снаружи. Именно вторую часть заказчик обязан получить сам, потому что просто открыть и посмотреть её невозможно.
Почему исходный код так важен
Без него нельзя ничего изменить
Готовая программа — как испечённый торт. Съесть его можно, а вытащить оттуда сахар нельзя. Чтобы что-то поправить, нужен рецепт, по которому торт готовили.
Это главная причина, по которой исходный код у заказчика должен быть на руках. Нет кода — любая правка возможна только через того, кто его написал, по его цене и в его сроки, без права выбрать другого исполнителя.
Он определяет, кому принадлежит результат
Код — объект авторского права, как текст книги или музыка. Но когда компания заказывает разработку у подрядчика, закон встаёт на сторону заказчика: право на код по умолчанию принадлежит именно ему, а не тому, кто код написал (ст. 1296 ГК РФ). Право остаётся у подрядчика, только если в договоре прямо написано обратное.
Осторожно. Это правило — для обычного договора между двумя компаниями (заказчик и подрядчик). У него два исключения. Если код пишет ваш штатный сотрудник, право тоже достаётся компании, но по другой статье — 1295 ГК РФ. А если вы заказываете код напрямую у автора-фрилансера как у частного лица, а не у компании, — это «договор авторского заказа», и здесь правило обратное: право переходит к заказчику, только если это прямо прописано (ст. 1288 ГК РФ). Поэтому вместо того чтобы полагаться на умолчание, формулировку про переход прав всё равно стоит проверить в самом договоре — на это уходит один вопрос юристу и не уходит недели тяжбы.
По нему видно реальное качество работы
Два сайта могут выглядеть одинаково снаружи, а внутри отличаться радикально. В одном всё разложено по полочкам и понятно новому человеку с первого взгляда, в другом — свалка, где любая правка в одном месте ломает соседнее.
Снаружи эта разница совсем не видна. Она проявляется через год, когда понадобится доработка, и внезапно выясняется, что дешевле переписать заново, чем разобраться в чужом коде.
Что заказчику надо получить на руки
Не «сайт работает» и пароль от админки. Полный комплект — это четыре конкретные вещи.
Что входит
Почему это важно
Сам код в системе хранения версий
Не архивом на почте, а в системе, где виден каждый шаг изменений
Доступы к хостингу, домену и базе данных
Оформлены на заказчика, а не на подрядчика — иначе смена исполнителя невозможна
Инструкция по запуску
Как поднять проект на новом сервере, если понадобится переехать
Права по договору
Прямо прописанные, а не подразумеваемые по умолчанию
Проверить комплектность можно одним вопросом: сможет ли совсем другая команда взять всё это и продолжить работу без единого звонка прежним разработчикам? Если нет — комплект неполный, и это стоит исправить до окончания проекта, а не после конфликта с подрядчиком.
Мы у себя ведём код клиента в общем репозитории с самого начала проекта, и рабочая версия сайта разворачивается из отдельной ветки — так заказчик в любой момент может показать код другой команде и не ждать, пока мы соберём архив вручную (наш проект, 2026).
Открытый и закрытый код
Открытый код — тот, который автор выложил публично и разрешил использовать другим. На нём построена значительная часть интернета: системы управления сайтом, базы данных, серверные программы.
Закрытый код — тот, который автор никому не показывает и продаёт как готовый продукт, без возможности заглянуть внутрь.
Решение на закрытом коде
Обслуживать может только владелец
Цену на доработку назначает он один
Сменить подрядчика почти невозможно
Решение на открытом коде
Передать можно любой команде
Цену на доработку можно сравнить у разных исполнителей
Подрядчика можно сменить без потери истории
Для заказчика разница совершенно практическая, а не идеологическая. Решение на открытом коде можно передать любой другой команде, и компания не привязана навечно к одному подрядчику. Закрытое решение обычно означает, что обслуживать его сможет только его владелец, и цену он назначает сам, без конкуренции со стороны.
Частая ошибка
Считать, что доступ в админку — это и есть контроль над сайтом.
Админка позволяет менять тексты и картинки на страницах. Всё остальное — как устроен сайт внутри, что происходит при отправке формы заявки, куда уходят данные посетителей — лежит в коде. И если кода у заказчика нет, то и сайт, по сути, принадлежит ему лишь формально.
Связанная тема. Даже с полным доступом к коду сайт нужно кому-то регулярно обновлять и охранять от взлома — иначе через год «свой» сайт снова окажется зависимым, только уже не от подрядчика, а от устаревших версий программ, через которые обычно и происходит взлом. Разбирали, как устроена защита в целом, в статье про искусственный интеллект в кибербезопасности. Это отдельная задача постоянной поддержки, а не разовая передача архива с файлами.
Если сайт уже работает и его нужно доработать, а не переписывать с нуля, обычно разумнее сохранить существующий код и нарастить функциональность поверх него — этот подход и его границы разбирали в статье про создание одностраничных сайтов, где отдельно показано, когда одной страницы уже недостаточно: примеры одностраничных сайтов.
Может ли исполнитель отказаться передавать исходный код после оплаты работы?
По закону — нет: если исполнитель разрабатывал сайт по заказу компании, право на код по умолчанию принадлежит заказчику (ст. 1296 ГК РФ), и передать сами файлы код обязан. На практике отказы всё равно случаются — из-за неаккуратной формулировки в договоре или спора о том, что именно входит в работу. Поэтому пункт о передаче кода и доступов стоит прописывать в договоре заранее, а не выяснять отношения после того, как сайт уже сдан.
Достаточно ли получить архив с файлами сайта, чтобы считать код своим?
Одних файлов мало. Нужны ещё доступы, оформленные на заказчика, а не на подрядчика: хостинг, домен, панель управления, репозиторий. Права на код по обычному договору подряда и так у заказчика, но формулировку в договоре стоит проверить — из-за неаккуратной строчки спор превращается в разбирательство, у кого что.
Чем открытый код лучше закрытого для обычного бизнеса?
Решение на открытом коде можно передать любой другой команде разработчиков, и это создаёт конкуренцию за право обслуживать сайт — цены и сроки становятся рыночными. Закрытое решение привязывает компанию к одному поставщику навсегда.
Почему пароль от админки не гарантирует контроль над сайтом?
Через админку меняются только тексты и картинки на готовых страницах. Логика сайта — что происходит при заполнении формы, как обрабатываются заявки, куда уходят данные — находится в коде, и без доступа к нему эта часть остаётся полностью в руках разработчика.
Нужно ли требовать код у разработчика, если сайт делает штатный сотрудник компании?
Да, ровно по той же причине: если сотрудник уволится, а код нигде не сохранён в системе хранения версий, компания рискует остаться с работающим сайтом, который никто не сможет доработать без долгого разбора с нуля.
Мы используем файлы cookie, чтобы сайт работал корректно и чтобы понимать, как им пользуются.
Если не хотите, чтобы мы считали посещения, нажмите «Отказаться». Подробнее — в
Политике обработки персональных данных.