Sobes.tech
Senior

Таза архитектура мен пиязша архитектура туралы айтыңыз

sobes.tech AI

AI-дан жауап

Таза архитектура (Clean Architecture) — бұл бағдарламалық қамтамасыз етуді жобалау тәсілі, ол жүйені нақты тәуелділіктері бар қабаттарға бөледі, олар ішке қарай бағытталған. Негізгі идея — бизнес логиканы интерфейс, дерекқор, сыртқы қызметтер сияқты жүзеге асыру бөлшектерінен бөлу.

Негізгі қабаттар:

  • Entities (бірліктер) — бизнес ережелері
  • Use Cases (қолдану жағдайлары) — қолданбаның бизнес логикасы
  • Interface Adapters — UI, дерекқор, сыртқы API үшін адаптерлер
  • Frameworks & Drivers — сыртқы бөлшектер (UI, дерекқор, веб)

Тәуелділіктер сыртқы қабаттардан ішкі қабаттарға бағытталған, бұл тестілеуді және қолдауды жеңілдетеді.

Пиязша архитектурасы (Onion Architecture) таза архитектураға өте ұқсас. Ол да қабаттарға бөлінген, пиязша сияқты, ішкі қабаттар — бизнес логика ядросы, ал сыртқы — инфрақұрылым және UI. Маңызды қағида — тәуелділіктер ішке қарай бағытталған, ал сыртқы қабаттар ішкі қабаттарға тәуелді болуы мүмкін, бірақ кері емес.

Go тілінде мысал:

// Ішкі қабат: бизнес логика
package entity

type User struct {
    ID   int
    Name string
}

// Қолдану жағдайы
package usecase

import "yourapp/entity"

type UserRepository interface {
    GetUser(id int) (*entity.User, error)
}

func GetUserName(repo UserRepository, id int) (string, error) {
    user, err := repo.GetUser(id)
    if err != nil {
        return "", err
    }
    return user.Name, nil
}

Мұнда usecase entity және репозиторий интерфейсіне тәуелді, бірақ нақты дерекқор жүзеге асыруына тәуелді емес.

Осылайша, екі архитектура да жауапкершілікті бөлу және тәуелділіктерді басқару арқылы икемді, оңай тестіленетін және қолдауға оңтайлы жүйелер құруға бағытталған.