Ответ
Да, писал документацию, README-файлы, комментарии в коде и технические статьи. Например, в README обычно включаю:
- Описание проекта
- Требования и зависимости
- Инструкции по сборке/установке
- Примеры использования
/**
* Calculates sum of two numbers
* @param a first number
* @param b second number
* @return sum of a and b
*/
fun sum(a: Int, b: Int): Int {
return a + b
}
Документирую код по принципу "почему", а не "что" (очевидные вещи не комментирую). Пишу лаконично, но информативно.
Ответ 18+ 🔞
А, ну документацию-то я, блядь, писал, конечно. Это ж святое, ёпта. Чтоб потом самому не охуеть через полгода, глядя на свой же код, как на китайскую грамоту. И не только для себя — чтоб другие не приходили с криками «какого хуя тут происходит, мудила?».
Вот, например, этот священный файлик README.md — без него проект как машина без колёс, просто кусок железа, который нихуя не едет. Там обычно по пунктам разжёвываю:
- Что это за зверь такой? Описание проекта — чтоб сходу было понятно, нахуя это вообще нужно. Не «это система», а «это система, которая превращает твои кривые отмазки в красивые отчёты для начальства».
- Чего ему надо, чтоб ожить? Требования и зависимости. Типа, «поставь вот эту библиотеку, а то всё накроется медным тазом с ошибкой
ClassNotFound». - Как его собрать из кусков? Инструкции по сборке. «Запусти вот эту команду, и если не вылезет красная хуйня — значит, повезло».
- Как им пользоваться, чтоб не сломать? Примеры использования. Самый важный раздел, ёбана! Потому что все ленятся читать, а тут — раз, и рабочий кусок кода скопировал.
Ну и в сам код, понятное дело, комменты вставляю. Но не как некоторые, которые каждую строчку расписывают, будто для дебила. Вот смотри, пример:
/**
* Складывает два числа. Да, просто складывает, Карл!
* @param a первое число (не строка, не объект, а ЧИСЛО, ебушки-воробушки)
* @param b второе число
* @return сумма этих двух чисел. Если ожидал чего-то другого — иди нахуй.
*/
fun sum(a: Int, b: Int): Int {
return a + b
}
Главный принцип у меня — в комментах объясняю «почему» этот кусок кода выглядит так, а не иначе. Особенно если там какая-то хитрая жопа с алгоритмом или костыль из-за кривого API. А «что» он делает — это и так должно быть понятно из названий функций и переменных. Если непонятно — значит, код говно, и его надо переписать, а не комментами закидывать.
Короче, пишу коротко, но чтоб суть была ясна. Как будто объясняю чуваку на соседнем столе, у которого терпения — ноль ебать, а дедлайн — уже вчера.