الوحدة 5 · كتابة برامج حقيقية
إلى أين بعد ذلك؟
9 دقراءة 3 د
الدرس في لمحة
تراجع ما صار بإمكانك بناؤه بـ JavaScript، وتختار خطوة تالية معقولة بين TypeScript وإطار عمل والاختبارات وإمكانية الوصول، وتخطّط لتدرّب يُبقي مهاراتك في نموّ.
لا فيديو هنا، بل الشيء الحقيقي: درس مكتوب وأمثلة قابلة للتشغيل واختبار وتدريب.
تذكّر الدرس الأول، حين كان console.log(450 + 1200) برنامجًا كاملًا. منذ ذلك الحين بنيت Pocket: تطبيقًا يتحقّق من المدخلات، ويحتفظ ببياناته في كائن state واحد، ويعرض قائمة مصفّاة مع مجاميعها، ويتعامل مع النقرات عبر مستمع مفوَّض واحد، ويحفظ في التخزين، ومنظّمًا في وحدات لكل منها مهمة واضحة. وتعرف أيضًا لماذا تعمل كل قطعة، من حقيقة ما تفعله = إلى الترتيب الذي تنفّذ به حلقة الأحداث الـ callbacks.
هذا الأساس لا تنتهي صلاحيته. أطر العمل تأتي وتذهب؛ أما المتغيّرات والدوال والمصفوفات والكائنات والـ DOM والأحداث والـ promises فهي المادة التي صُنعت منها كلها.
واصل البناء
الخطوة التالية الأكثر فاعلية على الإطلاق هي أن تبني أشياء لم يخبرك أحد كيف تبنيها. بعض الأفكار، مرتّبة بشكل عام من الأسهل إلى الأصعب:
- وسّع Pocket: أضف تاريخًا لكل مصروف وعرضًا لـ “هذا الشهر”؛ وحدّد ميزانية لكل فئة ونبّه حين تقترب منها؛ واسمح للمستخدمين بتعديل مصروف؛ وصدّر البيانات ملفَّ CSV.
- متتبّع عادات: علّم العادات التي أنجزتها كل يوم واعرض سلاسل الأيام المتتالية. يستخدم التواريخ والتخزين والعرض، ولا شيء أكثر.
- تطبيق مسابقات (quiz) يحمّل الأسئلة من ملف JSON باستخدام
fetchويحسب النتيجة. - أعِد بناء موقع صغير تستخدمه: قائمة مهام، أو محوّل وحدات، أو مؤقّت بومودورو.
توقّع أن تتعثّر. التعثّر، ثم البحث في MDN، ثم تصحيح طريقك للخروج، هو المهارة الحقيقية، ولا تنمو إلا بممارستها.
إلى أين من هنا
كل مما يلي يُبنى مباشرة على ما تعرفه الآن، وكل منه يحلّ مشكلة شعرت بها من قبل:
- TypeScript تضيف الأنواع إلى JavaScript، فيصبح وصول نص حيث يتوقّع Pocket عددًا من السنتات خطأً في محرّرك بدلًا من خلل في بيئة الإنتاج. وحين ترتاح معها، تأخذك أنماط TypeScript المتقدّمة إلى أبعد من ذلك بكثير.
- إطار عمل للواجهات مثل React يأخذ نمط “state، ثم update، ثم render” من الدرس السابق ويجعله يتّسع للتطبيقات الكبيرة. ودورة أساسيات React تفترض بالضبط JavaScript التي تعلّمتها للتوّ.
- الاختبارات: دوالك النقية في
expenses.jsمثالية للاختبارات الآلية التي تُثبت أنها تعمل وتظل تعمل. ودورة اختبار تطبيقات JavaScript تبدأ من هناك. - إمكانية الوصول (accessibility): استخدمت التسميات و
aria-invalidوالأزرار الحقيقية؛ ودورة إمكانية الوصول على الويب عمليًا تجعلها عادة في كل واجهة تبنيها. - Git: ابدأ من الآن بحفظ مشاريعك باستخدام Git وGitHub، كي يكون لديك سجلّ لتقدّمك ومعرض أعمال تعرضه.
عادات تستحق الاحتفاظ بها
أبقِ MDN مفتوحًا وأنت تكتب الكود؛ فهو المرجع الذي يستخدمه المطوّرون المحترفون يوميًا. اقرأ كل رسالة خطأ حتى نهايتها قبل أن تبحث عنها. وحين يتصرّف شيء بغرابة، افحص القيم الحقيقية بالطباعة أو بنقطة توقّف قبل أن تغيّر الكود. واكتب دوال صغيرة بأسماء واضحة: فأنت في المستقبل أكثر من سيقرأ كودك على الأرجح.
أهم النقاط
- صار بإمكانك كتابة برامج تمثّل البيانات، وتتخذ القرارات، وتحوّل القوائم، وتحدّث الصفحة، وتتعامل مع المدخلات، وتحفظ البيانات، وتتحدّث إلى الخوادم.
- أسرع طريقة للنموّ من هنا هي بناء مشاريعك الصغيرة الخاصة من أولها إلى آخرها، أكثر من القراءة عن الأدوات الجديدة.
- TypeScript، وإطار عمل مثل React، والاختبارات، وإمكانية الوصول، كلها تُبنى مباشرة على ما علّمته هذه الدورة، وكل منها يحلّ مشكلة صرت تعرفها.
- MDN هو المرجع الذي يجب أن يبقى مفتوحًا أمامك؛ اقرأ رسائل الأخطاء كاملة وصحّح الأخطاء بالأدلة قبل البحث عن إجابات.