Kodga g'azab: dasturchilar va salbiy

Kodga g'azab: dasturchilar va salbiy

Men kodning bir qismini ko'rib chiqyapman. Bu men ko'rgan eng yomon kod bo'lishi mumkin. Ma'lumotlar bazasidagi faqat bitta yozuvni yangilash uchun u to'plamdagi barcha yozuvlarni oladi va keyin ma'lumotlar bazasidagi har bir yozuvga, hatto yangilanishi kerak bo'lmaganlarga ham yangilash so'rovini yuboradi. Unga berilgan qiymatni oddiygina qaytaradigan xarita funksiyasi mavjud. Ko'rinishidan bir xil qiymatga ega bo'lgan o'zgaruvchilar uchun shartli testlar mavjud, faqat turli uslublarda nomlanadi (firstName и first_name). Har bir YANGILANISH uchun kod boshqa serversiz funksiya tomonidan boshqariladigan, lekin bir xil maʼlumotlar bazasidagi boshqa toʻplam uchun barcha ishlarni bajaradigan boshqa navbatga xabar yuboradi. Ushbu serversiz funksiya bulutga asoslangan "xizmatga yo'naltirilgan arxitektura" dan ekanligini aytdimmi, bu muhitda 100 dan ortiq funktsiyalarni o'z ichiga oladi?

Qanday qilib buni amalga oshirish mumkin edi? Men yuzimni berkitib, kulgimdan yig'lab yuboraman. Mening hamkasblarim nima bo'lganini so'rashadi, men esa uni ranglarda aytib beraman BulkDataImporter.js 2018 yilning eng yomon xitlari. Hamma menga hamdardlik bilan bosh irg'adi va rozi bo'ladi: qanday qilib ular bizga shunday qilishdi?

Salbiylik: dasturchi madaniyatidagi hissiy vosita

Negativlik dasturlashda muhim rol o'ynaydi. U bizning madaniyatimizga kiritilgan va biz o'rgangan narsalarni baham ko'rish uchun ishlatiladi ("siz buni qilmaysiz ishonasiz, bu kod qanday edi!”), umidsizlik orqali hamdardlik bildirish (“Xudo, NEGA bunday qilyapman?”), o‘zini ko‘rsatish (“Men hech qachon bunday qilmayman. shunday buni qilmaganman”), aybni boshqa birovga yuklash (“biz uning kodi tufayli muvaffaqiyatsizlikka uchradik, uni saqlab qolishning iloji yo‘q”) yoki eng “zaharli” tashkilotlarda odat bo‘lganidek, boshqalarni nazorat qilish. uyat hissi ("Nima haqida o'ylading?" ? To'g'ri").

Kodga g'azab: dasturchilar va salbiy

Negativlik dasturchilar uchun juda muhim, chunki bu qiymatni etkazishning juda samarali usuli. Men bir marta dasturlash lagerida qatnashganman va talabalarga sanoat madaniyatini singdirishning standart amaliyoti memlar, hikoyalar va videolarni saxiylik bilan etkazib berish edi, ulardan eng mashhurlari ekspluatatsiya qilingan. odamlarning tushunmovchiligiga duch kelganda dasturchilarning umidsizliklari. Yaxshi, yomon, xunuk, buni qilmang, hech qachon, hech qachon, his-tuyg'u vositalaridan foydalanish yaxshi. Yangi kelganlarni ITdan uzoq bo'lgan hamkasblar noto'g'ri tushunishlari mumkinligiga tayyorlash kerak. Do'stlari ularga million dollarlik ilova g'oyalarini sotishni boshlaydilar. Ular eskirgan kodning cheksiz labirintlari bo'ylab, burchakda bir nechta minotavrlar bilan sayr qilishlari kerak.

Dasturlashni birinchi marta o'rganganimizda, "dasturlash tajribasi" ning chuqurligini tushunishimiz boshqa odamlarning hissiy reaktsiyalarini kuzatishga asoslanadi. Buni maqoladagi postlardan yaqqol ko'rish mumkin sabe ProgrammerHumor, bu erda ko'plab yangi boshlanuvchi dasturchilar osadi. Ko'pgina hazillar u yoki bu darajada turli xil salbiy ranglar bilan bo'yalgan: umidsizlik, pessimizm, g'azab, kamsitish va boshqalar. Va agar bu sizga etarli bo'lmasa, sharhlarni o'qing.

Kodga g'azab: dasturchilar va salbiy

Men dasturchilar tajriba ortishi bilan ular tobora salbiyroq bo'lib qolishlarini payqadim. Yangi boshlanuvchilar, ularni kutayotgan qiyinchiliklardan bexabar, ishtiyoq va bu qiyinchiliklarning sababi shunchaki tajriba va bilim etishmasligiga ishonish istagi bilan boshlanadi; va oxir-oqibat ular narsalarning haqiqatiga duch kelishadi.

Vaqt o'tadi, ular tajriba orttirishadi va yaxshi kodni yomondan ajrata oladilar. Va o'sha payt kelganda, yosh dasturchilar aniq yomon kod bilan ishlashdan umidsizlikka tushishadi. Va agar ular jamoada (masofadan yoki shaxsan) ishlasalar, ular ko'pincha tajribali hamkasblarning hissiy odatlarini qabul qilishadi. Bu ko'pincha negativlikning kuchayishiga olib keladi, chunki yoshlar endi kod haqida o'ylab gapirishlari va uni yomon va yaxshilikka bo'lishlari mumkin va shu bilan o'zlarining "bilib qolganliklarini" ko'rsatishlari mumkin. Bu salbiyni yanada kuchaytiradi: umidsizlikdan hamkasblar bilan til topishish va guruhga a'zo bo'lish oson; Bad Codeni tanqid qilish boshqalar oldida sizning mavqeingiz va professionalligingizni oshiradi: salbiy fikr bildiradigan odamlar ko'pincha aqlli va malakali deb hisoblanadilar.

Salbiylikni ko'paytirish har doim ham yomon narsa emas. Dasturlash bo'yicha munozaralar, jumladan, yozilgan kodning sifatiga juda katta e'tibor qaratilgan. Kod nimadan iborat bo'lsa, u amalga oshirish uchun mo'ljallangan funktsiyani (apparat, tarmoq va boshqalarni hisobga olmaganda) to'liq belgilaydi, shuning uchun bu kod haqida o'z fikringizni bildira olish muhimdir. Deyarli barcha munozaralar kod yetarli darajada yaxshimi yoki yo'qmi va yomon kodning ko'rinishini qoralash bilan bog'liq bo'lib, uning hissiy ma'nosi kod sifatini tavsiflaydi:

  • "Ushbu modulda juda ko'p mantiqiy nomuvofiqliklar mavjud, bu ish faoliyatini sezilarli darajada optimallashtirish uchun yaxshi nomzod."
  • "Ushbu modul juda yomon, biz uni qayta tiklashimiz kerak."
  • "Ushbu modulning ma'nosi yo'q, uni qayta yozish kerak."
  • "Ushbu modul yomon, uni tuzatish kerak."
  • "Bu modul emas, qo'chqorning bir qismi, uni yozishning hojati yo'q edi, uning muallifi nima deb o'ylagan edi."

Aytgancha, ishlab chiquvchilar kodni "sexy" deb ataydigan mana shu "hissiy reliz" dir, bu kamdan-kam hollarda adolatli bo'ladi - agar siz PornHub'da ishlamasangiz.

Muammo shundaki, odamlar g'alati, notinch, hissiy mavjudotlardir va har qanday his-tuyg'ularni idrok etish va ifodalash bizni o'zgartiradi: dastlab nozik, lekin vaqt o'tishi bilan keskin.

Negativlikning muammoli sirpanchiq nishabi

Bir necha yil oldin men norasmiy guruh rahbari edim va ishlab chiquvchidan intervyu oldim. Bizga u juda yoqdi: u aqlli, yaxshi savollar berardi, texnologiyani yaxshi bilardi va madaniyatimizga mos edi. Ayniqsa, uning pozitivligi va tashabbuskorligi meni hayratda qoldirdi. Va men uni ishga oldim.

O‘shanda men bir-ikki yil korxonada ishlab, madaniyatimiz unchalik samarali emasligini his qilardim. Men kelishimdan oldin biz mahsulotni ikki marta, uch marta va yana bir necha marta ishga tushirishga harakat qildik, bu qayta ishlash uchun katta xarajatlarga olib keldi, bu vaqt davomida bizda uzoq tunlar, qattiq muddatlar va ishlagan mahsulotlardan boshqa hech narsa ko'rsatilmadi. Va men hali ham qattiq ishlagan bo'lsam ham, men rahbariyat tomonidan bizga tayinlangan oxirgi muddatga shubha bilan qaradim. Va u hamkasblarim bilan kodning ba'zi jihatlarini muhokama qilganda beparvolik bilan qasam ichdi.

Shunday qilib, ajablanarli emas edi - garchi hayron bo'lsam ham - bir necha hafta o'tgach, o'sha yangi dasturchi men qilgan salbiy narsalarni aytdi (shu jumladan qasam ichish). Men u boshqa madaniyatga ega bo'lgan boshqa kompaniyada o'zini boshqacha tutishini angladim. U faqat men yaratgan madaniyatga moslashdi. Meni aybdorlik tuyg'usi bosib ketdi. O'zimning sub'ektiv tajribam tufayli men butunlay boshqacha deb bilgan yangi kelgan odamda pessimizmni uyg'otdim. Agar u haqiqatan ham bunday bo'lmasa va o'ziga mos kelishini ko'rsatish uchun tashqi ko'rinishini qo'ygan bo'lsa ham, men unga yomon munosabatda bo'ldim. Va har bir narsa, hatto hazilda yoki o'tkinchida, ishonilgan narsaga aylanishning yomon usuliga ega.

Kodga g'azab: dasturchilar va salbiy

Salbiy yo'llar

Keling, biroz donolik va tajribaga ega bo'lgan sobiq yangi boshlanuvchi dasturchilarimizga qaytaylik: ular dasturlash sanoati bilan ko'proq tanish bo'lishdi va yomon kod hamma joyda ekanligini tushunishdi, undan qochib bo'lmaydi. Bu hatto sifatga yo'naltirilgan eng ilg'or kompaniyalarda ham uchraydi (va shuni ta'kidlayman: zamonaviylik yomon koddan himoya qilmaydi).

Yaxshi skript. Vaqt o'tishi bilan ishlab chiquvchilar noto'g'ri kod dasturiy ta'minotning haqiqati ekanligini va ularning vazifasi uni yaxshilash ekanligini qabul qila boshlaydilar. Va agar yomon koddan qochishning iloji bo'lmasa, bu haqda shov-shuv ko'tarishning ma'nosi yo'q. Ular Zen yo'lidan borishadi, ular oldida turgan muammolar yoki vazifalarni hal qilishga e'tibor berishadi. Ular dasturiy ta'minot sifatini qanday qilib to'g'ri o'lchash va biznes egalariga etkazishni o'rganadilar, ularning ko'p yillik tajribasiga asoslangan asosli hisob-kitoblarni yozadilar va oxir-oqibat biznes uchun ajoyib va ​​doimiy qiymati uchun saxovatli mukofotlarga ega bo'lishadi. Ular o‘z ishlarini shu qadar yaxshi bajaradilarki, ularga 10 million dollar bonus oladilar va umrining oxirigacha xohlagan ishini qilish uchun nafaqaga chiqadilar (iltimos, buni oddiy deb qabul qilmang).

Kodga g'azab: dasturchilar va salbiy

Yana bir stsenariy - zulmat yo'li. Yomon kodni muqarrar deb qabul qilish o'rniga, ishlab chiquvchilar dasturlash olamidagi barcha yomon narsalarni chaqirishni o'z zimmalariga oladilar, shunda ular uni engishlari mumkin. Ular ko'plab yaxshi sabablarga ko'ra mavjud yomon kodni yaxshilashni rad etishadi: "odamlar ko'proq bilishlari va unchalik ahmoq bo'lmasligi kerak"; "bu yoqimsiz"; "Bu biznes uchun yomon"; "Bu mening qanchalik aqlli ekanligimni isbotlaydi"; "Agar men sizga bu qanday yomon kod ekanligini aytmasam, butun kompaniya okeanga tushadi" va hokazo.

Albatta, o'zlari xohlagan o'zgarishlarni amalga oshira olmaydilar, chunki biznes afsuski rivojlanishda davom etishi kerak va kod sifati haqida qayg'urishga vaqt sarflay olmaydi, bu odamlar shikoyatchilar sifatida obro'ga ega bo'lishadi. Ular o'zlarining yuqori malakalari uchun saqlanib qoladilar, ammo kompaniyaning chekkalariga suriladilar, bu erda ular ko'p odamlarni bezovta qilmaydi, lekin baribir muhim tizimlarning ishlashini qo'llab-quvvatlaydi. Rivojlanishning yangi imkoniyatlariga ega bo'lmasdan, ular malakalarini yo'qotadilar va sanoat talablariga javob berishni to'xtatadilar. Ularning negativligi achchiq achchiqlikka aylanadi va natijada ular yigirma yoshli talabalar bilan o'zlarining sevimli eski texnologiyalari bosib o'tgan sayohatlari va nima uchun u hali ham issiq ekanligi haqida bahslashib, o'zlarining egolarini oziqlantiradilar. Ular nafaqaga chiqib, qariliklarini qushlarni so‘kish bilan o‘tkazishadi.

Haqiqat, ehtimol, bu ikki ekstremal o'rtasida bir joyda yotadi.

Ba'zi kompaniyalar o'ta salbiy, o'ziga xos, kuchli irodali madaniyatlarni yaratishda juda muvaffaqiyatli bo'lishdi (Microsoft avvalgidek yo'qolgan o'n yil) - ko'pincha bu bozorga to'liq mos keladigan va iloji boricha tezroq o'sishga muhtoj bo'lgan mahsulotlarga ega kompaniyalar; yoki buyruq va boshqaruv ierarxiyasiga ega bo'lgan kompaniyalar (Apple Jobsning eng yaxshi yillarida), bu erda har kim o'zlariga aytilganini qiladi. Biroq, zamonaviy biznes tadqiqotlari (va sog'lom fikr) shuni ko'rsatadiki, kompaniyalarda innovatsionlikka va shaxslarda yuqori mahsuldorlikka olib keladigan maksimal zukkolik doimiy ijodiy va uslubiy fikrlashni qo'llab-quvvatlash uchun past darajadagi stressni talab qiladi. Va agar siz hamkasblaringiz kodingizning har bir satri haqida nima deyishi haqida doimo tashvishlansangiz, ijodiy, muhokamaga asoslangan ishni bajarish juda qiyin.

Salbiylik - bu muhandislik pop madaniyati

Bugungi kunda muhandislarning munosabatiga har qachongidan ham ko'proq e'tibor qaratilmoqda. Muhandislik tashkilotlarida "qoida"Shoxlar yo'q". Tvitterda bu kasbni tark etgan odamlar haqida tobora ko'proq latifalar va hikoyalar paydo bo'lmoqda, chunki ular begonalarga nisbatan dushmanlik va yomon niyat bilan chidashda davom eta olmadilar. Hatto Linus Torvalds ham yaqinda kechirim so'radi boshqa Linux dasturchilariga nisbatan yillar davomida dushmanlik va tanqid - bu ushbu yondashuvning samaradorligi haqida munozaralarga olib keldi.

Ba'zilar hali ham Linusning juda tanqidiy bo'lish huquqini himoya qiladi - "toksik salbiy" ning afzalliklari va kamchiliklari haqida ko'p narsalarni bilishi kerak bo'lganlar. Ha, madaniyatlilik nihoyatda muhim (hatto asosiy), lekin agar ko'pchiligimiz salbiy fikrlarni ifoda etishning "toksiklik" ga aylanishiga yo'l qo'yishining sabablarini umumlashtirsak, bu sabablar otalik yoki o'smirlik kabi ko'rinadi: "ular bunga loyiqdirlar, chunki ular ahmoqdirlar. ", "u ular buni boshqa qilmasliklariga ishonchlari komil bo'lishi kerak", "agar ular buni qilmagan bo'lsalar, ularga baqirishi shart emas edi" va hokazo. Rahbarning emotsional reaktsiyalarining dasturlash hamjamiyatiga ta'siriga misol sifatida Ruby hamjamiyatining MINASWAN qisqartmasi keltiriladi - "Matz yoqimli, shuning uchun biz yaxshimiz".

Men "ahmoqni o'ldirish" yondashuvining ko'plab ashaddiy tarafdorlari ko'pincha kodning sifati va to'g'riligiga juda katta e'tibor berishlarini, o'z ishlari bilan tanishishlarini payqadim. Afsuski, ular ko'pincha qattiqlikni qattiqlik bilan aralashtirib yuborishadi. Bu pozitsiyaning noqulayligi oddiy insoniy, ammo o'zini boshqalardan ustun his qilish uchun samarasiz istagidan kelib chiqadi. Bu orzu-havasga botgan odamlar zulmat yo'lida qolib ketishadi.

Kodga g'azab: dasturchilar va salbiy

Dasturlash dunyosi tez sur'atlar bilan o'sib bormoqda va o'z konteynerining chegaralariga - nodasturlash olamiga (yoki dasturlash dunyosi dasturlash bo'lmagan dunyo uchun konteynermi? Yaxshi savol) qarshi turmoqda.

Bizning sanoatimiz tobora ortib borayotgan sur'atlarda kengayib borayotgani va dasturlash yanada qulayroq bo'lishi bilan "texnologiyalar" va "normallar" o'rtasidagi masofa tezda yopiladi. Dasturlash olami erta texnologik bumning yakkalanib qolgan nerd madaniyatida o'sgan odamlarning shaxslararo o'zaro munosabatlariga tobora ko'proq duchor bo'lmoqda va aynan ular dasturlashning yangi dunyosini shakllantiradilar. Va har qanday ijtimoiy yoki avlod argumentlaridan qat'i nazar, kapitalizm nomidagi samaradorlik kompaniya madaniyati va yollash amaliyotida namoyon bo'ladi: eng yaxshi kompaniyalar boshqalar bilan betaraf munosabatda bo'la olmaydigan, yaxshi munosabatlarga ega bo'lmaganlarni oddiygina ishga olmaydilar.

Negativlik haqida nimalarni bilib oldim

Agar siz juda ko'p salbiy fikringizni va odamlar bilan o'zaro munosabatlaringizni boshqarishga yo'l qo'ysangiz, toksiklikka aylansangiz, bu mahsulot jamoalari uchun xavfli va biznes uchun qimmat. Men bir ishonchli ishlab chiquvchi texnologiyaga, boshqa ishlab chiquvchiga yoki hatto butun kod bazasi sifatini ifodalash uchun tanlangan bitta faylga nisbatan nafratga ega bo‘lgani uchun katta xarajat evaziga butunlay qayta qurilgan son-sanoqsiz loyihalarni ko‘rganman (va ular haqida eshitganman) .

Salbiylik, shuningdek, munosabatlarni buzadi va buzadi. Bir hamkasbim CSS-ni noto'g'ri faylga qo'yganim uchun meni qanday qoralaganini hech qachon unutmayman, bu meni xafa qildi va bir necha kun davomida fikrlarimni yig'ishga imkon bermadi. Kelajakda men bunday odamni jamoalarimdan birining yonida bo'lishiga yo'l qo'ymayman (lekin kim biladi, odamlar o'zgaradi).

Nihoyat, salbiy tom ma'noda sog'lig'ingizga zarar etkazadi.

Kodga g'azab: dasturchilar va salbiy
Menimcha, tabassumlar bo'yicha master-klass shunday bo'lishi kerak.

Albatta, bu baxtdan porlash, har bir tortishish so'roviga o'n milliard kulgichlar kiritish yoki tabassumlar bo'yicha master-klassga borish foydasiga bahs emas (yo'q, agar siz shuni xohlasangiz, unda savol yo'q). Salbiy dasturlashning (va inson hayotining) o'ta muhim qismi bo'lib, signal sifati, his-tuyg'ularini ifodalash va boshqa odamlar bilan xayrlashish imkonini beradi. Salbiylik tushuncha va ehtiyotkorlikni, muammoning chuqurligini ko'rsatadi. Men ko'pincha ishlab chiquvchi ilgari qo'rqoq va ishonchsiz bo'lgan narsaga ishonchsizlik bildirishni boshlaganida yangi darajaga etganini payqadim. Odamlar o'z fikrlari bilan oqilona va ishonchni namoyish etadilar. Siz salbiy ifodani rad eta olmaysiz, bu Orwellian bo'lardi.

Biroq, salbiyni dozalash va boshqa muhim insoniy fazilatlar bilan muvozanatlash kerak: empatiya, sabr-toqat, tushunish va hazil. Siz har doim odamga qichqirmasdan yoki so'kinmasdan aylanib qolganini aytishingiz mumkin. Ushbu yondashuvni e'tiborsiz qoldirmang: agar kimdir sizni hech qanday his-tuyg'ularsiz jiddiy buzganingizni aytsa, bu juda qo'rqinchli.

O'sha paytda, bir necha yil oldin, bosh direktor men bilan gaplashdi. Biz loyihaning hozirgi holatini muhokama qildik, keyin u o'zimni qanday his qilayotganimni so'radi. Men hamma narsa yaxshi, loyiha oldinga siljiydi, biz sekin ishlayotganimizni aytdim, ehtimol men nimanidir o'tkazib yubordim va qayta ko'rib chiqish kerak. U mening ofisdagi hamkasblarim bilan ko'proq pessimistik fikrlarni baham ko'rganimni eshitganini va buni boshqalar ham payqashganini aytdi. U agar menda shubhalar bo'lsa, men ularni rahbariyatga to'liq bildirishim mumkinligini tushuntirdi, lekin "ularni olib tashlamayman". Etakchi muhandis sifatida men so'zlarim boshqalarga qanday ta'sir qilishini yodda tutishim kerak, chunki men buni sezmasam ham juda ko'p ta'sirga egaman. Va u menga bularning barchasini juda mehribonlik bilan aytdi va nihoyat, agar men haqiqatan ham shunday his qilsam, o'zim va kareram uchun nimani xohlayotganim haqida o'ylashim kerakligini aytdi. Bu aql bovar qilmaydigan darajada muloyim suhbat bo'ldi. Olti oy davomida o'zgargan munosabatim men sezmagan boshqalarga qanday ta'sir qilgani haqidagi ma'lumot uchun unga minnatdorchilik bildirdim.

Bu ajoyib, samarali boshqaruv va yumshoq yondashuv kuchining namunasi edi. Men kompaniyaga va uning maqsadlariga erishish qobiliyatiga to'liq ishongandek tuyulganimni angladim, lekin aslida men boshqalar bilan butunlay boshqacha tarzda gaplashdim va muloqot qildim. Ishlayotgan loyihamga shubha bilan qaragan bo‘lsam ham, hamkasblarimga o‘z his-tuyg‘ularimni ko‘rsatmaslik va pessimizmni yuqumli kasallik kabi tarqatmaslik, muvaffaqiyatga erishish imkoniyatini kamaytirmaslik kerakligini ham angladim. Buning o'rniga men rahbariyatga haqiqiy vaziyatni agressiv tarzda etkazishim mumkin edi. Va agar ular meni tinglashmayotganini his qilsam, kompaniyani tark etish orqali o'z noroziligimni bildirishim mumkin edi.

Men kadrlarni baholash bo'limi boshlig'i lavozimini egallaganimda yangi imkoniyatga ega bo'ldim. Sobiq bosh muhandis sifatida men (doimiy takomillashib borayotgan) eski kodimiz haqida o‘z fikrimni bildirishga juda ehtiyotkorman. O'zgartirishni ma'qullash uchun siz hozirgi vaziyatni tasavvur qilishingiz kerak, lekin agar siz nola, hujum yoki shunga o'xshash narsalar bilan ovora bo'lsangiz, hech qanday joyga erisha olmaysiz. Oxir-oqibat, men vazifani bajarish uchun keldim va uni tushunish, baholash yoki tuzatish uchun kod haqida shikoyat qilmasligim kerak.

Darhaqiqat, kodga bo'lgan hissiy munosabatimni qanchalik ko'p nazorat qilsam, u nima bo'lishi mumkinligini shunchalik ko'p tushunaman va men shunchalik kamroq chalkashliklarni his qilaman. Men o'zimni vazminlik bilan ifodalaganimda ("bu erda yanada yaxshilash uchun joy bo'lishi kerak"), men o'zimni va boshqalarni xursand qildim va vaziyatni jiddiy qabul qilmadim. To'liq (bezovta qiladimi?) oqilona bo'lish (“siz haqsiz, bu kod juda yomon, lekin biz uni yaxshilaymiz”) orqali boshqalardagi salbiylikni rag'batlantirish va kamaytirishim mumkinligini angladim. Zen yo'lida qanchalik uzoqqa borishim mumkinligini ko'rganimdan xursandman.

Aslini olganda, men doimo muhim saboqni o'rganyapman va qayta o'rganyapman: hayot doimo g'azablanish va azob chekish uchun juda qisqa.

Kodga g'azab: dasturchilar va salbiy

Manba: www.habr.com

a Izoh qo'shish