MASTRILOالدورة/بناء الملف التنفيذي و تنسيق الكود
MASTRILO

بناء الملف التنفيذي و تنسيق الكود

كانت الأداة التي رأيتها في جولة الفصل الأول ملف واحد يمكن نسخه و تشغيله. أما go run فينفذ كودك ثم ينتهي من دون أن يترك ملف يمكن إرساله.

هذا مناسب أثناء تجربة الكود. لكنك تحتاج إلى ملف يبقى حين تريد تسليم الأداة نفسها.

ملف يبقى

bash
go build

بعد هذا الأمر يظهر في المجلد ملف جديد اسمه jobrunner. شغله مباشرة:

bash
./jobrunner

تحصل على المخرجات نفسها، لكن هذه المرة من ملف موجود، لا من أمر يترجم و ينسى.

الاسم jobrunner لم نختره في سطر الأوامر. بجانب main.go في مشروعك ملف اسمه go.mod و هو بطاقة تعريف المشروع عند Go. في سطره الأول اسم الوحدة (Module):

text
module jobrunner

يأخذ go build اسم الملف الناتج من آخر جزء في هذا الاسم. لو كتبنا يوما module github.com/you/jobrunner، لبقي اسم الملف jobrunner وحده.

و هذا الملف يكتفي بذاته. يمكنك نسخه إلى جهاز آخر من نوع النظام و المعالج نفسيهما فيعمل دون تثبيت Go أو بيئة تشغيل بجانبه. هذا ما قصدناه في جولة الفصل الأول بعبارة "ملف تنفيذي واحد".

شكل واحد للكود

الملف التنفيذي يخرج من كود مصدري يقرأه غيرك و يعدله. و هنا يظهر سؤال يشغل الفرق في لغات كثيرة: كم مسافة للإزاحة و أين يوضع القوس و هل نترك فراغ بعد الفاصلة.

في Go لا يناقش هذا السؤال لأن للغة أداة تحسمه:

bash
go fmt

يعيد go fmt كتابة ملفاتك بالتنسيق القياسي. لا إعدادات تضبطها و لا خيارات تفاضل بينها.

خذ هذا السطر:

go
fmt.Println( "a tiny CLI for running jobs" )

بعد go fmt يصير:

go
fmt.Println("a tiny CLI for running jobs")

المهم أن ما يفعله البرنامج لم يتغير. go fmt يمس الشكل وحده لذلك تشغله متى شئت دون أن تخشى على السلوك. أغلب المحررات تشغله تلقائيا عند الحفظ.

تظهر الفائدة حين تفتح مشروعا بلغة Go لم تكتبه. ستجد فيه التنسيق نفسه الذي اعتدت عليه و لن تحتاج إلى تعلم أسلوب جديد مع كل فريق.

يبقى أمر أخير

هناك go install و هو يبني البرنامج ثم يضعه في مجلد الأدوات الخاص بـ Go. إذا كان هذا المجلد ضمن PATH عندك، استدعيت jobrunner من أي مكان بالاسم وحده، كأي أداة أخرى مثبتة عندك.

نتركه إلى نهاية الدورة، حين يصبح لدينا ما يستحق التثبيت.

التحدي

في المحرر، ملف main.go يعمل لكن تنسيقه غير قياسي: مسافات زائدة و إزاحة غير منتظمة.

في الطرفية، نفذ ما يلي:

  1. go fmt لضبط تنسيق الملف. سيطبع الأمر main.go و هي طريقته في إخبارك بالملفات التي عدلها. لاحظ كيف تغير شكل الملف في المحرر.
  2. go build لإنتاج الملف التنفيذي.
  3. ./jobrunner للتأكد من أنه يطبع:
text
jobrunner v0.1
a tiny CLI for running jobs

بعدها اضغط على زر تشغيل و تحقق لإكمال الدرس.

الخلاصة

تغطي أوامر Go الثلاثة دورة العمل التي نحتاجها الآن. نستخدم go run للتجربة السريعة و go build لإنتاج ملف تنفيذي و go fmt لتنسيق الكود بالشكل القياسي. الأدوات قليلة عمدا مثل اللغة نفسها.

يطبع jobrunner الآن سطرين ثابتين مكتوبين داخل main. ماذا لو أردنا تغيير الإصدار أو عدد المحاولات دون البحث عن كل موضع كتبنا فيه القيمة؟

اختبر معلوماتك

سجّل دخولك للإجابة على الأسئلة وحفظ تقدّمك.

سجّل الدخول
اللوحات
نوع الخط
حجم الخط
أكملت 0 من 69 درس

Getting Started with Go

2.بناء الملف التنفيذي و تنسيق الكود

Learn Go by Building a CLI669 بناء الملف التنفيذي و تنسيق الكودمكافأة إكمال الدرس إضافة إلى نقاط أنشطته. 10 XP. تُمنح المكافأة مرة واحدة فقط.