Как бы ни был важен код, документация к нему, пожалуй, еще важнее. Ни один разработчик, как и ни одно программное обеспечение, не существует в вакууме; если другие разработчики не могут понять написанный вами код, он теряет большую часть своего потенциального воздействия.
Но как насчет машин? Нужна ли им хорошая документация?
Ответ - да, и он указывает на будущее "многоуровневой документации", термин, который я впервые увидел в описании Влада Ионеску. По его словам, многоуровневая документация означает "наличие одного набора документации для человеческих пользователей и другого набора документации специально для обучения LLM [большой языковой модели]". Первая должна легко восприниматься людьми, вторая - быть подробной, чтобы такие инструменты, как Amazon CodeWhisperer или GitHub Copilot, могли постоянно улучшать код. Это интересная концепция, конечной целью которой является повышение производительности труда разработчиков. Что же нам нужно для этого?
Важность отличной документации
Спросите разработчика, что ему нужно для продуктивной работы, и неизменно получите ответ: "Отличная документация". Более того, SlashData задает этот вопрос уже много лет, и документация всегда занимает первое место в списке:

Конечно, это легче сказать, чем сделать. Несмотря на то что мы знаем о важности документации (например, для передачи знаний, как утверждает разработчик Джереми Миккола), это неизменно та задача, которую разработчики ПО хотят выполнять меньше всего. Как отмечает Кислай Верма, писать хорошую документацию действительно сложно и не так весело, как писать сам код.
Что ж, теперь это стало еще сложнее.
По мнению разработчика Якуба Кочи, "самая большая проблема [в написании документации] - это ясность". В конце концов, - продолжает он, - мы пишем код в первую очередь для людей, а не для машин. Заставить его работать - это лишь половина решения, а сделать его хорошо структурированным и удобным для сопровождения - это еще одна... зачастую более сложная часть". Возможно, это было верно в 2022 году, когда Кочи впервые это сказал, но в 2024 году, учитывая появление таких помощников по написанию кода, как Amazon CodeWhisperer или GitHub Copilot, возможно, так же важно, чтобы машины понимали вашу документацию так же хорошо, как и разработчики.
Машинам нужна другая документация, чем людям, - например, более подробная.
Внедрение многоуровневой документации
Как говорит Ионеску, "многоуровневая документация - это то, с чем некоторые люди экспериментируют в качестве решения/обходного пути для ассистентов кода LLM... тупых, потому что документы тупые". Некоторые компании-разработчики пытаются решить эту проблему, работая напрямую с партнерами, чтобы предоставлять примеры кода, документации и т.д. непосредственно в LLM. Мой работодатель, MongoDB, сделал это с AWS. Это работает, но не масштабируется. В идеале, как разработчик программного обеспечения, будь то частное лицо или корпорация, вы хотите создавать документацию, которую LLM будут просматривать самостоятельно.
Вы также должны быть уверены, что LLM будут понимать ваше программное обеспечение на глубоком уровне, чтобы они могли вернуть наилучший код, когда разработчики попросят их об этом. К сожалению, как сетует Ионеску, "большинство документации для разработчиков (или даже пользовательской документации) обычно написано для новичков, и это сейчас является препятствием". Для человека вполне уместно дать быстрый старт и базовые примеры кода, но если скормить такую ограниченную информацию машине, она "с трудом сможет предоставить серьезные предложения по коду производственного уровня".
Идея многоуровневой документации заключается в том, что "по умолчанию боты, ищущие LLM, [будут] получать суперподробные, глубокие документы, а люди - более дружелюбные", - резюмирует Ионеску.
Такова идея. А какова реальность? Ну, реальность кусается, по крайней мере пока. Насколько мне известно, никто не добился успеха в этом деле, но нет никаких причин, по которым это невозможно сделать. Будет непросто создавать документы, которые удовлетворят и людей, и машины, но если мы разберемся с методологией, то в конечном итоге выиграют разработчики.
Как утверждает Майк Лоукидес из O'Reilly, мы еще далеки от того, чтобы LLM могли эффективно и последовательно выдавать код, способный заменить компиляторы. Но мы уже живем в мире, где LLM могут помочь разработчикам в написании отличного кода. Улучшение документации для разработчиков и LLM, от которых они все больше зависят, будет иметь решающее значение для повышения производительности разработчиков.
Понравилась новость? Тогда не забудь оставить свой комментарий.
А так же, добавь наш сайт в закладки (нажми Ctrl+D), не теряй нас.
Комментарии