تخطَّ إلى المحتوى

صيانة التطبيقات

صيانة Next.js ودعمها

مختصّ Next.js تحت الطلب لفريق لا يحتاج واحدًا بدوام كامل - ترقيات الإطار، ومخاطر الاعتماديات، وذلك العطل في الثانية فجرًا الذي لم يره أحد في فريقك من قبل.

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

هذه هي الخدمة للفرق التي لديها تطبيق في الإنتاج، ولا تحتاج مختصّ Next.js أربعين ساعة أسبوعيًا، ولا تريد أن يكون أول حديث لها مع مختصّ أثناء عطل.

ما ليست هي

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

وليست مكتب دعم أيضًا. أنت لا تضع تذاكر في طابور. أنت تتحدّث إلى المهندسين الذين قرأوا شيفرتك.

ما تغطّيه

ترقيات الإطار والاعتماديات. يتحرّك Next.js وReact بسرعة. نتتبّع ما يتغيّر، ونقرّر ما يهمّ تطبيقك تحديدًا، وننفّذ الترقية وقد قرأنا ملاحظات الإصدار لا وقد رفعنا رقم النسخة. فالإصدار الفرعي الذي يمسّ سلوك التخزين المؤقّت عندك عملٌ مختلف عن الذي لا يمسّه، ومعرفة أيّهما أيّ هي معظم القيمة.

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

تراجعات الأداء. بيانات الميدان لا تبقى مضبوطة وحدها. الميزانية المفروضة في التكامل المستمر تلتقط ما يفعله النشر؛ والقراءة الشهرية لمؤشّرات Core Web Vitals تلتقط ما فعله تغييرٌ في نظام المحتوى أو وسمٌ جديد أو طرف ثالث. والآلية هي نفسها التي نركّبها في هندسة الأداء، وهذا إبقاؤها صادقة.

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

العمل الصغير الذي لا تأتي أولويّته أبدًا. مسارٌ يُفترَض أن يكون ثابتًا وليس كذلك. واعتمادية يمكن الاستغناء عنها. وuse client التي زحفت صعودًا إلى التخطيط. لا يبرّر أيٌّ منها وحده مشروعًا؛ ومجتمعةً هي الفرق بين تطبيق يشيخ بلطف وآخر لا يفعل.

كيف تُحدَّد

كتلة ساعات شهرية، يُتّفق عليها مسبقًا، ومكتوبٌ فيمَ هي. والساعات غير المستعملة تبقى غير مستعملة - لا نخترع عملًا لاستهلاكها، ولا نرحّلها إلى ما لا نهاية أيضًا، لأن رصيدًا متناميًا علامةٌ على أن الترتيب خاطئ ويستحقّ قوله.

وفوق الكتلة، يُسعَّر العمل كمشروع. لا عدّاد ساعات يدور في الخلفية.

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

ما تحصل عليه في الشهر الأول

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

متى لا تحتاج هذا

إن كان لديك مهندسة تقرأ ملاحظات إصدارات Next.js، فلا تحتاجنا للترقيات. وإن كان تطبيقك موقعًا تسويقيًا يتغيّر مرّتين في السنة، فمراجعة سنوية تكلّف أقلّ وتؤدّي الغرض نفسه.

نفضّل قول ذلك في البداية على أن نفوتر سنةً لا يحدث فيها شيء.