لمحة 👀 برمجية – Telegram
لمحة 👀 برمجية
607 subscribers
144 photos
8 videos
13 files
141 links
Download Telegram
اختصارات الكيبورد اللي هتخليك مَلَك في VS Code 👑💻

لو شغال على VS Code ومش عارف تختصر الوقت، يبقى لازم تبقى عارف شوية اختصارات كيبورد تنجز بيها بسرعة الصاروخ 🚀. تعالوا نبدأ:

🎯 أهم الاختصارات اللي لازم تعرفها:

1️⃣ نقل السطر لفوق أو تحت ⬆️⬇️
دوس: Alt + ↑ أو Alt + ↓
علشان تنقل سطر من مكان لمكان بسرعة .. الاختصار ده هيبسط الدنيا عليك.

2️⃣ كرر السطر الحالي 📝
دوس: Shift + Alt + ↓ أو Shift + Alt + ↑
علشان تكرر نفس السطر تحت أو فوق على حسب السهم .. استخدم الاختصار ده وشوف الفرق.

3️⃣ حدد نفس الكلمة وكررها 🔄
دوس: Ctrl + D
عايز تعدل نفس الكلمة في كذا مكان؟ ده الاختصار اللي هيخلصلك الدنيا .. حدد الكلمة ودوس الاختصار هيحدد كل الكلمات اللي شبهها.

4️⃣ روح للسطر اللي انت عايزه 🧭
دوس: Ctrl + G
مش فاكر الكود في سطر كام؟ روحله في ثانية بالاختصار ده.

5️⃣ نسّق الكود بتاعك تلقائيًا 🎨
دوس: Shift + Alt + F
لو الكود شكله مكركب .. نفذ الاختصار ده هينسقهولك زي ما الكتاب بيقول. 😄

6️⃣ اظهر الـ Terminal تحت الكود ⚙️
دوس: Ctrl + `` أو Ctrl + J`
بدل ما تروح تدور على الزرار فوق وتحت، هات التيرمنال على طول.

7️⃣ انتقل لملف مباشرة بسرعة
دوس: Ctrl + P
البروجكت مليان ملفات وعايز تفتح ملف من وسطهم بسرعة .. دوس ع الاختصار ده واكتب اسم الملف أو أول حرف منه هيظهرلك. 🫡❤️

8️⃣ التنقل بين التابات المفتوحة 🌀
دوس: Ctrl + Tab
لو عندك كذا ملف مفتوح، ده هيساعدك تتنقل بينهم بسرعة.

9️⃣ ابحث جوه المشروع كله 🕵️‍♂️
دوس: Ctrl + Shift + F
مش فاكر كتبت الكود ده فين؟ الاختصار ده هيجيبلك أي حاجة هتدور عليها.

🔟 احفظ شغلك بسرعة 💾
دوس: Ctrl + S
عشان شغلك ما يضيعش... كل شوية Ctrl + S أو شغل الـ Auto Save وهتبقى في الأمان.

🔢 افتح ملف موجود عندك 🔍
دوس: Ctrl + O
عايز تجيب أي ملف من جهازك؟ الاختصار ده الحل السريع.

🔟 افتح ملف جديد بسرعة 🗂️
دوس: Ctrl + N
هتلاقي نفسك فاتح ملف جديد من غير لف ودوران.

---

🏆 نصيحة للتنانين:
لو فيه اختصار ناقصك أو مش مريحك، ممكن تروح على File > Preferences > Keyboard Shortcuts وتظبط اللي يناسبك.

💡💻
👍4
Forwarded from الرسمية CS4 Class-22 (أحمد جلال | 𐩱𐩢𐩣𐩵 𐩴𐩡𐩱𐩡)
مطلوب مبرمجين في عدة مجالات مختلفة:

مهندس ضمان الجودة QA.

مصمم واجهة المستخدم/تجربة المستخدم UX/UI:
Figma، Adobe XD، illustrator

مطور frontend:
NextJS، ReactJS، Tailwind CSS، GSAP

مطور تطبيقات الجوال:
React Native، android Native، Swift Native

مطور backend:
nest.js، Node، Express، Django، Rest، WebSocket، gRPC، SOAP، Webhook، GraphQL

🔴 معرفة كيفية دمج واستخدام خرائط جوجل في التطبيقات.

🔴 3 سنوات من الخبرة.

🔴 العمل اونلاين.
👍1
Forwarded from الرسمية CS4 Class-22 (أحمد جلال | 𐩱𐩢𐩣𐩵 𐩴𐩡𐩱𐩡)
يا شباب الذي يشوف نفسه كفو بما فيه الكفاية يرسل لي خاص أجيب له رابط التقديم لأنه طالبين خبرة و عدد معين فقط..

@ahmed_jalalCS
👍1
Forwarded from اللجنة العلمية CS 22 (Ayham Al-Akhali)
معاني الأخطاء للي شغال api مفيدة 👍
👍1
الفرق بين العمارة الأحادية (Monolithic) والمايكروسيرفيس (Microservices) يكمن في كيفية بناء الأنظمة البرمجية. في العمارة الأحادية، يتم تصميم التطبيق ككتلة واحدة مترابطة، حيث تكون جميع الأجزاء مثل الواجهة الأمامية والخلفية وقاعدة البيانات متصلة مع بعضها بشكل مباشر. هذا النوع مناسب للتطبيقات الصغيرة والمتوسطة لأنه بسيط وسهل في البداية، لكن إذا كبر المشروع يصبح تعديل أو توسيع النظام معقدًا.

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

بالتالي، إذا كان المشروع بسيطًا وصغيرًا، فالعمارة الأحادية تكون خيارًا أفضل. أما إذا كان المشروع كبيرًا ويتطلب توسعًا مستمرًا، فالمايكروسيرفيس هي الحل الأنسب.
👍1
هل دريت إنك تقدر تشتغل بميزة اسمها Source Generators من .NET 5 ومافوق
ذي ميزة أضافتها مايكروسوفت في .NET 5، وتخليك تولد كود أثناء وقت الترجمة (Compile Time) بناءً على الكود اللي كتبته.

فكرة Source Generators إنك تقدر تكتب كود يساعد على تحسين الأداء وتقليل التكرار في وقت التشغيل (Runtime). يعني مثلًا لو عندك كود بيتكرر كثير وتريد تحسن من أداء التطبيق، تقدر تستخدمها عشان تولد كود تلقائي يوفر عليك الجهد.

ذي الميزة مفيدة بشكل كبير في حالات مثل توليد أكواد الـ DTOs أو الـ Mapping Classes، وبدون الحاجة لمكتبات خارجية مثل AutoMapper في بعض السيناريوهات.

دور Source Generators الأساسي هو تقليل التكرار وتوليد كود إضافي في وقت الترجمة. وأيضًا في حالات تحتاج فيها كود ديناميكي بناءً على لوجيك معيّن، فذي الميزة بتساعد تخلي كودك نظيف وتقلل من استخدام if else وأشياء كثيرة غيرها.
في مشاريع التخرج وفي سوق العمل بشكل عام... بينتهي بنا الأمر بقاعده بيانات ضخمة جداً.. وعشان نفعل التقارير بينتهي بنا الأمر في SQL مشابه لهذا 🙂💔

طبعاً هذه الصورة مقصوصة بسبب خصوصية السورس كود، والكويري حرفياً اكبير من هذا بكثير وفيبه joins كثيره جداً

مشكلة الكويري هذا لما البيانات كبيرة انه كان يأخذ وقت تقريباً 2 الى 5 دقائق عشان يشتغل 🤕
هذا اذا كان مجموع الrows الناتجه 100 ألف صف... فكيف لو كان مليون او أكثر!؟

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

كذلك مع أسلوب البارتات سأترك للكم مجال التفكير فقد ربما تجيدوا حل أفضل بكثير وتشاركوه للجميع...

#سلسلة #DB




رد على هذا البوست :
أول انت في نفس النظام وقاعدة بيانات واحده عليك أول شيء ان تتجه إلى الحل الأبسط خطوة بخطوة والله ياعم الحج في عمليات joins على الداتابيز على أكثر من جدول كثيرة أول حل تتجه له هو عمل none indexes والله زاد الضغط اتجه لعمل cashing لل لعمليات الأكثر تكرار في عدت طرق لل كاش سوى in memory او redis أو غيرها طيب عملت الحل الأولي ده شفت بعد فترة في load على السيرفر هنا تتوجه لحل metalized view وفكرته واضحه سيتم فيه تخزين البيانات الي هتحتاجها من كل جدول أنت الآن هنا عليك أن تركز حفظ البيانات كيف بتم في هذا النقطة لو مثلا أضافة إلى جدول ما بيانات ضروري تكون العملية synchronously في نفس transaction هنا تكامل شي يعرف ب strong concency ايش يعني عندما تضيف البيانات في جدولٍ ما هيعمل تحديث في نفس اللحظه على المترليز فيو
بعد فتره من الزمن الضغط زاد هو الحل ايه ياسطى الآن عليك أن تتجه إلى نمط بمايسمى CQRS => command query responsibility segregation
وهذا التصميم فكرته فصل عملية التغير عن الداتابيز ك command و عمليات القراءة ك query ده هيحسن الأداء بكثير والله بعد فترة من الزمن لحظة ان الضغط زاد اكثر هنا عليك أن تفصل عمليات ال queries على داتابيز أخرى الأفضل NoSQL documents اذا كانت بياناتك مش معقدة إلى حد كبير تمام يابش مهندس مثلا ضفت سجل جديدا كيف سأحدثه في داتابيز NoSQL والله ياسطى هتتصل مع هذا القاعدة مثل مابتتصل مع القاعدة الأساسية تمام بس متى بيحفظ شف عند أي عمليه سوى حذف أو إضافة عمليات تغيير على الداتابيز وانت بتعملها حفظ في كودك هناك هيكون في واجهه أخرى ستتعامل معها وتستخدم دوالها من أجل أن تبعت البيانات المطلوبة تحدثها في داتابيز ال NoSQL لكن طيب حفظت افترض حدث خطأ أثناء عملية الحفظ في الداتابيز الأساسية عمنا قد راح وحدث في الداتابيز الأخرى دي مشكله مع العلم حتى ولو حفظ البيانات لا تحفظ في نفس اللحظه في latency قد يكون network أو غيرها وهذا مايعرف ب evaluation conceny أي بمعنى أحدث ايحين ما أحدث أهم شيء هيحدث
نرجع للمشكلة كيف نحله هنا ستتجه إلى massaging asynchronous
سوى هتستخدم rabbitmq او Kafka حسب طلبك .
طيب لماذا لم اتجه الى هذا الحل كن الأول لاتفكر ياصديقي بل حلول التي ستعقد بها نظامك نعم انت حليت مشكله بس فتحت مشاكل سواء كان جانب صيانه وغيرها هذا كلام بسيط جدا ان راودك عقلك كيف يعني ؟
استخدم
Query Optimization مثل Execution Plan Analysis لمعرفة أضعف النقاط

مع العلم لو استخدمة metalized view وفي عمليات تغيير على الداتابيز كثير ستكون العمليات التحديث مكلفة على الفيو .
وشكرًا!
👍1
لمحة 👀 برمجية
في مشاريع التخرج وفي سوق العمل بشكل عام... بينتهي بنا الأمر بقاعده بيانات ضخمة جداً.. وعشان نفعل التقارير بينتهي بنا الأمر في SQL مشابه لهذا 🙂💔 طبعاً هذه الصورة مقصوصة بسبب خصوصية السورس كود، والكويري حرفياً اكبير من هذا بكثير وفيبه joins كثيره جداً مشكلة…
شكرا لك يا عزيزي لتوضيح فكرتك الجميله

السلسلة هذه كانت نقل لما اختارته شركة برمجيه في سوق العمل ، وكما هو واضح أكثر من الصورة حجم الـ DB الاساسية (تعتبر متوسطه نوعا ما ، لا كبيره ولا صغيرة ، ولكن غالباَ مقارنه بالمشاريع المعروفه لدي انا الـ db اشوفها كبيره جداً)

وبرغم هذا ما فيش اي مشكله من الي مذكورة هنا

لا أقول ان طريقتهم الأصح ، ولا أقول ان طريقتك الأصح... انا - كما قلت في بدايه الرسائل - مجرد ناقل للفكره + وهي شغالة بكفاءة 👍🏻

+ شكرا لك للمشاركه 👍🏻
🔥1
Forwarded from اللجنة العلمية CS 22 (Ayham Al-Akhali)
كافة البوتات المجانية التي يحتاجها طلبة الجامعات

بوت دمج الملفات
⌛️ t.me/engala1/749

كتابة  البحوث التقارير :
⌛️ t.me/engala1/3846

ترجمة ملفات PDF مجاناً :
⌛️ t.me/engala313/604

- حل اسئلة الرياضيات :
⌛️ t.me/engala1/683

تحويل الملفpdf الى Word
⌛️ t.me/engala1/743

-تحويل الصورة الى PDF مجاناً :
⌛️  t.me/coolry100/135

استخراج النص من الصورة
⌛️ t.me/coolry100/128

بوت تنزيل التقارير
⌛️ t.me/engala1/3846

بوت تنزيل البحوث
⌛️ t.me/engala1/3856

بوت ترجمة الملفات
⌛️ t.me/coolry100/126

بوت الكروبات الجامعية
🌐 @COLRY77BOT

بوت قبولاتي
@Myuniversity10bot

بوت شرح جامعي👇
t.me/coolry111/399

⚠️ بوت تقارير فقط اكتب عنوانك.
يعطيك تقرير كامل

🌐 @REPORTPRO_3BOT
📒بوت شرح جامعي كل ماتحتاجه موجود بالبوت👇
ترجمة:
كتابه تقرير:
دمج ملفات:
حذف صفحات:
🌐 @COLRY72BOT

بوت أستخراج أي نص موجود في الصورة 📗
@COLRYBOT

⚜️بوت تحويل الصوت الى نص

🌐 @COLRY90BOT
❤️ اهلا بك المساعد الجامعي في بوت الإمتحانات
            📃 يمكنني عمل اسئله MCQ !
معرف البــــــــــــوت
🌐 @Quizmcq3Bot

بوت حلول
@ALAAHDGBOT
لمحة 👀 برمجية pinned «كافة البوتات المجانية التي يحتاجها طلبة الجامعات بوت دمج الملفات ⌛️ t.me/engala1/749 كتابة  البحوث التقارير : ⌛️ t.me/engala1/3846 ترجمة ملفات PDF مجاناً : ⌛️ t.me/engala313/604 - حل اسئلة الرياضيات : ⌛️ t.me/engala1/683 تحويل الملفpdf الى…»
قد سمعت عن Command Design Pattern هذا أسلوب برمجي يشتيك ترتب أوامرك وتخلي كل واحد له كائنه الخاص به بحيث ما عاد يحتاج النظام يتعب نفسه يفهم التفاصيل يعني كل أمر مثل شغل المكيف أو طفي النور بيكون ملفوف بكائن مستقل جاهز ينفذ نفسه

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

ليش هذا الأسلوب رهيب لأنه
تقدر تخزن الأوامر وتنفذها متى ما تشتي
لو شتي تضيف خاصية تراجع Undo تسويها بكل سهولة
النظام يظل بسيط وقابل للتطوير مهما كبرت شغلتك

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

باختصار هذا النمط ينفعك ترتب أمورك زي اللي يخزن الأوامر ويمشي عليها خطوة بخطوة بلا زحمة ولا فوضى.
Pdf system design
Understand Software architecture 
Forwarded from اللجنة العلمية CS 22 (ʙʀʜᴏᴏᴍ ⑇)
نصيحه حلوه لتجنب مشاكل
git merge conflicts
بتحصلها اذا انت تشتغل العمل في تيم... اذا لحالك غالباً ما بتحصلها 👍
Forwarded from اللجنة العلمية CS 22 (ʙʀʜᴏᴏᴍ ⑇)
لمن فاته التسجيل ولمن لم يتم قبوله لحضور مؤتمر المطورين لهذا العام، ما يزال بالإمكان:
١- حضور المعرض المهني المرافق للمؤتمر، الحضور مفتوح ومتاح بدون تسجيل للجميع من الساعة 10 صباحاً حتى 5 عصراً ..
٢- حضور الجلسة النقاشية في قاعة المؤتمر حيث ستكون مفتوحة ومتاحة بدون تسجيل (المقاعد محدودة بحسب من يحضر أولاً) من الساعة 3 عصراً حتى 5 مساءً بإذن الله.
📅 التاريخ: 21 ديسمبر 2024
📍 المكان: صنعاء، قاعة مؤسسة اليتيم التنموية.

https://maps.app.goo.gl/6oA3hhyUXH9puxZo9

#DevFestSanaa
#DevFestSanaa24
#GDGSanaa
#gdg_yemen
#GDG_Sanaa
عندك ٣ أنظمة عندهم بيانات مكملة لبعضها والبيانات هذه مش بيتم تحديثها في نفس الوقت يعني ممكن البيانات في نظام ١ تحدث النهارده والبيانات في نظام ٢ تحدث بكرة والبيانات في نظام ٣ تحدث السنة القادمة وفيه نظام رابع بيحتاج البيانات هذه كلها أو بعبارة أخرى بيحتاج يكون على اطلاع بتحديثات البيانات هذه فالسؤال حاليا كيف النظام الرابع هذا بيجمع البيانات ويتابع التحديثات باستمرار طبعا سيكون فيه تكامل integration بين ال٤ أنظمة ولازم يتم تجميع البيانات هذه في مكان ما فما هو هذا المكان ماعندك كذا حل ١ أفضل حل من وجهة نظري التي لا يعتد بها في أي محفل دولي إن النظام الرابع هو اللي يجمعها عنده بحيث أي بيانات تتحدث في الأنظمة ال٣ الثانيه يرسلو للنظام الرابع التحديثات والسبب إنه هو اللي مهتم وهو اللي يشتي البيانات فهو اللي يتحمل التكلفة وخلونا نؤجل الكلام على كيف يرسلو على شأن فيه تفاصيل كتيرة ٢ طيب ممكن الحل هذا يكون صعب على النظام الرابع على سبيل المثال ممكن تكون طريقة التكامل مختلفة مع كل نظام واحد شغالsync وواحد شغال async واحد شغال rest وواحد شغال soap أو هذا نظام جاهز وعمل الكلام هذا فيه محتاج تكلم الvendor وتبيع أي شيء 😅 على شأن ينفذهولك ففي الحالة هذه ممكن يتم تجميع البيانات في حاجة وسيطة والنظام الرابع ياخد البيانات من الحاجة الوسيطة هذه سواء ياخذها يحطها عنده أو يطؤحها في مكانها ويرجع لها عند الحاجة ٣ الحل السابق بيكون عملي لو عندك حاجة جاهزة تقدر تستخدمها لتجميع البيانات هذه مثل الESB وهذه شائع في المؤسسات التقليدية الكبيرة مثل البنوك بس هذه مش دايما متاح في كل المؤسسات ومش متاح في المؤسسات الكبيرة اللي متبنية فكرة NoESB Architectures ففي الحالة هذه محتاج تعمل حاجة بلدي تلم البيانات هذه ٤ طيب لو الحل البلدي ما نفعش لأي سبب غالبا بتكون متعلقة بالنفوذ في المؤسسة أو ضيق الوقت فالحل الرابع إن أحد الأنظمة الثلاثة هو اللي يجمع البيانات وغالبا بيكون النظام اللي عنده أكبر قدر من البيانات هذه وهذا أسوأ حل فيهم لأن النظام هذا محتاج يحتفظ ببيانات لن يعمل بها حاجة غير إنه سيكون كوبري مابش فيه U-turns واحنا هنا بنتكلم عن الsoftware architecture مش السياسة على شأن ما تفهموناش غلط وستلاقي الarchitecture تبعه اتعقد وقاعدة البيانات كبرت بدون داعي والtroubleshooting بقى صعب جدا المقصود يعني ما تذهب للحل الرابع هذا إلا مضطر
وشكرااا