مقدمة: لماذا التوثيق مهم لمشروع Kotlin
\n\nكتابة التوثيق ليست مجرد إجراء شكلي، بل هي عنصر أساسي لنجاح مشروع Kotlin. الكود الموثق جيدًا يسرّع عملية دمج المطورين الجدد، ويبسّط الصيانة، ويقلل من عدد الأخطاء. Kotlin، كونه لغة حديثة، يقدم أدوات قوية لإنشاء التوثيق: KDoc (المماثل لـ JavaDoc) وDokka (مولّد التوثيق). في هذه المقالة، سنستعرض الدورة الكاملة لكتابة التوثيق لمشروع Kotlin: من التعليقات في الكود إلى نشر التوثيق الجاهز.
\n\nبغض النظر عما إذا كنت تعمل على مكتبة، API، أو تطبيق داخلي، فإن اتباع أفضل ممارسات التوثيق سيجعل كودك مفهومًا ومتاحًا. لنبدأ بالأساسيات.
\n\nأساسيات KDoc: الصياغة والهيكل
\n\nKDoc هي لغة ترميز لتوثيق كود Kotlin. وهي مبنية على JavaDoc، لكنها مُكيَّفة مع خصائص Kotlin: الأمان من القيم الخالية (null-safety)، دوال الإضافة (extension functions)، الخصائص (properties)، والدوال اللامدا (lambdas). تبدأ تعليقات KDoc بـ /** وتنتهي بـ */.
الهيكل الأساسي لتعليق KDoc
\n\nيتكون كل تعليق KDoc من وصف ووسوم اختيارية. الوسوم الأساسية:
\n\n- \n
@param— وصف معامل الدالة \n @return— وصف القيمة المُعادة \n @throwsأو@exception— وصف الاستثناء \n @see— رابط لعنصر آخر \n @sample— إدراج مثال كود \n @property— وصف خاصية الفئة \n @constructor— وصف المُنشئ \n @receiver— وصف المُستقبل لدوال الإضافة \n
مثال على تعليق KDoc بسيط:
\n\n/**\n * يحسب مضروب عدد معين.\n *\n * يستخدم نهجًا تكراريًا لتجنب تجاوز سعة المكدس.\n * يعمل فقط مع الأعداد الصحيحة غير السالبة.\n *\n * @param n عدد صحيح غير سالب لحساب مضروبه\n * @return مضروب العدد n (n!)\n * @throws IllegalArgumentException إذا كان n < 0\n */\nfun factorial(n: Int): Long {\n require(n >= 0) { "n must be non-negative" }\n var result = 1L\n for (i in 2..n) {\n result *= i\n }\n return result\n}\n\nتوثيق الخصائص والفئات
\n\nبالنسبة للفئات والخصائص، استخدم الوسم @property:
/**\n * يمثل مستخدمًا في النظام.\n *\n * @property id المعرف الفريد للمستخدم\n * @property name الاسم الكامل للمستخدم\n * @property email عنوان البريد الإلكتروني\n * @property isActive علامة نشاط الحساب\n */\ndata class User(\n val id: Long,\n val name: String,\n val email: String,\n val isActive: Boolean = true\n)\n\nتوليد التوثيق باستخدام Dokka
\n\nDokka هي الأداة الرسمية لتوليد توثيق Kotlin. وهي تدعم عدة صيغ للإخراج: HTML، Markdown، Javadoc وJSON. Dokka قادرة على معالجة المشاريع متعددة المنصات (multiplatform) وتعرض بشكل صحيح الهياكل الخاصة بـ Kotlin.
\n\nإعداد Dokka في Gradle
\n\nلإضافة Dokka إلى المشروع، قم بتوصيل الإضافة (plugin) في ملف build.gradle.kts:
plugins {\n id("org.jetbrains.dokka") version "1.9.20"\n}\n\ntasks.dokkaHtml {\n outputDirectory.set(buildDir.resolve("dokka"))\n moduleName.set("My Kotlin Library")\n}\n\ntasks.dokkaJavadoc {\n outputDirectory.set(buildDir.resolve("javadoc"))\n}\n\nبعد ذلك، قم بتنفيذ الأمر ./gradlew dokkaHtml — سيتم توليد التوثيق في المجلد build/dokka.
الإمكانيات المتقدمة لـ Dokka
\n\nتدعم Dokka تخصيص المظهر، تضمين/استبعاد الحزم (packages)، وإضافة صفحات إضافية. مثال على إعداد مع تخصيص