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

قبل أن يغادر مع الرأس للدراسة ، يحتاج المبرمج إلى فهم أساسيات التكنولوجيا التي تهمه. ثم تحتاج إلى تشكيل رؤيتك لهذه التكنولوجيا ، وتعلم التفكير من حيث ذلك. ونتيجة لذلك ، إذا بدأ شخص ما في تعلم رد الفعل ، فإنه يحتاج أولاً إلى تعلم "التفكير في رد الفعل". وبعد أن يطور هذه الجودة في حد ذاته ، سيكون قادرًا على التعرف على آراء الآخرين بشكل هادف ، واختيار الأكثر قيمة ، والتطور في الاتجاه المختار.
يريد كاتب المقال ، الذي ننشر ترجمته اليوم ، أن نشاركه مع كل من يريد التعرف على رد الفعل أثناء تشكيل رؤيته الخاصة لهذه التكنولوجيا ، أثناء دراستها وتراكم الخبرة في هذا المجال. هنا سيتحدث عن ما تمكن من فهمه في غضون عام ، حيث عمل كمبرمج تفاعل ، وقام بمشاريعه الخاصة في وقت فراغه وشارك أفكاره في مؤتمر JavaScript واحد.
رد الفعل هي تقنية دائمة التطور.
نظرًا لأن React في عملية التطوير المستمر ، يجب أن يكون أي شخص يريد إتقان هذه التكنولوجيا مستعدًا للحفاظ على معرفته ومهاراته باستمرار. إذا كنت تتذكر إعلان React 16.3.0 ، فأنت تعرف عن الحماس في مجتمع المبرمجين الذي جلب ميزات جديدة. من بينها السياق الرسمي لواجهة برمجة التطبيقات وواجهة برمجة تطبيقات createRef و forwardRef والوضع الصارم والتغييرات في دورة حياة المكون. قام فريق تطوير التفاعل الرئيسي وجميع أولئك الذين قدموا مساهمة مجدية في تطوير المشروع بعمل رائع ، محاولين تحسين إطارنا المفضل. هذا العمل لا يتوقف. لذا ، على سبيل المثال ، قدم الإصدار 16.4.0 دعمًا
لأحداث المؤشر .
يستمر رد الفعل في التطور ؛ الابتكار هو مسألة وقت فقط. من بين هذه الابتكارات العرض غير المتزامن والتخزين المؤقت والعديد من التغييرات المتوقعة في React 17.0.0 ، وهو أمر لا يعرفه أحد.
بالنظر إلى ما سبق ، من الواضح أنه إذا كنت ترغب في البقاء في طليعة تطوير رد الفعل ، فأنت بحاجة إلى أن تكون على دراية بالابتكارات. هذا يعني أنك بحاجة إلى معرفة كيفية عمل آليات الإطار الجديدة ، ولماذا تم إنشاؤها. أنت بحاجة إلى فهم المشاكل التي يحلونها ، وكيف تبسط عملية التنمية.
لا تخف من كسر التعليمات البرمجية إلى أجزاء صغيرة
رد الفعل على أساس المكونات. هذا يشير إلى أنه يجب استخدام هذا المفهوم وكسر قطع كبيرة من التعليمات البرمجية بجرأة إلى قطع أصغر. في بعض الأحيان يمكن أن يتكون المكون البسيط من 4-5 أسطر فقط من التعليمات البرمجية ، وفي بعض الحالات ، يكون هذا أمرًا طبيعيًا تمامًا.
يجب أن تتعامل مع تجزئة التعليمات البرمجية بحيث إذا اتصل المطور الجديد بمشروعك ، فلن يضطر إلى قضاء أيام عديدة في فهم كيفية عمل هذا المشروع وكيف يعمل.
// , ? return ( [ <ChangeButton onClick={this.changeUserApprovalStatus} text="Let's switch it!" />, <UserInformation status={status}/> ] );
ليس عليك إنشاء مكونات ضخمة تحتوي على كل المنطق الضروري لعملهم. المكون ، على سبيل المثال ، يمكن أن يصف فقط التمثيل المرئي للكيان. إذا كان استخدام المكونات الصغيرة سيحسن من سهولة قراءة التعليمات البرمجية ، ويسهل اختبارها وتسهيل دعم المشروع في المستقبل ، فإن التطبيق المنهجي لهذا النهج هو حل رائع سيؤثر بشكل إيجابي على عمل كل عضو في الفريق.
import ErrorMessage from './ErrorMessage'; const NotFound = () => ( <ErrorMessage title="Oops! Page not found." message="The page you are looking for does not exist!" className="test_404-page" /> );
يطبق المثال أعلاه خصائص ثابتة. أمامنا مكون نظيف مسؤول عن عرض رسالة الخطأ "
Not Found
عليه" ولا شيء آخر.
أيضًا ، إذا كنت لا تريد أن تظهر فئات CSS وأسماء الفئات في كل مكان في شفرتك ، فإنني أوصي باستخدام مكونات منمقة. هذا يمكن أن يحسن بشكل كبير من قراءة التعليمات البرمجية.
const Number = styled.h1` font-size: 36px; line-height: 40px; margin-right: 5px; padding: 0px; `; //.. <Container> <Number>{skipRatePre}</Number> <InfoName>Skip Rate</InfoName> </Container>
إذا كنت تخشى إنشاء الكثير من المكونات الصغيرة نظرًا لأنه يبدو لك أن ملفاتها تسد المجلدات بمواد المشروع ، فكر في كيفية بناء التعليمات البرمجية بشكل مختلف. لقد استخدمت
البنية الفركتلية للمشروع لتنظيم المواد ، ويجب أن أقول إن هذا رائع.
لا ترتاح على أمجادك بعد فهم الأساسيات.
في بعض الأحيان قد يبدو لك أنك لا تفهم جيدًا بما فيه الكفاية من أجل متابعة الدراسة واستخدام أشياء أكثر تقدمًا. عادة ، كقاعدة ، لا يجب أن تقلق بشكل خاص حول هذا - فقط ابدأ في إتقان ما يبدو لك معقدًا للغاية وأثبت لنفسك أنك قادر على اكتشافه واستخدامه.
على سبيل المثال ، إذا كنت في بداية مسار مطور React ، فقد تجد العديد من أنماط التصميم التي تبدو معقدة يجب عليك استكشافها. من بينها المكونات المركبة ، والمكونات عالية الترتيب ، وتقديم الدعائم ، والمكونات الذكية ، ومكونات البكم وأكثر من ذلك بكثير (على سبيل المثال ، يوصى بإتقان تقنية تحديد خصائص أداء المكونات).
إتقان جميع هذه التقنيات ، وسوف تفهم - لماذا ولماذا يتم استخدامها. نتيجة لدراستهم ، ستجد أنه الآن أكثر ملاءمة لك لتطوير المشاريع على React.
// ? // , , . render() { const children = React.Children.map(this.props.children, (child, index) => { return React.cloneElement(child, { onSelect: () => this.props.onTabSelect(index) }); }); return children; }
بالإضافة إلى ذلك ، لا تخف من استخدام شيء جديد في سياق العمل ، بطبيعة الحال ، في حدود معقولة. في الوقت نفسه ، لا تقصر استخدام المناهج الجديدة فقط على التجارب في المشاريع التي تقوم بها في وقت فراغك.
إذا كان لدى من تعمل معهم أسئلة حول ابتكاراتك ، فاعلم أن هذا أمر طبيعي تمامًا. كن مستعدًا للدفاع عن قراراتك بحجج قوية لصالحهم.
يجب أن يكون هدفك هو حل مشكلة موجودة ، أو تبسيط المزيد من التطوير ، أو ببساطة تحسين قابلية قراءة التعليمات البرمجية التي كانت تبدو غير مرتبة. حتى إذا تم رفض مقترحاتك ، نتيجة للمناقشات مع الفريق ، فسوف تتعلم شيئًا جديدًا على الأقل ، وهذا أفضل بكثير من عدم تقديم أي شيء جديد ولا يتم تطويره كمطور.
لا تسعى إلى تعقيد المشاريع
ربما تبدو لك هذه التوصية مخالفة للتوصية السابقة ، المخصصة لتجارب التقنيات الجديدة ، ولكن ، في الواقع ، الأمر ليس كذلك. في كل مكان ، في الحياة ، في البرمجة ، نحتاج إلى التوازن. لا تبالغ في تبسيط شيء ما لتثبت للآخرين تقدمهم الخاص. من الأفضل الاقتراب مما يحدث من الناحية العملية. اكتب رمزًا يسهل فهمه ويحل المهام الموكلة إليه.
على سبيل المثال ، إذا لم يكن Redux ضروريًا في مشروعك ، ولكنك تريد استخدام هذه المكتبة فقط لأن الجميع يستخدمها ، ولا تفكر حقًا في أهداف استخدام Redux ، فلا تفعل ذلك. الأفضل - تعامل مع Redux ، وقم ببناء فهم لهذه التكنولوجيا ، وإذا رأيت أن ما يحدث في مشروعك يتعارض مع ما تفهمه ، فكن مستعدًا للدفاع عن وجهة نظرك.
في بعض الأحيان قد يبدو لك أنه باستخدام أحدث التقنيات وإنشاء رمز معقد ، تخبر العالم كله بشيء من هذا القبيل: "أنا لست مطورًا مبتدئًا ، وأصبح محترفًا. هذا هو الرمز الذي أكتب! "
بصراحة ، كنت أنا في بداية مهنة المطور. ولكن بمرور الوقت ، يتعلق الأمر بإدراك أن الكود المكتوب بدون الرغبة في إثبات شيء ما لشخص ما ، وهو الكود الذي لا تستخدم فيه التقنيات فقط لأنه يمكن استخدامها فيه ، دون أسباب جدية للجوء إلى هذه التقنيات ، يجعل الأمر أسهل بكثير حياة أي مطور. إليك ما يعنيه:
- ليس فقط من يفهم تصميم هذا المشروع ، ولكن يمكن أيضًا لأعضاء الفريق الآخرين العمل على مشروع غير معقد. ونتيجة لذلك ، يمكن حل مهام التطوير وإصلاح الأخطاء والاختبار وغيرها الكثير ، ليس فقط من خلال منشئ هذا المشروع.
- يمكن للمبرمجين الآخرين فهم ما تفعله دون قضاء الكثير من الوقت في الاستماع إلى تفسيراتك. يمكنك تحديثها في غضون دقيقتين.
- عندما يذهب المطور الرئيسي ، على سبيل المثال ، في إجازة لمدة أسبوعين ، يتمتع الآخرون بحرية القيام بمهامه ، ولن يضطروا إلى قضاء يوم عمل كامل على ما يتم القيام به لبضع ساعات.
الناس جيدون لأولئك الذين لا يعقدون حياتهم. وبالتالي ، إذا كنت تريد أن يحترمك الفريق ، وأن تكون في وضع جيد مع رؤسائك ، فحاول كتابة رمز للفريق ، وليس لنفسك. ونتيجة لذلك ، ستصبح شخصًا يسهل العمل معه وممتعًا.
إعادة البيع على ما يرام
يمكنك ، أثناء العمل في مشروع معين ، تغيير وجهة نظرك عشرات المرات حول بعض الأشياء ، ويمكن لمدير المشروع في كثير من الأحيان مراجعة وجهات نظره. شخص ما ينتقد ما فعلته ، وأنت ، إذا كان النقد مبررًا ، تبدأ في تغيير شيء ما ؛ أنت تنتقد عمل الآخرين ، وهم يستمعون إليك ويعيدون ما كتبوه. ونتيجة لذلك ، يجب إعادة كتابة الرمز باستمرار.
لا تأخذ هذا على أنه شيء سلبي. نظرًا لأن المبرمجين يضطرون باستمرار إلى تعلم شيء جديد ، فإن إعادة الهيكلة أمر طبيعي تمامًا. عادة ما يكون التطوير هو مسار التجربة والخطأ. وفي كثير من الأحيان يتعثر شخص ما ، يتحرك على هذا المسار ، سيكون من الأسهل عليه التعامل مع الصعوبات والمضي قدمًا.
ومع ذلك ، لضمان عدم تحول إعادة البناء إلى كابوس ، يوصى بإيلاء الاهتمام الكافي للاختبارات. لا تتردد في اختبار كل ما يمكنك الوصول إليه. ربما واجه كل مبرمج إما بالفعل ، أو سيظل يواجه وضعًا تساعد فيه الاختبارات الجيدة على توفير الكثير من الوقت. وإذا كنت ، مثل كثيرين آخرين ، تعتقد أن الاختبارات مضيعة للوقت ، فحاول أن تأخذها بشكل مختلف عن ذي قبل. هذه هي الفوائد التي يحصل عليها المطور وفريقه من الاختبارات الجيدة:
- لا يتعين عليك الجلوس مع الزملاء لفترة طويلة ، موضحا لهم كيف يعمل كل شيء.
- لا يتعين عليك شرح أسباب حدوث خطأ ما.
- ليس عليك تصحيح أخطاء الآخرين.
- ليس عليك إصلاح الأخطاء التي ظهرت بعد بضعة أسابيع من الإصدار.
- بفضل التنظيم الدقيق لفحوصات المشروع ، لديك الوقت لحل المشكلات المختلفة التي لا تتعلق بأخطاء التصحيح التي تأتي من العدم.
في الواقع ، هذه مجرد قائمة صغيرة من الفوائد التي يحصل عليها المبرمج وزملاؤه من نظام اختبار مشروع منظم جيدًا.
حب وظيفة المرء هو أساس النجاح
قبل عام ، قررت أن أصبح مطور تفاعل أكثر تقدمًا. أردت ، من بين أمور أخرى ، أن أتحدث في مناسبات مختلفة ، وأشارك فرحة تعلم أشياء جديدة مع أشخاص آخرين.
يمكنني الجلوس على الكمبيوتر طوال الليل ، أفعل ما أحبه وأستمتع بكل دقيقة لما يحدث. النقطة هنا هي أنه إذا كان الشخص يسعى حقًا لشيء ما ، فعندئذ بطريقة أو بأخرى ، فإن كل شيء حوله يساعده على الوصول إلى الهدف. على سبيل المثال ، تحدثت مؤخرًا لأول مرة في مؤتمر صغير أمام مائتي متفرج.
خلال هذا الوقت ، نشأت كمطور تفاعل ، تعلمت الكثير. على وجه الخصوص ، ينطبق هذا على أنماط التصميم المختلفة ، ومبادئ تطوير المشروع ، وآليات الإطار الداخلي. يمكنني الآن التواصل بشأن مواضيع بدت في السابق غير قابلة للوصول إليها ، علاوة على ذلك ، يمكنني تعليم الآخرين ما لم أجرؤ على النظر إليه من قبل. في الوقت نفسه ، أشعر اليوم بنفس البهجة والسرور الذي كان عليه قبل عام.
لذلك ، أوصي الجميع أن يسألوا أنفسهم: "هل تحب ما تفعله؟" إذا كانت إجابة هذا السؤال سلبية ، فابحث عن ما يعجبك حقًا ، شيء يمكنك التحدث عنه لساعات ، شيء يمكنك القيام به ليلًا ونهارًا ، والشعور بالسعادة تمامًا. من أجل النمو والتطور في أي مجال ، يحتاج الجميع إلى العثور على ما يحبه. لا يمكن إجبار الإنسان على النجاح في أي شيء. يمكن للشخص أن ينجح فقط عندما يفعل بوعي وبسرور ما يحلو له.
إذا كان بإمكاني العودة قبل عام والتعرف على نفسي هناك ، لأقول هذا لنفسي من أجل إعداد نفسي للمسار العظيم والمثير الذي ينتظرني.
أعزائي القراء! ما هي النصائح ، المستوحاة من الخبرة ، التي يمكنك مشاركتها مع مطوري الويب المبتدئين؟
