لمحة 👀 برمجية – Telegram
لمحة 👀 برمجية
607 subscribers
142 photos
8 videos
13 files
141 links
Download Telegram
🔝


اتخاذ القرارات في عالم البرمجيات

الهدف الأساسي هو أن البرنامج اللي تبني يقدم قيمة (Value).
فيه أساليب بتساعدك تحقق هذا الهدف. أهم شيء نفهم إنه:

ما فيه قرار صحيح 100% ولا قرار غلط 100%.

كل قرار فيه مزايا وعيوب.


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

التقييم هذا بيتم عن طريق معادلة بسيطة:
D = V / E

D (الرغبة في التغيير - Desirability of Change).

V (القيمة اللي بيضيفها التغيير - Value Added).

E (المجهود المطلوب - Effort Needed).


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

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

أفضل سيناريو نظريًا يكون لما:

الميزة تضيف قيمة كبيرة جدًا.

وتحتاج مجهود قليل جدًا عشان تنفذها.


(لكن هذا في الأحلام 😂).

قبل ما تكتب الكود، فكّر:

إيش القيمة اللي بتضيفها الميزة؟

كم مجهود تحتاج لتحقيقها؟

كيف نحكم على قيمة الميزة (Value)؟

فيه عاملين يساعدوك:

1. Probability of Value
كيف كثير بيستخدم العميل هذه الميزة؟


2. Potential of Value
كم قيمة الميزة وقت استخدامها؟

أمثلة:

مثال 1:

Apple Watch
فيه ميزة لو قراءات ضربات القلب كانت غير طبيعية، بتوصل إشعار لأقرب 3 أشخاص من العائلة إن الشخص يعاني من أزمة قلبية.

احتمال الاستخدام (Probability):
ممكن تستخدم الميزة مرة وحدة في حياتك، أو ما تستخدمها أبدًا.

قيمة الميزة عند استخدامها (Potential):
عالي جدًا لأنها ممكن تنقذ حياة إنسان.


النتيجة: الميزة مرغوبة وأولوية عالية في التنفيذ.


مثال 2:

E-Commerce
ميزة تخلي المتجر يرسل نكتة أو اقتباس مضحك كإشعار أثناء ما العميل يتصفح المنتجات.

احتمال الاستخدام (Probability):
عالي جدًا، لأنها بتوصل لكل العملاء.

قيمة الميزة عند استخدامها (Potential):
ممكن تكون سلبية لأنها تشتت العميل وتضر بسمعة المتجر.


النتيجة: قيمة الميزة قليلة جدًا وممكن يتم إلغاؤها.

الخلاصة:

قبل ما تنفذ أي مهمة، فكر كويس في:

تأثيرها على العميل المستهدف.

القيمة اللي تضيفها.

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

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

استعن بالله في كل خطوة، وكن واثقًا أن القرارات الصحيحة اليوم هي التي تصنع الفرق غدًا. اجعلها رحلة ممتعة، لأن النجاح لا يتعلق فقط بالوصول، بل بالاستمتاع بالطريق أيضًا.
1👍1
شف ياصديقي لو قلت لك الان انت بترسل request إلى Database لجلب مثلا منتجات أي كان طيب في نفس اللحظه في عدد من requests من أكثر من client كذلك كيف ان احسن من نظامي بدل ما request على طول يرتسل إلى السيرفر يتم توجيهه إلى message queue و السيرفر ب يستهلك ويعمل listening على الطابور تعرف ايش انت الان حسنت الأداء وعملة عمليه تنظيم كذلك ايش افترض السيرفر وقف وفي requests ارسلت والسيرفر وقع هنا العميل مش هيحس بوقف السيرفر وطلبه سيظل معلق على الطابور مايضيع حتى يعاد عمل السيرفر ويكمل عمله وركز تخيل لو انت في عملية تحويل أموال
وشكرا
2
من الشات اكثر
طيب شوف، لو قلت لك الآن إنك بترسل request إلى الـ Database لجلب منتجات أو أي بيانات أخرى، وفي نفس اللحظة في عدد من الـ requests جاي من أكثر من client، كيف ممكن تحسن من نظامك؟
بدل ما كل request يروح مباشرة للسيرفر، يتم توجيهه إلى Message Queue. السيرفر هنا يكون مسؤول فقط عن استهلاك الطلبات الموجودة في الطابور ويعمل Listening عليها.

الحين، بهذا الشكل:

حسنت الأداء لأن الطلبات ما تدخل مباشرة للسيرفر بشكل عشوائي.

سويت عملية تنظيم لتدفق الطلبات، بحيث السيرفر يشتغل على قدر طاقته بدون ضغط.


طيب افترض السيرفر وقف لأي سبب، وفي requests أُرسلت خلال هذا الوقت، هنا:

العميل ما راح يحس أن السيرفر متوقف، لأن الطلبات تظل معلقة في الطابور.

الطلبات ما تضيع، وبمجرد ما يرجع السيرفر للعمل، يكمل معالجة الطلبات الموجودة.


تخيل هذا السيناريو لو كنت في عملية تحويل أموال:

توقف السيرفر هنا قد يؤدي لفقدان الطلبات أو تكرارها.

لكن مع الـ Message Queue، الطلب يظل محفوظ حتى يتم معالجته بشكل كامل، مما يضمن استمرارية العملية بدون أي خسائر.


وشكراً.
تحسين أداء الأنظمة باستخدام Message Queue

لنفترض أن لديك نظامًا يتلقى طلبات (Requests) من العملاء لجلب منتجات أو تنفيذ عمليات معينة. الآن، في نفس اللحظة، هناك العديد من الطلبات الواردة من عدة عملاء، مما يسبب ضغطًا على السيرفر.

المشكلة:

كل طلب يتم إرساله مباشرة إلى السيرفر لمعالجته.

إذا كان عدد الطلبات كبيرًا جدًا، قد يؤدي ذلك إلى:

تأخير في الاستجابة.

تعطل النظام إذا فاق الطلب قدرة السيرفر.


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


الحل: Message Queue

بدلاً من إرسال الطلبات مباشرة إلى السيرفر، يتم توجيهها إلى Message Queue (طابور رسائل).

كيف يعمل؟

1. العملاء: يرسلون الطلبات إلى الطابور بدلاً من السيرفر مباشرة.


2. السيرفر: يقوم بعملية Listening على الطابور ويستهلك الطلبات واحدة تلو الأخرى بناءً على قدرته.


3. إذا تعطل السيرفر لأي سبب، تظل الطلبات موجودة في الطابور حتى يعود للعمل ويكمل معالجتها.




الفوائد:

1. تحسين الأداء:

تنظيم تدفق الطلبات بحيث لا تتجاوز قدرة السيرفر.

السيرفر يعالج الطلبات بمعدل ثابت دون ضغط مفاجئ.



2. الحفاظ على الطلبات:

إذا تعطل السيرفر، الطلبات تبقى محفوظة في الطابور ولا تضيع.

بمجرد عودة السيرفر للعمل، يكمل معالجة الطلبات.



3. زيادة الموثوقية:

العملاء لا يشعرون بتوقف النظام لأن الطلباتهم تظل معلقة في الطابور.




تطبيق حقيقي:

تخيل أن العملية هي تحويل أموال بين الحسابات.

إذا تم إرسال الطلب مباشرة إلى السيرفر وتعطل أثناء العملية، قد يتم فقدان الطلب، مما يسبب خسائر كبيرة.

باستخدام Message Queue، الطلب يتم تسجيله في الطابور ويبقى محفوظًا حتى يعالج بشكل صحيح، حتى لو تعطل النظام مؤقتًا.



---

ملخص:

Message Queue يحسن الأداء ويجعل النظام أكثر موثوقية.

يساعد على إدارة الضغط على السيرفر وتنظيم الطلبات بشكل أفضل.

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


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

بدلاً من قول عبارات مثل "أنت عبقري" أو "لا أحد يستطيع فعل ما فعلت"، من الأفضل استخدام لغة تُركز على التقدير مع الحفاظ على العدالة، مثل:

"أنا أقدّر مجهودك الكبير في هذا العمل."

"هذا إنجاز رائع، وأنا ممتن لالتزامك ودقتك."


بهذه الطريقة، تُظهر التقدير للجهد المبذول، دون أن تُسبب إحباطًا لبقية الفريق أو تُشعرهم بأن جهودهم أقل قيمة. وفي الوقت نفسه، تأكد من الاحتفال بالنجاحات الجماعية لتحفيز الجميع على تقديم الأفضل.
Forwarded from اللجنة العلمية CS 22 (ʙʀʜᴏᴏᴍ ⑇)
سمعت ب Inline Composables في Vue.js ؟
𝕏
LinkedIn
التصميم الآن لم يعد يقتصر فقط على تصميم النظام، بل أصبح يشمل البيئة التشغيلية التي ستستضيف هذا النظام. مع انتقال الأنظمة إلى السحابة مثل AWS أو Azure، أصبح دور Solution Architect مهمًا جدًا. الموضوع ليس مجرد عملية نشر (Deployment) وتنتهي الأمور، بل تحتاج إلى تخطيط دقيق للبيئة وتصميمها بشكل احترافي.

المهندس هنا يحتاج إلى:

1. التخطيط للبيئة السحابية:

تحديد الموارد اللازمة مثل الخوادم، الشبكات، التخزين، وقواعد البيانات.

ضمان أن البنية قادرة على التوسع (Scalability) ومقاومة الأخطاء (Fault Tolerance).



2. تصميم البنية التحتية:

اختيار الخدمات المناسبة لتحقيق التوازن بين الأداء والتكلفة.

التأكد من أن التصميم يتماشى مع متطلبات الأمان والامتثال.



3. اختيار الأدوات الصحيحة:

تحديد الأدوات والخدمات التي تخدم احتياجات المشروع مثل Lambda أو Kubernetes.



4. التكامل مع الأنظمة الأخرى:

تصميم البيئة بحيث تتكامل بسهولة مع الأنظمة أو التطبيقات الأخرى.



5. اختبار البيئة:

التأكد من أن البنية تعمل بكفاءة في جميع الظروف.



6. إدارة الكوارث واستمرارية العمل:

ضمان وجود خطط لاستعادة البيانات والخدمات في حال حدوث مشاكل.




بهذا الشكل يكون العمل أكثر احترافية وفعالية.
تخيل عندك 30 حاوية (Containers) تعمل باستخدام Docker، وإذا توقفت واحدة منها لأي سبب، ستحتاج إلى تدخل يدوي لتشغيلها من جديد. هنا يأتي دور Kubernetes، الذي يعمل كمدير للحاويات كلها. Kubernetes يشبه الباخرة الكبيرة التي تحمل العديد من الطائرات، وتتحكم في الإقلاع والهبوط لكل واحدة منها بشكل تلقائي ومنظم.
لمحة 👀 برمجية
تخيل عندك 30 حاوية (Containers) تعمل باستخدام Docker، وإذا توقفت واحدة منها لأي سبب، ستحتاج إلى تدخل يدوي لتشغيلها من جديد. هنا يأتي دور Kubernetes، الذي يعمل كمدير للحاويات كلها. Kubernetes يشبه الباخرة الكبيرة التي تحمل العديد من الطائرات، وتتحكم في الإقلاع…
بتتكلم على ايه ياسطى هنا يعجز الذكاء الاصطناعي في المشاريع الكبيرة ال ai الآن يقدر ينشأ بيئة العمل بدايتها مشروع بسيط يعمل حتى ربط مع الداتابيز جميع العمليات لكن في المشاريع الكبيرة هيساعدك في سرعة الإنتاجية
Forwarded from اللجنة العلمية CS 22 (ʙʀʜᴏᴏᴍ ⑇)
👨🏻‍💻 واخيراً... الان Node.js v23.6.0: دعم TypeScript بشكل افتراضي!

تم إطلاق الإصدار Node.js v23.6.0 أخيراً، وتقدر تشغل ملفات TypeScript بشكل مباشر بدون أي إعدادات إضافية او config. 🎉

https://nodejs.org/en/blog/release/v23.6.0
اللجنة العلمية CS 22
👨🏻‍💻 واخيراً... الان Node.js v23.6.0: دعم TypeScript بشكل افتراضي! تم إطلاق الإصدار Node.js v23.6.0 أخيراً، وتقدر تشغل ملفات TypeScript بشكل مباشر بدون أي إعدادات إضافية او config. 🎉 https://nodejs.org/en/blog/release/v23.6.0
اخر اصدار من Angular 19 بيدعم إلى 22 من اصدار node لمطورين Angular

كذلك ازيدك
إن شاء الله الشهر القادم سيكون أول preview من الdotnet 10
أتوقع يكون متاح على يوم 4 فبراير
كذلك أتوقع نسخة preview لنسخة جديدة من الvisual studio
والله أعلم 😅
كل هذا معناه الحق نفسك
1
Microsoft أعلنت عن إصدار Microsoft SQL Server 2025، والذي يأتي بميزات جديدة لتحسين الأداء والذكاء الاصطناعي. الميزات الرئيسية تشمل:

الميزات الرئيسية
1. دعم الذكاء الاصطناعي (AI) المدمج.
2. تحسينات في الأداء والسرعة.
3. تحسينات في الأمان والخصوصية.
4. دعم تقنيات الحوسبة السحابية.
5. تحسينات في أدوات الإدارة والتحليل.

الميزات الرئيسية للذكاء الاصطناعي
1. دعم لغة SQL مُحسّنة بالذكاء الاصطناعي.
2. تحليلات متقدمة باستخدام تقنيات التعلم الآلي.
3. دعم لتقنيات الحوسبة السحابية مثل Azure.

كيفية المشاركة في الإصدار التجريبي
1. زيارة الموقع الرسمي لMicrosoft SQL Server.
2. ملء استمارة الطلب للمشاركة في الإصدار التجريبي.
3. الواتر على الموافقة والشروط والأحكام.

المصادر
1. الموقع الرسمي لMicrosoft SQL Server.
2. مدونة Microsoft SQL Server.
3. وثائق Microsoft SQL Server 2025.

هل تريد مزيدًا من المعلومات؟
https://www.microsoft.com/en-us/sql-server/blog/2024/11/19/announcing-microsoft-sql-server-2025-apply-for-the-preview-for-the-enterprise-ai-ready-database/?fbclid=IwZXh0bgNhZW0CMTEAAR0RzCIIItEEuUKk_jWh1-riR2ktK9bVAQjUiKIJQjLQepkbMsGQx2_n3UM_aem_uwST2iFHN8OEFELwMVophw
أنا فاهمها لكن مش قادر أوصل فكرتها بشكل واضح.
الجملة هذه خطيرة جدًا، وسمعتها كثير طول حياتي وكنت دائمًا أرفضها.
عشان تتقدم في عملك، لازم تتعلم كيف تنقل أفكارك بوضوح للآخرين. لازم ترتب كلامك وتوضح اللي تريد توصله، لأن ما في أحد يتطور في مكانه إلا إذا كان مفيد. ومفيد يعني قادر يقنع الآخرين ويحركهم في الاتجاه الصح، وهذا ما يتحقق إلا إذا قدرت تبين أفكارك بوضوح.

كيف تتعلمها؟
حاول تكتب أي موضوع تود توضيحه للآخرين على خريطة ذهنية (mind map). بعدين، أعمل نص مكتوب (سكريبت) والخريطة قدامك، واقرأ النص وراجعه وعدله. مع التكرار، بتتحسن. الأهم، لا تتكلم من الذاكرة فقط، خلي الخريطة قدامك والنص المكتوب هو اللي تطوره. لا تلقي كلامك للناس إلا بعد ما تتبع هذه الطريقة.

لا أحد يرى عقلك، لكن الكل يسمع صوتك، فحسّن طريقتك في التعبير لمصلحتك أولًا.
لا أحد يرى عقلك، لكن الكل يسمع صوتك، فحسّن طريقتك في التعبير لمصلحتك أولًا.
لا أحد يرى عقلك، لكن الكل يسمع صوتك، فحسّن طريقتك في التعبير لمصلحتك أولًا.
👍6👌1
من الأخطاء الشائعة بين المبرمجين في الوقت الحالي هو الاعتماد المفرط على User Stories كمرجع أساسي لتطوير النظام. هذا الأسلوب قد يحد من رؤيتك للنظام بشكل كامل ويجعلك تركز فقط على متطلبات محددة دون النظر للصورة الشاملة.

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

تطوير النظام ليس مجرد تلبية قصص المستخدم، بل بناء رؤية شاملة تضمن النجاح على المدى البعيد.
إذا كنت صاحب شركة أو مشروع كبير وتفكر في تطوير تقني يساعدك على تحقيق أهدافك بسرعة وبكفاءة، فلازم تعرف عن مفهوم Serverless Architecture، اللي يعتمد على خدمات زي Azure Functions من مايكروسوفت أو AWS Lambda من أمازون.

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

ليش تختار Serverless؟

يوفر التكاليف: ما تدفع إلا على الوقت اللي ينفذ فيه الكود.

سهل ومرن: مثالي إذا كان مشروعك ينمو بسرعة وتحتاج توسع مرن.

تكامل قوي: إذا كنت تعتمد على مايكروسوفت، استخدم Azure Functions. أما إذا كنت مع خدمات أمازون، AWS Lambda هو الحل الأفضل.

هذه التقنيات تساعدك تركز على شغلك الأساسي وتترك الأمور التقنية المعقدة عليهم. إذا عندك مشروع كبير أو تخطط لتطوير جديد، جرب وشوف الفرق بنفسك!
قد شعّرت يوم إنك تلخبطت بين الكلمات: Epic، User Story، وTask؟ 🤔
شوف، خليني أوضحها لك بأسلوب بسيط:

Epic: هذا هو الحلم الكبير أو الهدف الأساسي اللي بنسعى له، زي لما تقول "بنبني بيت جديد" 🏠.

User Story: هذا جزء من الحلم، الشي اللي المستخدم يطلبه أو يحتاجه. زي لما يقول: "أبغى الباب يفتح بالبصمة" 🚪.

Task: هذي هي الخطوات اللي لازم تنفذها عشان تحقق طلب المستخدم. زي: "ركّب نظام البصمة وربطه بالكهرباء" 🔌.


يعني بالعربي:

Epic هو الحلم اللي في بالك.

User Story هي التفاصيل اللي توصل للحلم.

Task هي الشغل اللي بيدك عشان تحقق المطلوب.


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

Agile
Tools
Jira
Azure devops
And more
هل سمعت عن slack