jsunderhood Profile picture
Коллективный аккаунт для фронтенд-разработчиков.

Aug 27, 2019, 14 tweets

Как и обещала, о документации. Основные две вещи, которые вам нужно знать, если вы решили писать хорошую документацию для разработчиков:

1) это занятие сложное
2) это занятие неблагодарное

Почему неблагодарное? Почему-то контрибьюшены в документацию часто недооценивают.

Я уже писала, что часто сталкивалась с мнением, что писать доки к чему-то - это такой немного "ненастоящий" контрибьюшен. Мол настоящие-то контрибьюторы сурово пишут код, а документацию кто угодно написать может.

На самом деле это далеко не так.

Для написания хорошей документации автор должен

- понимать исходник на достаточном уровне;
- уметь объяснять (нет, умеют не все)
- в случае с документацией для разработчиков нужно уметь не сваливаться в крайности "и так все ясно" и "объясняем все-все мелочи"

В первом случае вашу документацию не поймут, во втором - она будет раздражать и в потоке объяснений "что такое Array.prototype.reduce" будет трудно найти, что же вы на самом деле хотели описать.

Написание документации - это упражнение на эмпатию. Докрайтеры не описывают объективную реальность - это делает исходный код. Мы помогаем понять его, и это требует некоторого понимания и принятия мыслительных процессов "потребителей" вашей документации.

Некоторые принципы

- фича не существует, пока она не документирована

- используйте простые предложения вместо сложных конструкций. Сложные предложения усложняют восприятие (извините за тавтологию) и быстрее истощают когнитивную "емкость" читателей

- не пытайтесь объяснить больше одной концепции в один момент времени. Допустим, я пытаюсь объяснить, что такое метод в компоненте Vue и пишу вот такой пример

Что в нем не так?

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

Об эмпатии: попытайтесь представить себя на месте читателя вашей документации. Часто, когда мы что-то изучили досконально, какие-то вещи становятся для нас очевидными - это так называемый "curse of knowledge". Не можете представить? Попробуйте тест-драйв документации на новичке

Начинайте объяснения с проблемы, а не с решения. Например "Использование props" - плохой заголовой для раздела документации. Куда лучше будет "Передача данных дочерним компонентам с помощью props", потому что оно дает понимание задачи, которую пропы решают.

Когда пишете документацию - не бойтесь вникать в source code и задавать вопросы авторам кода. Даже глупые вопросы. Особенно глупые вопросы! Это дает возможность задуматься над тем, как построить фичу, которую легко объяснить - и часто это будет оптимальным решением

Если определенная часть документации все-таки требует знания каких-то концепций - озвучивайте это в начале части и ставьте ссылки на источники

Не перенасыщайте документацию подсказками и warning'ами, это отвлекает и мешает нормальному чтению документации. Кстати, с течение времени документация Vue "подпортилась" в этом плане, потому что контрибьюторы часто хотят добавить именно "подсказку". Мы работаем над этим 😊

Не стоит писать авторитарно "нужно делать так, потому что это best practice". Объясняйте и приводите примеры.

Когда думаете о том, что объяснять вначале, пишите о том, что решит наибольшее количество проблем при наименьшем затраченном на изучение усилии. Power/effort ratio 😌

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling