25 мая 2020 г.

Лучшее создание карт памяти помогает лучше кодировать

Anne

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

Попробовав разные способы записи этих заметок, он нашел, что интеллект-карты - элегантное решение. Он мог разложить часть проекта, над которой работал, в интеллект-карте и украсить её заметками и задачами, которые легко найти.

Этот подход освобождает ему ум, позволяя сосредоточиться на работе с кодом, не теряя важной контекстной информации. Он также использует интеллект-карты для анализа кода, как объясняется в следующем интервью.

Пожалуйста, расскажите немного о себе.

Последние пять лет я был редактором Java Magazine (от Oracle). Ранее я был главным редактором Dr. Dobb's Journal. А в прежние времена я был редактором нескольких программных изданий. Я начал свою карьеру как разработчик программного обеспечения и продолжаю заниматься программированием как побочной деятельностью, внося вклад в различные проекты с открытым исходным кодом и работая над собственными проектами.

Что вы делаете для развлечения?

Я изучаю игру на пианино. Это намного сложнее программирования. Путь к мастерству на пианино действительно труден. Думаю, большинство программистов склонны быть слишком уверенными в своих навыках программирования. Пока я не возвращаюсь на землю, посмотрев на старый код и задаваясь вопросом, как я мог это написать! Но с пианино всё время сохраняется смирение. Вы постоянно осознаёте, сколько ещё предстоит изучить и насколько недосягаем уровень великих пианистов.

Как интеллект-карта помогает в вашей жизни или работе?

Я использую интеллект-карты в двух областях:


  1. Мозговой штурм задач и проектов для себя, семьи и друзей;

  2. Программирование. Как я опишу позже, я использую интеллект-карты для трёх основных целей в разработке программного обеспечения.

Как долго вы пользуетесь XMind?

Возможно, уже шесть или семь лет; может быть, дольше.

Как вы пришли к мысли использовать XMind для программирования, ведь это не типично для разработчиков?

Изначально это началось с Кента Бека (отца Agile), который однажды предложил, что хорошей привычкой является отслеживание всех решений, принимаемых при программировании. (Как важных, например: “Я буду удерживать максимальное значение для этой переменной на уровне 70.” “Я прослежу, чтобы пользователи могли вводить дробные значения в своих заказах.”, так и мелких, например: “Мне нужно расширить интеграционные тесты, чтобы покрыть этот новый код.” И так далее.) Я обнаружил, что простого записывания этих решений недостаточно. Но добавлять их в трекер задач/дефектов проекта было слишком. Поэтому я начал с интеллект-карты, которую разработал для части проекта, над которой работал, и украшал её этими микро решениями и заметками, так чтобы они были легко доступны и можно было их пересмотреть при работе над другой частью проекта. Я обнаружил, что интеллект-карты очень полезны для быстрого поиска заметок, что позволяет возвращаться и пересматривать их при работе с какой-то другой частью.

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

Это случай новой функции - добавление HTML в существующий инструмент:

Mind map illustrating HTML5 support, covering output verification, plugin details, and startup process.

Наконец, я начал использовать интеллект-карты при чтении незнакомого кода. У большинства программ есть иерархическая архитектура, которая удивительно легко представляется в интеллект-карте. Это анализ из библиотеки, называемой iText 7, это ситуация, редко встречающаяся, но практичная.

⚠️ miss image

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

Какова ваша любимая функция/функции в XMind? Почему?

Честно говоря, это простота использования. Я могу быстро двигаться и вносить в интеллект-карту то, что у меня в голове. Мне это очень нравится, потому что время часто имеет большое значение, когда у вас есть что-то, что вы хотите зафиксировать.

Как вы сохраняете продуктивность? Есть ли другие приложения для продуктивности, которые вы используете?

Я много писал на эту тему в различных статьях. Я нахожу полезными исключение отвлекающих факторов, использование хороших инструментов и прослушивание классической музыки.


Кофе или чай?

Кофе, чтобы проснуться утром. Затем чай в течение дня. Что касается других бинарных выборов: собаки, а не кошки, пробелы, а не табуляции, Брамс, а не Вагнер, Моне, а не Мане.

Заметки: Фото предоставлено Бобом Адлером

Больше публикаций