10.1 «İnsanlar artıq doğulmur, onları yetişdirirlər»
Beləliklə, hələ də buradasınızsa, davam edək. «Və mən sizə dovşan yuvasının nə qədər dərin olduğunu göstərəcəyəm» (ц)
Gəlin mən sizə məhsulun yaradılması prosesinin necə baş verdiyini danışım. Biz ən yuxarı, qlobal səviyyədən ən aşağı səviyyəyə — kod yazılmasına qədər addım-addım keçəcəyik. Düşünürəm ki, sizi bir neçə maraqlı kəşflər gözləyir…
Müasir IT-məhsullar artıq yazılmır: onları yaradırlar. Onları kitabxanalardan, framework-lərdən, xarici proqramlardan və məhsullardan tərkib hissələrinə ayıraraq yığırlar və ya ümumiyyətlə ödənişli və ya pulsuz internet xidmətlərindən istifadə edirlər.
Müasir məhsul — bu, texnologiyalar, xidmətlər, həllər və proseslərin tam bir ziyarətgahıdır. İşin bir hissəsi insanlar tərəfindən görülür, bir hissəsi avtomatlaşdırılıb, qalan 90%-i isə ümumiyyətlə data-mərkəzlərdəki bulud xidmətləri tərəfindən yerinə yetirilir. Dünya artıq əvvəlki kimi deyil.
Amma diqqətinizi cəlb edəcək ilk şey — bu, daimi dəyişikliklərdir. Siz artıq proqramlar yazmırsınız: siz onlara dəyişikliklər edirsiniz.
10.2 Daimi Dəyişikliklər
İşə başlayaq və artıq 5 ildir ki, məhsul üzərində işləyən 20 nəfərlik komandaya qoşulacağıq. Hal-hazırda istifadəçilərə məhsulun yeddinci versiyası təqdim olunur. Sənin vəzifən isə bu məhsula dəyişikliklər etməkdən ibarət olacaq. Balaca dəyişikliklər ki, hazırkı aktiv istifadəçiləri qorxutmayaq.
Bu o qədər də asan olmayacaq, çünki məhsul artıq işləyir. Onun müştəriləri var və onlar pul ödəyirlər. Buna görə də heç nəyi zədələmək olmaz. Artıq işləyən məhsula dəyişikliklər etmək yeni bir məhsul yaratmaqdan bir neçə dəfə daha çətindir. Bunun üçün xüsusi standartlar, protokollar, migrasiyalar və utilitlər mövcuddur. Dərhal yadıma bir lətifə düşdü:
İki köhnə dost görüşür: biri mexanik olub, digəri cərrah... hərəsinin öz həyatı, qayğıları, sevincləri... Hər şeyi bir-birinə danışırlar və söhbət maaşlardan açılır. Avtomexanik deyir: "Mən ayda 30k qazanıram və çox məmnunam, bəs sən nə qədər?", kardio-cərrah deyir: "Mən təxminən 100 min bir əməliyyata qazanıram"... Mexanik maraqlandı: "Qəribədir, niyə bu qədər fərq var, elə bil eyni işi görürük — hissələri dəyişirik", cərrah ona belə cavab verir: "Gəl maşına baxaq, işə sal"... mexanik maşını işə salır, cərrah kapotu açır və mexanikə deyir: "Bax, mühərrik işləyir? Dəyiş onu! :)"
Hətta bir möcüzə baş versə və komandan bir il ərzində sıfırdan məhsul yaratdı və yalnız bundan sonra onu buraxdı, bilirsən nə baş verəcək?
Əgər məhsulunuz uğurlu olsa, məhsul sahibi onu inkişaf etdirmək istəyəcək. Yeni bir versiya çıxarmaq, bəzi funksionallıqları əlavə etmək. Ya da ən azı bir neçə eksperiment keçirmək. Və bilirsinizmi, bunun ardınca nə gələcək? Dəyişikliklər.
10.3 Məhsulun dəyəri
Müasir məhsulun işlənməsi baxımından yalnız istehsalata (release) buraxılmış kod və istifadəçilərin istifadə etdiyi funksionallıq dəyərli hesab olunur. Əgər kod yazmısınızsa, o haradasa saxlanılır, işləyir, amma insanlar onu istifadə etmirsə, deməli onun dəyəri sıfıra bərabərdir. Buna görə də bütün kod mümkün qədər tez bir zamanda production mühitinə keçməlidir.
Kodunuz aşağıdakı mərhələləri keçməlidir:
- Kodu yazıb onun işlədiyinə əmin oldunuz
- TeamLead onu nəzərdən keçirdi və əsas branch-ə (Git-də) əlavə etdi
- Proqram yığımı zamanı testlər göstərdi ki, heç nəyi əhəmiyyətli şəkildə pozmamısınız
- İnteqrasiya testləri göstərdi ki, məhsul düzgün işləyir
- Tester kodu yoxladı və releas üçün təsdiq verdi
- Sonra yeni məhsul versiyasını yığıb onu serverdə releas etmək lazımdır
- Yeni məhsul versiyasını Docker Images-də yığıb releas etmək lazımdır
- Bəlkə də miqrasiya skriptlərini işə salıb bazaya və ya digər üçüncü tərəf həllərinə dəyişikliklər etmək lazım olacaq
- Sonra serverdə log-ları yoxlayaraq hər şeyin düzgün işlədiyinə əmin olmaq lazımdır
- Əgər fövqəladə vəziyyət yaranarsa kodu geri qaytarmaq, əvvəlki verilənlər bazası vəziyyətini bərpa etmək və məhsulun qeyri-sabit versiyası ilə işləyən istifadəçilərin etdiyi əməliyyatları itirməmək lazımdır
Hal-hazırda bir çox şirkətdə bu məsələlər həll olunmuşdur: yeni proseslər qurulmuş, xüsusi insanlar işə götürülmüş, xüsusi təhlükəsizlik protokolları və keyfiyyət standartları tətbiq edilmişdir.
Şirkət nə qədər böyükdürsə, kod yazıldıqdan production mühitinə keçib dəyər qazanana qədər – insanlara fayda gətirməsinə kimi keçən zaman bir o qədər az olur.
Bir çox şirkətdə bu proses iki həftə çəkir, amma elə şirkətlər var ki, onlar həftəlik, hətta gündəlik releas edirlər. Xüsusi unikal şirkətlər var ki, gündə bir neçə dəfə releas edirlər.
Yazılmış kod heç bir dəyəri yoxdur. Dəyəri ancaq production mühitində işləyən kod gətirir.
GO TO FULL VERSION