Ən axmaq peşələrdən biri proqramçılardır. Hamısı yox, özləri heç vaxt proqramçı olmayanlar. Kitablardakı metodlardan istifadə edərək səmərəliliyi "artıra" biləcəklərini (və ya "səmərəliliyi"?) düşünənlər. Onlar özləri kitabları oxumağa belə əhəmiyyət verməyiblər - axı qaraçı tipli proqramlaşdırma haqqında video var.
Heç vaxt kod yazmayanlara. Proqramçılar haqqında Hollivud filmlərinin çəkildiyi insanlara - bilirsiniz, əmr sətri vasitəsilə elektron poçtlara baxanlara. Yalnız ölçülər, son tarixlər və öz maaşları ilə maraqlananlar.
Əksəriyyətdə olanlar.
Amma onlar başqa səbəbdən axmaqdırlar. Onlar səmərəlilik və ya heç olmasa effektivlik istəyirlər (haydı, menecer, fərqi Google-da axtar), heç birini başa düşmədən. Onlar mahiyyəti, nəticə əldə etmə prosesini, yolda baş verən itkiləri və ya inkişaf xərclərini heç cür başa düşmürlər. Bir sözlə, proqramçı ilə işləmək qara qutu ilə işləmək kimidir.
Proqramçılar idarəetməyə bir səbəbdən axışırdılar: ajiotaj, pul, bazar və eyni dərəcədə axmaq bir dəstə var. Gizlənmək üçün kifayət qədər yer var.
Əgər mexaniki yığım istehsalında ajiotaj olsaydı, insanlar ora axışardılar. Universallar zibildir. Dekabr ayında məhəlləmizdə Milad ağacı satan adamın tətildə olan İT meneceri olmasına təəccüblənmərəm.
Bir sözlə, mümkünsə, bu oğlanları qovun. Narahat olmayın, onlar iş tapacaqlar. Onlardan heç biri özləri proqramçı olana qədər heç vaxt layiqli bir iş görməyəcək. Çünki idarə etdikləri prosesin mahiyyətini, mexanizmini və ya məntiqini başa düşmürlər.
Yaxşı, menecerlər haqqında kifayətdir. İndi isə proqramçılar üçün əsl məsələyə keçək. Yüksək keyfiyyətli kod yazmağı öyrənməklə inkişaf səmərəliliyini necə artırmaq olar.
Səmərəliliyi artırmaq üçün keyfiyyətdən ödün vermədən problemləri daha sürətli həll etməlisiniz. Problemləri daha sürətli həll etmək üçün dərhal yüksək keyfiyyətli kod yaza bilməlisiniz. "Yüksək keyfiyyətli", "yaz" və "dərhal". Bir metafora ilə izah edim.
Yüksək keyfiyyətli kod yazmaq, xarici dildə səriştəli danışmaq kimidir. Dili bilmədiyiniz zaman fikirlərinizi orada ifadə etməyə çox vaxt sərf edirsiniz.
Təcili bir şey deməli olursansa, sadəcə bəzi sözləri, çox vaxt səhv olanları, şillələyir, artiklləri, düzgün söz sırasını, felin zamanlarını və zəif tələffüzünü unudursan.
Əgər cavab yazmaq üçün vaxtınız varsa, lüğət və ya onlayn tərcüməçi açmalı və fikirlərinizi yazmağa çox vaxt sərf etməlisiniz. Lakin hiss yenə də xoşagəlməz olacaq: cavab verirsiniz, amma düzgün olub-olmadığını bilmirsiniz. Kodla da eyni şeydir: onu yazmısınız, işləyir kimi görünür, amma keyfiyyətli olub-olmadığını kim bilir.
Bu, ikiqat vaxt itkisidir. Cavab tapmaq vaxt tələb edir. Bu cavabı formalaşdırmaq da vaxt tələb edir - və bunun xeyli hissəsi.
Əgər yüksək keyfiyyətli kod yazmaq bacarığınız varsa, tərcüməyə əlavə vaxt sərf etmədən cavabınızı beyninizdə formalaşan kimi hazırlaya bilərsiniz.
Yüksək keyfiyyətli kod yazmaq bacarığı memarlıq dizayn edərkən kömək edir. Sadəcə olaraq, beyninizdə səhv, mümkün olmayan və ya yöndəmsiz fikirlər yaranmayacaq.
Xülasə, yüksək keyfiyyətli kod yazmaq bacarığı problemlərin həllini əhəmiyyətli dərəcədə sürətləndirir.
Amma bu, hamısı deyil. Axmaq menecerlər sayəsində bir problem var: yüksək keyfiyyətli kod yazmaq üçün heç bir stimulumuz yoxdur. Menecer koda baxmır, müştəri də koda baxmır. Biz nadir hallarda bir-birimizlə kodu paylaşırıq, yalnız bəzən müəyyən layihələrdə, təyin olunmuş kod rəyçisinin və ya dövri refaktorinqin olduğu yerlərdə.
Məlum olur ki, əksər hallarda keyfiyyətsiz kod istehsalda və ya müştəri tərəfindən əldə edilir. Pis kod yazan şəxsdə güclü neyron əlaqəsi yaranır: keyfiyyətsiz kod yazmaq nəinki məqbuldur, hətta tələb olunur - qəbul edilir və hətta insanlar bunun üçün pul ödəyirlər.
Nəticədə, yüksək keyfiyyətli kod yazmaq bacarığının heç bir inkişaf şansı yoxdur. Hipotetik bir işçi tərəfindən yazılmış kod heç vaxt heç kim tərəfindən nəzərdən keçirilmir. Onların yaxşı proqramlaşdırmağı öyrənməsinin yeganə səbəbi daxili motivasiyadır.
Lakin bu daxili motivasiya planlarla və səmərəlilik və məhsuldarlıq tələbləri ilə ziddiyyət təşkil edir. Bu münaqişə yüksək keyfiyyətli kodun xeyrinə həll olunmur, çünki keyfiyyətsiz kod belə tənqid olunmur. Və plana uyğun gəlməmək, şübhəsiz ki, tənqid olunur.
Nə etməli? Birləşdirilə bilən iki yol görürəm və təklif edirəm.
Birincisi, kodunuzu şirkət daxilində kiməsə göstərməkdir. Reaktiv şəkildə (soruşulur və ya məcbur edilir) deyil, proaktiv şəkildə (hə, dostum, koduma baxın, xahiş edirəm). Burada əsas məsələ şəkər örtüyü ilə örtməkdən və ya kod tənqidini nəzakətli ifadələrlə örtməyə çalışmaqdan çəkinməkdir. Əgər kod bərbaddırsa, dərhal deyirik: kod bərbaddır. Əlbəttə ki, izahatlarla və onu necə daha yaxşı etmək barədə tövsiyələrlə.
Lakin bu yanaşma da problemlidir. Onun tətbiqi təmas nöqtəsindən asılıdır. Əgər iş artıq istehsalata verilibsə və kod bərbad olduğu ortaya çıxsa, onu yenidən etməyin mənası yoxdur. Daha doğrusu, heç bir səbəb yoxdur - göstəricilər kəskin şəkildə aşağı düşəcək. Menecerlər işə girib sizi performans tələbləri ilə döyəcəklər. Və onlara bərbad kodların qaçılmaz olaraq səhv kimi geri dönəcəyini izah etməyə belə çalışmayın - əks nəticə verəcək. Yalnız bunu bir daha etməməyə söz verə bilərsiniz.
Əgər iş hələ tamamlanmayıbsa və ya yeni başlayıbsa, koda (və ya onun layihəsinə, ideyasına) zibil tökməyin çox praktik mənası ola bilər - insan bunu düzgün edəcək.
İkinci və ən həyəcanverici seçim boş vaxtınızda açıq mənbəli proqramlaşdırma ilə məşğul olmaqdır. Məqsəd bir dəstə proqramçının — yəni proqramçıların — kodunuzu görüb şərh yazmalarını təmin etməkdir. Şirkət daxilində heç kimin vaxtı yoxdur. Dünyadakı proqramçıların isə bundan yaxşı bir işi yoxdur, ona görə də praktik baxımdan faydalı bir şey yazsanız, mütləq nəzər salacaqlar.
Mənim fikrimcə, əsas üstünlük iş saatlarından kənarda kod yazmaqdır, çünki kod keyfiyyəti ilə çatdırılma sürəti arasında heç bir güzəşt yoxdur. Öz layihənizi inkişaf etdirmək üçün bir il sərf edə bilərsiniz. Son tarixlər, spesifikasiyalar, pul və ya müdiriniz tərəfindən təzyiq altında qalmayacaqsınız. Bu, tam azadlıq və yaradıcılıqdır.
Yalnız sərbəst yaradıcılıq sayəsində əla kodun nə olduğunu anlayacaq və hiss edəcək, proqramlaşdırma dillərinin və texnologiyalarının gözəlliyini görəcək və biznes çətinliklərinin sevincini yaşayacaqsınız. Və yüksək keyfiyyətli kod yazmağı öyrənəcəksiniz.
Düzdür, bu, müəyyən şəxsi vaxt tələb edəcək. Əslində, hər hansı digər inkişaf kimi. Buna xərc kimi deyil, özünüzə qoyulan investisiya kimi baxın.
Mənbə: www.habr.com
