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

كُتِب هذا المقال بدعم من برنامج EDISON ، الذي يعتني بصحة المبرمجين ووجبة الإفطار الخاصة بهم ، كما يطور البرامج المخصصة .
مطورو اتخاذ التجريدية أمرا مفروغا منه
كمطورين ، ونحن نعمل مع التجريد. نحن مجردة الكود الذي من شأنه أن يكون خلاف ذلك لتكرارها. لذلك ، عندما نركز على نقاط أكثر أهمية ، فإننا نقبل التجريدات التي نعمل معها كأمر مسلم به ، ونفترض ببساطة أنها تعمل كما ينبغي.
عادة ما يكون الأمر كذلك ، ولكن عندما تصبح الأمور معقدة ، يجب أن تعرف كيف تعمل هذه التجريدات.
استغرق مرشح التنمية العليا التجريد من وعد أمرا مفروغا منه. ربما كان يعرف كيفية العمل معه إذا كان قد التقى بها في مكان ما في قطعة من الشفرة ، لكنه لم يفهم المفهوم وبالتالي لم يستطع إنتاجها في المقابلة.
كان يستطيع فقط تذكر الرمز. إنها ليست بهذه الصعوبة حقًا:
return new Promise((resolve, reject) => { functionWithCallback((err, result) => { return err ? reject(err) : resolve(result); }); });
لقد فعلت ذلك. ربما نحن جميعا نفعل هذا. تتذكر فقط قطعة من التعليمات البرمجية حتى تتمكن من العمل معها. أنت تفهم أكثر أو أقل كيف يعمل هذا.
ولكن إذا كان يفهم هذا المفهوم حقًا ، فلن يحتاج إلى تذكره. وقال إنه ببساطة يعرف هذا ويتكاثر دون أي مشاكل.
تعرف المصدر الخاص بك
في عام 2012 ، قبل أن تهيمن الأطر الأمامية وحكمت jQuery العالم ، قرأت
أسرار جافا سكريبت Ninja بقلم John Rezig ، منشئ jQuery.
سوف يعلمك هذا الكتاب كيفية إنشاء مسج خاص بك من البداية ، ويمنحك فهمًا فريدًا لعمليات التفكير وراء إنشاء هذه المكتبة. على الرغم من سقوط jQuery في الخلفية في السنوات الأخيرة ، إلا أنني أوصي بشدة بقراءة هذا الكتاب.
ما أدهشني في الكتاب كان الشعور المستمر الذي يمكنني التفكير فيه بنفسي. كانت الخطوات الموضحة في الكتاب منطقية وبسيطة للغاية لدرجة أنني شعرت حقًا أنه يمكنني إنشاء مسج إذا حددت هذا الهدف بنفسي.
في الواقع ، لن أكون قادرًا على القيام بذلك - سأجد الأمر معقدًا للغاية. أعتقد أن قراراتي بسيطة للغاية وساذجة ، وسأستسلم. أود فقط أن تأخذ jQuery كأمر مسلم به والثقة به. بعد ذلك ، ربما لن أفهم كيف يعمل. أود فقط استخدامه كصندوق أسود.
قراءة هذا الكتاب قد غيرتني. بدأت أفهم الكود المصدري ووجدت أن العديد من التطبيقات كانت بسيطة إلى حد ما ، وحتى واضحة.
الآن التوصل إلى هذه الحلول بنفسك هو مسألة مختلفة تمامًا. لكن قراءة التعليمات البرمجية المصدر والحلول الذاتية ذاتية التطبيق هي بالضبط ما يساعدك على التوصل إلى حلول خاصة بك.
الإلهام الذي تتلقاه والأنماط التي تكتشفها ستغيرك كمطور. ستجد أن هذه المكتبة الرائعة التي تستخدمها وتعتبرها سحرية ليست سحرية حقًا ، ولكنها ببساطة حل بسيط وذكي.
يمكنك قضاء بعض الوقت في تحليل الشفرة ، خطوة بخطوة ، وسوف يفرض عليك أيضًا أن تمر بنفس الخطوات الصغيرة التدريجية التي اتخذها المؤلفون لإنشائها. يمنحك هذا فهمًا أعمق لعملية البرمجة والمزيد من الثقة في تنفيذ قراراتك الخاصة.
عندما بدأت في استخدام Promise في JavaScript ، اعتقدت أنه كان سحرًا. ثم اكتشفت أنها تستند إلى عمليات الاسترجاعات وأن رؤيتي للبرمجة قد تغيرت إلى الأبد.
تم تنفيذ هذا القالب ، الذي كان من المفترض أن يتخلص من عمليات الاسترجاعات ، باستخدام ... عمليات الاسترجاعات؟
لقد غيرني. لقد جعلني أدرك أن هذه لم تكن مقتطفات برمجية معقدة بشكل لا يصدق ، لذا فقد تمكنت من معرفة ذلك. هذه نماذج يمكنني فهمها بسهولة إذا كان لدي فضول ورغبة في الغوص فيها.
إليك كيف تتعلم حقًا البرمجة. إليك كيف تصبح مطورًا أفضل.
إعادة اختراع العجلة
لذلك دعونا إعادة اختراع العجلات. اكتب
ربط البيانات الخاصة بك ، أو
الوعد الخاص بك ، أو حتى
حل إدارة الدولة .
لا يهم أن لا أحد سوف يستخدم هذا. سوف تتعلم شيئا جديدا لنفسك. وإذا كنت تستطيع استخدامه في أحد المشاريع الخاصة بك ، فسيكون ذلك رائعًا. ستعمل على تطوير هذا الرمز أكثر ومعرفة المزيد.
النقطة ليست في استخدام الحل الخاص بك في الإنتاج ، ولكن للتعلم. تعد كتابة تنفيذك الخاص للحل الحالي طريقة رائعة للتعلم من الأفضل.

اقرأ أيضا بلوق
شركة إديسون:
20 مكتبة لل
مذهلة تطبيق دائرة الرقابة الداخلية