المهارات codebase-design
📦

codebase-design

آمن ⚙️ الأوامر الخارجية

Проектируйте глубокие модули с чёткими интерфейсами

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

يدعم: Claude Codex Code(CC)
🥉 74 برونزي
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "codebase-design". Проверь функцию processOrder. Является ли она глубоким модулем?

النتيجة المتوقعة:

  • В настоящее время она неглубокая: processOrder(order) создаёт свой собственный StripeGateway внутри.
  • Глубокая версия: processOrder(order, paymentGateway) принимает шлюз в качестве зависимости.
  • Вызывающие могут подставлять тестовые или мок-шлюзы без изменения функции.
  • Интерфейс получает один дополнительный параметр, но модуль становится тестируемым.

استخدام "codebase-design". Как мне классифицировать зависимость от кэша Redis?

النتيجة المتوقعة:

  • Redis локально-заменяем: ioredis-mock или testcontainers-redis могут работать в тестах.
  • Можно углубить, если заменитель существует.
  • Тестируй с заменителем, работающим в тестовом наборе.
  • Нет порта на внешнем интерфейсе, только внутренний шов.

التدقيق الأمني

آمن
v1 • 6/24/2026

The codebase-design skill is a pure documentation skill providing vocabulary and methodology for designing deep modules. All 35 static findings are false positives: 'Weak cryptographic algorithm' detections are triggered by the word 'deep' (confused with DES cipher references in unrelated codebases), 'Ruby/shell backtick execution' matches markdown backtick formatting for code blocks, and 'System reconnaissance' is a misidentification of architectural vocabulary. No executable code, scripts, or data flows exist in any file.

3
الملفات التي تم فحصها
198
الأسطر التي تم تحليلها
1
النتائج
1
إجمالي عمليات التدقيق
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
50
المجتمع
100
الأمان
91
الامتثال للمواصفات

ماذا يمكنك بناءه

Проектирование интерфейса нового модуля

Разработчик хочет спроектировать чистый интерфейс для новой функциональности с максимальным рычагом для вызывающих сторон и минимальной площадью поверхности для тестов.

Рефакторинг неглубоких модулей в глубокие

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

Формирование общего архитектурного словаря

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

جرّب هذه الموجهات

Проверка интерфейса модуля на глубину
Проверь интерфейс модуля [имя модуля]. Он глубокий или неглубокий? Могу ли я уменьшить количество методов или упростить параметры? Какую сложность можно скрыть внутри реализации?
Поиск возможностей для углубления
Посмотри на эти [N] связанных неглубоких модулей. Может ли их объединение создать более глубокий модуль? Классифицируй их зависимости как внутрипроцессные, локально-заменяемые, удалённые-но-собственные или истинно внешние.
Определение места шва
Мне нужно решить, где должен быть шов для [функциональность]. Примени тест удаления: если я удалю этот модуль, сложность исчезнет или распространится? Должен ли быть порт или только внутренний шов?
Параллельное исследование альтернативных интерфейсов
Запусти 3 подагента для проектирования радикально различных интерфейсов для [модуль]. Агент 1 должен минимизировать интерфейс, Агент 2 — максимизировать гибкость, а Агент 3 — оптимизировать для наиболее частого вызывающего.

أفضل الممارسات

  • Используй точный словарь из этого навыка единообразно в команде и документации
  • Применяй тест удаления для проверки того, что модуль оправдывает своё существование
  • Вводи порт только тогда, когда оправдано как минимум два адаптера
  • Пиши тесты на интерфейсе модуля, а не за его пределами
  • Проектируй под два адаптера (продакшн и тест), прежде чем добавлять больше

تجنب

  • Замена терминов «компонент», «сервис», «API» или «граница» точными терминами из этого навыка
  • Введение швов только с одним адаптером
  • Тестирование за пределами интерфейса путём проникновения во внутреннее состояние
  • Рассмотрение глубины как отношения строк реализации к строкам интерфейса
  • Сохранение старых модульных тестов на неглубоких модулях после консолидации

الأسئلة المتكررة

Что такое глубокий модуль?
Глубокий модуль имеет маленький интерфейс, но большую реализацию. Вызывающие получают больше возможностей на единицу интерфейса, который им нужно изучить.
Что такое шов?
Шов — это место, где можно изменить поведение без редактирования в этом месте. Это расположение, в котором живёт интерфейс модуля.
Когда мне вводить порт?
Только когда оправдано как минимум два адаптера, обычно один для продакшна и один для тестирования. Шов с одним адаптером — это просто лишнее перенаправление.
Как узнать, что модуль неглубокий?
Примени тест удаления: представь, что модуль удалён. Если сложность исчезает, он был сквозным. Если сложность появляется снова у многих вызывающих, он оправдывал своё существование.
В чём разница между интерфейсом и адаптером?
Интерфейс — это всё, что вызывающий должен знать для использования модуля. Адаптер — это конкретная сущность, которая удовлетворяет интерфейсу в шве.
Работает ли этот навык с Claude Code, Codex и Claude?
Да. Словарь и методология не зависят от инструментов и могут применяться в любом AI-ассистенте для кодирования или в рабочем процессе разработчика-человека.

تفاصيل المطور

المؤلف

mattpocock

الترخيص

MIT

مرجع

main

بنية الملفات