Mohcin Bounouara's Space – Telegram
Mohcin Bounouara's Space
516 subscribers
84 photos
19 videos
8 files
128 links
{فَأَمَّا الزَّبَدُ فَيَذْهَبُ جُفَاءً ۖ وَأَمَّا مَا يَنفَعُ النَّاسَ فَيَمْكُثُ فِي الْأَرْضِ} [الرعد: 17]

خواطر في الدين و الدنيا و هندسة البرمجيات في محاولة لإصلاح نفسي ولعلني اجعل لنفسي أثرا في إصلاح الاخرين.. على قلتهم، لعلنا نلقى الله بهذا.
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
2
Mohcin Bounouara's Space
Video message
محتوى هذا المقطع لمن لا يحب الاستماع او المشاهدة، أو يفضل القراءة اكثر:
.

عندما تشتغل على ميزة كبيرة تحتوي على ملفات جديدة كثيرة أو تغييرات متعددة، حاول ألا تدفع كل شيء في commit واحد.

قسّم عملك إلى commits صغيرة، بحيث يحتوي كل واحد منها على ملفين أو ثلاثة فقط، ويكونوا مرتبطين بسياق واحد محدد.

بهذه الطريقة:

- ستكون أكثر تنظيمًا.
- وسيتمكن ال reviewer من فحص التغييرات بسهولة وراحة أكبر.

نفعنا الله واياكم، و دعواتكم لنا.
9🔥1
ال ai رائع، يغني عن كثير تعب و كثير تضيع وقت.

لكن يجب أن تحسن إستخدامه و إلا حصلت على نتائج عكسية.

- إفهم ال codebase جيداا،
- افهم المهمة التي تريد ان يساعدك فيها أولا،
- راجع الكود المقدم و دائما ما ستجد ما يجب أن تضيفه أو تزيله،
- إجعل تغيرلتك صغيرة،
- إعتمد عليه في كتابة ال tests فهو جيد في هذا كثيرا،
- الكود يجب أن يراجع من قبل senior developers سواءا كتبه senior أو junior،
- تعلم اللغة البرمجية او الفرييموورك الذي تستخدمه جيدا، و تعلم و أسس نفسك جيدا في هندسة البرمجيات، فالأمر ليس فقط coding الان، - طبعا كل هذا و أنت سائر على الطريق، لا تتوقف - .

و إستعن بالله ولا تعجز، و الله أعلى و اعلم.

#softwareEngineering #softwaredevelopment
5🔥1
كإنسان مسلم و مبرمج/مهندس برمجيات؛

التقرب إلى الله بالفرائض و النوافل وتعلم أعظم العلوم، وهو العلم الشرعي.

وتخصيص وقت لتعلم كيفية إصلاح شوائب النفس واضطراباتها.

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

الترويح عن النفس.

ممارسة الرياضة.

العمل لكسب قوت يومك.

يُفضل أن يكون اليوم مقسّمًا على هذا النحو وبجدية.. لو احببت مصدرا في هذا اقرأ كتاب "اليوم النبوي".

وحاول عدم الوقوع في جلد الذات عند وقوع أي خطأ أو الإخلال بشيء من الخطة..

و الله أعلى و أعلم.
10🔥1
هل أنت كمبرمج تستطيع القيام بكل ما يقوم ال ai بعمل generate له بالنسبة لك؟

جوابي الشخصي لا.. حتى قبل ال ai كنا نبحث هنا وهناك و نقوم بعمل adaptation لما نبحث عنه على حالة أو المشكلة التي نعمل نعمل على حلها.. لكننا نفهم كثيرا مما نقوم به.

هذا لكي لا تشعر بالنقص و انت تستخدم كود نظيف و و و و بسرعة انتاجية كبيرة.. الامر مجاهدة نفسية أيضا 😅

ما رأيكم، و ما انتقاداتكم لهذا الكلام؟
💯6
Forwarded from الزَّنَاد
🔗 رِباط التقنية
مجمع القنوات العربيّة التقنية

في زمنٍ تتشتّت فيه المعارف بين الآفاق، جمعنا لكم سلسلة القنوات العربية التقنية في مكانٍ واحد، لتكون دليلك إلى المحتوى النافع والطرح الرصين.

📌 استعرض القنوات عبر الموقع:
https://alzanad.github.io/ribat-altaqniyyah

📜 اشترك مباشرةً في القائمة الموحّدة على تليجرام:
https://news.1rj.ru/str/addlist/Gg-LFze5N89mMTJk

💬 للراغبين في الإضافة أو التواصل حول المبادرة:
@alzaanad

#رباط_التقنية
3
خلاصة كثرة الكلام حول ال ai.

استخدم و تعلم استخدام ال ai هذا أصبح ضرورة.

و تعلم الأساس في هندسة البرمجيات و علوم الحاسوب فهذا كان ضرروة و لازال و سيبقى.
4
عندما بدأت في قراءة كتب في البرمجة و هندسة البرمجيات، كانت لدي فكرة مسبقة، و هي أن التطبيق العملي او التعلم العملي أهم، و يمكنك الاستغناء عن قراءة الكتب التقنية من الأساس.

لكن بمجرد بدأت القراءة اكتشفت مدى جهلي الذي ادى لتكوّن الفكرة التي افتتحت بها هذا المنشور.

بدأت بازالة الغبار عن افكاري و معرفة ان الكتب ربما اهم من التطبيق، بل هو سبيل تسهيل العمل التطبيقي.

و العجيب أن تأثير القراءة التقنية على تفكيرك الهندسي تكون سريعة..

و الحمد لله، و الله أعلم.

#softwareEngineering #softwarearchitecture
7🔥1
في اجابة مرتجلة على سؤال اخ معنا في هذه الجموعة، رأيت انها تستحق النشر منفصلة لعلها تنفع آخرين، - بتصرف -

.

على ماذا تركز في تعلمك و دراستك في هذا المجال؟

لا اعرف ماذا درست سابقا و مدى تعمقك فيه.

فشخصيا لاسباب ما.. لم اتقن كثير المواد في الدراسة العليا رغم انني نجحت فيها كلها و هكذا..

يعني انت ادرى من نفسك و مواطن ضعفك..

الاهم ركز على ما يدفع بك للاممام "الآن" و ما يسد فجواتك المعرفية لانك ستحتاجه في المستقبل كلما كبرت في المجال.

#learning #softwaredevelopment
3
نتعلم من خلال القيام بالأشياء بالطريقة الخاطئة، فلو كنا دائمًا على أكمل وجه و نقوم بالأشياء بدقة متناهية، لما كنا بشرًا. نذكر هذا جيدا في مجال البرمجيات.. لا تنسَ هذا.

لكن اسعَ دائمًا للأفضل، وكن دائمًا ممتنًا للأشخاص أو المؤسسات التي تمنحك فرصة التعلم.
7🔥1
توقف عن استخدام magic numbers في كود ال php

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

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

#PHP #CleanCode
تحدث عندما يحتاج الامر ان توضح شيئا، او ان توضح تأخيرا او ان تبرر شيئا ما..

حتى ولو كان هذا سيغضب مديرك..

التحدث في الوقت المناسب في فرق هندسة البرمجيات شيء ضروري..

و يجب ان تتعلمه. كيف؟ الامر معقد لكن ساحاول ان انشر حول هذا من حين لآخر حسب تجربتي الشخصية التي لا تصح للتعميم.

و تذكر الامر لله من قبل ومن بعد.

#softwareEngineering
5🔥1
لو أردت أن أنشر حول شيء متأكد منه في مجال هندسة البرمجيات والبرمجة، فسيكون: استغلال الوقت، التعلم المستمر، ونشر ما تتعلمه.

بخصوص الأولى، لا تضيع وقتك إذا كان لديك وقتٌ متاح.. (و يجب ان تخصصه اذا أردت السير على الطريق..). خصص وقتًا ثابتًا للتعلم في المجال، خصوصًا الأساسيات، وكن منظمًا في ذلك.

الثانية، التعلم المستمر، ابنِ لنفسك خطة مبنية على:

- فجواتك التقنية.

- أين أنت الآن.

- إلى أين تريد أن تصل.

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

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

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

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

فإستعن بالله ولا تعجز، وتذكر قليل دائم خير من كثير منقطع.
11🔥1
لمن يستخدم Windsurf IDE الذي هو مبني على Vs Code أساسا و يواجه مشكلة في تثبيث vs code extentions حتى بعد تعديل الخيار by default الخاص بوويندسورف، إليك هذا المنشور السريع الذي سيحل مشكلتك إن شاء الله.

https://mohcinbounouara.com/fixing-vs-code-marketplace-connection-issues-in-windsurf-ide/
2🔥1
بدأت قراءة كتاب Fundamentals of Software Architecture الإصدار الثاني.. لا أعتبر نفسي Architect بعد، لكن مؤلفيي الكتاب يوضحان أن هذا الكتاب موجّه أيضًا للمطورين الذين يتخذون قرارات معمارية من وقت لآخر، أو الذين يرغبون في الانتقال لهذا الدور في المستقبل.

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

كيف يتم تعريف هندسة برنامج ما، التعريف يتكون من أربعة مكونات رئيسية:

- خصائص المعمارية Architecture characteristics : ما يجب أن يفعله النظام ببساطة (القدرات الأساسية).

- المكونات المنطقية Logical components : و تتمثل في سلوكيات النظام وتدفق عمله (work flow). 

- نمط المعمارية architecture style : يتم اختياره بعد تحديد الخصائص والمكونات (مثل: Layered، Microservices، Event-driven…).

- القرارات المعمارية architecture decisions : القواعد والاختيارات اللازمة لبناء النظام (مثل: نوع قاعدة البيانات، مونوليث أو مايكروسيرفيسز، الأُطر المستخدمة…). وهكذا..

#softwarearchitecture #software
6
جميل جدا، دائما ما كان عندي نفس التصور حتى قبل موجات ال ai.

القياس يجب ان يكون مبني على قدرة المطور على بناء برامج وتطبيقات بمختلف الاحجام و المجالات، و العمل في فرق و هكذا.. لا على coding puzzles.. و احب في هذا الشركات التي تاتي ب task حقيقية وتعطيها للمبرمج ليقوم بها على اساس انها ااختبار.. او pair session.. و هكذا.

و هذا لا ينفي ضرورة الالگوريتمس و ال data structures في بناء اسس صلبة و طرق تفكير جيدة.

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

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

إعمل لدنياك كأنك تعيش أبدًا، واعمل لآخرتك كأنك تموت غدًا.. وأعطِ كلَّ ذي حق حقَّه؛ فلربك عليك حق، ولنفسك عليك حق، ولأهلك عليك حق، ولزَورك عليك حق.. فَأَعطِ كل ذي حق حقه.

قسِّم يومك لما يقرّبك إلى الله أولًا، ويجعلك تعيش هنا مسلمًا قويًا قدر الإمكان، لا أن تعيش فقط لما يقويك هنا.. وتنسى ما ينجيك هناك.

تعلّم دينك قدر الإمكان، واعمل بما تعلمت "الآن"، وتعلّم ما يعينك في أمر دنياك.

هو كلام أقوله لنفسي وأدوّنه للعودة إليه لو قدّر الله ذلك مستقبلًا، ولعلّه ينفع من يقرأه.

وتذكّر هذه الآيات والأحاديث:

قال تعالى: "وَإِن تَعُدُّوا نِعْمَةَ اللَّهِ لَا تُحْصُوهَا ۗ إِنَّ اللَّهَ لَغَفُورٌ رَّحِيمٌ"

قال تعالى: "وَهُوَ الَّذِي أَحْيَاكُمْ ثُمَّ يُمِيتُكُمْ ثُمَّ يُحْيِيكُمْ ۗ إِنَّ الْإِنسَانَ لَكَفُورٌ"

قال تعالى: "{وَنُنَزِّلُ مِنَ الْقُرْآنِ مَا هُوَ شِفَاءٌ وَرَحْمَةٌ لِّلْمُؤْمِنِينَ}"

ما قاله سلمان الفارسي لأخيه أبي الدرداء عندما زاره فوجده قد انقطع للعبادة حتى أهمل حق زوجته وحق نفسه. فقال "إنَّ لِرَبِّكَ عَلَيْكَ حَقًّا، ولِنَفْسِكَ عَلَيْكَ حَقًّا، ولأَهْلِكَ عَلَيْكَ حَقًّا، فَأَعْطِ كُلَّ ذِي حَقٍّ حَقَّهُ". وقد أقره النبي صلى الله عليه وسلم على ذلك بقوله: [صدق سلمان]. وفي رواية: [إن سلمان أفقه منك]، وفي رواية: [لقد أوتي سلمان علما].

قال صل الله عليه وسلم:" لا تزول قدما عبدٍ حتى يُسألَ عن عمُرهِ فيما أفناهُ، وعن علمِه فيما فعل، وعن مالِه من أين اكتسَبه وفيما أنفقَه، وعن جسمِه فيما أبلاهُ"
7🔥1
السلام عليكم و رحمة الله.

فيديو تعريفي بقناة اليوتيوب الجديدة-القديمة.

لعله يكون فاتحة خير لي و لكل من سيتفيد شيئا منه.

https://youtube.com/shorts/fmxAUTkl9xU?feature=share
5
مرة أخرى مع كتاب Fundamentals of Software Architecture حسب المؤلفين، و بعد بحث طويل وصلوا إلى ثلاث قوانين أساسية في هندسة البرمجيات:

1- "Everything in software architecture is a trade-off"
كل قرار معماري له مميزات وله عيوب، لا يوجد حل مثالي يحل كل المشاكل بدون آثار جانبية.


2- "Why is more important than how"
الأهم من كيفية فعل الأشياء هو لماذا سنقوم بها بهذه الطريقة و ما خلفيات اتخاذنا للقرارت المعمارية. السبب والسياق والتوازنات أهم من التنفيذ نفسه.


4- "Most architecture decisions aren’t binary but rather exist on a spectrum between extremes"
معظم القرارات المعمارية ليست أبيض أو أسود، (ليس الحلول المعمارية مبنية فقط Monolith أو Microservices، بل هناك حلول وسطية، و أخرى ابسط..).

#softwarearchitecture #software
3