
Go kodunu GitHub-a bağlamayın: modul yolunu öz domeninizə keçirin
Go-da import yolu eyni zamanda kodun endirildiyi ünvandır, ona görə git hostunu dəyişmək bütün importları yenidən yazmağı tələb edir. Mühəndis Iain Cambridge öz domenini təklif edir.
Go-nun proqramlaşdırma dilləri arasında qeyri-adi bir xüsusiyyəti var: paketin import yolu eyni zamanda alətlərin kodunu endirdiyi ünvandır. Kitabxana github.com/example/thing ünvanında yerləşirsə, bu sətir onu import edən hər faylda eynilə görünür. 27 sentyabr 2026-cı ildə dərc olunan yazıda mühəndis Iain Cambridge deyir ki, bu rahatlıq Go layihəsini səssizcə bir hostinq provayderinə bağlayır və komandalar modulları öz domenləri altında yerləşdirməlidir.
Bağlılıq haradan yaranır
Problemin özəyi bundadır: git hostunun ünvanı modul yoluna çevrilir və kod həmin hosta bağlanır. Repozitoriyanı GitLab-a, Codeberg-ə və ya öz serverinizə köçürsəniz, köhnə ünvanı çəkən hər import yolu, go.mod sətri və replace direktivi yenidən yazılmalıdır, əks halda alətlər köhnə nüsxəni endirməyə davam edir. Müəllif yazır ki, keçid xərci o qədər böyükdür ki, şirkətlər bu işdən tamamilə imtina edir və kod GitHub-a bağlı qalır.
O, eyni vaxtda GitLab, GitHub və Azure DevOps üzərində çalışan bir şirkətdən bəhs edir. Kodu köçürmək o qədər böyük iş idi və komandanın o qədər az vaxtı vardı ki, üç platformanı paralel saxlamaq birləşdirməkdən asan göründü. Nəticə konkret idi: şirkət eyni anda üç hostinq xidmətinə pul ödəyirdi. Cambridge-in sözlərinə görə, məhz bu təcrübə onu iskelet kodu bir neçə git hostinq platformasında eyni vaxtda təkrarlayan Boneclone alətini yazmağa sövq edib.
Həll modulları öz domeniniz altında dərc etməkdir; go.uber.org, go.mongodb.org və müəllifin özü go.iain.rocks da bu sxemdən istifadə edir. Import yolu domendir və onun arxasındakı eyni ünvan kodun hazırda yerləşdiyi yerə işarə edə bilər. go.iain.rocks/boneclone bu gün github.com/thetrueares/boneclone ünvanına yönəlir və repozitoriya GitLab-a köçsəydi, istifadəçilər paketi eyni əmrlə quraşdırar və heç nə fərq etməzdilər. Müəllifin fikrincə, Go istifadə edən hər kommersiya proqram təminatı komandası daxili kitabxanalarını və paketlərini məhz belə adlandırmalıdır.
Domen sizindir, host deyil
Mexanizm dilin özünə hopdurulub: alət yolu go-get=1 sorğu parametri ilə istədikdə server depo ünvanını göstərən go-import meta teqi olan kiçik HTML səhifəsi qaytarır. Müəllifdə qeyd belədir: go.iain.rocks/boneclone git https://github.com/that-guy-iain/boneclone və yanında redaktorlara fayl keçidləri qurmağa kömək edən go-source teqi var. Onun Nginx konfiqurasiyası bu səhifəni Go alətinə verir, go-get=1 göndərməyən insan ziyarətçiləri isə 301 kodu ilə GitHub-a yönləndirir.
Konfiqurasiya necə görünür
Eyni vəziyyət CI və demək olar ki, toxunulmayan issue şablonlarına da aiddir: provayderdən asılı nişanlar, sərt yazılmış URL-lərdən qurulan avtomatik yoxlamalar və sənədlərə yazılmış keçidlər ayrıca düzəliş tələb edir. Öz domeniniz bu işin böyük hissəsini əvvəlcədən aradan qaldırır və provayder dəyişikliyi bir meta teqin və bir yönləndirmə hədəfinin redaktəsinə çevrilir.
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.