d 2023 – مدونة الفريق

السنة: 2023

  • متى ينتهى المشروع البرمجي بالكامل؟

    متى ينتهى المشروع البرمجي بالكامل؟

    هذا سؤال يسأله الجميع، الزبون، الشركة، العملاء، الموردين، كل من يستخدم النظام، متى يتم تسليم نسخة نهائية من المشروع وتكون فاعلة وكاملة ولا مشاكل بها؟

    الجواب المختصر: لا ينتهي، بل يستمر أبد الدهر.

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

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

    يشيخ المشروع وبحاجة لأدوية ومتابعة طبية دائمة، وقد يموت، وقد يموت في شبابه، لمرض ما، لحادث عارض، لخلل جيني.

    لا توجد لحظة في حياة المرء يقول فيها أنا اكتملت وانتهيت، والمشروع البرمجي كذلك

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

    لا يوجد لحظة تقول فيها: سأضع ساقي فوق الأخرى، وأرتاح، النظام (موقع، تطبيق.. إلخ) يعمل بنفسه بعد أن دفعت مبلغ 50 ألف دولار، وعلي الآن أن اقطف الثمار وأرتاح.

    هذه الجملة هي بداية الموت، والمشروع لا تكفيه 50 ألف دولار مهما صغر، بل إن التسويق وحده يتكلف أضعاف هذا المبلغ.

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

  • Blazor أم Angular ولماذا؟

    Blazor أم Angular ولماذا؟

    حسناً، أنت تستخدم إطار عمل رائع، مثل ASP.NET Core MVC, Razor Pages ، أو أنت مبرمج من خارج عالم الدوت نت، مثلا مبرمج Django، أنت مبرمج من العيار الثقيل، تحب لغة البرمجة نفسها، السي شارب أو البايثون، وتعتقد أن القوة معها، لا مع عالم الجافاسكريبت، أو أنك لا ترتاح للجافا سكريبت، إلا أن العالم يقول لك اتجه مرغماً إلى إطار عمل FrontEnd وخياراتك بين Angular, Vue, React، وأنت مضطر لاتخاذ قرار، وهنا أقول لك، لقد فتح الله لك خياراً جديداً في عالم الويب ألا وهو البلازور Blazor.

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

    الAngular كإطار عمل، يخبرك أن العالم تقدم، على المبرمجين عمل API بأي لغة برمجة يحبونها، ثم يمكننا ربط هذه الدوال عبر الجافاسكريبت (Angular) لأن المتصفح يفهم الجافاسكريبت، فالأمر سهل جدا.

    blazor vs angular

    هناك مزايا عديدة في هذا النموذج، منها أن الAngular يمكنها أن تعمل مع أي لغة برمجة، فهي لا علاقة لها بلغة البرمجة، لأنها في النهاية تتحدث مع دوال API، فيمكن بهذا للشركات فصل المبرمجين، Back و Front وكلاً في فلك يسبحون، الBack لا يهم أياً كانوا، والFront هي Angular وهي تعمل في كل مكان ومع كل منصة.

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

    ومع تقدم تقنيات الويب، وظهور الWeb Assembly فإن البلازور في الدوت نت أو الPyscript في البايثون، وغيرها من المنصات، سيكون خيارً بديلاً بل ولربما خيارا أمثلاً.

    البلازور وكل تطبيقات الويب أسمبلي، ستكون أسرع من تطبيقات الجافاسكريبت، ستتيح لك بناء مواقع أقوى وبإمكانيات عالية، وبأداء أعلى، مثلاً الAngular تستخدم Incremental DOM أماالـBlazor فتستخدم خليط من Virtual DOM (هذا أقرب لما تفعله الـreact) والIncremental DOM في أمر جديد خاص بها اسمه RenderTree، والفرق بينهما في هذا المقال Incremental vs Virtual DOM

    صحيح أن الAngular تعتمد على Typescript لكن الTypescript في النهاية ليست لغة Type Safe بينما الBlazor كذلك، يمكن للAngular الوصول مباشرة إلى DOM, أما ال Blazor فتستخدم JS Interop لكن هذا ليس بمشكل.

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

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

    في المستقبل، لا يمكننا التنبؤ بشيء، لكن ما ستوفره البلازوز من تطبيقات مستقبلية هام، مثل إنشاء تطبيقات هواتف ذكية ودمجها في MAUI، اقرأ أيضا ما هي ماوي .NET MAUI، أو بناء تطبيقات سطح مكتب وغيرها من الإمكانيات الهائلة.

    هذا وبالله التوفيق