Скачиваний:
0
Добавлен:
23.04.2025
Размер:
313.1 Кб
Скачать

10-ámeliy sabaq. Qosımsha arxitekturası hám eko-sistemanı anıqlaw. Tiykarǵı arxitekturalıq patternler haqqında qısqasha maǵlıwmat.

Arxitekturalıq patternler hám proektlestiriw.

Jumıstıń maqseti:

Bul ámeliy sabaqtıń maqseti - studentlerge programmalıq támiynat arxitekturasınıń tiykarǵı túsinikleri, arxitekturalıq patternler hám olardı qollanıw principleri menen tanısıw. Sabaq dawamında arxitekturalıq sheshimlerdiń programmalıq támiynattı islep shıǵıw processindegi áhmiyeti, hár qıylı arxitekturalıq patternlerdi qollanıw jaǵdayları hám olardı durıs tanlawdıń sebepleri túsindiriledi. Bunday bilimler joqarı sapalı, masshtablanatuǵın hám qollaw-qolaylı programmalıq támiynat ónimlerin proektlestiriw ushın zárúr.

Ámeliy bólim:

Programmalıq támiynat arxitekturası - bul programmalıq sistemanıń komponentleri, olardıń arasındaǵı baylanıslar hám sırtqı ortalıq penen óz-ara qatnasların anıqlawshı qurılma. Arxitektura sistemanıń funkcionallıq talapların qanaatlandırıwǵa baǵdarlanǵan hám sonıń menen birge ónim sapası, ónimdarlıq, masshtablanıw, texnikalıq xızmet kórsetiw hám t.b. funkcionallıq emes talaplardı da esapqa aladı.

Programmalıq támiynat arxitekturasın anıqlaw processinde mına máselelerge itibar beriwimiz kerek:

1.Sistema komponentleri: Sistemanıń negizgi bólekleri qanday funkciyalardı atqaradı?

2.Baylanıs mexanizmleri: Komponentler arasında maǵlıwmatlar qalay almasadı?

3.Interfeysler: Komponentler qanday interfeysler arqalı óz-ara háreketlesedi?

4.Qásiyetleri: Sistemanıń qanday sapalıq ózgeshelikleri (masshtablanıw, isenimlilik, qáwipsizlik) talap etiledi?

5.Sheklewler: Sistema qanday texnikalıq yaki biznes sheklewlerge iye?

2.Tiykarǵı arxitekturalıq patternler

Arxitekturalıq patternler - bul kónlikpeli programmalıq máselelerdi sheshiw ushın qollanılatuǵın úlgi qálipler. Tómende eń keń tarqalǵan arxitekturalıq patternler haqqında maǵlıwmat beriledi:

2.1. Qatlamlı arxitektura (Layered Architecture)

Bul patternde sistema bir neshe qatlamlarǵa bólinedi. Hár bir qatlam ózinen tómengi qatlamǵa ǵárezli boladı. Mısalı:

Prezentaciya qatlamı: Paydalanıwshı interfeysi (UI), maǵlıwmatlardı kórsetiw

Biznes logika qatlamı: Sistemanıń tiykarǵı logikası hám biznes-qaǵıydaları

Maǵlıwmatlar menen islesiw qatlamı: Maǵlıwmatlar bazasına kiriw hám saqlaw operaciyaları

Maǵlıwmatlar bazası qatlamı: Maǵlıwmatlardı fizikalıq saqlaw

Qollanıw sheńberi: Veb-qosımshalar, korporativlik sistemalar.

2.2. Klient-server arxitekturası (Client-Server)

Sistema eki komponentke bólinedi:

Klient: Paydalanıwshı interfeysin támiyinleydi hám serverge sorawlar jiberedi

Server: Sorawlardı qabıl etedi, qayta isleydi hám nátiyjelerdi qaytaradı

Qollanıw sheńberi: Veb-qosımshalar, tarmaq qosımshaları, maǵlıwmatlar bazası qosımshaları.

2.3. MVC (Model-View-Controller)

Bul pattern úsh komponentten turadı:

Model (Model): Maǵlıwmatlar strukturası hám biznes logika

Kóriniw (View): Paydalanıwshıǵa maǵlıwmatlardı kórsetiw

Basqarıwshı (Controller): Paydalanıwshı háreketlerin qabıl etiw hám modeldi basqarıw

Qollanıw sheńberi: Grafikalıq interfeysli qosımshalar, veb-qosımshalar.

2.4. Mikroservisler arxitekturası (Microservices)

Sistema kóp sanlı kishkene, avtonom xızmetlerge bólinedi. Hár bir mikroservis óz aldına jumıs isleydi hám basqa mikroservisler menen API arqalı baylanısadı.

Qollanıw sheńberi: Úlken masshtablanatuǵın sistemalar, bólistirilgen sistemalar.

2.5. Waqıyaǵa basqarılatuǵın arxitektura (Event-Driven Architecture)

Sistema komponentleri waqıyalar arqalı baylanısadı. Komponentler waqıyalardı jaratadı hám waqıyalarǵa juwap beredi.

Qollanıw sheńberi: Real waqıt rejiminde isleytuǵın sistemalar, bólistirilgen sistemalar, integraciyalıq platformalar.

3. Arxitekturalıq patternlerdi qollanıwǵa mısal

Mısal retinde onlayn-dúkan qosımshasın alıp, onı MVC patterni tiykarında dúzeyik:

Modeller (Models):

// Ónim modelі

public class Product { private int id; private String name; private double price;

private String description;

// Konstruktorlar, getterler hám setterler

public Product(int id, String name, double price, String description) {

this.id = id; this.name = name; this.price = price;

this.description = description;

}

// Getterler

public int getId() { return id; } public String getName() { return name; }

public double getPrice() { return price; }

public String getDescription() { return description; }

// Setterler

public void setName(String name) { this.name = name; } public void setPrice(double price) { this.price = price; } public void setDescription(String description) {

this.description = description; }

}

Basqarıwshı (Controller):

// Ónimler basqarıwshısı

public class ProductController {

private ProductRepository repository;

public ProductController(ProductRepository repository) { this.repository = repository;

}

public List<Product> getAllProducts() { return repository.findAll();

}

public Product getProductById(int id) { return repository.findById(id);

}

public void addProduct(Product product) { repository.save(product);

}

public void updateProduct(Product product) { repository.update(product);

}

public void deleteProduct(int id) { repository.delete(id);

}

}

Kórinis (View):

// Ónimler kóriniwi (konsol interfeysi retinde) public class ProductView {

private ProductController controller;

public ProductView(ProductController controller) { this.controller = controller;

}

public void showProductsList() {

List<Product> products = controller.getAllProducts(); System.out.println("Ónimler dizimi:");

for (Product product : products) { System.out.println(product.getId() + ". " +

product.getName() +

" - " + product.getPrice() + "

tenge");

}

}

public void showProductDetails(int id) {

Product product = controller.getProductById(id); if (product != null) {

System.out.println("Ónim haqqında tolıq maǵlıwmat:");

System.out.println("ID: " + product.getId()); System.out.println("Atı: " + product.getName()); System.out.println("Bahası: " + product.getPrice() +

" swm");

System.out.println("Táriyp: " + product.getDescription());

} else {

System.out.println("Ónim tabılmadı!");

}

}

public void processUserInput() {

Scanner scanner = new Scanner(System.in);

boolean running = true;

while(running) { System.out.println("\nTańlań:");

System.out.println("1. Barlıq ónimlerdi kórsetiw"); System.out.println("2. Ónim haqqında tolıq

maǵlıwmat");

System.out.println("3. Shıǵıw");

int choice = scanner.nextInt(); scanner.nextLine(); // buferdi tazalaw

switch(choice) { case 1:

showProductsList();

break; case 2:

System.out.println("Ónim ID-sin kiritiń:"); int id = scanner.nextInt(); showProductDetails(id);

break; case 3:

running = false; break;

default:

System.out.println("Nadurıs tańlaw!");

}

}

scanner.close();

}

}

Arxitekturalıq sheshimlerdi qabıl etiw hám bahalaw

Arxitekturalıq sheshimlerdi qabıl etiw processinde tómendegi faktorlardı esapqa alıw kerek:

1.Masshtablanıw talapları: Sistema keleshekte qanshelli ósiwi múmkin?

2.Ónimlilik talapları: Sistema qanday jumıs ónimliligin kórsetiwi kerek?

3.Qáwipsizlik talapları: Qanday qáwipsizlik mexanizmleri kerek?

4.Texnikalıq xızmet kórsetiw qıyınshılıǵı: Sistemanı qollap-quwatlaw qanshelli ańsat bolıwı kerek?

5.Komandadaǵı kónlikpeler: Komanda aǵzalarınıń texnikalıq kónlikpeleri qanday?

6.Byudjet hám múddetler: Resurslar hám waqıt sheklewleri qanday?

5.Arxitekturanı dokumentlestiriw

Arxitekturanı dokumentlestiriw ushın tómendegi áhmiyetli komponentlerdi kirgiziw kerek:

1.Arxitekturalıq kóz-qaras: Sistemanıń joqarı dárejedegi strukturası hám negizgi komponentler

2.Komponentler diagramması: Sistemanıń tiykarǵı komponentleri hám olardıń arasındaǵı baylanıslar

3.Klasslar diagramması: Klasslar hám olardıń arasındaǵı qatnasıqlar

4.Baylanıs diagramması: Sistema komponentleriniń óz-ara háreketlesiw usılları

5.Maǵlıwmatlar modelі: Sistema saqlaytuǵın maǵlıwmatlar strukturası

6.API specifikaciyası: Sırtqı interfeysler hám olardıń funkcionallıǵı

Ámeliy tapsırmalar:

Tapsırma 1: Arxitekturalıq patternlerdi analizlew hám tańlaw

Tómendegi talaplar tiykarında mobil qosımshaǵa sáykes arxitekturalıq pattern tańlań:

o Paydalanıwshılar qosımshada awqat receptlerin kóre aladı o Receptlerdi kategoriyalar boyınsha filtrlew múmkin

o Paydalanıwshılar receptlerdi saqlap qoyıwı múmkin o Qosımsha offlayn rejimde de isley aladı

o Server menen sinxronizaciya boladı

Siz tańlaǵan arxitekturalıq pattern ushın arxitekturalıq diagramma jaratıń

(UML yaki basqa ápiwayı formatta)

Usı arxitekturanıń artıqmashılıqların hám kemshiliklerin talqılań Tapsırma 2: Arxitekturalıq patterndi qollanıw

MVC patterni tiykarında ápiwayı studentler maǵlıwmatların basqarıw sistemasınıń kodın jazıń:

o Student klasın jaratıń (id, atı-familiyası, topar, kurs)

oStudentlar dizimin saqlaw hám basqarıw ushın ModellController jaratıń

oStudentlar dizimin konsolde kórsetiw ushın View klasın jaratıń

Hár bir komponentti táriyipleń hám olardıń arasındaǵı baylanıstı anıqlań

Sistemaǵa jańa Studentti qosıw, Studentti ózgertiw hám Studentti óshiriw funkciyaları menen tolıqtırıń

Tapsırma 3: Mikroservisler arxitekturasın proektlestiriw

Onlayn-dúkannıń mikroservisler arxitekturasın proektlestiriń: o Ónimler servisi (ónimlerdi basqarıw)

o Paydalanıwshılar servisi (paydalanıwshılar akkauntların basqarıw) o Buyırtpalar servisi (buyırtpalardı basqarıw)

oTólem servisi (tólemlerdi qayta islew)

Hár bir servistiń APIs anıqlań

Servisler arasındaǵı baylanıslardı kórsetiń (sinxron hám asinxron baylanıslar)

Mikroservisler arxitekturasın qollanıwdıń potencial qıyınshılıqların anıqlań hám olardı sheshiw usılların usınıs etiń.

Соседние файлы в папке Programmalıq injiniringge kirisiw