Code With Somar
2.72K subscribers
442 photos
4 videos
1 file
809 links
🚀 ريادي أعمال ومطوّر ويب بخبرة واسعة

💻 متخصص بتطوير حلول ويب متكاملة باستخدام Laravel، Django، React، Vue، و Node.js.

🏆 ضمن أفضل 4 صناع محتوى في سوريا وأفضل 3 في المحتوى التقني.

🌟 ناشط في مجتمع برمجة الأطفال، ومساهم في تطوير المحتوى التقني عربياً.
Download Telegram
تحياتي إلكن أصدقائي 🌹

رجعت خصص وقت لقناة اليوتيوب من جديد 🙌
ورح نبلش ننشر محتوى تقني مفيد و مرتب 🔥

إن شاء الله أوّل فيديو رح يكون عن موضوع مهم: DNS و Name Servers وكيف بيشتغلو 🖥🌐

💙 دعمكن بالمشاهدات بيعنيلنا كتير، خلونا نرجّع نحيي القناة ونكبرها سوا

🔗 وهي رابط القناة: هنا
17🔥2
ما تزال رحلة المهندس أشرف قاسم هي الأكثر مشاهدة على قناتي في يوتيوب، لما تحمله من تجربة غنية وواقعية من شخص يعمل اليوم كـ Machine Learning Engineer في أوروبا.

في هذه الحلقة المميزة، ناقشنا:
🔹 رحلته للوصول إلى مجال الذكاء الاصطناعي والعمل في شركات أوروبية.
🔹 استراتيجيات تطوير خوارزميات القيادة الذاتية في تحدي BFMC.
🔹 المهارات المطلوبة للمبرمجين الطامحين للعمل في السوق الأوروبي والعالمي.
🔹 خارطة طريق عملية للتخصص في مجالات مثل NLP وComputer Vision.
🔹 نصائح تقنية وشخصية للشباب المهتمين بمجال الـ AI.

الحلقة مليئة بالتجارب الملهمة والأفكار العملية 🌟
لا تفوتوا مشاهدتها على يوتيوب 👇
https://youtu.be/glHdkn_QWlY
4👏4
إذا حاسس الـ Controller تبعك صار Spaghetti؟ جرّب الـ Pipelines!

إذا عندك Laravel Controller مليان validation + business logic + تنسيق... وفجأة صار أكتر من 100 سطر وكله داخل ببعضه 🤯
بتغير سطر ➝ 5 أسطر تانية بتخرب.

هون بيجي دور Laravel Pipelines

شو يعني Pipeline؟
فكر فيها متل خط السير (production line):
كل خطوة (Pipe) بتعمل شغلة وحدة بس.
الداتا بتمشي بين الخطوات وحدة وحدة.
النتيجة: كود مرتب، نظيف، وقابل للتوسع.

مثال بسيط:
بدك تجهّز اسم المستخدم للترحيب:
الطريقة القديمة:
$name = trim($name);
$name = ucfirst(strtolower($name));
$message = 'Welcome, ' . $name . '!';


بتتكرر 4 مرات بـ Controllers مختلفة، وتكبر المشكلة لو ضفت شرط جديد.

الطريقة بـ Pipelines:
$name = Pipeline::send($name)
->through([
TrimInput::class,
FormatCase::class,
SkipAdminCheck::class,
AddGreeting::class,
])
->thenReturn();

كل class مستقل، قابل للاختبار، وما بيعمل غير مهمة وحدة.
وين فيك تستخدم Pipelines؟
تنظيف input
Query filtering
Data transformation

النتيجة:
Controllers صغيرة، مقروءة، وقابلة للصيانة.
Laravel بيعطيك الأدوات ➝ Pipelines بتعطيك الـ flow.

———————————-

Linkedin |Instgram | YouTube

أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
6🔥6
Apple Store بدون VPN في سوريا 🙏🏻❤️

نشالله قريباً منشوف حسابات الـ Developers كمان متاحة
🔥8
هل كنت بتعرف انه بـ PHP 8.5 صار فينا نكتب كود أنظف بفضل الـ Pipe Operator.
قبل PHP 8.5 إذا بدك تعمل تسلسل عمليات بسيطة على متغير، كنت تضطر تستعمل temporary variables:
$email = "  TEST@EXAMPLE.COM  ";
$email = trim($email);
$email = strtolower($email);
sendEmail($email);

كود طويل وملخبط !!
مع Pipe Operator الجديد:
"  TEST@EXAMPLE.COM  "
|> trim()
|> strtolower()
|> sendEmail();


النتيجة: كود أنضف، أوضح، وما في متغيرات زيادة. بتكتب وبتقرأ الكود بسهولة.

———————————-

Linkedin |Instgram | YouTube

أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
12
أصدقائي اللي مفعلين Telegram Premium بإمكانكم تساعدونا نصير نفتح ميزات جديدة بالقناة 🔥

https://t.me/boost/code_with_somar
2
Code With Somar pinned «أصدقائي اللي مفعلين Telegram Premium بإمكانكم تساعدونا نصير نفتح ميزات جديدة بالقناة 🔥 https://t.me/boost/code_with_somar»
إذا بدك أول أو آخر عنصر بمصفوفة؟ كان فيك تستعمل reset() أو end(). بس المشكلة إنهم بيغيروا المؤشر الداخلي للمصفوفة.
هلا بـ array_first() و array_last():
$users = ["Adrian", "Maria", "Pedro"];
$first = array_first($users); // Adrian
$last = array_last($users); // Pedro


بسيطة وواضحة وما بتخربطلك المصفوفة.

———————————-

Linkedin |Instgram | YouTube

أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
4
قبل فترة نزلت فيديو على يوتيوب جاوبت فيه على أكتر الأسئلة الشائعة يلي بتوصلني من طلاب ومبتدئين:

React ولا Next؟
Laravel ولا Node؟
هل الشهادة الجامعية ضرورية؟
في شغل بدون خبرة؟
شو أعمل إذا لسا حاسس حالي ضعيف؟

وغيرها من المواضيع يلي بتساعدك تختار مسارك وتبلّش صح و لهلا هي الاسئلة بتوصلني بفقرة الاسئلة الاسبوعية لهيك كتير مهم نشوف هاد الفيديو لانه بجاوب على كتير أسئلة:
https://youtu.be/NS-FMdhTrKE
7
اليوم weekend لكن ما بيعني انه مافيني ندردش عن شوية أسئلة سوا

ناطركم: هنا
2
أهم أوامر Docker لازم تعرفها 🚀

إذا بلّشت تشتغل بـ Docker وعم تضيع بين الأوامر، هدول العشرة بس كافيين حتى تبدأ بالخطوات الأساسية:

docker --version

بتعرف أي نسخة Docker عندك.

docker ps


بيورجيك الكونتينرات اللي شغّالة هلأ.

docker ps -a


بيطلعلك كل الكونتينرات حتى الموقّفة.

docker images


بتشوف الصور (images) اللي موجودة عندك.

docker pull <image>


بتنزّل image من Docker Hub.

docker run -it <image>


بتشغّل كونتينر بطريقة تفاعلية.

docker exec -it <container> <cmd>


بتفوت لجوا الكونتينر وبتشغّل أوامر.

docker stop <container>


بتوقّف كونتينر.

docker rm <container>


بتحذف كونتينر.

docker rmi <image>


بتحذف image.

تذكّر، إذا حفظت هالأوامر، صرت بتغطي 80% من شغلك اليومي مع Docker.
———————————-

Linkedin |Instgram | YouTube

أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
6👍1
فيديوهات تستحق وقتك!

من دروس تقنية عملية، إلى حلقات بودكاست غنية بالنقاشات... كل شيء صار جاهز على قناتي في يوتيوب!👇

🔹 اختبر الـ APIs باحتراف باستخدام Postman
https://youtu.be/5S_NYaHFpGk

🔹 راقب تغييرات الكود مع DevTools باحتراف
https://youtu.be/Di7zJTdVcEU

🔹 طريقة تثبيت WordPress على cPanel خطوة بخطوة
https://youtu.be/LJ3dO2hYkxo

🔹 كيف غيّرت OpenAI قواعد اللعبة عبر Chat.com؟
https://youtu.be/VTngsh_SGVU

سلسلة Laravel للمطورين المحترفين:
🔸 تعلم الـ Validation باحتراف: https://youtu.be/waslz6jcGKs
🔸 أسرار Cron Jobs في Laravel: https://youtu.be/M6PEvSIAdBE
🔸 دعم تعدد اللغات بدون باكجات: https://youtu.be/-SwibEJ0tWg

🛡 أمن المعلومات - Cyber Security:
🔸 خطورة أسماء الملفات: https://youtu.be/TivSFthbjOM
🔸 رفع الملفات بأمان في Laravel: https://youtu.be/xtw_1p3sQhs
🔸 حماية المواقع الصغيرة: https://youtu.be/_ZaPm6S_QYA

🎙 بودكاست With Somar - نقاشات تقنية معمّقة:
1️⃣ تحليل النظم مع سارة قطف: https://youtu.be/iaMCgJegdn8
2️⃣ رحلة في الذكاء الاصطناعي - أشرف قاسم: https://youtu.be/glHdkn_QWlY
3️⃣ حلول برمجية لملايين المستخدمين - أنس الطرزي: https://youtu.be/dS2a62OqV-k
4️⃣ التحول الرقمي و Salesforce - ألكساندر الرهب: https://youtu.be/bTGhwthdWsk
5️⃣ الأمن السيبراني - علي سلمان: https://youtu.be/2iCI4iz9HFQ
6️⃣ الـ WordPress بعيون مختلفة - عبد اللطيف المهيوب: https://youtu.be/HmbK3rux3uo
7️⃣ ريادة الأعمال والمنهجيات الحديثة - رازق داؤد: https://youtu.be/jkgkfKBxjsQ

📌 اشترك بالقناة وفعل الجرس ليصلك كل جديد!

===================

Linkedin |Instgram | YouTube

أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
10
أوقات منستدعي دالة بترجع قيمة، بس مننسى نستخدمها.
شو بيصير؟ bugs ما بتبين غير بعدين.

مثال:
function getName(): string {
return "Nuno";
}

getName(); // رجعت قيمة وما استعملناها


قبل كان الموضوع يمرق عادي.
بس بـ PHP 8.5 في شغلة جديدة بتقلّك: "إنت نسيت شي مهم".
#[NoDiscard]
function getName(): string {
return "Nuno";
}

getName();
// تحذير: تجاهلت القيمة الراجعة


💡 ليش مفيدة؟

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

———————————-

Linkedin |Instgram | YouTube

أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
5
كتير مرات منكتب كود متل هيك:
$user = new User;
$user->name = 'John Doe';
$user->email = 'john@example.com';
$user->save();

return $user;


النتيجة؟ كود طويل زيادة، ممل، وصعب تقراه بسرعة.

بدك تنشئ Object جديد (مثلاً User)، تعدّل عليه شوي، تحفظه، وبعدين ترجّعه.
بهالسيناريو بتضطر تعمل خطوات زيادة ما إلها داعي.

الحل:
استخدم tap() helper وخلي الكود أنضف:
$user = tap(new User, function ($user) {
$user->name = 'John Doe';
$user->email = 'john@example.com';
$user->save();
});

هيك صرت تعمل كلشي بخط واحد أنيق وواضح: إنشاء، تعديل، وحفظ… بدون وجع راس.
———————————-

Linkedin |Instgram | YouTube

أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
5
لما بدنا نتأكد من قوة و استقرار أي نظام (موقع – تطبيق – خدمة)، في عنا عدة أنواع من الاختبارات:

1️⃣ Load Test – اختبار التحميل
نقيس كيف يتصرف النظام بوجود عدد طبيعي من المستخدمين، يعني بالسيناريو العادي المتوقع.

2️⃣ Stress Test – اختبار الضغط
منزيد الحمل بشكل تدريجي فوق الطبيعي لنعرف حدود النظام، وين بيتوقف أو بيصير فيه مشاكل.

3️⃣ Spike Test – اختبار الارتفاع المفاجئ
منعمل قفزة سريعة ومفاجئة بعدد المستخدمين لنعرف إذا النظام بيتحمل الصدمات أو بينهار فجأة.

4️⃣ Soak Test – اختبار الاستقرار مع الزمن
منشغل النظام بتحميل مستمر ولساعات طويلة لنتأكد إذا في تسرب بالذاكرة، مشاكل استقرار أو بطء مع الوقت.

ببساطة:

Load: الوضع الطبيعي.
Stress: لنعرف الحد الأقصى.
Spike: المفاجآت.
Soak: الاستقرار على المدى الطويل.

———————————-

Linkedin |Instgram | YouTube

أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
3
كتير مرات منكتب كود متل هيك:
$query = User::query();

if (request('role')) {
$query->where('role', request('role'));
}

$users = $query->get();


النتيجة؟ كود مليان if-statements وبيخلي الـ controller منفوخ وصعب تحافظ عليه.

بدك تكتب Query بشرط معيّن (مثلاً role) بس بشكل أنظف وأسهل للقراءة؟؟
الحل انك تستخدم when() helper وخلي الكود أنظف:
$users = User::when(request('role'), function ($query, $role) {
return $query->where('role', $role);
})->get();

بهالطريقة الكود صار أنيق، مقروء، والـ controller ظلّ خفيف ومرتب.

———————————-

Linkedin |Instgram | YouTube

أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
4
للأسف تم تأجيل قبول أول مساهمة الي ضمن Laravel او لربما تم رفضها مامنعرف حسب الأيام القادمة لكن كانت تجربة جميلة جداً

و لسا عندي Pull Request ثاني معتمد عليه و متأمل انه يتم قبوله 🔥
13🔥8