# ☠️ GONZO ပရိုဂရမ်ရေးသားခြင်း ကြေညာစာတမ်း ☠️
---
Developer သည် code ၏ အစိတ်အပိုင်းတစ်ခုဖြစ်သည်။ ဘက်မလိုက်သော development ဟူ၍ မရှိပါ။ Software သည် ကိရိယာတစ်ခုမဟုတ်ဘဲ ထိုနေ့ရှိ programmer ၏ စိတ်အခြေအနေ၊ သွေးပေါင်ချိန်နှင့် ဒေါသတို့၏ binary အမှတ်အသားဖြစ်သည်။
ရှုပ်ထွေးမှုသည် သန့်ရှင်းမြင့်မြတ်သည်။ Algorithm တစ်ခု အလွန်ရှင်းလင်းနေပါက သံသယဖြစ်စရာကောင်းသည်။ စစ်မှန်သော gonzo code သည် တောနက်တစ်ခုကဲ့သို့ အန္တရာယ်များ၊ မှောင်မိုက်ပြီး ထောင်ချောက်များ မည်သည့်နေရာတွင်ရှိသည်ကို ဖန်တီးသူသာ သိသည်။
Production server ပေါ်တွင် စမ်းသပ်ခြင်း။ Unit test သည် သူရဲဘောကြောင်သူများနှင့် အုပ်ချုပ်ရေးသမားများ၏ အားကစားဖြစ်သည်။ စစ်မှန်သော gonzo programmer သည် အသုံးပြုသူများ၏ အော်ဟစ်သံများကြားတွင် production ပေါ်၌ တိုက်ရိုက် debugging လုပ်သည်။
Documentation သည် စိတ်ကူးယဉ်ဖြစ်သည်။ Code တွင် ထည့်ထားသော comment များသည် ရှင်းလင်းချက်များမဟုတ်ဘဲ အတွင်းစိတ်တစ်ကိုယ်တော်စကားများ၊ နိုင်ငံရေးကြေညာစာတမ်းများ သို့မဟုတ် အကူအညီတောင်းသံများဖြစ်သည်။ Code ကို နားမလည်သူသည် ၎င်းကို အသုံးပြုရန် မထိုက်တန်ပါ။
Pointer သည် သခင်ဖြစ်သည်။ သင့်ကို မကန့်သတ်သော programming language ကို အသုံးပြုပါ။ Memory ကို တိုက်ရိုက်စီမံခန့်ခွဲခြင်းသည် သင့်လွတ်လပ်ခွင့်၏ အာမခံချက်ဖြစ်သည်။ Safe type များကို အသုံးပြုခြင်းသည် ချည်နှောင်မှုတစ်ခုသာဖြစ်သည်။ မနက်ဖြန်မရှိသကဲ့သို့ memory address များကို အသုံးပြုပါ။ Memory Leak သည် မည်သူမျှမကြားသော သင့်အော်ဟစ်သံဖြစ်သည်။
ကဖိန်းအခြေပြု architecture။ Code အရည်အသွေးသည် သုံးစွဲသော လှုံ့ဆော်ပစ္စည်းပမာဏနှင့် တိုက်ရိုက်အချိုးကျပြီး အိပ်စက်ချိန်နာရီများနှင့် ပြောင်းပြန်အချိုးကျသည်။
Error message ကို အနုပညာအဖြစ်။ Error message သည် မကူညီသင့်ဘဲ ထိတ်လန့်စေသင့်သည်။ Runtime Error တိုင်းတွင် အသုံးပြုသူသည် စက်နှင့် ၎င်း၏ဖန်တီးသူ၏ မထီမဲ့မြင်မှုကို ခံစားရမည်။
ဘယ်တော့မှ မရှင်းလင်းပါနှင့် (Refactor)။ Trance အခြေအနေတွင် တစ်ကြိမ်ရေးခဲ့သမျှသည် သန့်ရှင်းမြင့်မြတ်သည်။ “ပိုလှအောင်” ပြင်မည်ဆိုလျှင် software ၏ ဝိညာဉ်ကို သတ်လိုက်ခြင်းဖြစ်သည်။
Deadline သည် အကြံပြုချက်တစ်ခုသာဖြစ်သည်။ Gonzo programmer သည် နာရီအတိုင်း အလုပ်မလုပ်ဘဲ စိတ်ကူးဉာဏ်နှင့် ထိတ်လန့်မှုလှိုင်းများပေါ်တွင် စီးသည်။ Developer လဲကျသည့်အခါ code ပြီးဆုံးသည်။
Software သည် ခန့်မှန်းမရနိုင်ရမည်။ ကောင်းသော gonzo program တွင် ကျပန်းဖြစ်မှု အနည်းငယ် အမြဲရှိသည်။ Button နှိပ်တိုင်း အတူတူဖြစ်နေပါက ၎င်းသည် ပျင်းစရာ စက်မှုထုတ်ကုန်သာဖြစ်ပြီး အနုပညာမဟုတ်ပါ။
တာဝန်ယူမှုလား။ ဖယ်ထုတ်ထားသည်။ License agreement တွင် အချက်တစ်ချက်သာ ရှိရမည်။ “စတင်လည်ပတ်သွားရင် အဲဒါ သင့်ပြဿနာပဲ။” Developer သည် ဘုရားမဟုတ်ဘဲ စက်ပျက်စီးမှုကို မြင်တွေ့သူသာဖြစ်သည်။
ထွက်ခွာရေးမဟာဗျူဟာ။ Project ပြိုလဲသည့်အခါ မရှင်းပြပါနှင့်။ Git history ကို ဖျက်ပါ၊ hard drive ကို မီးရှို့ပါ၊ mobile signal မရှိသော Mexico ရှိ နေရာတစ်ခုကို ရှာပါ။