# Системаи модулҳо - SomonScript Module System

Ин папка мисолҳои амалии системаи модулҳои SomonScript-ро дар бар мегирад.

## Файлҳои мисол

### 1. `math.som` - Модули математикӣ

- Функсияҳои асосии математикӣ (ҷамъ, тарҳ, зарб, тақсим)
- Функсияҳои пешрафта (қувват, решаи квадратӣ, мутлақ)
- Константаҳои математикӣ (ПИ, Е)
- Функсияи пешфарз (ҳисобкунак)

### 2. `string-utils.som` - Модули кор бо сатрҳо

- Функсияҳои асосии сатрӣ (калон/хурд кардан, тоза кардан)
- Функсияҳои форматкунӣ (капитализатсия, кебаб-кейс, камел-кейс)
- Функсияҳои санҷишӣ (рақам аст, имейл аст)
- Функсияи пешфарз (формат)

### 3. `array-utils.som` - Модули кор бо массивҳо

- Функсияҳои асосии массивӣ (аввалин, охирин, холӣ аст)
- Функсияҳои трансформатсия (якта, ҳамвор, баръакс)
- Функсияҳои математикӣ (ҷамъ, миёна, максимум/минимум)
- Функсияҳои группабандӣ ва комбинатсия

### 4. `user-manager.som` - Модули идоракунии корбарон

- Интерфейси Корбар
- Синфи ИдоракунандаиКорбарон
- Амалиётҳои CRUD
- Филтр ва мураттабсозӣ
- Омор ва ҳисоботдиҳӣ

### 5. `main.som` - Файли асосӣ

- Мисоли истифодаи ҳамаи модулҳо
- Воридоти статикӣ ва динамикӣ
- Кори амалӣ бо модулҳо

## Хусусиятҳои системаи модулҳо

### Воридоти статикӣ

```som
// Воридоти пешфарз
ворид пешфарз_функсия аз "./module";

// Воридоти номдор
ворид { функсия1, функсия2 } аз "./module";

// Воридоти омехта
ворид пешфарз, { функсия1, функсия2 } аз "./module";

// Воридот бо номгузорӣ
ворид { функсия1 чун ф1 } аз "./module";
```

### Содироти статикӣ

```som
// Содироти номдор
содир функсия myFunction() {}
содир собит MY_CONSTANT = 42;

// Содироти пешфарз
содир пешфарз функсия defaultFunction() {}

// Содироти синф
содир синф MyClass {}
```

### Воридоти динамикӣ

```som
ҳамзамон функсия loadModule() {
    собит module = интизор ворид("./module");
    // Истифодаи module
}
```

## Ҳалли масъалаҳо

### Ҳалли масири модулҳо

- Масирҳои нисбӣ: `./module`, `../module`
- Масирҳои мутлақ: `/root/module`
- Ҳалли кенгайиҳо: `.som` → `.js`
- Файлҳои индекс: `./dir` → `./dir/index.som`

### Кеширование ва вобастагиҳои даврӣ

- Кеши модулҳо барои беҳтар кардани самаранокӣ
- Ошкор кардани вобастагиҳои даврӣ
- Стратегияҳои коркарди хатогиҳо

### Бандикунӣ (Bundling)

- Форматҳои мухталиф: CommonJS, ESM, UMD
- Минификатсия ва source maps
- Модулҳои берунӣ

## Истифода

1. Модулҳоро дар папкаи алоҳида ҷойгир кунед
2. Воридот ва содиротро дуруст муайян кунед
3. Файли асосиро иҷро кунед:

```bash
somon run examples/modules/main.som
```

Ё бандикунӣ кунед:

```bash
somon bundle examples/modules/main.som --output bundle.js
```

## Мисолҳои амалӣ

Ин мисолҳо нишон медиҳанд, ки чӣ тавр:

- Модулҳои алоҳидаро созед
- Функсионалиятро байни модулҳо тақсим кунед
- Вобастагиҳоро идора кунед
- Коди такроршавандаро истифода баред
- Лоиҳаҳои калонро созмон диҳед

Системаи модулҳои SomonScript барои лоиҳаҳои калон ва мураккаб тайёр аст!
