Yhya Nesb
626 subscribers
141 photos
1 video
1 file
112 links
شاب سوري طموح محب لعالم التقنية مهندس برمجيات
منشوراتي تعكس وجهة نظري الشخصية فقط.
Download Telegram
مشكلة قواعد البيانات N+1 Query (جزء 2)
كيف يمكن حل هذه المشكلة 🤔؟
- بشكل أساسي ويمكن استخدامه بأي برمجية تدمج النتائج لتجلب باستعلام واحد من خلال: inner join وإخواته، union، وحتى من خلال الـ subqueries؛ طب صار عنا مشكلة ثانية كود الاستعلام (SQL) جداً كبير ! كل مرة بدي كرره واكتبه 🫠، صحيح بس ال view شو عم يعمل 😁 - بس ملاحظة زكاتك 😅 ما تقول أنا هيك قلتلك تروح تدحش مليون استدعاء باستدعاء واحد 😅، يعني عادي ولو كان في 10 استعلامات بشرط ال 10 منفصلين بشكل تام، وإذا كان في حد (limit) للعرض لو رفعته ما بيزداد الرقم؛ يعني عم تعرض 10 مستخدمين إذا سويتهم 50 مستخدم بضل عدد الاستعلامات 10 -
- من خلال Laravel فيك تستخدم توابع لهل مهمة مثل with (عملية "eager load" للإستعلام بتشتغل من خلال جلب العلاقة المرفقة باستعلام منفصل وبتخزنهم بالـ memory يعني بدل ما يكون عنا n+1 استعلام بيكون عنا 1+r؛ شو قصدك ب r؟ يعني عدد العلاقات وغالباً بتكون عم تستدعي علاقة لل 10 كحد أقصى، وفي طرق بشكل تلقائي يتعرف إذا في علاقات يحمل العلاقات ك "eager load" طلعت بإصدار 12.8 بس هذا ما يعني تكب المشكلة ! ممكن تشتغل على اصدار قبل 12.8 يلي دعمت هل فكرة)
- بالخوارزميات 🌚، ممكن يكون عندك علاقات هرمية تجلب كامل البيانات المشتركة وتظبطهم ب hash table خفيف نضيف لترجعهم كبنية هرمية، مثال:
لنفترض عنا جدول تصنيفات، في تصنيفات فرعية إلى مالا نهاية (في نهاية حسب ال data type 🙃) وافترض عندك هي التصنيفات: 10 رئيسي، 20 بقلبهم، 30 بقلبهم، 40 بقلبهم
بالطريقة التقليدية والسهلة حتكون كالتالي:
نجلب التصنيفات الرئيسي (1) -> يلي بقلبهم (10) -> يلي بقلبهم (20) -> يلي بقلبهم (30) -> يلي بقلبهم (خلصوا 😂، بس بالحقيقة بدك ترجع تتأكد ان مافي شي بقلبهم !، يعني 40)
في هل الحالة انت بحاجة 246 الف و 211 استعلام ! يعني إذا الاستعلام بياخذ 0.1 ملي ثانية بدنا 24 ثانية ننتظر بس تفتح القائمة العلوية يلي فيها هل قائمة 😐 ولسا ما عرضنا شي بالموقع 😅، بينما بالخوارزميات وقت لا يقاس ! (بشرط الخوارزمية المستخدمة فعالة)
كيف ممكن القط هل مشكلة 🤔؟
- من خلال تأخر الإستجابة بشكل كبير بس تبلش قاعدة البيانات تنملأ ببيانات بتنحط كأحد الاحتمالات المسببة للبطء
- أدوات ال debug مثل laravel-debugbar يلي بتظهرلك معلومات تفصيلية للاستجابة (عدد الاستعلامات - الاستعلامات يلي صارت - سرعة تنفيذ كل استعلام - الاستعلامات المكررة)
- عمل debug بشكل يدوي للكود
2
ب Laravel جلب قيمة واحدة من خلال تابع value أفضل من first لأسباب مهمة

طبعاً للوهلة الأولى لح تقول نفس الشي الاثنين بروجعو ايميل 🫠 ليش الفزلكة 😒
ببساطة:
بتابع first (مثل الصورة) عم تجلب كامل الصف، يعني لح تجلب أعمدة مانك بحاجتها 🌚 تؤدي لإستهلاك memory على الفاضي واستعلام أبطء
select * from `users`

🙃 ممكن تحلها بأنك تضيف العامود المطلوب ك argument للتابع حتى يجلب العامود المطلوب فقط كبديل لتابع value لكن صار الكود أطول 😅؛ نتيجة SQL
select `email` from `users`

ملاحظة: الفروقات مالح تحسها كبيرة إذا مافي استعلامات كثيرة 🫠

#laravel #php #sql
3
قرار الغاء حظر خدمات Github عن الشعب السوري
قد يحتاج إلى اسابيع وقد يصل إلى أشهر 🥲 للإلغاء بشكل فعلي
يرجى التحلي بالصبر 🫠 وعدم محاولة تجاوز الحظر من خلال خدمات ال VPN

في النهاية كل الشكر والتقدير لكل المساهمين في تسريع عملية الغاء الحظر ❤️
1❤‍🔥1
Forwarded from Muhammad Alush
👩‍💻 جديد لمطوري PHP 👩‍💻

تم إطلاق أول SDK رسمي لـ MCP (بروتوكول الذكاء الاصطناعي) بدعم من Symfony وAnthropic!

يمكنك الآن ربط تطبيقات PHP بأدوات الذكاء الاصطناعي بسهولة
الحزمة رسمية وسهلة الاستخدام
لا تحتاج إطار عمل معين (تشتغل مع Laravel )

🥊 الحزمة على Packagist: mcp/sdk
🔗 الكود على GitHub:
https://github.com/modelcontextprotocol/php-sdk

فرصة ممتازة تتعلم وتدخل عالم AI من خلال PHP!

🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦

t.me/MuhammadAlush0997

تابعني على :
Telegram | instagram | facebook | Twitter | YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Yhya Nesb
احصائية اللغات البرمجية المستخدمة في بناء مواقع الويب من جهة السيرفر back-end للمزيد من المنشورات ♻️: تصفح قائمة المنشورات #back_end #php #python #asp_net #aspnet #dotnet #java #javascript
إحصائية تظهر اللغات البرمجية المستخدمة ك backend للمواقع
ملاحظة: هذا ليس مقياس ليدل على أن هذه اللغة هي الأفضل للويب فلكل منها نقاط قوى وضعف 🙂
14🤣2❤‍🔥1
😄
🤣3
الإقبال على مشاريع ال Open Source يزداد يوم بعد يوم 🔥
قبل يومين الكل سمع بالمشكلة يلي صارت ب AWS وتوقف خدمات كثيرة مثل postman 🫠

هي المشكلة خلت بعض المبرمجين 👨‍💻 يتوجهو لتطبيق yaak كبديل ل postman بشكل مؤقت
وبيومها دخل بقائمة الترند الخاصة ب github
لكن المفاجئة هي استمراره ليومين على التوالي 🤯 وبكل يوم ال stars عم تزيد أكثر على المستودع الخاص فيه 🏆 - دليل على نجاح المشروع -

والأن ما صار الوقت لتعطي مشاريع ال open source فرصة 😉
3
عام كامل مر بعد أن تحررت سوريا من الرجس الطائفي القذر
ليس يوماً عاديا في هذا اليوم كسرت قيود سجن صيدنايا
ارتفعت كلمة الاسلام بعد أن حاول الأسدين والعديد مع الدول معهم كتمها
هذا اليوم لم يكن ليكون لولا فضل الله علينا وتضحيات اخوتنا المجاهدين جزاهم الله خيرا وتقبل الله شهدائنا
7
قربت 2025 تخلص، وبلشت تفكر شو بدك تعمل ب 2026 🤔
تجهز الكورسات يلي بدك تتابعها، والتقنيات يلي بدك تتعلمها
لكن هل فكرت تقوي حالك بشي أنت أساساً بتتعامل معه يومياً لكن انت مانك منتبهله 😶
مثل لو أنت BackEnd مستحيل ما يمرق يوم بدون ما تكتب استعلام SQL على الأقل 🙂 ولو بشكل غير مباشر ب ORM

أنا شخص أول ما اتعلمت قواعد البيانات بطريقة غير صحيحة كنت دائماً عاني من بطء بمشاريعي 😢 لحتى صادفت كورس SQL غيرلي نظرتي كاملة على قواعد البيانات بعدها بلشت قلب بهل كورسات 😅 ما صادفني مرجع منظم وبيحوي كل الأمور الأساسية مثل roadmap.sh
هل مرجع يلي بتشوفه بأغلب الصفحات يلي بنزلو محتوى تقني بشكل عام 🫠 وممكن نفسك بتعتبره مرجع؛ لكن هل جربت تتعلم منه؟ شو رأيك تضيفه بخطتك للسنة الجديدة 😉

ملاحظة:
أفضل وقت تبلش فيه هو الأن 😁 لا تنتظر السنة الجديدة تبلش
❤‍🔥2
قريباً تحديثات أغلب مشاريع ال vibe coder 😁😂
منشور سريع؛ بقلم بشري بعصر كتابات ال AI 😅

وقت يقرب ال Deadline لتسليم أي مشروع بتبلش العجلة بالتنفيذ 😥 وللأسف البعض بينسى أهم الأمور يلي لازم يعملها وقت رفع المشروع على ال production؛ وهي قائمة بأهم الأمور 😁:
- لا تنسى تفعل وضع ال production 🙂
- مشروع Laravel ال root web بكون مجلد public 📂
- عطل عرض الأخطاء 🛑
- مشروع wordpress ضروري ضروري تغير مسار الأدمن wp-admin
- مشروع Laravel وعم تشتغل على Livewire (ولو بشكل غير مباشرة 🙃 كاستخدام لوحة تحكم filamentphp) ضروري تنشر ال
assets + config:
php artisan livewire:publish --assets
php artisan vendor:publish --tag=livewire:config --ansi --force

وبعد ما نشرنا ملف ال config لل livewire لا تنسا تغير ال temporary_file_upload.disk إلى local وتضيف ال rule الافتراضية وتعدل على حجم الملفات يلي ممكن تنرفع 📤 (الافتراضي 12M)
- مشروع php لا تنسا تعدل ب php.ini قيم:
upload_max_filesize, post_max_size
- لا تنسا تعمل ratelimit لتسجيل الدخول 🙂؛ بالنسبة ل wordpress في plugins لهل شي 😉
- صفحات الأخطاء مهم يتم تصميمها، بتبين الاحترافية بالشغل 😎 بدل ما تظهر صفحة من Apache2 🙈
- المسارات الحساسة اعمل قيود عليها؛ عميلك ألماني احصر الدخول للوحة التحكم من المانيا فقط ‼️
- ضيف موقعك بشي خدمة uptime أو اعملك work flow ب n8n تخبرك وقت الموقع تصير فيه مشكلة ⚠️، اعرف المشكلة وحلها قبل ما الزوار يشكتو من تعطل الخدمة 😉
- مشروع Laravel لا تنسا امر storage:link 😁 حتى ما تطلعلك مشكلة بالملفات المرفوعة
- امنع اي اتصال بملفات تنفيذة بمسارات الرفع مثل
wp-content/uploads + storage/
- فعل cache للملفات ال statics؛ تزيد سرعة وتخفف ضغط على السيرفر 🔥
- امنع الوصول لأي ملفات حساسة مثل .env .htaccess .log 📁

ملاحظات بسيطة بس بتعمل فرق 😊
4
منشور عادي 🙂 مدير تنفيذي بشركة عم يأكد خلال 6-12 شهر حيتم استبدال مهندسي البرمجيات ب AI 🙂
نظرة سريعة لبيانات الشركة: عندها 130-150 مهندس برمجيات 🫣 وبموقع التوظيف الخاص فيهم عندهم 100 فرصة عمل لمهندس برمجيات 🙂 يعني زيادة 75% بالعدد الموجود
هيك شركات بتاخد فترة وسطية 6 شهور لتوظيف موظف واحد

اي عند انتهاء عملية التوظيف سيتم استبدال كاملة مهندسي البرمجيات ب AI 😄 طبعا الكلام لو صحيح ليش ليدخلو بمرحلة توظيف لح تكلفهم كثير 🙂

فنصيحة مني عزيزي المبرمج كفي تعليمك ولا تقول ال AI اخد شغلي 😁

المصدر:
mmeshref Linkedin
منشور احتيالي لجمع بيانات شخصية 🙂
لا توجد حكومة بالعالم تقدم .gov لاي شخص مهما كانت شخصيته واعتباره 🙂

اذا حابب يكون عندك دومين .sy كلفته 5 الف بالسنة 🙂 مع عمولة الفين ليرة
1🤣1
رمضان مبارك 🌙

كل عام وإنتم بألف خير

تقبّل الله منكم الصيام والقيام وصالح الأعمال،

وجعله شهر خير وبركة عليكم وعلى أحبابكم 🤍

لا تنسو أخوتنا في غزة من صالح دعائكم ❤️
6
Forwarded from Yhya Nesb (ᯓ ˹𝚈𝙷𝚈𝙰 𝚂𝚈𝚁𝙸𝙰𝙽˼ ༆)
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء التاسع في هذه القناة 9️⃣
تجنب التحقق من الأنواع الجزء الأول:
بمعنى أصح لماذا تريد التحقق من الأنواع type بنفسك في حال كانت php تدعم هذا الخيار 😁، الفرق هنا بأن وضع النوع المحدد في المعامل (Parameter) سيفيد المطور أكثر بحيث لن يجبر لقراءة الكود البرمجي أو حتى إجراء عملية تجربة للتحقق من النوع بأنه مقبول 😊
الاستخدام السيء:
function travelToTexas($vehicle): void
{
if ($vehicle instanceof Bicycle) {
$vehicle->pedalTo(new Location('texas'));
} elseif ($vehicle instanceof Car) {
$vehicle->driveTo(new Location('texas'));
} else {
throw new Exception("Error Type");
}
}

الاستخدام الجيد:
function travelToTexas(Vehicle $vehicle): void
{
$vehicle->travelTo(new Location('texas'));
}

تجنب التحقق من الأنواع الجزء الثاني:
في حال كنت تستخدم أنواع البيانات الأساسية مثل int - string فقم بإضافتها للمعامل (Parameter) فهي تفيد أيضاً لعملية الإختبار الأولية أيضاً 🧑‍💻
الاستخدام السيء:
function combine($val1, $val2): int
{
if (! is_numeric($val1) || ! is_numeric($val2)) {
throw new Exception('Must be of type Number');
}

return $val1 + $val2;
}

الاستخدام الجيد:
function combine(int $val1, int $val2): int
{
return $val1 + $val2;
}

احذف الكود البرمجي القديم:
حذف الكود البرمجي القديم والغير مستخدم ضروري 🙂 للأسف قابلت البعض ممن يظنون أن وضع التعليقات هي الطريقة السليمة لهذا 🤦‍♂️ لكن العكس فأنت بكل يوم تتعلم شيء جديد وكتابتك للكود ستختلف حتماً من يوم لأخر فعند إعادة كتابتك لكود جديد فسيكون مختلف وأفضل من القديم 🔥
بالإضافة لماذا تريد أن نضيع بأسماء هذه البرمجيات 🙂 v1 و v2 و new و old 🤦‍♂️ كلما كانت برمجياتك نظيفة كلما زاد تقديرك لمن طور بعدك 🫡
الاستخدام السيء:
function oldRequestModule(string $url): void
{
// ...
}

function newRequestModule(string $url): void
{
// ...
}

$request = newRequestModule($requestUrl);
inventoryTracker('apples', $request, 'www.inventory-awesome.io');

الاستخدام الجيد:
function requestModule(string $url): void
{
// ...
}

$request = requestModule($requestUrl);
inventoryTracker('apples', $request, 'www.inventory-awesome.io');

هذا كل شيء لليوم 😁 في حال أعجبك هكذا نوع من المنشورات لا تنسا مشاركته مع أصدقائك ☺️
للمزيد من هذه الشروحات يمكنك متابعتي ⬅️ @YhyaNesb 🔥
#php
Please open Telegram to view this post
VIEW IN TELEGRAM
2
https://youtu.be/5fFuMEELRnc

ليش ضروري تحذف منشوراتك غير المهمة او تعليقاتك بالسوشيل ميديا ؟ 🤔
ببساطة كله محفوظ ومخزن ونسبة منيحة من هل محتوى هو عام معروض للعامة 🙂
طب انا مثلا حسابي ال Facebook مسكر عامله خاص 😏، تمام 😅 انت خفيت منشوراتك بس تعليقاتك؟ المنشورات المشاركة مع الأصدقاء🤔

طب شو بتفيد هي المعلومات؟ معرفة اكبر قدر ممكن من المعلومات عنك 🙂 ليتم ابتزازك او القيام بهندسة عكسية الك او لشخص بيعرفك 😶
2
وأخيراً Ubuntu 26.04 LTS نزل، ومانه تحديث عادي 😏

إذا مفكر الموضوع مجرد upgrade روتيني فأنت عم تغلط 🙂
الإصدار الجديد من Ubuntu جاي بتغييرات عميقة فعلياً 💥
دعم لحد 2031 📅 (ومع Pro لحد 2036 😎)

شو الجديد فعلياً 🤔؟
1️⃣ ال Kernel 7.0 💻 أي دعم أقوى للهاردوير الحديث وخصوصي مع معالجات Intel الجديدة + تحسين الأداء العام 🚀
2️⃣ و GNOME 50 🎨 مو بس شكل، تجربة كاملة تغيرت: دعم HDR 📺 - سلاسة أعلى بشكل ملحوظ - تحسينات accessibility - النظام صار يعتمد Wayland بالكامل 🔥 - (في تغيرات كثيرة من Gnome 46 - المعتمدة ب Ubuntu 24.04 - ل Gnome 50 🤩)
3️⃣ الأمان صار مستوى ثاني 🔒 لأن تشفير الديسك صار باستخدام TPM، ونظام صلاحيات أذكى للتطبيقات وأدوات النظام الأساسية عم تتحول لـ Rust (أقل bugs + أمان أعلى ⚠️ وأسرع 🤤)
4️⃣ تحديث مدير الحزم APT إلى الاصدار 3 😁 وقت بدك تحدث او تنزل لح تكون التفاصيل مقروءة وواضحة 🔥
5️⃣ دعم ال AI 🤖 وكثير أمور لا يسع ذكرها برسالة واحدة 😅

والأهم الاعتماد على برتكول Wayland فقط؛ يعني ما عاد في X11 كخيار افتراضي
ليش مهم؟
- أداء أعلى
- أمان أفضل
- تجربة حديثة

تجربتي الشخصية بعد الانتقال 😌
الانتقال كان سلسل، اشتغل ال bluetooth على جهازي وأخيراً 🤣 ونحلت مشكلة تعليق الشاشة وقت خلي الجهاز يعمل Look Screen 😁 صرت بقدر اقفله بدل ما عيد تشغيله كل مرة 😉 - غالباً المشكلة من تعريفات كرت الشاشة NVIDIA -
والواجهة سلاسة بالانتقالات 🥹، لكن المشكلة الأكبر يلي صادفتني هي أغلب ال extensions الخاصة بالواجهة غير مدعومة مع Gnome 50 🙂💔
أي اكيد مالح ارجع لل Ubuntu 24.04 😒 ولحنا بعصر الذكاء الاصطناعي 🤖 ضربتلي كم prompts لل cursor وحدثنا انا وياه هل إضافات 😁 وهلق شغاالة مثل الذهب 💎
بس بعد الترقية طارات إعدادات الواجهة 😅 - كالاختصارات مثلاً - وصارات شوية مشاكل بال shell المستخدم عدت تحميله بأحدث اصداره لنحلت المشكلة والصوت صار أضعف 😢

بنصحك تنتقل عليه 🧐؟
إذا عندك مشاكل هاردوير أو أنت من عشاق Gnome وحابب تحدث أكيد 😁 فرصة حلوة؛ بس لا تنسا تاخد نسخة احتياطية من ملفاتك الأساسية 🌚 واعملك backup ب timeshift حتى لا سمح الله اضطريت ترجع CTRL + Z
أما إذا النظام شغال معك ومافيه مشاكل، أو سيرفر 💻 انصحك تنطر 26.04.1 ب August 6 تنتقل على المضمون انه كلشي مستقر 😁 - علماً أن Ubuntu 24.04 مدعوم لعاام 2034 -

هي تجربتي 😊 زت بالتعليقات تجربتك إذا انتقلت أو إذا كنت من عشاق Ubuntu 🤣💔
#Ubuntu #Linux #Programming #OpenSource