11 GitHub Repositories to learn Node.js 🚀
- Node.js Best Practices
https://github.com/goldbergyoni/nodebestpractices
- Learn Node.js by Building 10 Projects
https://github.com/MAshrafM/NodeJS_Projects
- Node.js Design Patterns
https://github.com/PacktPublishing/Node.js-Design-Patterns-Third-Edition
- The Node.js Master Class
https://github.com/pirple/The-Nodejs-Master-Class
- TypeScript Node Starter
https://github.com/microsoft/TypeScript-Node-Starter
- Express.js Boilerplate
https://github.com/hagopj13/node-express-boilerplate
- Node.js API Starter Kit
https://github.com/kriasoft/graphql-starter-kit
- Learn You The Node.js for Much Win
https://github.com/workshopper/learnyounode
- Real World Example App (Node.js + Express)
https://github.com/gothinkster/node-express-realworld-example-app
- Node.js Starter Kit
https://github.com/verekia/js-stack-from-scratch
- Node.js Sample Application
https://github.com/heroku/node-js-sample
- Node.js Best Practices
https://github.com/goldbergyoni/nodebestpractices
- Learn Node.js by Building 10 Projects
https://github.com/MAshrafM/NodeJS_Projects
- Node.js Design Patterns
https://github.com/PacktPublishing/Node.js-Design-Patterns-Third-Edition
- The Node.js Master Class
https://github.com/pirple/The-Nodejs-Master-Class
- TypeScript Node Starter
https://github.com/microsoft/TypeScript-Node-Starter
- Express.js Boilerplate
https://github.com/hagopj13/node-express-boilerplate
- Node.js API Starter Kit
https://github.com/kriasoft/graphql-starter-kit
- Learn You The Node.js for Much Win
https://github.com/workshopper/learnyounode
- Real World Example App (Node.js + Express)
https://github.com/gothinkster/node-express-realworld-example-app
- Node.js Starter Kit
https://github.com/verekia/js-stack-from-scratch
- Node.js Sample Application
https://github.com/heroku/node-js-sample
🔥4
إزاي الـ Code Splitting ممكن ينقذ مشروعك؟ 🤔
.
.
تخيل لو بتدخل على موقع ويب، وتلاقيه بياخد وقت طويل جدًا علشان يفتح، وكل اللي كنت محتاجه صفحة واحدة! الموقف ده بيخلّي المستخدمين يقفلوا الموقع من قبل ما يشوفوه.
وهنا بييجي دور Code Splitting...
———
📍 LinkedIn
https://www.linkedin.com/posts/dev-alisamir_softwaredevelopment-softwaredeveloper-performance-activity-7286297075607113729-5Ioy
📍 Qabilah
https://qabilah.com/posts/IFUQPPSlhag
———
وفقكم الله لكل خير ☘️
.
.
تخيل لو بتدخل على موقع ويب، وتلاقيه بياخد وقت طويل جدًا علشان يفتح، وكل اللي كنت محتاجه صفحة واحدة! الموقف ده بيخلّي المستخدمين يقفلوا الموقع من قبل ما يشوفوه.
وهنا بييجي دور Code Splitting...
———
https://www.linkedin.com/posts/dev-alisamir_softwaredevelopment-softwaredeveloper-performance-activity-7286297075607113729-5Ioy
📍 Qabilah
https://qabilah.com/posts/IFUQPPSlhag
———
وفقكم الله لكل خير ☘️
❤4
مفهوم الـ Performance Test ⚡️
.
.
تخيل معايا إنك عملت Website أو Mobile App شكله تحفة، الـ UI مفيش بعد كده، والـ Features اللي فيه طلعت عينك وأنت بتعملها علشان تبقى حاجة محترمة. كل حاجة تمام لحد هنا...
لكن فجأة، بعد ما تعمل Release، أول ما يجيلك 1000 مستخدم في نفس الوقت… الـ App يبدأ يهنج، الـ API ترد متأخر جدًا، والـ Pages تاخد وقت طويل عشان تفتح.
وقتها مهما كان التصميم أو الـ Features قوية مش هيفرقوا مع المستخدم...
وهنا ييجي دور الـ Performance Test...
———
⚡️ يعني إيه Performance Test؟
ببساطة هو نوع من أنواع الـ Testing اللي بيركز على إنك تقيس أداء السيستم بتاعك تحت ظروف مختلفة. يعني بدل ما تشوف بس هل السيستم بيشتغل ولا لا (اللي هو Functional Testing)، هنا إحنا بنشوف:
- السيستم هيقدر يتعامل مع عدد كبير من الـ Users في نفس الوقت ولا لا.
- سرعة استجابة الـ API أو الـ Backend قد إيه.
- الـ Database بتتعامل مع الـ Queries بشكل سلس ولا بيحصل Bottlenecks.
- هل الموارد (CPU – Memory – Network) بيتم استهلاكها صح ولا لا.
———
🚀 أنواع الـ Performance Testing:
1- الـ Load Testing
بنقيس ازاي السيستم بيتصرف لما يكون عليه عدد Users كبير، مثلًا 10K User شغالين في نفس الوقت. الهدف إننا نشوف أقصى عدد Users يقدر السيستم يستحمله من غير ما يقع.
2- الـ Stress Testing
بنزود الضغط لحد ما السيستم ينهار فعلًا. الهدف هنا نعرف الـ Breaking Point فين.
3- الـ Spike Testing
بنختبر إيه اللي هيحصل لو فجأة حصل Increase ضخم في عدد الـ Users في وقت قصير جدًا، زي مثلاً Black Friday أو إعلان Viral.
4- الـ Endurance (Soak) Testing
بنخلي السيستم شغال بضغط متوسط أو عالي لفترة طويلة (ساعات أو أيام) ونشوف هل هيبقى ثابت ولا هيبدأ يبطأ مع الوقت بسبب Memory Leaks أو مشاكل تانية.
5- الـ Scalability Testing
بنقيس هل السيستم يقدر يتوسع (Scale Up أو Scale Out) عشان يتعامل مع الـ Growth ولا لا.
———
🔍 أدوات بتستخدم في الـ Performance Testing:
- الـ JMeter: من أشهر وأقوى الأدوات للـ Load Testing.
- الـ Locust: أداة قوية مكتوبة بـ Python وبتديك Flexibility.
- الـ k6: أداة كويسة وسهلة وسريعة جدًا وبتكتب الـ Scripts فيها بـ JavaScript.
- الـ Gatling: بتستخدم Scala ومفيدة في الـ Continuous Testing.
———
وفقكم الله لكل خير 🌿
.
.
تخيل معايا إنك عملت Website أو Mobile App شكله تحفة، الـ UI مفيش بعد كده، والـ Features اللي فيه طلعت عينك وأنت بتعملها علشان تبقى حاجة محترمة. كل حاجة تمام لحد هنا...
لكن فجأة، بعد ما تعمل Release، أول ما يجيلك 1000 مستخدم في نفس الوقت… الـ App يبدأ يهنج، الـ API ترد متأخر جدًا، والـ Pages تاخد وقت طويل عشان تفتح.
وقتها مهما كان التصميم أو الـ Features قوية مش هيفرقوا مع المستخدم...
وهنا ييجي دور الـ Performance Test...
———
⚡️ يعني إيه Performance Test؟
ببساطة هو نوع من أنواع الـ Testing اللي بيركز على إنك تقيس أداء السيستم بتاعك تحت ظروف مختلفة. يعني بدل ما تشوف بس هل السيستم بيشتغل ولا لا (اللي هو Functional Testing)، هنا إحنا بنشوف:
- السيستم هيقدر يتعامل مع عدد كبير من الـ Users في نفس الوقت ولا لا.
- سرعة استجابة الـ API أو الـ Backend قد إيه.
- الـ Database بتتعامل مع الـ Queries بشكل سلس ولا بيحصل Bottlenecks.
- هل الموارد (CPU – Memory – Network) بيتم استهلاكها صح ولا لا.
———
🚀 أنواع الـ Performance Testing:
1- الـ Load Testing
بنقيس ازاي السيستم بيتصرف لما يكون عليه عدد Users كبير، مثلًا 10K User شغالين في نفس الوقت. الهدف إننا نشوف أقصى عدد Users يقدر السيستم يستحمله من غير ما يقع.
2- الـ Stress Testing
بنزود الضغط لحد ما السيستم ينهار فعلًا. الهدف هنا نعرف الـ Breaking Point فين.
3- الـ Spike Testing
بنختبر إيه اللي هيحصل لو فجأة حصل Increase ضخم في عدد الـ Users في وقت قصير جدًا، زي مثلاً Black Friday أو إعلان Viral.
4- الـ Endurance (Soak) Testing
بنخلي السيستم شغال بضغط متوسط أو عالي لفترة طويلة (ساعات أو أيام) ونشوف هل هيبقى ثابت ولا هيبدأ يبطأ مع الوقت بسبب Memory Leaks أو مشاكل تانية.
5- الـ Scalability Testing
بنقيس هل السيستم يقدر يتوسع (Scale Up أو Scale Out) عشان يتعامل مع الـ Growth ولا لا.
———
🔍 أدوات بتستخدم في الـ Performance Testing:
- الـ JMeter: من أشهر وأقوى الأدوات للـ Load Testing.
- الـ Locust: أداة قوية مكتوبة بـ Python وبتديك Flexibility.
- الـ k6: أداة كويسة وسهلة وسريعة جدًا وبتكتب الـ Scripts فيها بـ JavaScript.
- الـ Gatling: بتستخدم Scala ومفيدة في الـ Continuous Testing.
———
وفقكم الله لكل خير 🌿
❤12👍1
How to Design APIs Like a Senior Engineer (REST, GraphQL, Auth, Security)
https://youtu.be/7iHl71nt49o
https://youtu.be/7iHl71nt49o
YouTube
How to Design APIs Like a Senior Engineer (REST, GraphQL, Auth, Security)
Become a Remote Senior Software Engineer with a Job Guarantee: https://hayksimonyan.com/?utm_source=youtube&utm_medium=video&utm_campaign=134-api-design-masterclass&utm_content=august-2025
Learn how to design APIs like a senior engineer with real-world examples…
Learn how to design APIs like a senior engineer with real-world examples…
❤7
CI/CD Pipeline Explained 💯
A CI/CD pipeline is a tool that automates the process of building, testing, and deploying software.
It integrates the different stages of the software development lifecycle, including code creation and revision, testing, and deployment, into a single, cohesive workflow.
The diagram below illustrates some of the tools that are commonly used.
A CI/CD pipeline is a tool that automates the process of building, testing, and deploying software.
It integrates the different stages of the software development lifecycle, including code creation and revision, testing, and deployment, into a single, cohesive workflow.
The diagram below illustrates some of the tools that are commonly used.
👍5
دردشة سريعة عن الـ Serverless 💯
.
.
خلال رحلتك في عالم البرمجة ممكن سمعت أو هتسمع عن مصطلح الـ "Serverless"، وده مش معناه إن مفيش سيرفرات، بالعكس، السيرفرات موجودة لكن مش أنت اللي بتديرها.
يعني بدل ما تبقى قاعد ماسك السيرفرات بتاعتك، بتضيف رامات هنا، تشيل داتا من هناك، تشغل حاجات معينة، الكلام ده كله بيتعمل أوتوماتيك عن طريق شركة كبيرة زي أمازون (AWS)، جوجل (Google Cloud)، أو مايكروسوفت (Azure).
---
ليه نستخدم الـ Serverless؟ 🤔
واحدة من أكبر الفوائد إنك بتبقى مركز على الكود بتاعك بس. بدل ما تضيع وقتك في إدارة السيرفرات، الصيانة، والتحديثات، أنت كل اللي عليك تكتب الكود بتاعك، والسيرفر بتاع الخدمة اللي أنت مشترك فيها هو اللي هيهندل الباقي.
وده بيوفر عليك وقت ومجهود كبيير.
⏳ طب لو السيرفر هو اللي بيهندل كله، ده معناه إن كل حاجة بتحصل وقت ما ييجي طلب للتطبيق (Request)؟
بالضبط، أنت لما تكتب كود وتعمله Deploy على منصة Serverless، الكود ده مش هيشتغل إلا لما يجي طلب من المستخدم، زي لما حد يدخل على اللينك بتاع التطبيق أو يستخدم API معينة.
فبالتالي أنت بتدفع بس على الاستخدام الفعلي، يعني مفيش فلوس رايحة على سيرفر شغال 24/7 من غير فايدة.
---
💡 أمثلة على خدمات الـ Serverless:
📍 الـ AWS Lambda: واحدة من أشهر الخدمات في العالم اللي تخص ال، Serverless. بتكتب Function صغيرة، ترفعها على AWS Lambda، وخلص الموضوع. هي بقى اللي بتدير الباقي.
📍 الـ Google Cloud Functions: برضو شبيه لـ AWS Lambda، بتكتب الـ Function بتاعتك وهي تشغلها لما يكون في طلب.
📍 الـ Azure Functions: نفس الفكرة مع Microsoft.
---
🔄 من ضمن عيوب الـ Serverless؟
⚡️ التحكم أقل: أنت مش ماسك السيرفر في إيدك، فلو أنت من الناس اللي بتحب تعرف كل صغيرة وكبيرة عن البنية التحتية، ممكن تحس إن ده مش الخيار المثالي ليك.
⚡️ الـ Latency: أحيانًا بيبقى في تأخير بسيط لما الطلب بيوصل لأول مرة لأنه بيبقى فيه وقت بسيط بيضيع في تشغيل الـ Function لأول مرة.
---
وفقكم الله لكل خير 🌿
.
.
خلال رحلتك في عالم البرمجة ممكن سمعت أو هتسمع عن مصطلح الـ "Serverless"، وده مش معناه إن مفيش سيرفرات، بالعكس، السيرفرات موجودة لكن مش أنت اللي بتديرها.
يعني بدل ما تبقى قاعد ماسك السيرفرات بتاعتك، بتضيف رامات هنا، تشيل داتا من هناك، تشغل حاجات معينة، الكلام ده كله بيتعمل أوتوماتيك عن طريق شركة كبيرة زي أمازون (AWS)، جوجل (Google Cloud)، أو مايكروسوفت (Azure).
---
ليه نستخدم الـ Serverless؟ 🤔
واحدة من أكبر الفوائد إنك بتبقى مركز على الكود بتاعك بس. بدل ما تضيع وقتك في إدارة السيرفرات، الصيانة، والتحديثات، أنت كل اللي عليك تكتب الكود بتاعك، والسيرفر بتاع الخدمة اللي أنت مشترك فيها هو اللي هيهندل الباقي.
وده بيوفر عليك وقت ومجهود كبيير.
⏳ طب لو السيرفر هو اللي بيهندل كله، ده معناه إن كل حاجة بتحصل وقت ما ييجي طلب للتطبيق (Request)؟
بالضبط، أنت لما تكتب كود وتعمله Deploy على منصة Serverless، الكود ده مش هيشتغل إلا لما يجي طلب من المستخدم، زي لما حد يدخل على اللينك بتاع التطبيق أو يستخدم API معينة.
فبالتالي أنت بتدفع بس على الاستخدام الفعلي، يعني مفيش فلوس رايحة على سيرفر شغال 24/7 من غير فايدة.
---
💡 أمثلة على خدمات الـ Serverless:
📍 الـ AWS Lambda: واحدة من أشهر الخدمات في العالم اللي تخص ال، Serverless. بتكتب Function صغيرة، ترفعها على AWS Lambda، وخلص الموضوع. هي بقى اللي بتدير الباقي.
📍 الـ Google Cloud Functions: برضو شبيه لـ AWS Lambda، بتكتب الـ Function بتاعتك وهي تشغلها لما يكون في طلب.
📍 الـ Azure Functions: نفس الفكرة مع Microsoft.
---
🔄 من ضمن عيوب الـ Serverless؟
⚡️ التحكم أقل: أنت مش ماسك السيرفر في إيدك، فلو أنت من الناس اللي بتحب تعرف كل صغيرة وكبيرة عن البنية التحتية، ممكن تحس إن ده مش الخيار المثالي ليك.
⚡️ الـ Latency: أحيانًا بيبقى في تأخير بسيط لما الطلب بيوصل لأول مرة لأنه بيبقى فيه وقت بسيط بيضيع في تشغيل الـ Function لأول مرة.
---
وفقكم الله لكل خير 🌿
❤12👍3