Система каталогизирования Johnny.Decimal

Все, у кого есть компьютер, хранят файлы — документы, фотки, мемы и все такое. Обычно файлов много и их нужно как-то организовать — ну как-то все и организуют. У меня до 2023 года не было для этого какой-то конкретной системы, я подходил к организации стихийно, не считал это какой-то особенной задачей и использовал для этого несколько сервисов, от дропбокса до яндекс.облака. Самым удобным хранилищем была папка «Документы» в дропбоксе, где хранились сканы паспортов, инн, снилс и других документов. К этой папке доступ нужен был часто и в разных контекстах (мы были за границей), поэтому постепенно я ее сделал очень удобной и организованной.

С 2023 я пользуюсь системой Johnny.Decimal (далее j.d) и полностью доволен. Расскажу, что это такое и зачем нужно.

Что мы вообще храним?

Помимо семьи у меня есть работа (управление продуктом) и сторонние проекты. По каждому проекту нужно хранить какое-то количество файлов и текстовой информации типа описаний и руководств (это не всегда файлы), ну и письма на почте. Файлы приходится держать в разных хранилищах: свои — где удобно, рабочие и проектные — на одобренных службой ИБ решениях и серверах.

Из личного, помимо официальных документов и фоток, я храню чеки и мануалы на технику (пригождаются нечасто, но когда пригождаются — обычно я сильно себе благодарен), купленные/скачанные книги, исходники записанных видео, презентации и речи к выступлениям, записи с диктофона.

Что важно при хранении файлов

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

Организация файлов у меня складывалась стихийно. Самой организованной папкой, как я уже упомянул, была папка в дропбоксе с официальными документами: каждый раз, когда у меня возникал затык с поиском нужного файла или папки, я старался адаптировать хранилище, чтобы затык перестал возникать. Появились стандартные сценарии, под которые я заточил систему хранения.

С рабочими файлами все сложнее: их много, они разные, и как их организовать — сходу непонятно. По типу файла — почти никогда не работает, ведь пдфки бывают и презентациями, и спеками, и экспортом доски из holst. По назначению файла — работает лучше, но тогда чтобы не потеряться нужна хорошая структура хранения, ее нужно придумать и адаптировать под изменяющиеся условия. И такую структуру нужно придумать для каждого проекта, под все имеющиеся хранилища — облака, диски, корпоративные пространства.

Фиксируем для порядка два юзкейса и требование:
ЮК1. Найти файл, когда он нужен
ЮК2. Сохранить файл так, чтобы его потом можно было найти
Т1. Система хранения должна поддерживать множество проектов

Система Johnny Decimal нужна ровно для этих юзкейсов.

Как устроена система Johnny Decimal: правила

В системе есть два основных элемента: индекс и хранилища, а также набор правил для организации.

Начнем с правил. Они описывают подход к организации папок, в системе он строго иерархичный.

Папки организуются по уровням:
Уровень 1: Область; обозначается диапазоном двузначных чисел и именем; все диапазоны должны поместиться в общий диапазон от 0 до 99 — система ограничена таким количеством идентификаторов.
Уровень 2: Категория; обозначается двузначным числом и именем
Уровень 3: Айдишник (ID); обозначается именем и двухчастным идентификатором вида «СС.ID», где СС — номер категории, ID — число от 00 до 99.

Общие правила:

  1. Области, категории и айдишники — это всегда папки;
  2. В областях — только папки категорий, в папках категорий — только папки айдишников, в папках айдишников — файлы
  3. Еще раз: файлы можно хранить только в папках айдишников! В папках областей и категорий файлы хранить нельзя
  4. Нумерация должна совпадать с иерархией: CC айдишника совпадает с номером категории, номер категории входит в диапазон области
  5. Структура хранения полностью отражена в индексе.

Таким образом, структура получается примерно такая:

Личное и семейное — это область, куда входят категории с 11 по 19; в этой папке могут быть только подпапки. Мои документы — это категория в рамках области, в этой категории может быть сто айдишников, от 11.00 до 11.99, это тоже папки. Ну и наконец 11.01 Паспорт РФ — это айдишник, папка для файлов. Там, как несложно догадаться, лежат сканы паспорта.

Что нам дает такая организация? Зная, что сканы и другая инфа про паспорту лежат в папке 11.01, я могу легко найти ее в хранилище: найти по имени папки или просто снавигировать по структуре — из айди понятно, что она лежит в категории 11, которая лежит в области 10-19.

Как я узнаю, что паспорт — именно в папке 11.01? Из самой важной части j.d — индекса.

Индекс

Индекс — это перечень всего хранимого в нашей системе, что-то вроде библиотечного каталога. В индексе указана полная структура, от зон до айдишников, с указанием хранилищ, но без указания файлов.

Правила работы с индексом:

  1. Индекс — единственный источник истины о структуре вашей системы. Он должен существовать в одном экземпляре и располагаться там, где вы его всегда найдете. Это самое важное правило.
  2. Индекс — это точка входа для сценария «найти нужный файл или папку».
  3. Индекс — это точка входа для сценария «создать новую папку». Сначала мы идем в индекс, вписываем туда новую папку, присваиваем ей айдишник по правилам системы, и только потом идем в облако или файловую систему и создаем эту папку там.

Я свой индекс храню в виде текстового файла на гитхабе. Он состоит из трех разделов: сам индекс, перечень хранилищ и журнал изменений.

Первая очевидная мысль: зачем вообще нужен индекс, если я могу ориентироваться просто по структуре папок в проводнике или облаке? Затем, что структура папок может различаться в разных хранилищах. Личные документы я могу хранить на дропбоксе, потому что у него самые удобные приложения, рабочие проекты — в яндекс.диске, а архивы фоток и видео — на вандрайве, потому что там у меня террабайт, который не жалко. Ни в одном из перечисленных хранилищ нет полной структуры, зато она есть в индексе.

Индекс — центральный элемент системы, без него ничего не будет работать.

Важность этого понимания хорошо демонстрирует вот этот комментарий к нашему звонку-вебинару по j.d:

Хранилища

И последний элемент системы — хранилища. Это все места, в которых могут располагаться файлы: облака, компьютеры, внешние диски. Для заметок — заметочники, вроде Обсидиана или Bear.

Их может быть сколько угодно, самое важное — указывать в индексе, что именно где лежит.

Я указываю хранилище в скобках после названия папки — в данном случае это яндекс.диск (yd = yandex drive):

Хранилище указано для категории 11 Мои документы — это означает, что все входящие в категорию папки лежат на нем, если для конкретной папки не указано другое хранилище.

Пример:

13.14 Машина Kia Seltos + мануал + страховка полис (yd, gk, ob)

Инфа по машине лежит на яндекс.диске (файлы, сканы и т. п.), в гугл кипе (ссылки, короткие заметки), в обсидиане (журнал техосмотров, журнал ремонтов). В моем случае примерно понятно из контекста, что в каком хранилище, но в целом в поисках нужной информации не так и долго посмотреть во всех трех. Релевантные заметки в обсидиане и гугл кип помечены тегом #jd и в заголовок у них вынесен айдишник 13.14, полнотекстовый поиск находит их за полсекунды.

Все хранилища записаны в файле с индексом, список выглядит примерно так:

--- 00.02 Хранилища --- Index file - if Outline (42px) - out Yandex.Disk - yd OneDrive - od Google Drive - gd cloud02 - c2


Еще я веду журнал изменений файла индекса, прямо в конце самого файла. Туда я пишу о важных изменениях — например, когда я переношу все файлы из одного хранилища в другое или переделываю часть индекса (такое иногда случается). Журнал помогает не потерять эти важные изменения и восстановить контекст.

Как вести проекты

С проектами все непросто. Отдельный проект не всегда может быть одной отдельной папкой с файлами, часто этого недостаточно и нужен хотя бы еще один уровень. По этой причине папка проекта не может быть айдишником. Кроме того, айдишников в одной папке не может быть более 99, и некоторым этого может быть недостаточно.

Если проект делать категорией — тоже проблема: в области их может быть всего десять, это мало.

В 2023 автор методики Джонни предлагал делать так:

  1. Заводить «проектные области», которые обозначаются буквами: у меня «A» — это проекты Алемиры, моего работодателя в 2023
  2. Двузначным числом после буквы обозначать конкретный проект: A01 — проект по разработке Classrooms, одного из продуктов Алемиры
  3. Далее — та же структура `Область/Категория/ID` — в итоге получается примерно такое:
И так далее еще на 130 строк

Вся эта структура лежит в основном файле индекса, занимает кучу места, навигировать по ней неудобно, а трехчастный идентификатор вида A01.13.07 читается гораздо хуже, чем обычный двухчастный. Сама структура шестиуровневая, и это пиздец, разобраться в ней очень тяжело даже в файле индекса.

Короче, подход неудобный и я его не рекомендую.

Потом, в Самолете, я упростил структуру и сделал ее трехуровневой:

Айдишник стал двухчастным, содержит информацию о проектной области и проекте, и конкретный айдишник целевой папки. Структуры будто бы недостаточно, но в Самолете были довольно простые проекты и мне этого было достаточно.

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

Как я работаю с системой

Индекс я храню в гитхабе, просто как текстовый файл. Просматриваю онлайн или в VSCode, правлю там же. У меня был отдельный пост о том, как я пришел к этому решению, и в целом оно работает отлично.

В файле индекса у меня живут:

  1. Структура системы с указанием хранилищ — для этого индекс и нужен
  2. Список хранилищ с короткими идентификаторами (Яндекс.диск — yd), чтобы указывать их напротив айдишников/категорий/областей
  3. Журнал изменений системы и индекса — чтобы не забыть какие-то важные штуки про сам индекс, айдишники, хранилища или еще что-то в отношении системы.

Когда нужно создать новую папку — я дисциплинированно иду в индекс, резервирвую под нее айдишник, и только потом иду в хранилище и создаю ее там. Несколько раз я косячил: миновал шаг с айдишником и сразу шел в хранилище, создавал там папку с номером, потом шел записать ее в индекс и обнаруживал, что там этот номер уже занят, просто папка — в другом хранилище. Пришлось переименовывать. Косяк не особо страшный, я быстро обнаруживал ошибку, но показательный.
Контекст, конечно, важен: папку я обычно создаю для того, чтобы сразу же туда положить какой-то файл, который у меня уже скопирован в буфер или лежит в Downloads, и я не хочу его потерять или забыть про него. Идти в этой ситуации в индекс абсолютно контринтуитивно, хочется сначала избавиться от риска потерять файл и только потом бюрократией заниматься. Но это неправильно.

Когда нужно найти какой-то файл — иду в индекс, ищу нужную папку по структуре или поиском по тексту, определяю хранилище и иду в него. Если хранилищ несколько (почта, я.диск, apple notes) — иду в них по очереди. Вопреки автоматическому сопротивлению такому методы могу сказать: это занимает лишь немного больше времени, чем сходить в одно хранилище, не нужно этого бояться.

Джонни рекомендует использовать айдишники начиная с ХХ.01, а ХХ.00 зарезервировать для меты по этой категории. Этой рекомендации я следую, и мне это пригодилось в паре случаев.

Не все хранится в файлах. Заметки я веду в Obsidian (лонгриды и хранение текстов по дефолту) и Apple Notes (то, что может понадобиться на ходу или с телефона).
Если под айдишником всего одна заметка — айдишник я прописываю прямо в название в квадратных скобках: [16.19] 2026-01 Москва, Хайп (17-24 января). С квадратными скобками их легче искать. Также я прописываю тег #jd в каждой такой заметке, чтобы можно было найти их одним списком.
Если под айдишником несколько заметок — я создаю в заметочнике папку по всем правилам и кладу заметки в нее.

Изредка я меняю структуру хранилища, чаще — сами хранилища. Я забирал все личное из Дропбокса в Некстклауд, потом перенес в Яндекс.диск, и отразить эти изменения в индексе занимало минут десять.

Самый сложный шаг — второй, после создания самой структуры в каком-нибудь редакторе. Структура сразу будет содержать много элементов, ведь файлов у вас наверняка не меньше, чем у меня. Теперь нужно создать все эти папки, правильно их назвать, разложить в них файлы — выглядит как задача на месяц.
На самом деле решается за полчаса: структура отдается чату гпт, он в ответ создает скрипт, после запуска которого на нужном диске создается полная структура папок и остается только распихать по ним файлы.

Реструктуризация делается так же — мне пришлось так сделать после первой версии структуры, которая оказалась неудобной.

Хорошим способом прокачать j.d кажется использование тегов. Я писал про другого увлеченного чувака, Карла Войта, который написал кандидатскую на тему tag trees, у него много любопытных мыслей, но главный мой вывод все-таки следует из j.d: тегам тоже нужен центральный индекс! Кажется, мне именно этого не хватало, чтобы работа с тегами приносила пользу, а не гемор. К этому я пока не перешел, но планирую.

Ссылки и заключение

Джонни недавно решил сделать воркбук по системе бесплатным, почитать об этом и забрать можно тут: https://jdcm.al/20-29-communication/22-blog/22.00.0148-the-workbook-is-free/

В воркбуке пошагово описывается, как создавать свою систему, там изложены все правила, лучшие практики и прочее.

Звонок-вебинар с неструктурированным обсуждением системы я выкладывал тут: https://artemushanov.ru/?go=all/vebinar-po-j-d-kak-hranit-i-organizovyvat-fayly/

Доска, которую я показывал на вебинаре, тут: https://app.holst.so/share/b/a762870f-458e-452f-a067-0ab496d2f0ab

На ней же выложен мой индекс-файл для ознакомления.

Апдейт: выложил в канале архив c настроенной самим Джоном системой организации личных файлов — Life Admin System. В архиве сами папки, мануалы и обяснения.

Отправить
Поделиться
Запинить