tsidukciya

Какими инструментами я пользовался при написании этой книги?

Прогресс невозможен без изменений, и те, кто не может изменить своё мнение, не могут изменить ничего вообще.

©️ Джордж Бернард Шоу

До этой книги у меня не было опыта создания столь масштабных проектов, состоящих из такого количества строк. Наверное, можно сравнить с дипломной работой в 2009 по количеству страниц, но там значимую часть контента занимали графики, таблицы, исходный код и материалы общих разделов, которые были предоставлены кафедрой. Но где-то с 2018 начала публиковать периодические статьи в запретобуке и vc.ru, которые скорее всего ещё доступны и сейчас. А с 2020 подключился к проекту перевода сайта less.works. Как раз, в результате перевода нескольких десятков статей по LeSS (один из подходов к масштабированию разработки ПО) я нашёл ряд инструментов и практик, которые позволяли автоматизировать часть процесса. Это опыт помог мне также автоматизировать написание этой книги.

Самый распространённый язык разметки для создания документации в ИТ-среде - Markdown. Это простые текстовые файлы, не требующие специального платного ПО, но поддерживающий базовый синтаксис управлениями стилями: заголовки, ссылки, таблицы, изображения, курсив, жирность и т.д. Вы можете использовать любой редактор на любом устройстве или даже онлайн, чтобы работать с такими файлами. Чтобы иметь возможность получить доступ к своему проекту с разных устройств можно использовать какое-либо облако, но чаще всего используют git-сервисы, например, Github или GitVerse.

Если осуществляется, например перевод нескольких связанных статей группой людей, то на мой взгляд лучше порталов данных git-сервисов еще не придумали. Там можно создавать несколько версий одно текста, обмениваться правками, сливать работу нескольких авторов, и все это делать в несколько кликов мыши. С MS Word или GoogleDocs это несколько сложнее. Еще большим плюсам таких порталов является возможность запуска “сборки” - например, проверки стилей, отступов, орфографии, генерации оглавления при наступлении какого-либо события.

В таких “сборках” я активно использую проекты markdownlint (проверка корректности построения MD-файлов) и cspeller (проверка орфографии онлайн). То есть при каждом изменении текста и отправки его в центральный репозиторий происходит запуск двух этих проверок. Например, если вы допустили ошибку в тексте, то “сборка” не пройдет и система даст вам обратную связь об этом. Если все проверки прошли успешно, тогда запускается генерация страниц книги для отображения на сайте. Это не гарантирует публикацию текста без ошибок, но позволяет сильно снизить их количество.

Для редактирования текста я использую бесплатную версию IntelliJ IDEA по трём причинам: встроенная проверка орфографии и грамматики, нативная интеграции с git (например для работы с github) и возможность запускать скрипты автоматизации прямо из окна приложения, например, для генерации страницы с содержанием. Последние несколько лет набирает популярность ПО Obsidian, которое позволяет связывать большое количество markdown-файлов в единую базу знаний. А в среде веб-разработки популярен редактор VSCode. Чем пользоваться именно вам вы можете решить исходя из своей задачи.

Сам процесс написания книги выглядит следующим образом. Первоначально я накидываю список вопросов, которые хотел бы осветить, дополняя их поясняющей информаций или ссылками, например, если статью на похожую тему ранее мной уже публиковалась. Этот список вопросов или глав - довольно живая конструкция, что-то туда добавляется, удаляется, редактируется вплоть до последнего дня перед публикацией книги целиком. Далее, как только получается выделить 30-60 минут свободного времени, я начинаю написание раздела по выбранному вопросу, черпая материал из своих предыдущих статей или спрашиваю у ИИ-инструментов какие-то моменты.

Современные ИИ-инструменты могут помочь вам решить проблему “белого листа”, когда вы не знаете, с чего начать. Могут набрать план книги, предложить вариант конкретной главы, которую вы уже можете отредактировать под свои задачи. Тем ИИ-инструментов последние 2 года является чуть ли не основной повесткой всех новостных изданий, а модели, сервисы и инструменты выходят с такой частотой, что формат книги просто не успеет за актуальными трендами. Поэтому я сознательно упускаю упоминание конкретных инструментов, которыми я пользуюсь в данный момент, чтобы дать это книги чуть больше времени оставаться актуальной.

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

Я показал лишь малую часть, чем могут помочь современные системы и сервисы молодым авторам и создателям контента. Скорее всего, в ближайшее несколько лет прогресс дойдёт до того, что вы, как автор, будете просто надиктовывать голосом определённый куски книги или диссертации, а натренированный ИИ агент будет интегрировать эти куски в нужное место, добавляя необходимые смысловые переходы, стилистические правки и другие исправление, которые бы внёс живой человек.