Дата: 2025-11-10
Версия: 1.0.0
CIDL (CIFRA Interface Definition Language) - слишком техническое название:
- Сложно произносить
- Похоже на AIDL, WSDL, IDL (слишком много аббревиатур)
- Не отражает философию платформы
- "Interface Definition" - узко, мы описываем ВСЁ, не только интерфейсы
ЦИФРА (русский) → CIFRA (транслитерация)
Значение:
- 🇷🇺 ЦИФРА = число, digit, figure
- 🇬🇧 CIPHER = шифр, код, система
- 🔢 Символ цифровой трансформации
ЦИФРА - это не просто "цифра", это:
Ц - Целостная система (всё в одном месте)
И - Интегрированная архитектура (все части связаны)
Ф - Формальное описание (строгие спецификации)
Р - Разработка приложений (от идеи до кода)
А - Автоматизация процессов (генерация кода)
Полная расшифровка:
ЦИФРА = Целостная Интегрированная Фабрика
Разработки Приложений
CIFRA = Complete Integrated Framework for
Rapid Applications
CIDL - CIFRA Interface Definition Language
.cifra - расширение файла
CIFRA - формат описания
Примеры:
# crm.cifra
project:
name: CRM System
version: 1.0.0
entities:
Contact: {...}
Company: {...}
Преимущества:
- Простое название
- Легко произносится
- CIFRA как бренд платформы
.cifra - расширение файла
CIFRA Spec - спецификация формата
Примеры:
$ cifra validate crm.cifra
$ cifra generate crm.cifra --target python
$ cifra import bpmn process.bpmn --output process.cifra
Преимущества:
- "Spec" = спецификация (короткое, понятное)
- Аналогия: OpenAPI Spec, AsyncAPI Spec
.cifra - расширение файла
CIFRA Model - модель системы
Преимущества:
- "Model" подчёркивает, что мы моделируем систему
- Model-Driven Architecture (MDA)
Почему:
1. Короткое, понятное
2. Аналогия с другими спецификациями (OpenAPI Spec, GraphQL Schema)
3. "Spec" = specification = формальное описание
4. Легко произносится на русском и английском
┌─────────────────────────────────────────────────────────┐
│ CIFRA PLATFORM │
│ (Платформа цифровой трансформации) │
├─────────────────────────────────────────────────────────┤
│ │
│ CIFRA Spec (.cifra) │
│ └─ Универсальный формат описания систем │
│ │
│ CIFRA CLI (cifra) │
│ └─ Инструмент командной строки │
│ │
│ CIFRA Studio │
│ └─ Визуальный редактор (web UI) │
│ │
│ CIFRA Engine │
│ └─ Runtime для выполнения процессов │
│ │
│ CIFRA Hub │
│ └─ Репозиторий готовых компонентов │
│ │
└─────────────────────────────────────────────────────────┘
✅ Правильно:
# CIFRA Platform
CIFRA (Целостная Интегрированная Фабрика Разработки Приложений) -
платформа для создания business-приложений.
Описываете систему в CIFRA Spec, платформа генерирует:
- Код приложения
- API (REST, GraphQL, gRPC)
- Базу данных
- Документацию
- Deployment конфигурацию
## Пример CIFRA Spec:
```yaml
# crm.cifra
project:
name: CRM System
Запуск:
$ cifra generate crm.cifra
**❌ Неправильно:**
```markdown
# CIDL Specification
Используйте CIDL (CIFRA Interface Definition Language)...
Основной формат:
crm.cifra - полное описание CRM системы
erp.cifra - ERP система
marketplace.cifra - Marketplace приложение
Специализированные (опционально):
order.process.cifra - отдельный процесс
discount.rule.cifra - бизнес-правило
contact.entity.cifra - отдельная сущность
crm.arch.cifra - только архитектура
Рекомендация: использовать .cifra для всех файлов, тип указывать внутри.
# Основные команды
$ cifra init crm # Создать новый проект
$ cifra validate crm.cifra # Валидировать спецификацию
$ cifra generate crm.cifra # Сгенерировать код
$ cifra run crm.cifra # Запустить приложение
# Генерация в разные форматы
$ cifra export crm.cifra --format bpmn # Экспорт в BPMN
$ cifra export crm.cifra --format openapi # Экспорт в OpenAPI
$ cifra export crm.cifra --format graphql # Экспорт в GraphQL
# Импорт из других форматов
$ cifra import process.bpmn --output process.cifra
$ cifra import api.openapi.yaml --output api.cifra
# Визуализация
$ cifra visualize crm.cifra --type architecture # Диаграмма архитектуры
$ cifra visualize crm.cifra --type process # Диаграмма процессов
$ cifra visualize crm.cifra --type data-model # Модель данных
# Разработка
$ cifra dev crm.cifra # Запустить в dev режиме с hot-reload
$ cifra test crm.cifra # Запустить тесты
$ cifra deploy crm.cifra --env prod # Задеплоить
from cifra import Platform, load_spec
# Загрузить спецификацию
spec = load_spec('crm.cifra')
# Создать платформу
platform = Platform(spec)
# Получить entity
Contact = platform.get_entity('Contact')
# Использовать
contact = Contact()
contact.first_name = "Иван"
contact.email = "ivan@example.com"
contact.save()
# Запустить процесс
process = platform.get_process('DealLifecycle')
result = process.start({'deal_id': '123'})
# Проверить правило
rule = platform.get_rule('OrderDiscount')
discount = rule.evaluate({
'customer_type': 'VIP',
'order_amount': 150000
}) # → 15
Визуальный редактор для создания CIFRA спецификаций:
┌──────────────────────────────────────────────────────┐
│ CIFRA Studio [x] │
├──────────────────────────────────────────────────────┤
│ File Edit View Tools Help │
├──────────┬───────────────────────────────────────────┤
│ │ │
│ Projects │ ┌───────────────────────────────────┐ │
│ └─ CRM │ │ Entity: Contact │ │
│ └─ ERP │ │ │ │
│ │ │ Fields: │ │
│ Entities │ │ • first_name: string │ │
│ └─ Con..│ │ • last_name: string │ │
│ └─ Com..│ │ • email: email │ │
│ │ │ • company: → Company │ │
│ Process │ │ │ │
│ └─ Deal │ │ Methods: │ │
│ │ │ • send_email(subject, body) │ │
│ Rules │ │ • full_name() → string │ │
│ └─ Disc │ │ │ │
│ │ └───────────────────────────────────┘ │
│ │ │
│ │ [Save] [Generate] [Preview] [Deploy] │
└──────────┴───────────────────────────────────────────┘
Репозиторий готовых компонентов:
https://hub.cifra.io/
Категории:
├─ Business Applications
│ ├─ CRM System
│ ├─ ERP System
│ ├─ E-commerce
│ └─ Helpdesk
│
├─ Modules
│ ├─ Authentication
│ ├─ Payment Processing
│ ├─ Email Marketing
│ └─ Analytics
│
├─ Entities
│ ├─ Contact
│ ├─ Product
│ ├─ Order
│ └─ Invoice
│
└─ Templates
├─ Startup MVP
├─ Enterprise App
└─ Mobile-first App
Использование:
$ cifra search crm
$ cifra install cifra-hub/crm-system
$ cifra add module cifra-hub/authentication
# project.cifra
cifra: 1.0.0 # Версия CIFRA Spec
project:
name: CRM System
version: 1.0.0
description: "Система управления взаимоотношениями с клиентами"
metadata:
author: "Company Name"
license: MIT
repository: https://github.com/company/crm
# Импорт других .cifra файлов
imports:
- entities/contact.cifra
- entities/company.cifra
- entities/deal.cifra
- processes/deal_lifecycle.cifra
- rules/discount.cifra
# Или определить всё inline:
entities:
Contact:
fields:
first_name: {type: string, required: true}
last_name: {type: string, required: true}
email: {type: email, unique: true}
processes:
DealLifecycle:
type: business_process
tasks: [...]
rules:
OrderDiscount:
type: decision_table
rules: [...]
api:
rest:
version: v1
endpoints: [...]
graphql:
enabled: true
deployment:
type: docker
database: postgresql
cache: redis
┌────────────────────────────────────────────────────┐
│ CIFRA ECOSYSTEM │
├────────────────────────────────────────────────────┤
│ │
│ CIFRA CLI (cifra) │
│ └─ Инструмент командной строки │
│ $ cifra generate, validate, run, deploy │
│ │
│ CIFRA Studio (Web UI) │
│ └─ Визуальный редактор спецификаций │
│ https://studio.cifra.io │
│ │
│ CIFRA Engine (Runtime) │
│ └─ Выполнение процессов, правил, API │
│ from cifra import Platform │
│ │
│ CIFRA Hub (Repository) │
│ └─ Готовые компоненты, шаблоны │
│ https://hub.cifra.io │
│ │
│ CIFRA SDK (Libraries) │
│ └─ Python, TypeScript, Go │
│ pip install cifra-sdk │
│ npm install @cifra/sdk │
│ │
│ CIFRA Inspector (DevTools) │
│ └─ Отладка, профилирование, мониторинг │
│ $ cifra inspect crm.cifra │
│ │
└────────────────────────────────────────────────────┘
CIFRA - От идеи до приложения за минуты
CIFRA - Цифровая трансформация без боли
CIFRA - Опишите систему, мы создадим код
CIFRA - это платформа для создания business-приложений.
Вы описываете систему в простом YAML формате:
- Что делает ваше приложение
- Какие данные хранит
- Какие процессы выполняет
- Какие правила применяет
CIFRA автоматически генерирует:
- Полный код приложения (backend + frontend)
- API (REST, GraphQL, gRPC)
- Базу данных с миграциями
- Документацию
- Deployment конфигурацию
Запускаете одной командой.
Создание CRM системы: 50 строк CIFRA Spec → 10,000+ строк кода.
A: CIDL (CIFRA Interface Definition Language) - слишком техническое:
- Сложно произносить
- "Interface Definition" - узкий термин
- Похоже на множество других аббревиатур (AIDL, WSDL, IDL)
CIFRA Spec - короче, понятнее, отражает суть.
A:
- .yaml - слишком общее (любой YAML файл)
- .cifra - явно указывает на CIFRA спецификацию
- Позволяет IDE распознавать тип файла и подсвечивать синтаксис
- Аналогия: .graphql, .proto, .tf (Terraform)
Под капотом это YAML, но с конкретной структурой.
A: Да, CIFRA Spec может быть в разных форматах:
- crm.cifra (YAML) - основной формат
- crm.cifra.json (JSON) - альтернатива
- crm.cifra.toml (TOML) - альтернатива
Рекомендуется YAML для человекочитаемости.
A:
- 🇷🇺 Русский: "ЦИ́ФРА" (ударение на первый слог)
- 🇬🇧 English: "SIF-ra" или "SEEF-ra"
A: Похожие решения:
- Hasura - metadata-driven GraphQL (узкая специализация)
- Amplication - low-code backend generation (только backend)
- Strapi - headless CMS (только контент)
- Appian/Mendix/OutSystems - low-code платформы (проприетарные, дорогие)
Отличия CIFRA:
- ✅ Open source
- ✅ Описание ВСЕГО (данные + процессы + правила + архитектура)
- ✅ Генерация полноценного кода (не runtime)
- ✅ Интеграция всех стандартов (BPMN, OpenAPI, GraphQL)
- ✅ От стартапа до enterprise
CIFRA - название платформы
CIFRA Spec - формат описания (.cifra файлы)
CIFRA CLI - инструмент командной строки
CIFRA Studio - визуальный редактор
CIFRA Engine - runtime
CIFRA Hub - репозиторий компонентов
CIDL - старое название
CIFRA Language - слишком длинно
.cidl - расширение файла
CIFRA - От идеи до приложения за минуты 🚀