Какими инструментами вы пользуетесь для ведения технических заметок и документации?

«Какими инструментами вы пользуетесь для ведения технических заметок и документации?» — вопрос из категории Софт-скиллы, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

Выбор инструмента зависит от типа и цели заметок:

  • Для личных знаний и связывания идей: Obsidian или Logseq. Работают с локальными Markdown-файлами, поддерживают двунаправленные ссылки, что идеально для построения "цифрового сада" знаний.

    // Файл `design-patterns.md` в Obsidian
    ## Singleton
    Гарантирует, что у класса есть только один экземпляр.
    
    ```java
    public class Singleton {
        private static Singleton instance;
        private Singleton() {}
        public static synchronized Singleton getInstance() {
            if (instance == null) {
                instance = new Singleton();
            }
            return instance;
        }
    }

    Связано с: [[Creational Patterns]], [[Dependency Injection]]

  • Для проектной и командной документации: Notion или Confluence. Они предоставляют структурированные страницы, богатое форматирование, встроенные базы данных и удобные возможности для совместной работы, что критично для ведения требований, ADR (Architecture Decision Record) и онбординга новых членов команды.

Практика: Я стремлюсь хранить код и конфигурации в виде исполняемых сниппетов в Markdown, а важные архитектурные решения фиксировать в ADR, доступных всей команде.