literate-programming

6 posts

Ваша литературная программа сломана, пока CI не может сделать tangle без вас

Literate programming обещает единственный источник правды, но ручные шаги weave и tangle ломают CI/CD-пайплайн. Вот как автоматизировать извлечение и генерацию документации, чтобы ваши Markdown-файлы оставались каноническими.

Если ваш пайплайн сборки не может работать без того, чтобы вы открыли терминал и набрали , у вас нет литературной программы. У вас есть дневник с прикреплённым…

Сначала объяснять код LLM снизило мою частоту багов на 85 %

Я 30 дней писал объяснения дизайна перед тем, как просить код у LLM. Результаты изменили моё отношение к rubber-ducking.

Большинство разработчиков используют LLM наоборот. Мы описываем желаемое пятью словами, получаем 200 строк кода и следующий час тратим на отладку…

Я перестал копировать код в документацию, храня тесты, код и прозу в одном Markdown-файле

Literate programming поддерживает синхронизацию документации, тестов и реализации, делая Markdown-файл единственным источником правды. Вот как реализовать это тридцатью строками на Python.

Ваша документация, тесты и код — это три файла, которые плохо рассказывают одну и ту же историю. Вы обновляете сигнатуру функции в исходнике. Забываете про…

Ваш тред в Claude уже является документацией. Он просто умрёт через двенадцать часов.

Диалоги с LLM содержат намерения, отвергнутые альтернативы и работающий код. Именно это и должна представлять собой документация. Вот как превратить эфемерный чат в долговечные, доступные для поиска документы, не теряя повествования.

Вы провели сорок пять минут с Claude, проектируя схему повторных попыток. Вы объяснили режимы отказов, отвергли экспоненциальный откат, потому что он скрывает…

Текстовые редакторы позволяют писать невалидный код. Древовидные редакторы не позволили бы.

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

У каждого языка программирования есть формальная грамматика. Компилятор читает её, строит parse tree и отвергает всё, что не подходит. Редактор полностью…

Donald Knuth хотел, чтобы программы читались как литература. У компилятора были другие планы.

Literate programming обещала, что код должен писаться в первую очередь для людей, а во вторую — для машин. Четыре десятилетия спустя почти никто так не пишет. Вот почему самая элегантная идея в документировании программного обеспечения не смогла изменить наш способ работы.

В 1984 году Donald Knuth опубликовал статью, в которой предложил радикальное изменение. Программы не должны писаться для компиляторов и комментироваться для…