يعني إيه Canary Testing؟ 🤔
.
.
تخيل معايا إنك بتشتغل في شركة Tech كبيرة، وعندك Feature جديدة اشتغلت عليها أكتر من أسبوع، اختبرتها على الـ dev environment، وعدّت الـ QA، وكل حاجة تمام…
بس قبل ما تطلعها لكل الناس على الـ production، في سؤال بيخطر في بالك:
"يا ترى الفيتشر دي هتشتغل فعلًا كويس لما تنزل؟ ولا ممكن تعمل مشاكل للمستخدمين؟"
وهنا ييجي دور الـ Canary Testing...
——-—
الكلمة دي أصلها لما كانوا عمّال المناجم بياخدوا طيور الكناري معاهم تحت الأرض. الطيور دي كانت بتحذرهم لو فيه غاز سام قبل ما هم نفسهم يتأثروا.
لو الكناري ماتت، يبقى فيه خطر، ولازم يطلعوا فورًا
نفس الفكرة بالضبط في البرمجة
قبل ما نـ rollout feature أو update لكل الناس، بنطلّعها لعدد صغير جدًا من المستخدمين الحقيقيين — الكناري بتاعنا — ونراقب سلوك السيستم كويس. لو كل حاجة ماشية تمام، نكمّل التحديث لباقي الناس. لو حصلت مشاكل؟ نوقف الدنيا بسرعة ونرجّعها زي ما كانت.
———
📌 إمتى نستخدم الـ Canary Testing؟
- لو الـ Feature حساسة شويتين وممكن تعمل impact كبير لو فيها bug.
- لو بتشتغل على Microservices وعايز تتأكد إن الـ service الجديدة مش هتبوّظ الـsystem كله.
- لو شغال في بيئة فيها ملايين الـusers ومينفعش تخاطر.
———
💡 إيه الفرق بين Canary Testing و A/B Testing؟
ناس كتير بتتلخبط بينهم، بس الفرق واضح:
الـ Canary Testing: إحنا بنجرب نفس الـ feature على نسبة صغيرة من الناس ونشوف هل فيها مشاكل ولا لا.
الـ A/B Testing: إحنا بنجرب نسختين مختلفين (Version A و Version B) ونشوف أنهي فيهم هيكون أحسن.
يعني الـCanary هدفه الأساسي الأمان، والـA/B هدفه الأساسي التحسين والتطوير.
———
⚙️ إزاي بنطبّق Canary Testing؟
فيه كذا طريقة، على حسب الـ Infra اللي شغال بها:
1- الـ Feature Flags: بتكون مشغل الـ feature الجديدة بس لناس معينة أو نسبة صغيرة.
2- الـ Traffic Splitting: ممكن تستخدم أدوات زي Kubernetes أو Load Balancers علشان توزّع الـ traffic بشكل كويس.
3- الـ Monitoring Tools: أهم حاجة تتابع الـ logs والـ metrics والـ errors أول بأول، سواء بـ Datadog أو New Relic أو أي أداة بترتاح فيها.
4- الـ Rollback Plan: لو حصلت مشكلة؟ تكون محضّر خطة rollback سريعة.
———
وفقكم الله لكل خير 🌿
.
.
تخيل معايا إنك بتشتغل في شركة Tech كبيرة، وعندك Feature جديدة اشتغلت عليها أكتر من أسبوع، اختبرتها على الـ dev environment، وعدّت الـ QA، وكل حاجة تمام…
بس قبل ما تطلعها لكل الناس على الـ production، في سؤال بيخطر في بالك:
"يا ترى الفيتشر دي هتشتغل فعلًا كويس لما تنزل؟ ولا ممكن تعمل مشاكل للمستخدمين؟"
وهنا ييجي دور الـ Canary Testing...
——-—
الكلمة دي أصلها لما كانوا عمّال المناجم بياخدوا طيور الكناري معاهم تحت الأرض. الطيور دي كانت بتحذرهم لو فيه غاز سام قبل ما هم نفسهم يتأثروا.
لو الكناري ماتت، يبقى فيه خطر، ولازم يطلعوا فورًا
نفس الفكرة بالضبط في البرمجة
قبل ما نـ rollout feature أو update لكل الناس، بنطلّعها لعدد صغير جدًا من المستخدمين الحقيقيين — الكناري بتاعنا — ونراقب سلوك السيستم كويس. لو كل حاجة ماشية تمام، نكمّل التحديث لباقي الناس. لو حصلت مشاكل؟ نوقف الدنيا بسرعة ونرجّعها زي ما كانت.
———
📌 إمتى نستخدم الـ Canary Testing؟
- لو الـ Feature حساسة شويتين وممكن تعمل impact كبير لو فيها bug.
- لو بتشتغل على Microservices وعايز تتأكد إن الـ service الجديدة مش هتبوّظ الـsystem كله.
- لو شغال في بيئة فيها ملايين الـusers ومينفعش تخاطر.
———
💡 إيه الفرق بين Canary Testing و A/B Testing؟
ناس كتير بتتلخبط بينهم، بس الفرق واضح:
الـ Canary Testing: إحنا بنجرب نفس الـ feature على نسبة صغيرة من الناس ونشوف هل فيها مشاكل ولا لا.
الـ A/B Testing: إحنا بنجرب نسختين مختلفين (Version A و Version B) ونشوف أنهي فيهم هيكون أحسن.
يعني الـCanary هدفه الأساسي الأمان، والـA/B هدفه الأساسي التحسين والتطوير.
———
⚙️ إزاي بنطبّق Canary Testing؟
فيه كذا طريقة، على حسب الـ Infra اللي شغال بها:
1- الـ Feature Flags: بتكون مشغل الـ feature الجديدة بس لناس معينة أو نسبة صغيرة.
2- الـ Traffic Splitting: ممكن تستخدم أدوات زي Kubernetes أو Load Balancers علشان توزّع الـ traffic بشكل كويس.
3- الـ Monitoring Tools: أهم حاجة تتابع الـ logs والـ metrics والـ errors أول بأول، سواء بـ Datadog أو New Relic أو أي أداة بترتاح فيها.
4- الـ Rollback Plan: لو حصلت مشكلة؟ تكون محضّر خطة rollback سريعة.
———
وفقكم الله لكل خير 🌿
❤8
The Hidden SEO Superpower: Mastering Sitemaps & Site Structure for Explosive Organic Growth 🧭
What if I told you that your website could be brilliant, beautiful — and invisible to Google?
That’s the harsh reality for many site owners who ignore the quiet powerhouse of SEO: the sitemap.
———
🔗 https://dev.to/alisamir/the-hidden-seo-superpower-mastering-sitemaps-site-structure-for-explosive-organic-growth-18pn
❤3
يعني إيه Sitemap؟ وإزاي بتأثر على SEO؟ 🚀
.
.
فيه حاجات في الويب لو فهمتها بدري، هتوفر على نفسك مشاكل كتير قدام…
واحدة من الحاجات دي هي الـ Sitemap.
وهي دي إجابة سؤال: "ليه جوجل مش بيأرشف كل صفحات الموقع؟"
أو
"ليه الصفحات الجديدة مش بتظهر في السيرش؟"
وده لأنك مش عامل Sitemap صح، أو مش عاملها أصلًا.
تعال ندردش شوية ونعرف يعني إيه Sitemap، وإزاي ممكن تساعد موقعك...
———
📌 يعني إيه Sitemap؟
تقدر تعتبرها خريطة الموقع بتاعك.
زي خريطة مول كبير، فيها كل المحلات والمداخل والمخارج… بس هنا الخريطة معمولة عشان Google و Bing وكل محركات البحث.
يعني sitemap.xml دي عبارة عن فايل بيقول لمحركات البحث:
"الموقع بتاعي فيه الصفحات دي كلها، ودي أهمها، ودي اللي تم تحديثها قريب، ودي اللي محتاج تدخلها بسرعة."
فالـ Sitemap بتسهّل جدًا على الـ Crawlers إنها تـفهم موقعك وتمشي فيه من غير توهان.
———
💡ليه الـ Sitemap مهمة؟
خليني أقولك على شوية سيناريوهات واقعية:
- لو موقعك لسه جديد ومفيهوش لينكات كتير، فغالبًا الـ Google مش هيعرف يوصل لكل الصفحات بسهولة. هنا sitemap بتساعده يوصل أسرع.
- لو عندك صفحات كتير مش مربوطة ببعض (يعني مفيش internal links كفاية)، فـ محركات البحث ممكن تفوّت صفحات مهمة جدًا.
- لو بتحدّث محتوى باستمرار، الـ sitemap بتقول لـ Google إن فيه تحديثات حصلت، فيعيد عملية الـ crawl على الصفحات دي بسرعة.
———
🛠 أنواع الـ Sitemap؟
1- الـ XML Sitemap: وده اللي بنبعته لمحركات البحث.
- بيكون فايل اسمه غالبًا sitemap.xml.
- بيحتوي على لينكات الصفحات، وتواريخ آخر تحديث، وأحيانًا priority.
2- الـ HTML Sitemap: وده بيكون معمول للمستخدم العادي.
- صفحة فيها كل اللينكات المهمة في الموقع.
- بتساعد الناس يتنقلوا بسهولة.
لكن اللي يهمنا في الـ SEO هو الـ XML Sitemap.
———
🤔 إزاي تعمل Sitemap؟
فيه أدوات بتعمل ده تلقائي:
- لو بتستخدم WordPress: إضافة زي Yoast SEO أو Rank Math بتعمل sitemap تلقائي.
- لو بتشتغل بـ Next.js أو أي framework تاني: تقدر تستخدم حاجة زي next-sitemap، أو تعمل generate يدوي.
- لو عندك static site: استخدم أدوات زي sitemap-generator أو screaming frog.
———
✅ بعد ما تجهز sitemap.xml:
ارفعها على root بتاع الموقع، زي:
https://example.com/sitemap.xml
✅ روح على Google Search Console:
- اختار الموقع
- اختار Sitemaps
- ضيف اللينك بتاع الـ sitemap
ده بيقول لجوجل: "إن الموقع جاهز وادخل بص على الصفحات دي."
———
وفقكم الله لكل خير 🌿
.
.
فيه حاجات في الويب لو فهمتها بدري، هتوفر على نفسك مشاكل كتير قدام…
واحدة من الحاجات دي هي الـ Sitemap.
وهي دي إجابة سؤال: "ليه جوجل مش بيأرشف كل صفحات الموقع؟"
أو
"ليه الصفحات الجديدة مش بتظهر في السيرش؟"
وده لأنك مش عامل Sitemap صح، أو مش عاملها أصلًا.
تعال ندردش شوية ونعرف يعني إيه Sitemap، وإزاي ممكن تساعد موقعك...
———
📌 يعني إيه Sitemap؟
تقدر تعتبرها خريطة الموقع بتاعك.
زي خريطة مول كبير، فيها كل المحلات والمداخل والمخارج… بس هنا الخريطة معمولة عشان Google و Bing وكل محركات البحث.
يعني sitemap.xml دي عبارة عن فايل بيقول لمحركات البحث:
"الموقع بتاعي فيه الصفحات دي كلها، ودي أهمها، ودي اللي تم تحديثها قريب، ودي اللي محتاج تدخلها بسرعة."
فالـ Sitemap بتسهّل جدًا على الـ Crawlers إنها تـفهم موقعك وتمشي فيه من غير توهان.
———
💡ليه الـ Sitemap مهمة؟
خليني أقولك على شوية سيناريوهات واقعية:
- لو موقعك لسه جديد ومفيهوش لينكات كتير، فغالبًا الـ Google مش هيعرف يوصل لكل الصفحات بسهولة. هنا sitemap بتساعده يوصل أسرع.
- لو عندك صفحات كتير مش مربوطة ببعض (يعني مفيش internal links كفاية)، فـ محركات البحث ممكن تفوّت صفحات مهمة جدًا.
- لو بتحدّث محتوى باستمرار، الـ sitemap بتقول لـ Google إن فيه تحديثات حصلت، فيعيد عملية الـ crawl على الصفحات دي بسرعة.
———
🛠 أنواع الـ Sitemap؟
1- الـ XML Sitemap: وده اللي بنبعته لمحركات البحث.
- بيكون فايل اسمه غالبًا sitemap.xml.
- بيحتوي على لينكات الصفحات، وتواريخ آخر تحديث، وأحيانًا priority.
2- الـ HTML Sitemap: وده بيكون معمول للمستخدم العادي.
- صفحة فيها كل اللينكات المهمة في الموقع.
- بتساعد الناس يتنقلوا بسهولة.
لكن اللي يهمنا في الـ SEO هو الـ XML Sitemap.
———
🤔 إزاي تعمل Sitemap؟
فيه أدوات بتعمل ده تلقائي:
- لو بتستخدم WordPress: إضافة زي Yoast SEO أو Rank Math بتعمل sitemap تلقائي.
- لو بتشتغل بـ Next.js أو أي framework تاني: تقدر تستخدم حاجة زي next-sitemap، أو تعمل generate يدوي.
- لو عندك static site: استخدم أدوات زي sitemap-generator أو screaming frog.
———
✅ بعد ما تجهز sitemap.xml:
ارفعها على root بتاع الموقع، زي:
https://example.com/sitemap.xml
✅ روح على Google Search Console:
- اختار الموقع
- اختار Sitemaps
- ضيف اللينك بتاع الـ sitemap
ده بيقول لجوجل: "إن الموقع جاهز وادخل بص على الصفحات دي."
———
وفقكم الله لكل خير 🌿
❤8👍1
سنوات الخبرة 🔻
.
.
هو أنا عندي كام سنة خبرة في مجال البرمجة؟
سؤال بسيط.. بس أغلبنا بيحسبه غلط، وغلط بسيط زي ده ممكن يبوظ الـ CV كله، ويقلل فرصك في الشغل.
زمان أول ما بدأت أتعلم برمجة، كنت فاكر إني لما أذاكر كام شهر في البرمجة هيكون عندي خبرة وهقدر أقول عندي 6 شهور خبرة مثلًا 😅
ولكن الكلام ده غير صحيح أبدًا...
———
📌 إزاي نحسب سنوات الخبرة؟
1- هل كل اللي تعلمته يحتسب خبرة؟
لا، الخبرة الفعلية = الوقت اللي كنت بتشتغل فيه بشكل منتظم على مشاريع حقيقية وقابلت فيها تحديات وقدرت تحلها.
يعني مثلًا:
- اشتغلت في شركة؟ تمام. ده خبرة.
- عملت شغل فريلانسنج لمدة 6 شهور وكنت بتسلم شغل لعميل؟ ده كمان خبرة.
- اشتغلت على مشروع شخصي كبير، وكنت بتحل فيه مشاكل زي اللي بتحصل في أغلب المشاريع في الشركات؟ ده ممكن يتحسب، بس بشروط.
لكن:
- ذاكرت كورسات بس؟
- شوفت فيديوهات يوتيوب وطبقت معاها شوية أكواد؟
- عملت مشاريع بسيطة ملهاش علاقة بأرض الواقع؟
ده يُعتبر "تعلم"، مش خبرة حقيقية.
———
💡 إيه شروط إن المشروع الشخصي يتحسب كخبرة؟
مش أي side project تحطه كـ proof إن عندك 3 سنين خبرة في React. فيه شوية شروط لو تحققت، تقدر تحسبه:
- كان مشروع ليه هدف واضح (مش مجرد تجارب).
- اشتغلت عليه لفترة طويلة وبشكل منتظم.
- استخدمت فيه تقنيات بتستخدمها الشركات فعلًا (مش مجرد HTML و CSS).
- قابلت فيه مشاكل performance و optimization و architecture و state management… إلخ.
- المشروع deployed والناس تقدر تشوفه وتستخدمه.
———
لو كتبت في CV إن عندك 5 سنين خبرة، بس لما تيجي وقت الـ interview أو وقت الشغل ويتضح إن مستواك junior، ده بيضرك أنت قبل ما يضر الشركة ومش بعيد جدًا تبقى blocked بالنسبة للشركة دي ومتعرفش تشتغل فيها تاني حتى لو عندك 10 سنوات خبرة.
لو حصل فجوة في شغلك لأي سبب حاول تذكرها في الـ CV بطريقة كويسة وخليك صريح...واشرح إزاي الفترة دي ساعدتك تتعلم بعض المهارات وتحسن من نفسك وهكذا...
———
وفقكم الله لكل خير 🌿
.
.
هو أنا عندي كام سنة خبرة في مجال البرمجة؟
سؤال بسيط.. بس أغلبنا بيحسبه غلط، وغلط بسيط زي ده ممكن يبوظ الـ CV كله، ويقلل فرصك في الشغل.
زمان أول ما بدأت أتعلم برمجة، كنت فاكر إني لما أذاكر كام شهر في البرمجة هيكون عندي خبرة وهقدر أقول عندي 6 شهور خبرة مثلًا 😅
ولكن الكلام ده غير صحيح أبدًا...
———
📌 إزاي نحسب سنوات الخبرة؟
1- هل كل اللي تعلمته يحتسب خبرة؟
لا، الخبرة الفعلية = الوقت اللي كنت بتشتغل فيه بشكل منتظم على مشاريع حقيقية وقابلت فيها تحديات وقدرت تحلها.
يعني مثلًا:
- اشتغلت في شركة؟ تمام. ده خبرة.
- عملت شغل فريلانسنج لمدة 6 شهور وكنت بتسلم شغل لعميل؟ ده كمان خبرة.
- اشتغلت على مشروع شخصي كبير، وكنت بتحل فيه مشاكل زي اللي بتحصل في أغلب المشاريع في الشركات؟ ده ممكن يتحسب، بس بشروط.
لكن:
- ذاكرت كورسات بس؟
- شوفت فيديوهات يوتيوب وطبقت معاها شوية أكواد؟
- عملت مشاريع بسيطة ملهاش علاقة بأرض الواقع؟
ده يُعتبر "تعلم"، مش خبرة حقيقية.
———
💡 إيه شروط إن المشروع الشخصي يتحسب كخبرة؟
مش أي side project تحطه كـ proof إن عندك 3 سنين خبرة في React. فيه شوية شروط لو تحققت، تقدر تحسبه:
- كان مشروع ليه هدف واضح (مش مجرد تجارب).
- اشتغلت عليه لفترة طويلة وبشكل منتظم.
- استخدمت فيه تقنيات بتستخدمها الشركات فعلًا (مش مجرد HTML و CSS).
- قابلت فيه مشاكل performance و optimization و architecture و state management… إلخ.
- المشروع deployed والناس تقدر تشوفه وتستخدمه.
———
لو كتبت في CV إن عندك 5 سنين خبرة، بس لما تيجي وقت الـ interview أو وقت الشغل ويتضح إن مستواك junior، ده بيضرك أنت قبل ما يضر الشركة ومش بعيد جدًا تبقى blocked بالنسبة للشركة دي ومتعرفش تشتغل فيها تاني حتى لو عندك 10 سنوات خبرة.
لو حصل فجوة في شغلك لأي سبب حاول تذكرها في الـ CV بطريقة كويسة وخليك صريح...واشرح إزاي الفترة دي ساعدتك تتعلم بعض المهارات وتحسن من نفسك وهكذا...
———
وفقكم الله لكل خير 🌿
❤13
No more loading states all over your code!
React Suspense in React 19 makes data fetching clean, declarative, and responsive.
❤9