Как и обещала, о документации. Основные две вещи, которые вам нужно знать, если вы решили писать хорошую документацию для разработчиков:
1) это занятие сложное 2) это занятие неблагодарное
Почему неблагодарное? Почему-то контрибьюшены в документацию часто недооценивают.
Я уже писала, что часто сталкивалась с мнением, что писать доки к чему-то - это такой немного "ненастоящий" контрибьюшен. Мол настоящие-то контрибьюторы сурово пишут код, а документацию кто угодно написать может.
На самом деле это далеко не так.
Для написания хорошей документации автор должен
- понимать исходник на достаточном уровне;
- уметь объяснять (нет, умеют не все)
- в случае с документацией для разработчиков нужно уметь не сваливаться в крайности "и так все ясно" и "объясняем все-все мелочи"
В первом случае вашу документацию не поймут, во втором - она будет раздражать и в потоке объяснений "что такое Array.prototype.reduce" будет трудно найти, что же вы на самом деле хотели описать.
Написание документации - это упражнение на эмпатию. Докрайтеры не описывают объективную реальность - это делает исходный код. Мы помогаем понять его, и это требует некоторого понимания и принятия мыслительных процессов "потребителей" вашей документации.
Некоторые принципы
- фича не существует, пока она не документирована
- используйте простые предложения вместо сложных конструкций. Сложные предложения усложняют восприятие (извините за тавтологию) и быстрее истощают когнитивную "емкость" читателей
- не пытайтесь объяснить больше одной концепции в один момент времени. Допустим, я пытаюсь объяснить, что такое метод в компоненте Vue и пишу вот такой пример
Что в нем не так?
Как верно заметили в комментариях, у нас помимо концепции метода здесь присутствует axios. Возможно, для части аудитории эта концепция знакома и пройдет незамеченной; но для многих она будет новой, непонятной и создаст дополнительную когнитивную нагрузку
Об эмпатии: попытайтесь представить себя на месте читателя вашей документации. Часто, когда мы что-то изучили досконально, какие-то вещи становятся для нас очевидными - это так называемый "curse of knowledge". Не можете представить? Попробуйте тест-драйв документации на новичке
Начинайте объяснения с проблемы, а не с решения. Например "Использование props" - плохой заголовой для раздела документации. Куда лучше будет "Передача данных дочерним компонентам с помощью props", потому что оно дает понимание задачи, которую пропы решают.
Когда пишете документацию - не бойтесь вникать в source code и задавать вопросы авторам кода. Даже глупые вопросы. Особенно глупые вопросы! Это дает возможность задуматься над тем, как построить фичу, которую легко объяснить - и часто это будет оптимальным решением
Если определенная часть документации все-таки требует знания каких-то концепций - озвучивайте это в начале части и ставьте ссылки на источники
Не перенасыщайте документацию подсказками и warning'ами, это отвлекает и мешает нормальному чтению документации. Кстати, с течение времени документация Vue "подпортилась" в этом плане, потому что контрибьюторы часто хотят добавить именно "подсказку". Мы работаем над этим 😊
Не стоит писать авторитарно "нужно делать так, потому что это best practice". Объясняйте и приводите примеры.
Когда думаете о том, что объяснять вначале, пишите о том, что решит наибольшее количество проблем при наименьшем затраченном на изучение усилии. Power/effort ratio 😌
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Если говорить о тестовых. Я против них, особенно до технического собеса. Ты тратишь свои силы, время, ресурсы и твоя работа может просто быть выброшена и не оценена. Собственно как было выше
Я предпочитаю лайв кодинг. Это хороший и рабочий способ провести собес.
За все время я написала одно тестовое и то в страхе, что меня просто никуда не возьмут. Это была первая работа.
Всем доброе утро!
Ночью решила, что хочу и этим с вами поделиться 🙌🏻 если по ходу чтения есть вопросы, смело задавайте, возможно я что-то полезное и интересное для вас опускаю
Сказ о том, как я имела три работы, а потом три работы имели меня 👇🏻
Если коротко: херовая идея конечно
Предыстория. Все детство пока девочки играли в куклы, я играла в школу и жить без этого не могла. Поэтому с первого курса бакалавриата я стала репетитором по математике. Вообще вышло это случайно и я не планировала во время учебы на мехе чем то заниматься, кроме учебы
Если говорить о специфике работы, то для себя я поняла, что с большей долей вероятности я не пойду делать бек. Я люблю UI, люблю верстать, люблю думать над клиентской логикой.
На первой работе у меня были достаточно сложные и глубокие вещи, просто так в которые не въедешь. Я тратила все ресурсы и силы, чтобы родить что-то годное.
Сейчас же я занимаюсь социальной частью сайта. Я делаю очень много клиентской логики и это мне доставляет.
Ну как и положено, начну я с рассказа почему я стала программистом
Ещё в 10 классе я поняла, что мне интересна математика и мой очень близкий друг/одноклассник/одногруппник/однопартник предложил пойти с ним в мат школу при мехмате. (Никита, если ты это читаешь, я держусь, чтобы не тегать тебя!)
Ну я короче прониклась в то, как мы решали примеры 1 курса и перестала себя видеть в чём-то другом, кроме программирования и математики.
Ну вот и я дорвалась в этот аккаунт на недельку! Будем знакомиться 🙂
Меня зовут Татьяна Гулякина, я – фронтенд разработчик вот тут @tradingview и почти магистр комп.наук вот тут @mmcs_sfedu. Мне 22 года и живу я в городе Ростове-на-Дону 🙋♀️
Правда какого-то конкретного плана на неделю у меня нет, есть только пара заметок на интересные темы, некоторые из которых подкинули мне мои друзья для обсуждения здесь