Писал ли документацию

Ответ

Да, писал документацию для проектов. Это важно для поддержки кода и командной работы.

Пример:

/**
 * Функция для валидации email.
 * @param email Строка для проверки.
 * @return true, если email валиден, иначе false.
 */
fun isValidEmail(email: String): Boolean {
    return Patterns.EMAIL_ADDRESS.matcher(email).matches()
}

Использую:

  • KDoc для Kotlin/Java
  • Markdown для README и гайдов
  • Swagger для API (если нужно)

Документирую архитектуру, ключевые классы, публичные методы. Стараюсь делать её лаконичной и полезной.

Ответ 18+ 🔞

А, документация! Ну, это вообще отдельная песня, ебать мои старые костыли. Без неё — пиздец, а не проект, особенно когда через полгода смотришь на свой же код и думаешь: «Какого хуя я тут наворотил?» Или когда новый чувак приходит в команду и у него глаза по пять копеек — он нихуя не понимает, с какой стороны подступиться.

Вот смотри, самый простой пример, чтобы не быть голословным. Допустим, функция проверки почты. Без комментариев — просто вызов какого-то непонятного matcher. А с документацией — сразу ясно, что к чему.

/**
 * Функция для валидации email.
 * @param email Строка для проверки.
 * @return true, если email валиден, иначе false.
 */
fun isValidEmail(email: String): Boolean {
    return Patterns.EMAIL_ADDRESS.matcher(email).matches()
}

Вот видишь разницу? В первом случае — хуй с горы, во втором — всё чётко. Человек сразу видит, что на входе, что на выходе, и не придётся ему вникать в дебри регулярных выражений, которые Patterns.EMAIL_ADDRESS внутри себя скрывает.

Я обычно так и работаю:

  • KDoc для Kotlin или Java кода — чтобы описать, что делает каждый публичный метод или сложный класс. Не нужно расписывать каждую строчку, но ключевые моменты — обязательно. Иначе потом сам от себя охуеешь.
  • Markdown для всяких README.md и общих гайдов — тут можно развернуться, нарисовать схемки, объяснить, как проект собирать и запускать. Без этого — волнение ебать, новый разработчик будет неделю в потолок плевать.
  • Swagger для API — если делаешь бэкенд, то это просто must have. Чтобы фронтендеры не приставали каждые пять минут с вопросом «а какой JSON ты отдаёшь в этом эндпоинте?». Выложил сваггер — и все, иди, смотри сам, пидарас шерстяной.

Главное правило — документируй не всё подряд, а то, что реально важно для понимания: архитектуру, ключевые взаимодействия, публичные контракты. И старайся писать так, будто объясняешь это человеку, который в теме, но в твой конкретный модуль ещё не заглядывал. Лаконично, по делу, без воды. А то бывает такое начитаешься — терпения ноль ебать, три страницы текста, а сути — ни хуя.