Astro
Astro هي الأداة المفضّلة في حزمة AHA (AHA Stack) لأنها مجرّدة في أنقى صورها، ومليئة في الوقت نفسه بميزات قيّمة.
تمنحك الأساسيات البسيطة التي تستعملها لبناء موقع حديث، مثل التوجيه المعتمد على الملفات (file-based routing)، وعرض Markdown المدمج، ولغة قوالب (template) ممتازة.
تعتمد على JavaScript، فننتهي إلى استعمال لغة واحدة، ونموذج ذهني واحد للغة، عبر الحزمة (stack) كلّها.
إن كنت تعرف خادم تطبيقات ويب كلاسيكيًا آخر مثل Rails أو Django أو Laravel، أو كنت تحبّ بناء خادمك الخاص بلغة Go أو أي شيء آخر، فبإمكانك استعمال ما تشاء.
كل ما تحتاجه هذه الأداة هو القدرة على التعامل مع استجابات HTTP، والتواصل مع قاعدة بيانات عند الحاجة، والردّ بأجزاء HTTP جزئية (HTTP partials).
لكن Astro تتمحور حول JavaScript، وتجعل إضافة إطار عمل أكثر تقدّمًا في جهة العميل إلى صفحات محدّدة سهلةً للغاية إن احتجت إليها. فهي توفّر التوجيه (routing)، وسيلة سهلة للتعامل مع طلبات HTTP، وتملك لغة قوالب جميلة جدًّا تساعدنا على تصميم HTML باستعمال المكوّنات (components) (وليست «مكوّنات الويب» (Web Components)، بل مكوّنات بأسلوب React أو أطر JavaScript الحديثة: وحداتٍ مكتفية بذاتها يمكنك الإشارة إليها كوسم، مثل ``).
وهذه هي الأسباب التي تجعلني أستمتع بـ Astro حقًّا:
- Astro سهلة الاستعمال: إن اضطررت إلى بناء قلعة كاملة في ذهني لأفهم كيف تعمل الأمور، فلن تكون العلاقة بيني وبين تلك الأداة علاقةً سليمة
- Astro مرنة: لديّ احتياجات، وينبغي أن تُصمَّم الأداة بفاعليةٍ لتلبّي احتياجاتي، لتفعل ما أريد (ضمن بعض القيود طبعًا)
- Astro تنمو معك: أكره فكرة أن تكون الأداة محصورة في «تطبيقات ترفيهية» (toy apps) ولا «تتكامل» (scale). لكنني أكره أيضًا فكرة أن تكون الأداة صعبة الاستعمال منذ اللحظة الأولى لأنها «قابلة للتوسّع». ينبغي أن يكون استعمالها ممتعًا على النطاق الصغير، وأن يكون استعمالها ممتعًا كذلك على نطاق (نسبي) أكبر (وليس نطاق Facebook، طبعًا)
اقرأ مقالتي لماذا أستعمل Astro.