دليل عملي لوحدات ES6

وحدات ES6

أحد التحديات الرئيسية عند إنشاء تطبيق ويب هو مدى السرعة التي يمكنك بها تلبية احتياجات السوق والاستجابة لها. عندما يزداد الطلب (المتطلبات) ، تزداد الإمكانات (الميزات) أيضًا. لذلك من المهم أن يكون لديك بنية معمارية صلبة بحيث ينمو التطبيق عضويا. لا نريد أن ينتهي الأمر في المواقف التي لا يمكن للتطبيق فيها التوسع لأن كل شيء في التطبيق متشابك بشدة.

اكتب رمزًا يسهل حذفه ، وليس من السهل تمديده.
- Tef ، البرمجة أمر فظيع

في هذه المقالة ، سنقوم بإنشاء لوحة معلومات بسيطة باستخدام الوحدات النمطية ES6 ، ثم تقديم تقنيات التحسين لتحسين بنية المجلد وتخفيف كتابة التعليمات البرمجية الأقل. دعنا نرى الغوص في أهمية وحدات ES6 ، وكيفية تطبيقها بشكل فعال.

جافا سكريبت لديها وحدات لفترة طويلة. ومع ذلك ، تم تنفيذها عن طريق المكتبات ، وليس في صلب اللغة. ES6 هي المرة الأولى التي يحتوي فيها JavaScript على وحدات مدمجة (المصدر).

TL ؛ DR - إذا كنت تريد أن ترى مثالًا عمليًا حيث نقوم بإنشاء لوحة معلومات باستخدام وحدات ES6 من تخطيط التصميم المعماري ، انتقل إلى القسم 4.

إليك ما سنتطرق إليه

  1. لماذا هناك حاجة إلى وحدات ES6
  2. مرة أخرى في الأيام التي تم فيها تحميل البرامج النصية يدويا
  3. كيف تعمل وحدات ES6 (الاستيراد مقابل التصدير)
  4. دعنا نبني لوحة القيادة مع وحدات
  5. تقنيات التحسين على سبيل المثال لوحة القيادة
إذا كنت تريد أن تصبح مطور ويب أفضل ، أو أن تبدأ مشروعك التجاري الخاص ، أو تعلم الآخرين ، أو تحسن مهاراتك في التطوير ، فسوف أقوم بنشر نصائح وحيل أسبوعية على أحدث لغات الويب.

1. لماذا هناك حاجة إلى وحدات ES6

لننظر إلى عدة سيناريوهات حول سبب ارتباط الوحدات النمطية.

السيناريو 1 - لا تعيد اختراع العجلة

كمطورين ، نقوم غالبًا بإعادة إنشاء الأشياء التي تم إنشاؤها بالفعل دون أن نكون على علم ، أو نسخ ولصق الأشياء لتقليل الوقت. في النهاية ، يتم إضافته ، ويترك لدينا عدد x من النسخ المتطابقة المنتشرة في جميع أنحاء التطبيق. وفي كل مرة نحتاج فيها إلى تغيير شيء ما ، يجب أن نفعل ذلك x مرات بناءً على عدد النسخ التي لدينا.

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

السيناريو 2 - حاجز المعرفة

إذا كان النظام متشابكًا بشدة ، ونقص الوثائق ، فمن الصعب على المطورين القدامى / الجدد تعلم كيفية عمل التطبيق ، وكيف ترتبط الأشياء.

مثال
على سبيل المثال ، يجب أن يكون المطور قادرًا على معرفة نتائج التغيير دون تخمين ، وإلا فإننا ننتهي بالكثير من الأخطاء دون معرفة من أين نبدأ. أحد الحلول هو استخدام الوحدات النمطية لتضمين السلوك ، يمكننا بسهولة تضييق نطاق عملية التصحيح وتحديد جذر المشكلة بسرعة.

لقد كتبت مؤخرًا مقالًا عن "المطورين الذين يرغبون دائمًا في تعلم أشياء جديدة" ، مع نصائح حول كيفية تحسين المعرفة.

السيناريو 3 - سلوك غير متوقع

عن طريق تجنب الفصل بين الاهتمامات (مبدأ التصميم) ، يمكن أن يؤدي إلى سلوك غير متوقع.

مثال
على سبيل المثال ، دعنا نقول أن شخصًا ما يزيد من مستوى الصوت في السيارة ، ويبدأ مساحات الزجاج الأمامي. هذا مثال على سلوك غير متوقع ، وليس شيئًا نريده في تطبيقنا.

باختصار ، نحتاج إلى وحدات ES6 من أجل إعادة استخدام السلوك الداخلي والحفاظ عليه وفصله وتغليفه بشكل فعال عن السلوك الخارجي. الأمر لا يتعلق بجعل النظام معقدًا ، ولكن القدرة على توسيع نطاق وحذف الأشياء بسهولة دون كسر النظام.

2. العودة في الأيام التي تم فيها تحميل البرامج النصية يدويا

إذا كنت قد قمت بتطوير الويب لمدة عامين ، فمن المؤكد أنك واجهت تعارضات في التبعية مثل البرامج النصية التي لم يتم تحميلها بالترتيب الصحيح ، أو أن JS لا يمكن الوصول إلى عناصر شجرة DOM.

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

على سبيل المثال ، إذا حاولت الوصول إلى عنصر داخل العلامة باستخدام document.getElementById ("id-name") ولم يتم تحميل العنصر بعد ، فستحصل على خطأ غير معروف. للتأكد من أن البرامج النصية يتم تحميلها بشكل صحيح ، يمكننا استخدام تأجيل ومتزامن. السابق سوف يتأكد من أن كل برنامج نصي يتم تحميله بالترتيب الذي يظهر به ، بينما يقوم الأخير بتحميل البرنامج النصي كلما توفر.

كانت الطريقة القديمة لحل هذه المشكلة هي تحميل البرامج النصية قبل العنصر مباشرة.

ولكن على المدى الطويل ، يزيد عدد البرامج النصية وقد ينتهي بنا الأمر إلى أكثر من 10 نصوص بينما نحاول الحفاظ على تعارضات الإصدار والتبعية.

الفصل بين المخاوف

بشكل عام ، لا يعتبر تحميل البرامج النصية كما هو موضح أعلاه فكرة جيدة من حيث الأداء والتبعيات وقابلية الصيانة. لا نريد أن يتحمل ملف index.html مسؤولية تحميل جميع البرامج النصية - نحتاج إلى نوع من الهيكل وفصل المنطق.

يكمن الحل في استخدام بناء الجملة وبيانات الاستيراد والتصدير الخاصة بـ ES6 ، وهي طريقة أنيقة وسهلة الصيانة تتيح لنا الحفاظ على فصل الأشياء ، وهي متاحة فقط عندما نحتاج إليها.

بيانات الاستيراد والتصدير

يتم استخدام الكلمة الأساسية للتصدير عندما نريد توفير شيء ما في مكان ما ، ويتم استخدام الاستيراد للوصول إلى ما وفره التصدير.

قاعدة الإبهام هي ، من أجل استيراد شيء ما ، تحتاج أولاً إلى تصديره.

وماذا يمكننا فعلا تصدير؟

  • متغير
  • كائن حرفي
  • صف
  • وظيفة
  • ++

لتبسيط المثال كما هو موضح أعلاه ، يمكننا التفاف جميع البرامج النصية ملف واحد.

وبعد ذلك فقط قم بتحميل البرنامج النصي app.js في index.html. لكن أولاً ، لكي نجعلها تعمل ، نحتاج إلى استخدام type = "module" (source) حتى نتمكن من استخدام الاستيراد والتصدير للعمل مع الوحدات النمطية.

كما ترون ، فإن index.html هو المسؤول الآن عن برنامج نصي واحد ، مما يسهل الحفاظ عليه وتوسيع نطاقه. باختصار ، يصبح البرنامج النصي app.js نقطة دخولنا التي يمكننا استخدامها لتمهيد تطبيقنا.

ملاحظة: لا أوصي بتحميل جميع البرامج النصية في ملف واحد مثل app.js ، باستثناء تلك التي تتطلبها.

الآن وقد رأينا كيف يمكننا استخدام عبارات الاستيراد والتصدير ، دعونا نرى كيف تعمل عند العمل مع الوحدات النمطية في الممارسة العملية.

3. كيف تعمل وحدات ES6

ما الفرق بين الوحدة والمكون؟ الوحدة النمطية عبارة عن مجموعة من الوحدات المستقلة الصغيرة (المكونات) التي يمكننا إعادة استخدامها في تطبيقنا.

ما هو الغرض؟

  • تغليف السلوك
  • من السهل العمل مع
  • من السهل الحفاظ عليها
  • سهل الحجم

نعم ، يجعل التنمية أسهل!

فما هو المكون حقا؟

قد يكون مكون متغير ، وظيفة ، فئة وما إلى ذلك. بمعنى آخر ، كل ما يمكن تصديره بواسطة بيان التصدير هو مكون (أو يمكنك تسميته بلوك ، وحدة ، إلخ).

ما هو المكون

فما هي الوحدة النمطية حقا؟

كما ذكر ، وحدة نمطية هي عبارة عن مجموعة من المكونات. إذا كان لدينا العديد من المكونات التي تتصل ، أو ببساطة يجب أن تظهر معًا من أجل تكوين كلي متكامل ، فأنت على الأرجح بحاجة إلى وحدة نمطية.

ما هي الوحدة

إنه تحد لجعل كل شيء قابلة لإعادة الاستخدام

قال مهندس رئيسي يتمتع بخبرة تزيد عن 30 عامًا في الهندسة الكهربائية ، لا يمكننا أن نتوقع إعادة استخدام كل شيء نظرًا للوقت والتكلفة وليس المقصود إعادة استخدام كل شيء. من الأفضل إعادة الاستخدام إلى حد ما بدلاً من توقع إعادة استخدام الأشياء بنسبة 100٪.

بشكل عام ، فهذا يعني أنه لا يتعين علينا جعل كل شيء قابلاً لإعادة الاستخدام في التطبيق. بعض الأشياء مخصصة فقط لاستخدامها مرة واحدة. قاعدة الإبهام هي أنه إذا كنت بحاجة إلى شيء أكثر من مرتين ، فربما من الجيد إنشاء وحدة نمطية أو مكون.

في البداية ، قد يبدو من السهل جعل شيء قابلاً لإعادة الاستخدام ، ولكن تذكر أنه يتطلب إخراج المكون من بيئته ، ويتوقع أن يعمل في بيئة أخرى. لكن في بعض الأحيان ، يتعين علينا تعديل أجزاء منه لجعلها قابلة لإعادة الاستخدام بالكامل ، وقبل أن تعرف ذلك ، قمت بإنشاء مكونين جديدين.

كتب أنطوان مقالاً يصف 3 قواعد أساسية لإنشاء مكونات JS قابلة لإعادة الاستخدام ، والتي يوصى بقراءتها. عندما قدم VueJS إلى فريقه ، يقول زميل في العمل ذو خبرة:

هذا رائع من الناحية النظرية ، لكن في تجربتي ، لا يتم إعادة استخدام هذه الأشياء الرائعة "القابلة لإعادة الاستخدام".

والفكرة هي أنه لا ينبغي إعادة استخدام كل شيء ، مثل الأزرار وحقول الإدخال وخانات الاختيار وما إلى ذلك. تتطلب مهمة صنع شيء ما قابلة لإعادة الاستخدام موارد ووقتًا ، وغالبًا ما ينتهي بنا المطاف بسيناريوهات مفرطة في التفكير لن تحدث أبدًا.

يقول جويل سبولسكي ، المدير التنفيذي لـ Stack Overflow:

حل جيد بنسبة 50٪ يواجهه الأشخاص فعليًا ويحل أكثر من 99٪ من الحلول التي لا يملكها أحد لأنها موجودة في معملك حيث تقوم بتلميع الأشياء التي لا تنتهي. الشحن ميزة. ميزة مهمة حقا. يجب أن يكون المنتج الخاص بك.

4. دعنا نبني لوحة القيادة مع وحدات

الآن وقد أصبح لدينا فهم أساسي لكيفية عمل الوحدات النمطية ، فلننظر إلى مثال عملي ستواجهه على الأرجح عند العمل باستخدام أطر عمل JS. سنقوم بإنشاء لوحة معلومات بسيطة باتباع تصميم معماري يتكون من تخطيطات ومكونات.

يمكن العثور على رمز المثال هنا.

الخطوة 1 - تصميم ما تحتاجه

في معظم الحالات ، يمكن للمطورين القفز مباشرة إلى الرمز. ومع ذلك ، يعد التصميم جزءًا مهمًا من البرمجة ويمكن أن يوفر لك الكثير من الوقت والصداع. تذكر ، لا ينبغي أن يكون التصميم مثاليًا ، ولكن الشيء الذي يقودك إلى الاتجاه الصحيح.

لذلك هذا هو ما نحتاج إليه بناءً على التصميم المعماري.

  • المكونات: users.js ، user-profile.js و issues.js
  • التخطيطات: header.js و sidebar.js
  • لوحة القيادة: dashboard.js

سيتم تحميل جميع المكونات والتخطيطات في dashboard.js ومن ثم سنقوم بتمهيد dashboard.js في index.js.

التصميم المعماري للوحة القيادة لدينا

فلماذا لدينا مجلد تخطيطات ومكونات؟

التصميم شيء نحتاجه مرة واحدة ، على سبيل المثال قالب ثابت. قد يتغير المحتوى الموجود داخل لوحة المعلومات ، لكن الشريط الجانبي والرأس سيبقيان كما هو (وتُعرف هذه باسم التخطيطات). يمكن أن يكون التخطيط إما صفحة خطأ أو تذييل الصفحة أو صفحة الحالة وما إلى ذلك.

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

من المهم أن يكون لديك بنية أرضية صلبة عند التعامل مع الوحدات. من أجل القياس الفعال ، يجب أن يكون للمجلدات أسماء معقولة تجعل من السهل تحديد موقع الأشياء والتصحيح.

في وقت لاحق ، سأوضح لك كيفية إنشاء واجهة ديناميكية ، والتي تتطلب وجود مساحة مجلد للمكونات والتخطيطات التي نحتاجها.

الخطوة 2 - إعداد بنية المجلد

كما ذكرنا ، لدينا 3 مجلدات رئيسية: لوحة القيادة ، والمكونات والتخطيطات.

- لوحة القيادة
- المكونات
- تخطيطات
index.html و
index.js (نقطة الدخول)

وفي كل ملف داخل المجلد ، نقوم بتصدير فصل.

- لوحة القيادة
    dashboard.js
- المكونات
    issues.js
    المستخدم profile.js
    users.js
- تخطيطات
    header.js
    sidebar.js
index.html و
index.js (نقطة الدخول)

الخطوة 3 - التنفيذ

تم تعيين بنية المجلد بالكامل ، وبالتالي فإن الأمر التالي هو إنشاء المكون (فئة) في كل ملف ثم تصديره. اصطلاح الشفرة هو نفسه بالنسبة لبقية الملفات: كل مكون عبارة عن فئة ، وطريقة تعزية "مكون x محملة" حيث x هو اسم المكون للإشارة إلى أنه تم تحميل المكون.

لنقم بإنشاء فئة مستخدمين ثم تصديرها كما هو موضح أدناه.

لاحظ ، لدينا خيارات مختلفة عند التعامل مع بيان التصدير. وبالتالي فإن الفكرة هي أنه يمكنك إما تصدير مكونات فردية أو مجموعة من المكونات. على سبيل المثال ، إذا قمنا بتصدير الفصل ، فيمكننا الوصول إلى الطرق المعلنة بداخله عن طريق إنشاء مثيل جديد للفئة.

حسنًا ، لذلك إذا نظرت إلى الرسم التخطيطي في الخطوة 1 ، ستلاحظ أن مكون ملف تعريف المستخدم يتم تغليفه بواسطة تخطيط الرأس. هذا يعني أنه عندما نقوم بتحميل تخطيط الرأس ، فإنه سيتم أيضًا تحميل مكون ملف تعريف المستخدم.

الآن وبعد أن أصبح لكل مكون وتخطيط فئة تم تصديرها ، فإننا نستوردها في ملف لوحة المعلومات كما يلي:

لفهم ما يجري بالفعل في ملف لوحة المعلومات ، نحتاج إلى إعادة النظر في الرسم في الخطوة 1. باختصار ، نظرًا لأن كل مكون عبارة عن فئة ، يجب علينا إنشاء مثيل جديد ثم تعيينه إلى كائن. ثم نستخدم الكائن لتنفيذ الأساليب كما هو موضح في الأسلوب loadDashboard ().

حاليًا ، لا يخرج التطبيق أي شيء لأننا لم ننفذ طريقة loadDashboard (). لجعلها تعمل ، نحتاج إلى استيراد وحدة لوحة المعلومات في ملف index.js مثل هذا:

ثم إخراج وحدة التحكم:

مكونات ES6 تحميلها

كما هو موضح ، كل شيء يعمل والمكونات تحميل بنجاح. يمكننا أيضًا المضي قدمًا وإنشاء حالتين ثم القيام بشيء من هذا القبيل:

الذي ينتج نفس الشيء كما هو موضح أعلاه ، ولكن بما أننا في حالات جديدة ، نحصل على النتائج مرتين.

حالتان فريدتان من لوحة القيادة

بشكل عام ، يتيح لنا ذلك الحفاظ بسهولة على الوحدة النمطية وإعادة استخدامها في الملفات المطلوبة دون التدخل في الوحدات النمطية الأخرى. نحن فقط إنشاء مثيل جديد الذي تغليف المكونات.

ومع ذلك ، كما ذكرنا سابقًا ، كان الغرض هو تغطية ديناميكية كيفية العمل مع الوحدات النمطية والمكونات باستخدام عبارات الاستيراد والتصدير.

في معظم الحالات عند العمل مع أطر عمل JS ، عادة ما يكون لدينا مسار يمكنه تغيير محتوى لوحة القيادة. في الوقت الحالي ، يتم تحميل كل شيء مثل التخطيطات في كل مرة نقوم فيها باستدعاء أسلوب loadDashboard () الذي لا يمثل طريقة مثالية.

5. تقنيات التحسين على سبيل المثال لوحة القيادة

الآن وبعد أن أصبح لدينا فهم أساسي لكيفية عمل الوحدات ، فإن النهج ليس قابلاً للتطوير أو الحدس عندما نتعامل مع التطبيقات الكبيرة التي تتكون من الكثير من المكونات.

نحتاج إلى شيء يعرف بالواجهة الديناميكية. يسمح لنا بإنشاء مجموعة من المكونات التي نحتاجها ، والوصول إليها بسهولة. إذا كنت تستخدم Visual Studio Code ، فسوف يعرض لك IntelliSense المكونات المتاحة ، والمكونات التي استخدمتها بالفعل. هذا يعني أنه ليس عليك فتح المجلد / الملف يدويًا لمعرفة المكونات التي تم تصديرها.

لذلك إذا كان لدينا وحدة نمطية تحتوي على 20 مكونًا ، فلا نريد استيراد كل مكون بسطر واحد تلو الآخر. نريد ببساطة الحصول على ما نحتاج إليه ، وهذا كل شيء. إذا كنت قد عملت مع مساحات الأسماء بلغات مثل C # أو PHP أو C ++ أو Java ، فستلاحظ أن هذا المفهوم متشابه في طبيعته.

إليك ما نريد تحقيقه:

كما هو موضح ، لدينا خطوط أقل من الشفرة ، وجعلناها إعلانية دون أن تفقد السياق. دعونا نرى التغييرات التي أجريناها.

إنشاء واجهة ديناميكية (تعرف أيضًا باسم البراميل)

تسمح لنا الواجهة الديناميكية بإنشاء مجموعة من الأشياء التي نحتاجها. يشبه إنشاء مربع أدوات باستخدام أدواتنا المفضلة. شيء واحد هو المهم أن نذكر أنه لا ينبغي إضافة واجهة ديناميكية في كل مجلد واحد ، ولكن إلى المجلدات التي تتكون من العديد من المكونات.

أنها تبسط الواردات وجعلها تبدو أكثر وضوحا. لا نريد فقط أن يكون لدينا عدد كبير جدًا من ملفات الملفات لأن ذلك يؤدي إلى نتائج عكسية وعادة ما يؤدي إلى مشكلات التبعية الدائرية التي قد تكون صعبة للغاية في بعض الأحيان.
- ادريان فاسيو

لإنشاء واجهة ديناميكية ، نقوم بإنشاء ملف باسم index.js والذي يوجد في جذر كل مجلد لإعادة تصدير مجموعة فرعية من الملفات أو المكونات التي نحتاجها. نفس المفهوم يعمل في TypeScript ، يمكنك فقط تغيير النوع من .js إلى .ts مثل index.ts.

يعد index.js أول ملف يتم تحميله عندما نصل إلى مساحة المجلد الجذر - إنه نفس المفهوم مثل index.html الذي يرفع محتوى HTML الخاص بنا. هذا يعني أنه ليس علينا أن نكتب بشكل صريح الاستيراد {component} من "./components/index.js" ، ولكن بدلاً من ذلك نستورد {component} من './components.

إليك كيفية ظهور واجهة ديناميكية.

باستخدام واجهة ديناميكية ، ينتهي بنا الأمر بمستوى واحد أقل من الجذر للوصول إلى جانب رمز أقل.

إنشاء مثيل جديد في وقت التشغيل

لقد أزلنا الحالات الأربع في dashboard.js ، وقمنا بدلاً من ذلك بإنشاء مثيل في وقت التشغيل عند تصدير كل مكون. إذا كنت ترغب في تحديد اسم الكائن ، يمكنك القيام بتصدير Dashboard () جديد افتراضيًا ، ثم استيراد dashView دون الأقواس المتعرجة.

كما هو موضح ، يمكننا استدعاء الطريقة مباشرة دون الحاجة إلى إنشاء مثيل جديد ، وكذلك كتابة كود أقل. ومع ذلك ، هذا هو التفضيل الشخصي ويمكنك أن تقرر بحرية ما هي حالة الاستخدام العملي للتطبيق والمتطلبات الخاصة بك.

وأخيراً ، نقوم بتحميل جميع المكونات والتخطيطات باستخدام طريقة واحدة.

خاتمة

لقد بدأت بقصد عرض مثال قصير على كيفية استيراد وتصدير أحد المكونات ، ولكن شعرت بالحاجة إلى مشاركة كل ما أعرفه (تقريبًا). آمل أن توفر لك هذه المقالة نظرة ثاقبة حول كيفية التعامل مع الوحدات النمطية ES6 بفعالية عند إنشاء التطبيقات والأشياء المهمة من حيث الفصل بين الاهتمامات (مبدأ التصميم).

الوجبات السريعة:

  • مع الوحدات النمطية ES6 ، يمكننا بسهولة إعادة استخدام المكونات وفصلها وتغليفها وصيانتها من التغيير بسبب السلوك الخارجي
  • الوحدة النمطية هي مجموعة من المكونات
  • مكون كتلة فردية
  • لا تحاول جعل كل شيء قابلاً لإعادة الاستخدام لأنه يتطلب وقتًا وموارد ، وفي أغلب الأحيان لا نعيد استخدامه
  • قم بإنشاء مخطط معماري قبل الغوص في الكود
  • من أجل إتاحة المكونات في ملفات أخرى ، يجب علينا أولاً التصدير ثم الاستيراد
  • باستخدام index.js (نفس المفهوم لـ indexScript index.ts) ، يمكننا إنشاء واجهات ديناميكية (برميل) للوصول بسرعة إلى الأشياء التي نحتاج إليها باستخدام رمز أقل ومسارات هرمية أقل
  • يمكنك تصدير مثيل جديد في وقت التشغيل باستخدام export let objectName = new ClassName ()

والخبر السار هو أن الأمور قد تغيرت وأننا نتحرك نحو نموذج قائم على المكونات وقابل لإعادة الاستخدام. والسؤال هو كيف يمكننا إعادة استخدام ليس فقط رمز JS العادي ، ولكن أيضًا عناصر HTML بطريقة عملية وبديهية. يبدو أن وحدات ES6 المدمجة مع مكونات الويب قد توفر لنا فقط ما نحتاج إليه لإنشاء تطبيقات فعالة وقابلة للتطوير.

إليك بعض المقالات التي كتبت حول النظام الإيكولوجي للويب إلى جانب نصائح وحيل البرمجة الشخصية.

  • مقارنة بين الزاوي و التفاعل
  • عقل الفوضى يؤدي إلى رمز الفوضى
  • المطورين الذين يرغبون باستمرار في تعلم أشياء جديدة
  • تعلم هذه المفاهيم الأساسية على شبكة الإنترنت
  • عزز مهاراتك باستخدام طرق جافا سكريبت المهمة هذه
  • البرنامج بشكل أسرع من خلال إنشاء أوامر bash مخصصة

يمكنك أن تجدني على المتوسط ​​حيث أنشر على أساس أسبوعي. أو يمكنك متابعتني على Twitter ، حيث أنشر نصائح وحيل تطوير الويب ذات الصلة مع قصص مطور الشخصية.

إذا كنت قد استمتعت بهذا المقال وترغب في الحصول على المزيد من هذه المقالات ، فالرجاء التصفيق (❤) ومشاركتها مع الأصدقاء أو الزملاء ، إنها كارما جيدة.