إعادة بيع الكود - كيفية كتابة كود أفضل

هناك ببساطة الكثير لنتعلمه في عالم البرمجة.

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

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

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

السؤال

اكتب وظيفة عندما تعطى سلسلة رقم الإصدار ، أي. "1.12.4" وسلسلة نطاق semver ، أي. "~ 1.12.0" ، قم بإرجاع ما إذا كان الإصدار المحدد يقع ضمن نطاق الفصل المحدد كمنطق منطقي.
يجب أن يدعم نطاق semver الأنماط الثلاثة التالية:
 1) تطابق تام
 2) ^ إصدارات أكبر في نفس نطاق الإصدار الرئيسي
3) ~ إصدارات أكبر في نفس نطاق الإصدار الثانوي

المحاولة الأولى

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

محاولة ثانية

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

المحاولة الثالثة

شاركت الرمز مع المهندس الأقدم وأعطاني بعض الملاحظات البناءة. طلب مني التفكير في طريقة أفضل للحصول على rangeSymbol ومحاولة عدم تعديل rangeNumArr بعد الإعلان. أخيرًا وليس آخرًا ، أخبرني أن أستخدم .every () ، والذي يشبه تمامًا .some () ، ولكن بدلاً من ذلك ستنكسر الحلقة عندما تكون قيمة الإرجاع خاطئة. أخذت نصيحته وأجرت بعض التغييرات الإضافية ، وأسفر ذلك عن جزء جميل من التعليمات البرمجية:

خاتمة

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

طلب المساعدة إذا كنت في حاجة إليها. من الجيد دائمًا أن يكون لديك منظور مختلف لأن كل شخص لديه عملية تفكير مختلفة. في بعض الأحيان يمكن أن تلهمك آراء الآخرين!

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

صفق واتبعني إذا أعجبك هذا المقال

أود أن أشارك تجاربي الأمامية وأفكاري في البرمجة كلما كان لدي وقت ؛)