لقاء مع المبرمج الكندي Anthony Giretti

3

يوم السبت الماضي بتاريخ 29 فبراير من العام الجاري، أجريت اتصالا مع المبرمج الخبير أنطوني جيريتي Anthony Giretti من كندا، وكان قد حدث بيننا تعارف مؤخرا بعد حصوله على جائزة أكثر المبرمجين المحترفين تقييما MVP التي تقدمها شركة ميكروسوفت، الجائزة التي أحمد الله على حصولي عليها لموسمين متتاليين منذ عام 2017.
كان محور لقائنا هو تقنية ASP.NET Core وكيفية الاستفادة منها أكثر في محيط الشغل، وماهي الأمور التي يحتاجها من يريد أن يشتغل بهذه التقنية، فكان من جملة ما رشحه إلي مجموعة من الروابط النافعة التي أحببت أن أشاركها معكم لتستفيدوا منها مثلما سأستفيد منها شخصيا.

أهمية الاختبارات في مجال تطوير البرمجيات وأنواعها

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

شرح مبادئ SOLID - المبدأ الخامس والأخير Dependency Inversion Principle

0

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

شرح مبادئ SOLID - المبدأ الرابع Interface Segregation Principle

0

هذا المبدأ من أسهل مبادئ SOLID وهو ينص على أن العميل Client والمقصود به في هذا السياق الكود الذي سيطبق واجهة Interface معينة، ليس ملزما بأن يقوم بتعريف كافة الوظائف المذكورة فيها، وإنما ينبغي أن يطبق فقط ما يحتاجه، وذلك لتفادي الوقوع في انتهاك لمبدأ Liskov Substitution Principle.

شرح مبادئ SOLID - المبدأ الثالث Liskov Substitution Principle

0

قبل أن نقوم بشرح مبدأ الاستبدال Liskov Substitution Principle سنجري بعض التعديلات على برنامجنا لكي يكون شرح هذا المبدأ واضحا بشكل كبير.
في الأول قد تلاحظ معي أن الوظيفة Convert الموجودة في الكلاس NumberConverter تحتوي على العديد من الأوامر البرمجية التي يمكن إجراء Refactoring عليها، وإلا فإن شكل الوظيفة سيسوء مع ظهور متطلبات جديدة، ولك أن تتخيل إذا طلب منا العميل إقحام أنواع أخرى جديدة للتحويل إليها وكم من case ستصبح في Switch statement.

شرح مبادئ SOLID - المبدأ الثاني Open-Closed Principle

3

ينص هذا المبدأ على أن الوحدات Modules مثل الكلاسات ينبغي أن تكون مفتوحة على التوسيع Open for extension ومغلقة في وجه التعديل Closed for modification.
هذا الكلام باختصار يعني لو عندك كلاس ستحتاج إلى إضافة بعض الأمور إليها، فإنه من الجيد أن تستطيع القيام بعملية الإضافة عبر توسيع الفئة من خلال آلية الوراثة Inheritance مثلا، وليس عبر التعديل المباشر في السورس كود.

شرح مبادئ SOLID - المبدأ الأول Single Responsibility Principle

0

أول مبدأ من مبادئ SOLID هو مبدأ Single Responsibility الذي يقول لنا بأن كل وحدة Module عليها أن تقوم فقط بمسؤولية Responsibilty واحدة لاغير.

مصطلحات ستعيش معها في مجال تصميم البرمجيات Software Design

1

في قاموس مجال تصميم البرمجيات ستجد عدة مصطلحات منتشرة بكثرة، مثل مصطلح Coupling، ومصطلح Responsibility، ومصطلح Abstraction وغيرها، هذه المصطلحات تلعب دورا جوهريا في فهم آليات التصميم، حيث سنجدها تدخل في تعريفات بعض المبادئ والنماذج، لذلك يعد الإلمام بها مدخلا أساسيا لتذليل صعوبات هذا المجال وفهم تفاصيله.

مدخل إلى مبادئ ونماذج تصميم البرمجيات Software Design Principles and Patterns

2

مقدمة

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

دروس قوية من المهندس حسام خاصة بمجال الدوت نيت وتقنيات ميكروسوفت

7


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

من هو المهندس حسام؟

من العرب القلائل الذين حازوا جائزة Microsoft MVP منذ عام 2013، ويعد مستشارا في Xamarin، Xamarin Consultant، يقوم بتنظيم دورات تكوينية في تقنيات الدوت نيت، وينشر مقالات تقنية على مدونة Microsoft MSDN و CodeProject، كما يقدم محاضرات و ورشات لتأطير المبرمجين.

ما الذي يوجد في قناة المهندس حسام؟


توجد دورات عديدة يتناول من خلالها المواضيع التالية:
·       Kubernetes with Azure and Azure DevOps
·       DevOps for Database
·       Unit & UI Tests
·       Cross Platform Apps with Xamarin Forms
·       ASP.NET with Visual Studio
·       Azure Cognitive Services
بالإضافة إلى دروس أخرى متنوعة ستجدونها على قناته، وهذا رابطها:


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

دام لكم البشر والفرح !