کد Go خود را با GitHub جفت نکنید
آدرس مقاله: https://iain.rocks/blog/dont-couple-your-go-code-to-github آدرس نظرات: https://news.ycombinator.com/item?id=49868404 امتیاز: 162 # نظرات: 80
یکی از ویژگیهای خوب Go این است که برای دریافت کد، کد خود را با مکان نامگذاری میکنید. این بدان معناست که اگر کد Go خود را در http://github.com/thetrueares/boneclone میزبانی کنید، وارد خط "github.com/thetrueares/boneclone" خواهید شد و Go آن را با استفاده از git واکشی می کند. این امر باعث میشود که بدانید برای گزارش اشکالات کتابخانههای منبع باز به کجا مراجعه کنید و دریافت و توزیع کتابخانههای go بدون سیستم مدیریت بسته متمرکز بسیار آسان است.
برای بسیاری، این به معنای واقعی کلمه محل میزبانی گیت است، اما این دارای معایبی است، و شما باید از دامنه سفارشی خود استفاده کنید، و من دلیل آن را توضیح خواهم داد.
مشکل اصلی استفاده از مکان میزبانی git شما این است که کد شما اکنون به یک ارائه دهنده میزبانی متصل شده است. یعنی اگر میزبانی git خود را به GitLab منتقل کنید، باید کد خود را تغییر دهید! در غیر این صورت، وریسون قدیمی را دریافت خواهید کرد. این می تواند باعث شود که نتوانید ارائه دهنده میزبانی git را تغییر دهید زیرا مقدار سربار در سوئیچینگ وجود دارد. بنابراین به معنای واقعی کلمه کد خود را با GitHub همراه می کنید. که به نظر کاملا مهلک به نظر می رسد، اما چیزی است که تقریبا در جامعه Go وجود دارد.
من دیدهام که این مشکل برای شرکتهایی که همزمان از GitLab، GitHub و Azure Devops استفاده میکردند، به یک مشکل بزرگ تبدیل شده است، زیرا تغییر مکان کد برای آنها آنقدر کار بزرگی بود و «زمان» نداشتند که کار کردن روی سه پلتفرم برایشان آسانتر بود. و به همین دلیل است که من Boneclone را برای مدیریت تکثیر کد اسکلت در چندین پلتفرم میزبانی git به طور همزمان ساختم. بنابراین این مشکل به معنای واقعی کلمه برای شرکت هزینه داشت زیرا آنها مجبور بودند برای سه سرویس میزبانی همزمان پرداخت کنند.
راه حل این است که از دامنه های سفارشی مانند go.iain.rocks، go.uber.org، go.mongodb.org، و غیره استفاده کنید. این به شما اجازه می دهد تا جایی که آن دامنه ها به آن اشاره می کنند را تغییر دهید. به عنوان مثال، go.iain.rocks/boneclone به github.com/thetrueares/boneclone اشاره می کند و اگر من به GitLab منتقل شوم هیچ چیز برای کاربران نهایی تغییر نمی کند، دستور install یکسان است.
به نظر من، هر تیم توسعه نرمافزار تجاری که از Go استفاده میکند باید از دامنههای سفارشی برای فاصلهگذاری نام کتابخانهها و بستههای داخلی خود استفاده کند. زیرا این یک راه آسان برای جلوگیری از هر گونه جفت بیهوده است.
در اینجا یک کپی از تنظیمات من است تا بتوانید آن را برای پروژه های خود نیز تنظیم کنید.
متن اصلی (انگلیسی)
Don't couple your Go code to GitHub
Article URL: https://iain.rocks/blog/dont-couple-your-go-code-to-github Comments URL: https://news.ycombinator.com/item?id=49868404 Points: 162 # Comments: 80