هل تستحق Vanilla JavaScript التعلم؟ إطلاقا.

الغرض من هذا المنشور هو التأكيد على أهمية أساسيات JavaScript لكل مطور للواجهة الأمامية. سأخبرك لماذا يجب أن تكون لديك معرفة جيدة بجافا سكريبت (الفانيليا) النقية. هذا يعني JavaScript بدون أي أطر أو مكتبات إضافية.

سأذكر أيضًا بعض الموارد التي ساعدتني في تعلم هذه الأساسيات.

سبب آخر وراء هذا المنشور هو أن العديد من مطوري الويب الطموحين يميلون إلى تخطي مفاهيم JavaScript الأساسية التعليمية مثل الرفع أو الإغلاق أو النماذج الأولية. يذهبون مباشرة إلى أطر العمل الأكثر سخونة مثل React أو Angular 2. سأوضح لك سبب عدم كون هذا النهج هو الأكثر ملاءمة.

الكل يريد مطورين لديهم معرفة بـ $ {addTheHotFramework}…

لذا ، هل هناك أي سبب يدعو إلى القلق بشأن تعلم Vanilla JavaScript؟

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

أفهم أن غالبية مطوري الويب الطموحين يرغبون في الحصول على وظائف في أسرع وقت ممكن. كنت اريد هذا ايضا

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

... لكن استثمار الوقت في Vanilla JavaScript سيؤتي ثماره على المدى الطويل

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

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

في مثل هذه الظروف ، هل ما زلت تعتقد أن المعرفة بإطار عمل JavaScript معين كافية لمطور الويب؟

أم أنه من الأفضل فهم كيفية عمل اللغة التي تستند إليها جميع هذه المكتبات والأطر؟

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

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

تستند جميع أطر عمل JavaScript والمكتبات بشكل حتمي إلى جوهر Vanilla.

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

خبرة شخصية

منذ وقت ليس ببعيد ، نظرت إلى رحلتي من محامي إلى مطور ويب. لقد مضى 18 شهرًا منذ أن كتبت أول وظيفة لـ JavaScript ، والشهر العاشر لي كمطور محترف للواجهات الأمامية.

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

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

في الوقت الحالي ، أعمل مع حزمة React-Redux. ومع ذلك ، غالبًا ما أواجه مشكلة يمكنني حلها بفضل معرفتي بـ Vanilla JavaScript. ستكون هذه الأخطاء أكثر صعوبة في حلها بمعرفة إطار عمل معين فقط.

لن يعلمك Learning React أو Angular 2 أن الكائنات يتم تمريرها عن طريق المرجع أو كيفية عمل الإغلاق. إن محاولة فهم هذه المفاهيم في ظل التجريدات التي يقدمها إطار العمل أصعب بكثير. هذا يجعل مفاهيم JavaScript البسيطة أكثر صعوبة في الفهم.

علاوة على ذلك ، إذا كنت تعمل مع JSX (React ، Vue ، Inferno) أو TypeScript (Angular 2) ، فلديك طبقة أخرى من التجريد فوقها.

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

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

أعطني شيئًا يمكنني التعلم منه

السؤال الذي قد تطرحه الآن هو "ما هي بعض الموارد الجيدة التي يمكن أن تساعدني في اكتساب معرفة جيدة بـ Vanilla JavaScript؟".

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

ولكن لا يزال هناك بعض الأشياء الجيدة ...

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

مصدر رائع آخر هو سلسلة الكتب التي لا تعرفها JavaScript (YDKJS) لكايل سيمبسون. يعرف كايل حقًا كيفية التدريس. تفسيراته لمفاهيم JavaScript المتقدمة ملائمة للمبتدئين ويغطيها بتعمق. ستمنحك عناوين الكتب مجرد تلميح حول ما سوف تتعلمه. "الصعود والمضي قدمًا" ، "النطاق والإغلاق" ، "النماذج الأولية والكائن هذه" ، "الأنواع والقواعد" ، "عدم التزامن والأداء" ، "ES6 وما بعده". يوجد أيضًا كتاب سابع جديد حول البرمجة الوظيفية في JavaScript.

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

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

دورة فيديو أخرى أجدها مفيدة وهي Javascript: Understanding the Weird Parts تأليف أنتوني أليسيا. يشرح ما يحدث تحت غطاء جافا سكريبت بطريقة ودودة. يغطي المفاهيم المتقدمة مثل الوراثة النموذجية والبرمجة الوظيفية وسلاسل النطاق.

تعلم Vanilla JavaScript الآن

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

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

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

هل يجب أن تتذكر شيئًا واحدًا فقط من هذا المنشور:

ضع في اعتبارك دائمًا أن معرفة Vanilla JavaScript ستساعدك على أن تصبح مطورًا أفضل بكثير. فترة.

إذا أعجبك هذا المقال ، فامنحه بعض التصفيقات. أنا في غاية الامتنان.

تم نشر هذا المنشور في الأصل على مدونتي.

أراك على تويتر؟

ديفيد كوبال (coding_lawyer) | تويتر

أحدث التغريدات من ديفيد كوبال (coding_lawyer). مطور الواجهة الأماميةataccama | محامي سابق | المدون ... twitter.com