fa
Feedback
Code With Somar

Code With Somar

رفتن به کانال در Telegram

🚀 ريادي أعمال ومطوّر ويب بخبرة واسعة 💻 متخصص بتطوير حلول ويب متكاملة باستخدام Laravel، Django، React، Vue، و Node.js. 🏆 ضمن أفضل 4 صناع محتوى في سوريا وأفضل 3 في المحتوى التقني. 🌟 ناشط في مجتمع برمجة الأطفال، ومساهم في تطوير المحتوى التقني عربياً.

نمایش بیشتر
2 727
مشترکین
+224 ساعت
+17 روز
+1430 روز
آرشیو پست ها
سؤال Interview: شو الفرق بين Rate Limiting و Throttling بـ الـ APIs؟

النصيحة رقم #6 من سلسلة #نصائح_في_تصميم_api ثبّت شكل الـ Response… لا تخلي كل endpoint يرجع شكل مختلف مثال سيء: • Endpoint يرجّع data • Endpoint ثاني يرجّع result • Endpoint ثالث يرجّع object مباشرة بدون wrapper الأفضل: • التزم شكل موحّد للـ responses (خصوصًا بالنجاح والخطأ) مثال: • نجاح: status + message + data • خطأ: status + message + errors 💡 نصيحة: بـ Laravel استخدم API Resources + Base response pattern حتى توحّد المخرجات. الفائدة: الـ frontend أسرع بالتكامل، والأخطاء أقل، والـ API يصير متوقع. ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال

شغلة حلوة بـ PHP 8.5 (خصوصي إذا شغال Laravel على Lambda) صار في إعداد جديد: opcache.file_cache_read_only=1 شو كانت المشكلة؟ إذا عم تستخدم OPcache file cache على AWS Lambda، كنت بتعلق بهالمشكلة: • نظام الملفات بـ Lambda read-only • المكان الوحيد اللي فيك تكتب عليه هو /tmp • وPHP كان بده يكتب ملفات OPcache فكنا نضطر نعمل حركة مثل: • ننسخ ملفات الكاش لـ /tmp وقت التشغيل (وقت الـ cold start) وين المشكلة بهالحل؟ 😅 أحيانًا وقت النسخ نفسه كان ياخد وقت لدرجة إنو يصير أبطأ من تشغيل التطبيق بدون OPcache أساسًا! شو الجديد بـ PHP 8.5؟ هالإعداد الجديد بيخلي PHP: • يقرأ ملفات OPcache الجاهزة • وما يحاول يكتب شي يعني باختصار: 1. بتجهّز (pre-compile) ملفات OPcache وقت الـ deployment 2. بتنشرها مع التطبيق 3. وPHP بيقراها مباشرة ✅ حتى لو النظام read-only ليش هالشي مهم؟ لأن Laravel (خصوصي مع vendor) فيه ملفات كتير فأي تحسين ببداية التشغيل (cold start) ممكن يفرق بشكل ملحوظ —————————————- إذا اول مرة بتسمع عن OPcache انا حكيت عنه بمنشور سابق فيك تشوفه من خلال الرابط: هنا ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال

إذا في مليون مستخدم أونلاين على واتساب… يعني عم نضل فاتحين مليون اتصال WebSocket؟؟ شاركوني رأيكم بالتعليقات 👇👇 ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال

بانتظار اسئلتكم على الستوري من الرابط: هنا

النصيحة رقم #5 من سلسلة #نصائح_في_تصميم_api الـ API طبيعي يتطور مع الوقت بس المصيبة لما تعديل جديد يضرب تطبيق الموبايل اللي معتمد على شكل نسخة سابقة و انت مافيك تعدل لان الرفع على المتاجر بياخد وقت الحل: Versioning الأشهر والأوضح: • ✅ /api/v1/... • لاحقًا /api/v2/... هيك بتقدر: • تطور براحتك • تحافظ على التوافق • تدير الانتقال بين النسخ بشكل احترافي 💡 URL versioning غالبًا الأسهل debugging وصيانة. ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال

النصيحة رقم #4 من سلسلة #نصائح_في_تصميم_api إذا عندك موارد مرتبطة بشكل مباشر (مثل cart و items)، خلّي الرابط يعكس هالعلاقة 👇 ✅ جيدة:
/api/v1/items?cart_id=123&item_id=321
❌ سيئة:
/api/v1/carts/123/items/321
ليش أفضل؟ • العلاقة واضحة • أسهل قراءة • أسهل صيانة • منطق REST أنظف ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال

النصيحة رقم #3 من سلسلة #نصائح_في_تصميم_api الفلاتر و الترتيب لازم يكونوا من خلال Query Params ما تعمل ألف endpoint بدل ما تعمل endpoints مثل:
 • /products/electronics
 • /products/cheap
 • /products/newest
خليها كلها endpoint واحد + query params ✅ أمثلة:
 • /api/products?category=electronics&price_min=100
 • /api/products?sort_by=created_at&order=desc
هيك الـ API بيصير: • مرن • سهل التوسع • أوضح للفرونت 💡 إذا بدك شغل أنظف بـ Laravel: spatie/laravel-query-builder خيار ممتاز لتجنب if/else mess. ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال

النصيحة رقم #2 من سلسلة #نصائح_في_تصميم_api لا ترجع نتائج كبيرة دفعة وحدة لأن هالشي بيرفع الضغط على: • السيرفر والأداء • تطبيقات الموبايل • الشبكة واستهلاك البيانات بـ Laravel عندك خيارين ممتازين:
Offset Pagination → paginate()
مناسب للبيانات الصغيرة/العادية
Cursor Pagination → cursorPaginate()
أفضل للبيانات الكبيرة أو اللي بتتغير باستمرار ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال

ناطركم على انستغرام حتى نجاوب على اسئلتكم من الرابط هنا 🥳

النصيحة رقم #1 من سلسلة #نصائح_في_تصميم_api سمّي الـ API كـ Resources مو كأفعال: كتير فرق بين: • ✅ /api/products • ❌ /api/getAllProducts بـ Laravel الأفضل تسمي الـ endpoints حسب الـ Resource مو حسب الفعل. يعني: • GET /products → جلب • POST /products → إنشاء • GET /products/{id} → عرض • PUT/PATCH /products/{id} → تعديل • DELETE /products/{id} → حذف 💡 نصيحة: استخدم Route::apiResource() لأنه بيعطيك structure موحد ونظيف من أول يوم. الفائدة: الـ API صار أوضح وأسهل لأي مبرمج انه يفهمه و يشتغل عليه. ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال

رح بلش معكم بدءاً من بكرا سلسلة منشورات بعنوان: #نصائح_في_تصميم_api كتير ناس بتفكر إنو API يعني “Controller بيرجع JSON وخلص بس الواقع محتلف الـ API اله قواعد بالتصميم حتى يكون صح لازم يكون: • واضح ومتوقع • آمن • سهل الاستخدام للموبايل/الويب • قابل للتوسع بدون ما تكسر النسخ القديمة بهالسلسلة رح نمشي خطوة خطوة بأفضل القواعد اللي لازم تتبعها لتصميم ال API بشكل صحيح و بما انه رجعنا بعد غياب لا تنسوا تدعمولنا القناة من خلال مشاركتها مع أصدقائكم و نستمر بالنشر ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال

تفعيل OPcache موضوع صار أساسي لأي مشروع Production انت قادر تحصل على أداء أفضل بكتير لما بتفعله لأن عملياً PHP عم يعيد نفس الشغل كل مرة بجي فيها request جديد مافهمت عليي مو؟ خليني اشرحلك شو المشكلة بدون OPcache؟ 🤔 كل مرة يجي Request على أي صفحة أو API بـ Laravel، الـ PHP بيمشي بهاد المسار: 1. يقرأ ملفات PHP من الـ Disk 2. يعمل Parse للكود (تحليل) 3. يعمل Compile للكود لـ bytecode 4. بعدين ينفّذ المشكلة؟ هاد الشغل بيتكرر مع كل request حتى لو نفس الملفات ما تغيرت! (شفت وين !!) هون بيجي دور OPcache ✅ الـ OPcache بيحفظ النسخة المترجمة من ملفات PHP (bytecode) بالذاكرة (RAM) يعني بدل ما PHP كل مرة: • يقرأ • يحلل • يترجم بيصير ياخد النسخة الجاهزة من الذاكرة ويكمل تنفيذ مباشرة وقتها رح تشوف فوراً: • ✅ استجابة أسرع للطلبات • ✅ استهلاك CPU أقل • ✅ ضغط أقل على السيرفر • ✅ عدد requests أعلى ممكن يتحملهم السيرفر • ✅ أداء أهدى خصوصاً وقت الضغط ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال

ايمت بتعرف انك لازم تضيف Index للعامود: إذا العمود بيتستخدم بهي الحالات، 99% لازم يتفهرس: • ->where() / ->whereIn() • ->whereBetween() • ->orderBy() • ->join() • Foreign Keys ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال

ليش الـ Indexing مهم جداً بتطبيقات Laravel؟ 🚀 كتير تطبيقات Laravel بتصير بطيئة مو لأن Laravel بطيئة بس لأن قاعدة البيانات ما فيها Indexes مناسبة وين بتطلع المشكلة غالباً؟ • 🔍 تعمل where() على أعمدة بدون index • 📊 جداول كبيرة مثل: users, orders, transactions • 🔎 فلاتر البحث بالـ API • 📈 لوحات تحكم فيها تقارير وتقفيل أرقام ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال

🧪 إصدار جديد: @nuxt/test-utils v4.0.0 صار متاح 🚀 أبرز الجديد: • 👺 Mocking صار أوثق: نقل تهيئة Nuxt من setupFiles إلى beforeAll، فصار vi.mock و mockNuxtImport يشتغلوا قبل تشغيل Nuxt وبيحلّ مشاكل قديمة بالميدلوير/البلَغنز. • ⚡ دعم كامل لـ Vitest v4 + اعتماد Vite Module Runner بدل vite-node (أداء أفضل وتوافق أحدث). • ⚗️ تحسينات registerEndpoint: صار يدعم query params بشكل صحيح، وما عاد تروح الـ endpoints المسجلة بملفات setup عند reset. 🔗 تفاصيل الإصدار: http://github.com/nuxt/test-utils/releases/tag/v4.0.0 ❤️ شكر كبير للمساهمين: yamachi4416 و @adamdehaven

أصدقائي الأعزاء بتمنالكم أسبوع عمل مريح، بلا meetings مزعجة ولا bugs مفاجئة! كما جرت العادة نستقبل اسئلتكم على Instagram من خلال الرابط: هنا بانتظار أسئلتكم 🙏🏻

⚠️ تنبيه أمني لمستخدمي NGINX تم رصد ثغرة جديدة في NGINX (SSL upstream injection) والإصدارات المتأثرة تشمل 1.29.4. • شو هي؟ ثغرة بتظهر لما يكون NGINX شغال كـ Reverse Proxy وعم يوكّل الطلبات إلى upstream عبر TLS/SSL. بهالسيناريو، مهاجم عنده وضعية Man-in-the-Middle بين NGINX والـ upstream ممكن يقدر يحقن بيانات نصّية داخل استجابة الـ upstream بحيث توصل للمستخدمين. • مين المتأثر؟ NGINX Open Source من 1.3.0 إلى 1.29.4 (يعني 1.29.4 متأثر). • شو التأثير؟ التأثير الأساسي على سلامة المحتوى (Integrity) لأنه ممكن يسبب تعديل/حقن في ردود السيرفر ضمن شروط معيّنة. ✅ الحل السريع: حدّث إلى NGINX 1.29.5 (أو 1.28.2 لسلسلة 1.28). ✅ كيف تعرف إصدارك؟ nginx -v # أو إذا nginx داخل Docker: docker exec -it nginx nginx -v https://github.com/serversideup/docker-php/releases/tag/v4.3.1

ال Angular 21.1 صار رسمياً متوفر 🚀 التحديث مركز على تحسين تجربة المطوّر: Templates أنظف + Reactivity أقوى. أبرز الميزات: ✅ Multi-case داخل @switch: تكتب أكثر من case لنفس البلوك بدون تكرار. ✅ Spread Syntax داخل Templates (...): دمج/تفريد Arrays و Objects مباشرة بالقالب. ✅ Signals جديدة للراوتر isActive(): بيرجع Signal ويتحدّث تلقائيًا حسب حالة الراوت. ✅ Signal Forms: تغيير الاسم من [field] إلى [formField]. للتحديث: ng update @angular/core @angular/cli شو أكتر ميزة عجبتك؟ 🛠️

غالباً Antigravity خارج الخدمة لدى الجميع خبرونا اذا عم تستخدموا Antigravity و هل واقف عندكم ولا شغال؟