DevGlossary: инженерный словарь терминов программирования в Markdown

от автора

Обложка DevGlossary

Обложка DevGlossary

Иногда я натыкаюсь на термин, который в целом понимаю, но в такие моменты хочется не просто «узнать перевод», а именно сверить часы: правильно ли я его интерпретирую, не упускаю ли важный нюанс, не смешиваю ли его с соседними понятиями.

Это особенно заметно в тех темах, где термины похожи по звучанию, но расходятся по смыслу. Например, где проходит граница между composition и aggregation, чем concurrency отличается от parallelism, как на практике воспринимать idempotency, optimistic locking или bounded context.

В какой-то момент я понял, что мне не хватает не очередной заметки в закладках и не разрозненных ссылок на статьи, а собственного, нормально структурированного словаря. Так появился DevGlossary — инженерный словарь терминов программирования в формате Markdown.

Первичный каркас и часть формулировок я собрал с помощью GPT, а затем привел все к единой структуре и выложил на GitHub. Решил поделиться и здесь: думаю, такой ресурс может быть полезен не только мне.

Репозиторий: github.com/dartdavros/DevGlossary PR приветствуются. 👌

Зачем вообще нужен такой словарь

У большинства разработчиков со временем накапливается большой слой терминов, которые «вроде знакомы». Обычно этого хватает для разговора, чтения документации и работы в контексте. Но когда хочется восстановить картину целиком, быстро оказывается, что знания лежат неравномерно:

  • что-то помнится точно;

  • что-то понимается интуитивно, но без четкой формулировки;

  • что-то давно встречалось, но уже размылось;

  • а какие-то понятия вообще смешиваются между собой.

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

Именно для этого я и делал словарь:

  • чтобы быстро освежить термин в памяти;

  • чтобы увидеть не только краткое определение, но и практический смысл;

  • чтобы связать понятия между собой, а не хранить их как набор изолированных слов;

  • чтобы постепенно собирать личную инженерную карту понятий.

Что внутри

Словарь разбит по темам. Сейчас в нем есть такие разделы:

  • Architecture

  • OOP

  • Functional

  • Runtime and Memory

  • Concurrency

  • Algorithms and Data Structures

  • Databases

  • Networking

  • Compilers and Languages

  • Testing

  • DevOps

  • Security

Каждая тема хранится в отдельном Markdown-файле.

Внутри темы используется единый формат:

  1. оглавление темы;

  2. краткий список терминов и коротких определений;

  3. подробные карточки терминов.

Каждая карточка термина включает:

  • краткое определение;

  • полное определение;

  • назначение;

  • когда применять;

  • ограничения и частые ошибки;

  • примеры;

  • связанные термины.

На практике это дает два режима использования:

  • как быстрый справочник, когда нужно за минуту проверить термин;

  • как карту понятий, когда хочется восстановить тему глубже.

Почему именно Markdown

Я сознательно делал проект максимально простым по форме.

Markdown дает несколько практических преимуществ:

  • словарь легко читать прямо в репозитории;

  • удобно редактировать локально в любом редакторе;

  • просто поддерживать структуру по темам;

  • легко принимать изменения через pull request;

  • при необходимости проект можно потом конвертировать в другой формат — например, в сайт, PDF или DOCX.

То есть это не «специальная платформа ради платформы», а обычный репозиторий с понятной структурой и низким порогом входа.

Как это устроено

Структура проекта сейчас такая:

DevGlossary/├─ README.md├─ INDEX.md├─ assets/│  └─ cover.png└─ topics/   ├─ _template.md   ├─ architecture.md   ├─ oop.md   ├─ functional.md   ├─ runtime-memory.md   ├─ concurrency.md   ├─ algorithms-ds.md   ├─ databases.md   ├─ networking.md   ├─ compilers-languages.md   ├─ testing.md   ├─ devops.md   └─ security.md

Главная точка входа — INDEX.md, откуда можно перейти в нужный раздел.

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

Для кого это может быть полезно

Мне кажется, проект может пригодиться нескольким группам:

  • разработчикам, которые хотят держать инженерную терминологию в порядке;

  • тимлидам и архитекторам, которым важно унифицировать понятия внутри команды;

  • тем, кто систематизирует знания по разработке и смежным инженерным темам;

  • тем, кто периодически хочет именно «сверить часы», а не читать длинный учебный текст.

Что дальше

Сейчас базовый каркас словаря уже собран. Дальше я планирую постепенно его уплотнять:

  • выравнивать формулировки между темами;

  • усиливать перекрестные ссылки между связанными понятиями;

  • добавлять новые термины внутри уже созданных разделов;

  • при необходимости делить большие темы на более узкие.

Отдельно хочу посмотреть, какие разделы стоит усиливать в первую очередь: например, базы данных, конкурентность, архитектуру или сетевые концепции.

Если захотите посмотреть или поучаствовать

Репозиторий проекта: github.com/dartdavros/DevGlossary

Если идея вам близка, можно:

  • просто использовать словарь как справочник;

  • открыть issue, если видите спорную формулировку;

  • прислать PR с улучшением определений, примеров, структуры или навигации.

Буду рад, если проект окажется полезным и для других 🙂

ссылка на оригинал статьи https://habr.com/ru/articles/1022396/