Proqram

Proqram təminatı mühəndisliyi

Hər bir proqram təminatı mühəndisi karyera yolunu proqramlaşdırma dili sintaksisini və çərçivələrini öyrənməklə başlayır. Ancaq proqramlaşdırma dilini mənimsəyəndə bunun karyera yüksəlişi üçün kifayət etmədiyi məlum olur. Mütəxəssislər proqramlaşdırma bacarıqlarını dərinləşdirir və eyni zamanda proqram təminatının həyat dövrü haqqında fikirlərini genişləndirirlər. Proqramlaşdırma mütəxəssislərinin karyera yüksəlişlərində dəstək olmaq üçün Proqram təminatı mühəndisliyi kursunu hazırladıq. Müəssisələrdən ən yaxşı proqram inkişaf təcrübələrini topladıq və müasir vasitələrlə zənginləşdirdik.

Məqsədimiz, proqram təminatı mühəndislərinə müəssisədəki proqram inkişafının bütün dövrü haqqında geniş görüntünü vermək və işə götürənlərin CI/CD, Proqram memarlığı və dizaynı, API inkişaf etdirmə və Bulud həllərində yüksək tələblərə malik bacarıqlarını təmin etməkdir.

Hazırda proqrama müraciət aktiv deyil
Başlanğıc

20 sentyabr 2021

Müddət

4 ay

Qrup

25-30 nəfər

Tədris qrafiki

Həftəsonu bootcamp

Qəbul şərtləri
Gözlənti

Fərdi noutbuk və ya kompüter və intensiv tədrisə hazırlıq

Dil biliyi

İngilis dili biliyi: Orta (B2)

Tələb

Proqramlaşdırma sahəsində təcrübəsi 2+ il

Yaş həddi

20 yaş və yuxarı

Kurs tələbələrə bunları qazandıracaq:

Git SCM (Mənbə İdarəetmə İdarəçiliyi) daxil olmaqla, müasir SDLC (Proqram İnkişaf Həyat Dövrü) ilə tanışlıq, kodun incələnməsi prosesi, Pull Request/Push builds, TDD (Test Driven Development) buraxılış və budaq modelləri haqqında ətraflı məlumat əldə edilməsi.

İstifadəçi Hekayəsi İzolasiyasından nə vaxt və nə üçün istifadə edilməsi, inkişaf qrupu daxilində effektiv bir əməkdaşlıq ekosisteminin necə qurulması.

Jenkins -ə əsaslanan Davamlı İnteqrasiya alt sistemlərinin qurulması, Github, Jenkins, SonarQube və Nexus test framework-ləri (vahid testlər, end2end testlər, smoke testlər daxil olmaqla).

Code coverage və Quality Gates ilə işləyə bilmək üçün SonarQube konfiq edilməsi və reqressiya planının qurulması, Proqram Memarlığı və Proqram dizaynı arasındakı fərqi anlayaraq, fərqli nümunələrin necə və nə zaman istifadə edilməsi və biznes input-ların texniki şərtlərə necə çevrilməsi istiqamətində peşəkar biliklərin əldə edilməsi.

RESTful və GraphQL API, Orthogonal API-larının qurulması və Dizayn Nümunələrini istifadə edərək yüksək səviyyəli tapşırıqların hissələrə bölünərək docker-in əsas alət olaraq istifadəsi edilməsi ilə həll edilməsi üzrə bacarıqların formalaşdırılması.

Kubernetes istifadəsi ilə Microservice Architecture-ə əsaslanan HA (Yüksək Mövcudluq) klasterinin qurulması üzrə təcrübə və bacarıqların əldə edilməsi.

Proqram

Proqram təminatı mühəndisliyi
10

Modul sayı

  • Mənbə İdarəetmə Sistemləri - Git
  • Şaxələnmə və buraxılış modelləri
  • Jenkins
  • Github
  • SonarQube, Code coverage, Instrumentalizasiya
  • Kodu nəzərdən keçirmə prosesi, İstifadəçi Hekayəsinin İzolyasiya mexanikası
  • TDD - Test Driven development
  • Test planlaması, Performans, Reqressiya və Təhlükəsizlik testləri, Zəifliklərin yoxlanması, e2e Avtomatlaşdırma & UI testi, Manual test

  • Proqramın xarici keyfiyyət faktorları: düzgünlük, möhkəmlik, genişlənmə qabiliyyəti, təkrar istifadə qabiliyyəti və s.
  • Arxitektura növləri: Bağımsız, N-pilləli, SOA, Mikroservislər, Serversiz, Veb-növbə-İşçi, Hadisəyə əsaslanan memarlıq, Böyük Məlumat/Böyük Hesablama
  • Tələblərin toplanması, Satış öncəsi, Qiymətləndirmələr, RFI/RFP

  • Ümumi layihə təşkilati quruluşu, komponent modeli, çox komponentli idarəetmə sistemi, minimum canlı şablonlar
  • Məlumat strukturları, əsas proqramlaşdırma paradiqmaları: prosedur, obyekt yönümlü, funksional, məntiq. Tərtibçilər, Tərcüməçilər, Proseslər və Mövzular
  • "Təmiz Arxitektura", Dizayn nümunələri, GRASP, UML, C4 modeli, MVC (MVVM), BFF - Frontend üçün arxa plan
  • Inheritance vs Kompozisiya vs Birləşmə, Kompozisiya vs Ayırma, Sənədləşmə, Xətanın ələ alınması
  • Polyglot proqramlaşdırma, Polyglot davamlılığı
  • CAP Teoremi (RDBMS, NoSQL, Graph DB) DB miqrasiyası, parçalanma
  • Doğrulama və Avtorizasiya, RBAC vs ABAC, OAuth
  • Mesaj vasitəçiliyi
  • Mobile-first, mobile-only
  • Multi-tenancy, Audit, Branding, GDPR Compliance
  • Waterfall, RUP, Agile, Technical debt, Legacy sistemləri, Refactoring
  • Çox işləmə, Müştəri-Server, P2P, Paylaşdırılmış hesablama, Kilidsiz alqoritmlər, Keşləmə, Gündəlik, Metaproqramlaşdırma/Generika, Proseslərarası ünsiyyət: mutex, semafor, boru, paylaşılan yaddaş

  • Ortogonal API, Müqavilə proqramlaşdırması, SOLID, ACIS
  • RESTful API, OpenAPI, GraphQL, gRPC, API köhnəlmə strategiyası
  • API idarəçiliyi, API versiyası, Səhifələşdirmə, Rate limitləri, Axtarış
  • AI (ML/DL) ümumi baxış
  • Artifacts repository
  • NoOps, Opsless, Dev/Prod parity, Infrastructure-as-Code
  • Docker, Docker compose, containerd
  • Müxtəlif mühit növləri (dev, qa, uat, prod)
  • Mavi/Yaşıl, A/B, Canary yerləşdirilməsi, 0 işləmə müddəti, "Günəşi təqib et" strategiyasını yaymaq
  • Ətraf mühit dəyişənləri, sirlər, kassalar
  • Kubernetes, mesh Xidməti (İstio, Maesh/Linkerd, Anthos) ümumi baxış
  • Monitorinq, Ölçmə, Xəbərdarlıq
  • Ehtiyyat nüsxəsi, Bərpa strategiyası, Dəstək (L1/L2/L3)
  • SRE, SLIs, SLOs, SLAs
  • Virtualizasiya, Avadanlıq səviyyəsi/İstifadəçi səviyyəsi
  • Bulud platformalarına ümumi baxış, Hibrid Bulud həlləri, Bölgələr
  • Yüksək Mövcudluq, Bulud Memarlığı nümunələri
  • Final Layihə