architect/_archive/2025-11-13-before-restructure/platform-projects/projects/cifra/archive/2025-11-10-restructure-v2/CIFRA_NAMING.md

CIFRA: Naming и концепция платформы

Дата: 2025-11-10
Версия: 1.0.0


Проблема с "CIDL"

CIDL (CIFRA Interface Definition Language) - слишком техническое название:
- Сложно произносить
- Похоже на AIDL, WSDL, IDL (слишком много аббревиатур)
- Не отражает философию платформы
- "Interface Definition" - узко, мы описываем ВСЁ, не только интерфейсы


CIFRA - что это?

Перевод:

ЦИФРА (русский) → CIFRA (транслитерация)

Значение:
- 🇷🇺 ЦИФРА = число, digit, figure
- 🇬🇧 CIPHER = шифр, код, система
- 🔢 Символ цифровой трансформации

Философия названия:

ЦИФРА - это не просто "цифра", это:

Ц - Целостная система (всё в одном месте)
И - Интегрированная архитектура (все части связаны)
Ф - Формальное описание (строгие спецификации)
Р - Разработка приложений (от идеи до кода)
А - Автоматизация процессов (генерация кода)

Полная расшифровка:

🇷🇺 Русский вариант:

ЦИФРА = Целостная Интегрированная Фабрика
        Разработки Приложений

🇬🇧 English вариант:

CIFRA = Complete Integrated Framework for
        Rapid Applications

Именование компонентов

❌ Старая версия (отказываемся):

CIDL - CIFRA Interface Definition Language

✅ Новая версия:

Вариант 1: Просто "CIFRA Format"

.cifra - расширение файла
CIFRA  - формат описания

Примеры:

# crm.cifra
project:
  name: CRM System
  version: 1.0.0

entities:
  Contact: {...}
  Company: {...}

Преимущества:
- Простое название
- Легко произносится
- CIFRA как бренд платформы


Вариант 2: "CIFRA Spec"

.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


Вариант 3: "CIFRA Model"

.cifra       - расширение файла
CIFRA Model  - модель системы

Преимущества:
- "Model" подчёркивает, что мы моделируем систему
- Model-Driven Architecture (MDA)


🏆 Рекомендация: CIFRA Spec

Почему:
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)...

Примеры использования

1. Расширения файлов:

Основной формат:
crm.cifra          - полное описание CRM системы
erp.cifra          - ERP система
marketplace.cifra  - Marketplace приложение

Специализированные (опционально):
order.process.cifra    - отдельный процесс
discount.rule.cifra    - бизнес-правило
contact.entity.cifra   - отдельная сущность
crm.arch.cifra        - только архитектура

Рекомендация: использовать .cifra для всех файлов, тип указывать внутри.


2. CLI команды:

# Основные команды
$ 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 # Задеплоить

3. Python API:

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

4. CIFRA Studio (Web UI):

Визуальный редактор для создания 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]   
└──────────┴───────────────────────────────────────────┘

5. CIFRA Hub (Component Repository):

Репозиторий готовых компонентов:

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

Структура CIFRA Spec файла

Главный файл проекта:

# 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 - Опишите систему, мы создадим код

Elevator Pitch (30 секунд):

CIFRA - это платформа для создания business-приложений.

Вы описываете систему в простом YAML формате:
- Что делает ваше приложение
- Какие данные хранит
- Какие процессы выполняет
- Какие правила применяет

CIFRA автоматически генерирует:
- Полный код приложения (backend + frontend)
- API (REST, GraphQL, gRPC)
- Базу данных с миграциями
- Документацию
- Deployment конфигурацию

Запускаете одной командой.

Создание CRM системы: 50 строк CIFRA Spec → 10,000+ строк кода.

FAQ

Q: Почему не CIDL?

A: CIDL (CIFRA Interface Definition Language) - слишком техническое:
- Сложно произносить
- "Interface Definition" - узкий термин
- Похоже на множество других аббревиатур (AIDL, WSDL, IDL)

CIFRA Spec - короче, понятнее, отражает суть.


Q: Почему .cifra расширение, а не .yaml?

A:
- .yaml - слишком общее (любой YAML файл)
- .cifra - явно указывает на CIFRA спецификацию
- Позволяет IDE распознавать тип файла и подсвечивать синтаксис
- Аналогия: .graphql, .proto, .tf (Terraform)

Под капотом это YAML, но с конкретной структурой.


Q: Можно ли использовать JSON/TOML вместо YAML?

A: Да, CIFRA Spec может быть в разных форматах:
- crm.cifra (YAML) - основной формат
- crm.cifra.json (JSON) - альтернатива
- crm.cifra.toml (TOML) - альтернатива

Рекомендуется YAML для человекочитаемости.


Q: Как произносится CIFRA?

A:
- 🇷🇺 Русский: "ЦИ́ФРА" (ударение на первый слог)
- 🇬🇧 English: "SIF-ra" или "SEEF-ra"


Q: Есть ли конкуренты?

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


Roadmap брендинга

Фаза 1: MVP (Q1 2025)

Фаза 2: Community (Q2 2025)

Фаза 3: Ecosystem (Q3 2025)

Фаза 4: Enterprise (Q4 2025)


Заключение

✅ Используем:

CIFRA          - название платформы
CIFRA Spec     - формат описания (.cifra файлы)
CIFRA CLI      - инструмент командной строки
CIFRA Studio   - визуальный редактор
CIFRA Engine   - runtime
CIFRA Hub      - репозиторий компонентов

❌ НЕ используем:

CIDL           - старое название
CIFRA Language - слишком длинно
.cidl          - расширение файла

CIFRA - От идеи до приложения за минуты 🚀