Code With Somar
رفتن به کانال در Telegram
🚀 ريادي أعمال ومطوّر ويب بخبرة واسعة 💻 متخصص بتطوير حلول ويب متكاملة باستخدام Laravel، Django، React، Vue، و Node.js. 🏆 ضمن أفضل 4 صناع محتوى في سوريا وأفضل 3 في المحتوى التقني. 🌟 ناشط في مجتمع برمجة الأطفال، ومساهم في تطوير المحتوى التقني عربياً.
نمایش بیشتر2 693
مشترکین
+124 ساعت
+17 روز
+430 روز
آرشیو پست ها
2 691
أصدقائي الأعزاء
حابب وضّح كم نقطة مهمة وبنفس الوقت اعتذر عن التأخير اللي صار رغم الإعلان القديم عن الكورس.
توضيحات سريعة:
1. الكورس مو كورس أمن معلومات (Cybersecurity)
ما رح ندخل بمواضيع مثل الاختراق الأخلاقي، الشبكات، أو البرمجيات الخبيثة.
2. سبب التأخير
صار عندي ضغط شغل، وكون هالسنة سنة تخرّجي فصار وقت فراغي قليل جدًا، لذلك اتأخر تجهيز الكورس.
3. طريقة تقديم الكورس بالبداية رح تكون لايف (مو Udemy مباشرة)
أول نسخة رح تكون Live عبر Google Meet
والهدف يكون في تفاعل مباشر: نقاش، أسئلة، أجوبة، وفيدباك منكم—لحتى لما ينزل لاحقًا على Udemy يكون بأفضل جودة وشكل ممكن.
4. مين أنا وهل الكورس بيحوّلك “هاكر”؟
أنا مو “هكر”، و مو خبير أمن معلومات بالمعنى التقليدي.
الكورس هدفه بسيط وواضح:
إذا إنت Backend Developer بتستخدم Laravel، تكون قادر تأمّن مشروعك قدر المستطاع، وتفهم:
• شو الأخطار الشائعة على تطبيقات الويب
• وين عادة بتكون الثغرات وأنت عم تكتب كود
• شو تعمل عمليًا لتحمي Routes / APIs / Sessions / Uploads
• وكيف تبني Authorization صح (Policies/Gates/Permissions)
• وكيف تتصرف لو صار شي مريب أو محاولة اختراق
2 691
للي محتار شو بقصد بالمنشور السابق:
قبل (الأسلوب التقليدي)
class User extends Model
{
protected $fillable = ['name', 'email'];
protected $hidden = ['password'];
}
بعد (Laravel 13 - باستخدام Attributes)
#[Fillable(['name', 'email'])]
#[Hidden(['password'])]
class User extends Model {}
شو تغيّر؟
بدل ما تكون الإعدادات داخل الكلاس كـ properties،
صارت تتكتب فوق الكلاس بشكل واضح كـ Attributes.
شو الفائدة؟
• شكل أنظف وأوضح
• توحيد أسلوب التعريف داخل Laravel
• أسهل تقرأ إعدادات الكلاس بسرعة
• اتجاه حديث ومتوافق مع تطور PHP
———————————-
Linkedin |Instgram | YouTube
أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال2 691
على فكرة Laravel بالإصدار القادم Laravel 13 عم تتجه للاعتماد على PHP Attributes بشكل أوسع
طبعاً التغيير رح يشمل الـ Models / Jobs / Commands / Requests وغيرهم
و رح تشترط الـPHP 8.3+
رح احكيلكم اكتر عنها بالمستقبل تأكدوا انكم تشوفوا المنشورات القادمة
———————————-
Linkedin |Instgram | YouTube
أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
2 691
سؤال مقابلة بس هالمرة رح نرفع المستوى فيه شوي:
إذا الـ Redis هو single threaded كيف بيقدر يتعامل مع ملايين الطلبات بالثانية؟
———————————————
Linkedin |Instgram | YouTube
أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
2 691
النصيحة رقم #7 من سلسلة #نصائح_في_تصميم_api
استخدم Status Codes صح… ولا ترجع 200 لكل شي
كتير APIs بترجع 200 OK حتى وقت الخطأ ❌
وهذا بيخرب التعامل مع الـ frontend والموبايل.
الأصح:
• 200 نجاح جلب/تعديل
• 201 إنشاء مورد جديد
• 204 حذف بدون محتوى
• 422 خطأ تحقق (Validation)
• 401 غير مسجل دخول
• 403 ممنوع
• 404 غير موجود
• 500 خطأ داخلي
💡 نصيحة:
خلي الـ HTTP status code يشرح الحالة، والـ body يعطي التفاصيل.
الفائدة: debugging أسهل + سلوك أوضح + تكامل أنضف.
———————————-
Linkedin |Instgram | YouTube
أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
2 691
طيب منعطيكم سؤال مقابلات تاني:
طالما الـ JWTs هيي stateless
كيف عم تعمل logout للمستخدم؟
———————————-
Linkedin |Instgram | YouTube
أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
2 691
النصيحة رقم #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 أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
2 691
شغلة حلوة بـ 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 أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
2 691
إذا في مليون مستخدم أونلاين على واتساب…
يعني عم نضل فاتحين مليون اتصال WebSocket؟؟
شاركوني رأيكم بالتعليقات 👇👇
———————————-
Linkedin |Instgram | YouTube
أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
2 691
النصيحة رقم #5 من سلسلة #نصائح_في_تصميم_api
الـ API طبيعي يتطور مع الوقت بس المصيبة لما تعديل جديد يضرب تطبيق الموبايل اللي معتمد على شكل نسخة سابقة و انت مافيك تعدل لان الرفع على المتاجر بياخد وقت
الحل: Versioning
الأشهر والأوضح:
• ✅ /api/v1/...
• لاحقًا /api/v2/...
هيك بتقدر:
• تطور براحتك
• تحافظ على التوافق
• تدير الانتقال بين النسخ بشكل احترافي
💡 URL versioning غالبًا الأسهل debugging وصيانة.
———————————-
Linkedin |Instgram | YouTube
أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
2 691
النصيحة رقم #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 أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
2 691
النصيحة رقم #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 691
النصيحة رقم #2 من سلسلة #نصائح_في_تصميم_api
لا ترجع نتائج كبيرة دفعة وحدة
لأن هالشي بيرفع الضغط على:
• السيرفر والأداء
• تطبيقات الموبايل
• الشبكة واستهلاك البيانات
بـ Laravel عندك خيارين ممتازين:
Offset Pagination → paginate()مناسب للبيانات الصغيرة/العادية
Cursor Pagination → cursorPaginate()أفضل للبيانات الكبيرة أو اللي بتتغير باستمرار ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
2 691
النصيحة رقم #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 أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
2 691
رح بلش معكم بدءاً من بكرا سلسلة منشورات بعنوان: #نصائح_في_تصميم_api
كتير ناس بتفكر إنو API يعني “Controller بيرجع JSON وخلص بس الواقع محتلف الـ API اله قواعد بالتصميم حتى يكون صح لازم يكون:
• واضح ومتوقع
• آمن
• سهل الاستخدام للموبايل/الويب
• قابل للتوسع بدون ما تكسر النسخ القديمة
بهالسلسلة رح نمشي خطوة خطوة بأفضل القواعد اللي لازم تتبعها لتصميم ال API بشكل صحيح
و بما انه رجعنا بعد غياب لا تنسوا تدعمولنا القناة من خلال مشاركتها مع أصدقائكم و نستمر بالنشر
———————————-
Linkedin |Instgram | YouTube
أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
2 691
تفعيل 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 أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
2 691
ايمت بتعرف انك لازم تضيف Index للعامود:
إذا العمود بيتستخدم بهي الحالات، 99% لازم يتفهرس:
• ->where() / ->whereIn()
• ->whereBetween()
• ->orderBy()
• ->join()
• Foreign Keys
———————————-
Linkedin |Instgram | YouTube
أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
