فرق Chrome وEdge وFirefox وMDN تنشر Modern Web Guidance لتعليم الـ agents خصائص الويب الحديثة
المغزى: الـ agent يكتب ما تعلمه من كود قديم، وحين تصل معرفة المتصفحات نفسها إلى سياقه مباشرة، ينتقل تحديث الكود من ذاكرة المراجع إلى لحظة الكتابة.
وسم
المغزى: الـ agent يكتب ما تعلمه من كود قديم، وحين تصل معرفة المتصفحات نفسها إلى سياقه مباشرة، ينتقل تحديث الكود من ذاكرة المراجع إلى لحظة الكتابة.
المغزى: موقع قد يُخترق دون أي ثغرة في كوده، بسطر script قديم يحمّل ملفًا من دومين انتهى، وحين يُكتشف الاختراق قد لا يجد المكتشف وسيلة يصل بها إلى صاحب الموقع.
المغزى: أصعب ما في السحب والإفلات هو حساب مناطق الإفلات يدويًا، وحين تصبح هذه المناطق نتيجة لحالات معلنة، تصير واجهات كثيرة كان يُتخلّى عنها ممكنة البناء.
المغزى: اختيار إطار العمل لم يعد يؤثر في حجم الـ bundle والأداء فقط، بل صار بندًا في فاتورة الـ API لكل ميزة يبنيها agent على مدار السنة.
المغزى: الحماية من انتحال أسماء الحزم حقيقية، لكن سقفها الثابت لا يتغير مع طول الاسم، فيقع ثمنها كله على من يبحث عن اسم قصير بينما تمر الأسماء الطويلة بلا عائق.
المغزى: المطور لا يشتري بيئة التشغيل بل يبني عليها، وقرار تطوير الطبقة التي تحت كل تطبيقاته يتخذه مجلس إدارة شركة، والبديل الوحيد لمحرك Google تملكه شركة نشاطها الأساسي مختلف.
المغزى: الموقع الساكن المبني على Next.js يحمّل مع كل صفحة runtime لا يحتاجه، والقارئ على شبكة ضعيفة يدفع ثمنه، بينما يبقى هذا الثمن مبررًا في التطبيقات التفاعلية فعلًا.
المغزى: كائنان متطابقان في الكود قد يختلفان في الذاكرة بسبب ترتيب التهيئة وحده، وهذا الفرق لا يظهر عند قراءة الكود بل في الـ profiler فقط.
المغزى: كل مكتبة قامت على مبدأ عدم تكرار العمل تفقد جزءًا من مبرر وجودها حين يصبح تكرار العمل أرخص من فهم الجاهز، بينما تبقى مشكلات الوصول والعرض كما هي.
المغزى: محرك عام يفهم كل شيء يحمّل المتصفح بكل شيء، ومكتبة مكتوبة لغرض واحد قد تغطي الوظيفة نفسها بسُبع الحجم، وتجعل المخطط مقروءًا على الهاتف.
المغزى: الكود الذي يكتبه الـ AI يصل منسّقًا ومسمّى بإتقان ومشروحًا بتعليقات، فتختفي العلامات التي اعتاد المراجع أن يحكم بها بسرعة، وتصبح المراجعة مهارة تحتاج إلى تدريب مقصود.
المغزى: الحق في المحتوى لا يكفي وحده حين يقرأ البلاغ نموذج إلكتروني أولًا، واختيار المسار القانوني الخطأ قد يكلّف شهرًا كاملًا من بقاء النسخ المقرصنة.
المغزى: حين تتساوى بيئات التشغيل في الخصائص، يصبح الفرق في أيها يتعثر أقل في العمل اليومي، والأداة المملة التي لا تعطّل صاحبها مكسب لا تراجع.
كل حزمة تُضاف بدل قدرة موجودة في المتصفح تصبح اعتمادًا يتحمله الفريق: حجمها وثغراتها وصيانتها، واليوم الذي يتوقف فيه صاحبها عن تطويرها.
حين يتخلى framework عن اختصار اخترعه لصالح معيار في المنصة، تصبح الأدوات قادرة على فهم الكود دونه، وتقل الحاجة إلى وجوده وسيطًا في كل شيء.
إيقاف JavaScript لا يوقف ما يرسله المتصفح بنفسه قبل تشغيل أي كود، وفرق المنتجات تجمع من زوارها أكثر مما تقصد في الغالب.
الاعتراض على reduce مفهوم من طريقة قراءتها، لكن الملاحظة الأثقل في التدوينة أن هذا الاعتراض صار أقل، ربما لأن مراجعة الكود نفسها صارت أقل تدقيقًا.
أدوات JavaScript صارت تُكتب بلغات أخرى، والانتقال إلى الأداة الأسرع هنا تغيير سطر في الإعدادات لا إعادة كتابة للمشروع.
أخطاء غريبة ظهرت في Safari وحده سنوات كان سببها قرارًا معماريًا بُني على مواصفة متروكة منذ 2016، لا كود المطورين.
قرار الانتقال إلى ESM الذي أجّلته فرق كثيرة لسنوات اتخذه الإطار نيابة عنها، وأغلب كلفة الترقية ستقع في أدوات البناء والاختبار لا في منطق التطبيق.
أشهر خطأ صامت في Promise.all لا يرمي أي error بل يبدّل القيم بهدوء، والدالة الجديدة تزيل سببه بجعل الاسم لا الترتيب هو ما يربط كل نتيجة بمصدرها.
حماية من ملفات zip bomb كانت مسؤولية كل مطور يتذكرها أو ينساها، صارت جزءًا من الـ runtime نفسه، ومعها قد تختفي حزمة كاملة من كثير من المشاريع.
نشر الإصلاح على إصدارات قديمة في اليوم نفسه تقدير من الفريق لخطورته، وأي تطبيق Angular يعمل بـ SSR معني به مباشرة لا في موعد التحديث القادم.
جزء كبير من مشكلة يعمل على جهازي ولا يعمل على الـ CI سببه ملف lockfile يتغير دون تغيير حقيقي، والإصدار الجديد يعالج هذا السبب تحديدًا.
مساحة الهجوم في أي مشروع تشمل قرارات لم يتخذها صاحبه؛ فالمطور اختار Next.js، واختار Next.js مكتبة sharp، واختارت sharp مكتبة libheif التي وقعت فيها الثغرة.
كان اكتشاف ضعف الجهاز يتطلب إرهاقه أولًا بحسابات تجريبية، والآن تصل المعلومة مجانًا قبل رسم أول pixel، وهو ما يهم أسواقًا تغلب فيها الأجهزة المتوسطة.
الاستغناء عن الـ virtual DOM في Vue ليس قرار إعادة كتابة للتطبيق، بل قرار على مستوى المكوّن الواحد، يمكن أن يبدأ بالشاشة الأثقل وحدها.
كل حزمة تختفي من المشروع تعني سلسلة توريد أقصر وحساب مشرف أقل يمكن اختراقه، لكن الاعتماد لا يختفي، بل ينتقل من npm إلى الـ runtime نفسه.
إغلاق الموارد يصبح مرتبطًا بتعريف المتغير نفسه لا بكود يُكتب يدويًا ويمكن نسيانه، ومن يكتب TypeScript يقترب من استهداف المحركات مباشرة دون تحويل.
سطر script واحد يوفّر السرعة لكنه يربط عمل الصفحة بنطاق لا يملكه صاحب الموقع، وحين ينقطع هذا النطاق أو يُحجب تفتح الصفحة ناقصة لا معطلة.