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

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

دعواتكم لأخيكم، في وعكة صحية، و الحمد لله.

بارك الله لكم و فيكم.
6
في كتاب Fundamentals of Software Architecture الكاتبان شددا على نقطة كنت دائما اشير اليها قبل ان تكون لي معرفة بان هذا اصلا شيء معروف.

ال 20mins rule.

كنت دائما اقول 15/30 دقيقة يوميا لتعلم شيء جديد في المجال كفيلة بأن تنقل مستواك الى مستوى عال في مدة قصيرة...

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

#contuniuelearning #Coding #softwaredevelopment
9
Software Architecture Trade-off

في معمارية البرمجيات، كل شيء هو Trade-off بمعنى "تتنازل عن ميزات للحصول على أخرى".

وهذا ليس أمرًا ثابتًا، ولا يمكنك أن تجد الإجابة النهائية لهذه التنازلات على Google أو أي LLM.. كما يقول المؤلفان.

القرارات تعتمد على:

- خبرة الـ Architect وفريقه

- الموارد المتوفرة (مادية وبشرية)

- مهارات الفريق وقدراته

- فهمك لمجال التطبيق (Domain Knowledge)

لذلك لا توجد إجابة واحدة صحيحة، بل دائمًا "It depends".

على سبيل المثال، اختيار أن يكون النظام Microservices أو Monolithic أو Serverless يعتمد على السياق والاحتياجات، وليس على قاعدة عامة.


#softwarearchitecture #software #softwareEngineering
👍2🤔1
The Best Architects are Hands-on

أفضل ال Architects هم الذين يشاركون في كتابة production code (أو ما يسمى hands-on).
هذا يجعل قراراتهم أقوى وأكثر واقعية، ويساعدهم على تجنب ما يسمى في هندسة البرمجيات: Bottleneck Trap أي أن يصبح جزء من النظام أو خدمة خارجية عبئًا يبطئ التطوير بأكمله.

إذا كان المعماري مسؤولًا عن جزء مهم مثلا، قد يتحول إلى عائق للفريق بسرعته أو ببطئه.

لكن ايضا عندما يكون المعماري مطورًا أيضًا، فهو يضيف قيمة حقيقية دون أن يخرج عن مهامه الأساسية.

كيف يفيد كونه Hands-on؟

تنفيذ Proofs-of-Concept: كتابة كود عملي بسيط يوضح فكرة أو حلّ، ويصبح مرجعًا للفريق من ناحية code style أو الفهم التقني.

المساهمة في UI snippets أو الأكواد الصغيرة التي تسهّل حياة الفريق.

معالجة technical debt أو إصلاح bugs في ما تم بناؤه سابقًا، ليبقى قريبًا مما صممه ويستمر في تحسينه.

تجهيز automation commands لتسريع عمليات التطوير أو النشر.

القيام بـ code reviews لمتابعة جودة ما ينتجه الفريق.

ال Architect الذي يوازن بين الرؤية المعمارية وكتابة الكود العملي يبقى الأقرب للفريق والأكثر
تأثيرًا.

#softwarearchitecture
3
This media is not supported in your browser
VIEW IN TELEGRAM
9
This media is not supported in your browser
VIEW IN TELEGRAM
6
تحملونا قليلا لو طقطقت رؤوسكم بمقاطع الدقيقة الواحدة، اعتبروني كطفل اكتشف لعبة جديدة 😅.

لعلها تكون نافعة...
🥰6😁3
Media is too big
VIEW IN TELEGRAM
نقطة مهمة اثناء العمل داخل فرق متوسطة أو كبيرة في تطوير البرمجيات.

اعتذر على التسجيل في السيارة فوالله لا احب ذلك، لكن غالبا ما تاتيني الفكرة و انا متحرك، فاسجلها لكي لا انساها.
2
في ال Git، أحيانًا تكون هناك فرق تفضل أن تحتوي الـ PRs أو MRs التي تفتحها على commit message واحدة فقط.

لكن في بعض الأحيان، قد تكون قمت بعدة commits أثناء تنفيذ التغييرات (مثلاً 10 أو أكثر).

هنا تأتي أهمية معرفة commit fixup، فهي تسمح لك بدمج كل هذه ال commits تحت commit واحدة برسالة موحدة وواضحة.

لنفترض أنك قمت بـ 4 تغييرات:

git rebase -i HEAD~4

ستظهر لك هذه ال command قائمة بال commits الأخيرة، ويمكنك عندها تعديلها باستخدام الخيار fixup.

مثلًا:

f 525536 commit message

حيث تعني f (fixup) أن هذا ال commit سيتم دمجه مع ال commit الذي قبله.

بعد الانتهاء، احفظ الملف واخرج من ال CLI، ثم نفّذ:

git push -f

لدفع التغييرات بعد إعادة عمل ال rabse.. لانك غالبا لو قمت فقط بال git push ستحصل على خطأ لانه ليس هنالك تغييرات اصلا، فقط fixing up لل commits.

بعض الـ IDEs مثل VS Code أو IntelliJ يوفرون UI تسهّل عملية ال fixup بدون الحاجة لكتابة الأوامر يدويًا.

#git #softwaredevelopment
3👍2
فقط الان لاحظت، اننا في هذه المجموعة الصغيرة وصلنا ل 400 متابع، أتمنى ان هنالك شخص أو شخصين يستفيدون معنا في كل منشور ننشره، أو مقطع.. و عقبال ال 4000 متابع.

نسأل الله صدق النية و صلاح العمل، و نسألكم الدعاء لنا عن ظهر غيب.
14
Media is too big
VIEW IN TELEGRAM
3 نصائح مهم في اسخدام ال ai كمطور برمجيات.
3
Mohcin Bounouara's Space
3 نصائح مهم في اسخدام ال ai كمطور برمجيات.
خلاصة هرطقات هذا المقطع.

كلنا نستخدم ال ai الان ومن الغباء عدم استخدامه، لكن ثلاث نصائح مهمة..

- انت من يقود المشروع لا ال ai.

- الكود review اصبخ ضرورة ملحة الان من طرفك و من طرف باقي اعضاء الفريق.

- الان اصبح من الضروري استخدام ال git branching لتفادي اخطاء فادحة، ومع امكانية عمل rollback في اي وقت.

#Software #softwaredevelopment #ai
👍2
لا نعرف قيمة الأشياء التي تبدو "طبيعية و عادية" في حياتنا الا بعد فقدانها او نقصها.. هنا نعلم انها من اكبر نعم الله علينا.

فاللهم أوزعنا ان نشكر نعمتك ما أحييتنا.. و تجاوز عنا.

قالَ رَسولُ اللَّهِ ﷺ: إذا مَرِضَ العَبْدُ، أوْ سافَرَ، كُتِبَ له مِثْلُ ما كانَ يَعْمَلُ مُقِيمًا صَحِيحًا.
7
واحدة من أهم قوانين هندسة البرمجيات التي ذكرها مؤلفا كتاب Fundamentals of Software Architecture هي:
"The why is more important than how."

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

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

ورغم أننا قد لا نملك الصورة الكاملة ل "لماذا قمنا بالتغير بطريقة ما" دائما، إلا أن دور الفريق هنا أساسي، من خلال code reviews، وتوضيح الأسباب وراء كل تغيير أو قرار من أعضاء فريق لديهم فهم أعمق للمشروع..، فهكذا نتعلم ونفهم "لماذا" بشكل أعمق.

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

#softwaredevelopment #softwarearchitecture #software
👍41
القراءة عموما هي التي تمنحك الأصل في الفهم، وتساعدك على تكوين أفكار وخرائط ذهنية تجعل استحضار المعلومات سريعا لديك أثناء الحديث أو الكتابة، سواء في هندسة البرمجيات أو في مجالات أخرى من الحياة.

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

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

أما الفيديو كورسات والتوتوريالز، فهي رائعة في تعلم تفاصيل التنفيذ Implementation details وكيفية استخدام الأدوات والتقنيات.

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

والله أعلى وأعلم.

#softwaredevelopment #contuniuelearning
4👍1
من أسئلة فورم الأسئلة؛

"السلام عليكم ورحمة الله وبركاته كنت بدأت بتعلم مجال الباك اند والآن أكملت لغة بي اتش بي وعملت تطبيق عليها وأفكر ببدء تعلم اللارافل، لكن الآن مع مشاريع التخرج دخلت مع قروب يريدون يعملوا تطبيق وليس ويب، السؤال الآن أكمل بشكل ذاتي تعلم الباك اند أم أحول للفلاتر، أحس الموضوع شتتني جداً بالذات مشروع التخرج رح ياخذ وقت وجهد، جزاكم الله خير."

جوابي:

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

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

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


وفقك الله في دراستك و في دينك و دنياك و نفع بك.
🔥3👍1
أنت مطالب بالعمل الآن، فما مضى قد فات و لك الساعة التي أنت فيها..

حاول ان تقدم افضل ما لديك في دينك و دنياك لهاته اللحظة، و ابدأ الان..

١ - الإيمانُ بضعٌ و ستون أو بِضعٌ و سبعون شعبةً؛ أفضلُها لا إله إلا اللهُ، و أدناها إماطةُ الأذى عن الطريقِ، و الحياءُ شُعبةٌ من الإيمانِ
الراوي: أبو هريرة • الألباني، صحيح الأدب المفرد (٤٦٦) • صحيح • أخرجه مسلم (٣٥)، والبخاري في ((الأدب المفرد)) (٥٩٨) واللفظ له.
9