# مقال تقني: مسار الـ import في Go يربط الكود باسم منصة الاستضافة ويجعل الانتقال عنها مكلفًا

> **المغزى:** في Go يكتب اسم منصة الاستضافة نفسه داخل كود كل من يعتمد على المكتبة. والتحرر منه اليوم يكلف بضعة أسطر إعداد، وبعد سنة يكلف تعديل كل مشروع يستخدمها.

- المصدر: المغزى (https://almaghza.com/a/2026-09-28-go-vanity-import-paths-github/)
- التاريخ: 17 ربيع الآخر - 28 سبتمبر 2026 (2026-09-28)
- القسم: برمجيات
- الوسوم: Go، GitHub، الارتباط بالمزوّد، المصادر المفتوحة

نُشر في 27 سبتمبر 2026 مقال بعنوان Don't couple your Go code to GitHub، وحصد 255 نقطة على Hacker News في اليوم نفسه. وموضوعه سطر يكتبه كل مبرمج Go في أول ملفاته: import "github.com/...".

والفكرة أن هذا السطر ليس عنوان مكان الكود فقط، بل هو اسمه أيضًا. ففي Go يؤدي مسار الـ import دورين في الوقت نفسه: هو الـ namespace الذي تُعرَّف به الحزمة، وهو المكان الذي تُنزَّل منه.

والنتيجة أن اسم شركة الاستضافة يُكتب داخل كود المكتبة، وداخل كود كل من استخدمها. فحين يريد صاحب المكتبة نقلها إلى منصة أخرى، لا ينقل repo فحسب، بل يضطر إلى تغيير كل سطر import في كل مشروع يعتمد عليه.

ويروي الكاتب حالة حقيقية لشركة ظلت تعمل على 3 منصات في وقت واحد وتدفع للثلاث، لأن نقل الكود كان أكبر من أن تنفذه.

والحل موجود منذ زمن ويُسمّى vanity import path، أي أن يحمل مسار الـ import اسم نطاق يملكه صاحب الكود، مثل go.yourdomain.com/pkg. وآليته بسيطة: حين يطلب الأمر go get هذه الصفحة، يضيف إلى الطلب ?go-get=1، فيعيد الخادم صفحة HTML فيها وسم meta باسم go-import يحدد المكان الحقيقي للـ repo. أما الزائر العادي فيُحوَّل إلى GitHub كالمعتاد.

ويعني ذلك أن الإعداد اليوم لا يتجاوز نحو 10 أسطر في nginx، بينما يصبح التغيير بعد سنة مسألة تمس كل مشروع يستخدم المكتبة. وهو أصغر أشكال الاستقلال التقني: السطر الذي يحدد لمن يتبع الكود.

## المصادر

- [المقال الأصلي: Don't couple your Go code to GitHub](https://iain.rocks/blog/dont-couple-your-go-code-to-github)
- [توثيق Go الرسمي لمسارات الـ import البعيدة](https://pkg.go.dev/cmd/go#hdr-Remote_import_paths)
- [نقاش المقال على Hacker News](https://news.ycombinator.com/from?site=iain.rocks)
