ليس في وقت التشغيل ، ولكن في وقت التصميم

صورة

ذات مرة ، قدم لي مطور حكيم قديم النصيحة ، والتي لم أكن أقدرها حتى وقت قريب.

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

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

في متغير JavaScript ، سيبدو كما يلي:

for (let i = 65; i <= 90; i++) { letters.push(String.fromCharCode(i)) } 

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

كنت مرعوبة. "كيف تتوقع مني أن أكتب كل حرف ، مثل نوع من الطفل. أنا مطور برامج محترف! "لدي خوارزميات وهياكل البيانات ، والمعالج الرياضي ، من أجل السماء!"

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

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

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

لهذا السبب أعتقد أنه في السنوات القادمة ، سيواجه لاعبون مشهورون مثل Wordpress و Drupal ، مشكلة خطيرة من مولدات المواقع الثابتة مثل Gatsby أو Hugo أو Jekyll ، بالإضافة إلى عملية بناء سلسة ، CMS مقطوعة الرأس ، CDN رخيصة وعملية التكامل المستمر سريعة.

كان هذا النمط يسمى JAMstack ، مما يعني "JavaScript و API وكومة الترميز". والنتائج رائعة جدا .

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

لقد قرأت مؤخرًا كتاب Ray Dalio الرائع ، المبادئ: العمل والحياة . الموضوع الرئيسي للكتاب هو أن هناك أنواع أقل بكثير من المشاكل من المشاكل الحقيقية. لذلك ، إذا كنت تعمل على ذلك مقدمًا واكتشفت كيف ستتعامل مع نوع المشكلة المحدد الذي من المحتمل أن تواجهه ، فعندما يتعلق الأمر بذلك ، ستكون أكثر استعدادًا للتعامل معه.

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

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

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

  • قمت بمشاركة نصائحي ودروسي المستفادة في مقابلة أجريت مؤخرًا على podcast Developer on Fire ، والتي يمكنك الاستماع إليها هنا .
  • يمكنك تلبية JAMstack في Jamstack.org
  • لدى مدونة Netlify أيضًا نظرة عامة جيدة على مولدات المواقع الثابتة.
  • وإليك مقالة حول رصة محددة قمت بمراجعتها مؤخرًا وأوصت باستخدام مزيج من Gatsby و Contentful و Netlify و Algolia كبديل عن CMS التقليدي لموقع الوثائق.


منشورات أكثر إثارة للاهتمام





اقرأ أيضا بلوق
شركة إديسون:


20 مكتبة لل
مذهلة تطبيق دائرة الرقابة الداخلية

Source: https://habr.com/ru/post/ar475920/


All Articles