Пользуйтесь ли вы сервисами для хранения знаний, кода, идей, заметок?
Я создавал много разных проектов и в основном все они лежат по папкам и какие-то заметки записаны в блокнотах к этим папкам.
Однако когда требуется вытащить какую-либо полезную функцию из прошлого проекта или в очередной раз вспомнить, как обойти ошибку или вспомнить команду и т.д. Приходится долго искать информацию по папкам и блокнотам.
И еще надо периодически делать резервные копии...
Пробовал много вариантов, но как-то не приживается.
Посоветуйте, пожалуйста как вы храните полезные идеи, команды, код, решения и т.д. ?
Ответы (1 шт):
Поделюсь собственным опытом, а не теорией.
DokuWiki
Можно поднять собственную закрытую вики лично для себя на основе DokuWiki.
Достоинства:
- доступна с любого места через Интернет
- легко создавать новые заметки: см концепцию вики
- хороший поиск, если поставить Sphinx: дает русскую морфологию (и en)
- можно делиться информацией с закрытым кругом людей: есть система авторизации и разграничения доступа
- можно расширять через плагины
- резервная копия: вместе с резервной копией сервера (у меня), до этого через gzip сжимал по расписанию каталог с файлами (там все на файлах)
- можно таскать на USB-флешке (не пробовал, но идея зашла)
- мне настолько понравилась DokuWiki, что поднял еще одну на работе - где не было "базы знаний"
Недостатки:
- требуется поднять эту систему и содержать сервер
- в конце концов я перешел на более удобный Obsidian
Confluence
Confluence - тоже вики, но корпоративного уровня. Использую на работе.
Достоинства:
- все то, что справедливо для DokuWiki
- резервная копия и поддержка - ответственность админов
- куча дополнительных возможностей
- в целом удобно, нравится, использую постоянно
Недостатки:
- платная
- ушла/уходит из РФ (поэтому нравятся self-hosted решения). А вообще это риски бизнеса
- другие причины слишком субъективны, либо конкретно у меня на работе плохо организовали / сконфигурировали
Obsidian
Достоинства:
- пишу заметки быстрее, чем в Wiki - основная причина перехода из DocuWiki
- остальные функции (поиск, переходы) работают быстрее
- система тегов (в Wiki тоже можно сделать, но тут это большая "фишка")
- можно расширять через плагины
Недостатки:
- плохой морфологический поиск (но всегда можно поискать непосредственно по файлам через grep например, либо проиндексировать файлы какой-то другой утилитой)
- работает на компьютере, и не доступна через Интернет (можно сделать синхронизацию - через их облако платно, либо через Яндекс.Диск или аналоги бесплатно - так как все хранится в файлах)
- резервные копии - нужно просто копировать файлы куда-то: я использую git + удаленный репозиторий. Также можно сделать синхронизацию через Яндекс.Диск
Поиск информации по разрозненным местам
Приходится долго искать информацию по папкам и блокнотам.
Есть готовые решения для поиска, если к вас куча мест.
- Archivarius 3000 - морфологический поиск, поиск по офисным документам
- Private GPT и аналоги - вы загружаете документы, а затем просто спрашиваете у чат-бота вопрос - и он находит ответ. Поставил, попробовал, по ощущениям - дает ответы на "троечку". Проект немного заброшен. Но идея - супер, ищите аналоги.
- Сейчас популярен RAG - когда условный Chat GPT отвечает по вашей базе документов. Я сделал Telegram-бота, который отвечает по базе знаний из Confluence: пишите вопрос, получаете ответ. Качество оцениваю на "4+".
вытащить какую-либо полезную функцию из прошлого проекта
- ищу через
grep
по всем проектам, если помню название функции - ищу в истории коммитов
git
по фразе, далее по хешу коммита можно найти файлы - по работе: ищу на Confluence задачу, после чего - по истории git
- а вообще стараюсь сделать заново, так как мысль эволюционирует, и прошлый код теперь выглядит как плохо пахнущий
как обойти ошибку или вспомнить команду
- поиск по DokuWiki, либо Obsidian
- кидаю вопрос в чат - не стоит пренебрегать помощью команды
- ChatGPT - теперь основной способ
как вы храните полезные идеи, команды, код, решения
Идеи, команды, решения - DokuWiki, теперь Obsidian.
Код - на заре погружения в программирование записывал какие-то хорошие решения в блокнот. Но теперь это крайняя редкость. Проще найти в проекте, либо написать заново. Думаю произошло это потому что просто начал "разговаривать языком кода".