مقدمة إلى لغة GitHub المختصرة
هل أنت جديد على Github أو تساهم في مشاريع المصادر المفتوحة (open source projects)؟ هل صادفت رسائل قصيرة مثل LGTM، ACK، NACK، وغيرها وتساءلت عن معناها؟ إليك التوضيح الشامل لهذه الاختصارات الشائعة وكيف تُستخدم في عالم تطوير البرمجيات.
أبرز الاختصارات ومعانيها
LGTM— اختصار لـ “looks good to me” (يبدو جيدًا لي). تُستخدم للإشارة إلى أن المراجع قد راجع الكود ويوافق عليه.ACK— اختصار لـ “acknowledgement” (إقرار). تعني الموافقة على التغيير وقبوله.NACK/NAK— اختصار لـ “negative acknowledgement” (إقرار سلبي). تُستخدم للتعبير عن عدم الموافقة على التغيير أو المفهوم المقترح.RFC— اختصار لـ “request for comments” (طلب تعليقات). تُستخدم عند تقديم فكرة تتطلب نقاشًا وملاحظات من المجتمع.WIP— اختصار لـ “work in progress” (العمل قيد التقدم). تُشير إلى أن العمل لم يكتمل بعد ولا ينبغي دمجه (merge) في الفرع الرئيسي (main branch).AFAIK/AFAICT— اختصار لـ “as far as I know / can tell” (على حد علمي / استطاعتي). تُستخدم للتعبير عن معلومة بناءً على المعرفة المتوفرة.IIRC— اختصار لـ “if I recall correctly” (إذا كنت أتذكر بشكل صحيح). تُستخدم عند الإشارة إلى معلومة قد لا تكون مؤكدة تمامًا.IANAL— اختصار لـ “I am not a lawyer” (أنا لست محاميًا). تُستخدم عند مناقشة قضايا الترخيص (licensing issues) أو الجوانب القانونية مع التحذير بأن الرأي ليس قانونيًا رسميًا.
اختصارات متخصصة في مجال العملات المشفرة (Crypto Space)
تستخدم العديد من المشاريع في مجال العملات المشفرة (crypto space) المصطلحات التالية أيضًا، والتي شاعت بفضل لغة الهاكرز في Bitcoin:
Concept ACK— الموافقة على المفهوم العام للتغيير، ولكن لم تتم مراجعة تفاصيل التنفيذ بعد.utACK(ويُعرف أيضًا بـUntested ACK) — الموافقة على التغييرات ومراجعتها، ولكن لم يتم اختبارها فعليًا.Tested ACK— الموافقة على التغييرات بعد مراجعتها واختبارها بنجاح.
سياق الاستخدام: مراجعات الكود ورسائل الالتزام
هذه الإجابات عادة ما تكون جزءًا أساسيًا من عملية مراجعة الكود (code review) ويمكنك العثور عليها في المشاكل (issues) أو طلبات السحب (pull requests) على Github. جدير بالذكر أن +1 يُستخدم كشكل مختصر لـ ACK (وفي كثير من الحالات، Concept ACK). بعد الرسالة الشهيرة “Dear Github”، قدمت المنصة ردود فعل (reactions) مناسبة لتنظيم التعليقات وتقليل الفوضى، وهذا ليس لتحويل Github إلى شبكة اجتماعية.
ستجد أيضًا أن مصطلحات ACK تُدرج في رسائل الالتزام (commit messages)، تمامًا كما يفعل نواة Linux منذ استخدام Git. إليك مثال على رسالة التزام من نواة Linux تتضمن إقرارًا (Acked-by):
Add get_random_long().
Signed-off-by: Daniel Cashman <dcashman@android.com>
Acked-by: Kees Cook <keescook@chromium.org>
Cc: "Theodore Ts'o" <tytso@mit.edu>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: David S. Miller <davem@davemloft.net>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Nick Kralevich <nnk@google.com>
Cc: Jeff Vander Stoep <jeffv@google.com>
Cc: Mark Salyzyn <salyzyn@android.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
للاطلاع على شرح مفصل حول كيفية دمج تغييراتك في نواة Linux، راجع دليل “How to Get Your Change Into the Linux Kernel”.
اختصارات أخرى شائعة في الكود المصدري
تُستخدم إجابات مختصرة مماثلة على نطاق واسع في هندسة البرمجيات (software engineering) ومجتمع المصادر المفتوحة (open source community) لأنها تجعل التواصل أكثر كفاءة. لا بد أنك رأيت المصطلحات التالية في الكود المصدري (source code) — TODO، FIXME، XXX، و NOTE — وتساءلت فقط ماذا يعني XXX؟
إذا كنت مهتمًا برؤية المزيد من الاختصارات مع شرحها وربما القليل من تاريخها، فنوصيك بمراجعة ملف “The Jargon File”. إنه المصدر الموثوق منذ عام 1975.
من أين جاءت ACK/NACK؟
معلومة إضافية: من أين جاءت مصطلحات ACK/NACK؟ يمكن القول إنها جاءت من بروتوكولات الشبكات/الواجهات (networking/interface protocols)، وربما تسبب انتشار بروتوكول TCP في استخدامها على نطاق واسع. تتضمن عملية المصافحة الثلاثية (three-way handshake) في TCP تسلسلًا معروفًا: SYN، SYN/ACK، ACK، متبوعًا بتسلسل إغلاق الاتصال: FIN، ACK، FIN، ACK.
💡 الخلاصة التقنية
تُعد الاختصارات والتعليقات المختصرة جزءًا حيويًا من ثقافة تطوير البرمجيات الحديثة، خاصة في بيئات التعاون مثل GitHub ومشاريع المصادر المفتوحة. إنها لا تقتصر على توفير الوقت فحسب، بل تضمن أيضًا وضوحًا وكفاءة في التواصل بين المطورين خلال مراجعات الكود (code reviews) ورسائل الالتزام (commit messages). فهم هذه المصطلحات يُمكّن المطورين من الاندماج بسلاسة أكبر في المشاريع، ويسرّع من دورات التطوير، ويُعزز من جودة الكود من خلال إشارات واضحة للموافقة، الرفض، أو الحاجة للمزيد من العمل. إن إتقان هذه “اللغة السرية” هو مفتاح للتعاون الفعال في عالم البرمجيات.