لمحة 👀 برمجية
- عمرك سألت نفسك يعني اي big O notation 🧐 ـ دي يعتبر من أهم المفاهيم اللي هيخليك تفهم طلاسم الـ Ds & Algorithms وتفهم يعني اي ألجورزيم كويس أو وحش - تعالي بقي نبسط الموضوع اكتر ✨ الـ big O بيعبر عن اسوء حالة ممكن توصلها الفانكشن ، أو الـ worst case للفانكشن…
إضافة
على الماشي شوف ده المصطلح
Cyclomatic Complexity
على الماشي شوف ده المصطلح
Cyclomatic Complexity
بعد عامين أو ثلاثه أعوام ستدرك ان البرمجة هي مجرد كتابة كود ستبدأ تحس ايه ناقصك بضبط كتبت كود بدأت تدرك انه مش منظم صح بدأت تقسمه وبدأت تتعلم ازي تقسمه إلى مكونات والا أخرى وبدأت تتعلم ال low level design بعد مرحلة من الزمن ستدرك انك لا زلت في مشكله مع الواقع وتحويل الواقع إلى كود يعكس ذلك ستنتقل إلى مرحلة high level design في فرق كبير بين مطور و coder و مهندس برمجيات اليوم بتعبر عن الخوارزميات بكود غدا يمكن صوتيا أو بعد مائة عام تعبر عنها مباشرة بأفكارك اليوم بتتفاعل مع برامج حاسوب وأجهزة غدا سيكون في شيء أخرى خالص التكنلوجيا ليس من هو غني أو ذكي يقدر يواكب هذا التطور بل من يعرف كيف يتكيف معها سيكون في أمان ستتذكر يوما ما كيف كان يعلمك تكتب كود وتضحك هندسة البرمجيات لها معيار طيب من جاء بهذا المعايير كيف جاءت مافيش إجابة في ناس ملهمة مدير شركة ميكروسوفت تقريبا ايش قال التكنلوجيا والتطور لايحترم العادات والتقاليد بل يحترم الابتكار
وشكرا
وشكرا
❤3👌2
الشاهد:
إننا بنلاقي ناس خبراتها متوسطة في مجال ما ولكن متصدرين المشهد في المجال هذا ومستحوذين على فرص مهولة فيه لأن عندهم قدرة تسويقية جبارة لنفسهم
من 2022 بقول إن سيأتي الوقت اللي لازم الممتاز في مجال ما واجب وفرض عليه انه يكون ممتاز في إنه يبيع نفسه ويسوق اسمه كذلك لأنه زمان كان ممكن يبقى متداري في الفرص الكثير لكن حاليًا الفرص بتقل بشكل ملحوظ والتنافسية بتزيد وبتتجاوز حدودك الجغرافية ومش بس بتنافس بشر هذا كذلك بتنافس أدوات ومنصات ونماذج معقدة واحترافية بشكل مذهل
يارجل المصاريه في ناس عادها تعلمت برمجة واليوم نازل يوتيوب عنده محتوى تعليمي ومعه متابعين كل التوفيق => هذا
لو عكسناها على المحتوى اليمني هل ستحصل كورس أو واحد بيقدم محتوى هادف تعليمي على يوتيوب أو غيرها مع ان شفت على مستوى الوطن العربي مابش ناس تقدم محتوى تعليمي على كافة المستويات مقارنه بالاجانب
الم تلاحظ المصاريه كيف مستحوذه على عالم البرمجيات في كافة المجالات هذا ان في ناس عندها قدره على تسويق نفسها إلى جانب الخبره هذا مهم لي ولك نأخذ العبرة
اتكلم عن شغلك.. سوق لنفسك.
@لمحة على حالة السوق في البرمجة
إننا بنلاقي ناس خبراتها متوسطة في مجال ما ولكن متصدرين المشهد في المجال هذا ومستحوذين على فرص مهولة فيه لأن عندهم قدرة تسويقية جبارة لنفسهم
من 2022 بقول إن سيأتي الوقت اللي لازم الممتاز في مجال ما واجب وفرض عليه انه يكون ممتاز في إنه يبيع نفسه ويسوق اسمه كذلك لأنه زمان كان ممكن يبقى متداري في الفرص الكثير لكن حاليًا الفرص بتقل بشكل ملحوظ والتنافسية بتزيد وبتتجاوز حدودك الجغرافية ومش بس بتنافس بشر هذا كذلك بتنافس أدوات ومنصات ونماذج معقدة واحترافية بشكل مذهل
يارجل المصاريه في ناس عادها تعلمت برمجة واليوم نازل يوتيوب عنده محتوى تعليمي ومعه متابعين كل التوفيق => هذا
لو عكسناها على المحتوى اليمني هل ستحصل كورس أو واحد بيقدم محتوى هادف تعليمي على يوتيوب أو غيرها مع ان شفت على مستوى الوطن العربي مابش ناس تقدم محتوى تعليمي على كافة المستويات مقارنه بالاجانب
الم تلاحظ المصاريه كيف مستحوذه على عالم البرمجيات في كافة المجالات هذا ان في ناس عندها قدره على تسويق نفسها إلى جانب الخبره هذا مهم لي ولك نأخذ العبرة
اتكلم عن شغلك.. سوق لنفسك.
@لمحة على حالة السوق في البرمجة
👍2❤1
Forwarded from اللجنة العلمية CS 22 (ʙʀʜᴏᴏᴍ ⑇)
كنوز اقرأ-تك » دليلك الشامل لمكتبتك التقنية
أهم ال Topics اللي لازم كل Frontend Developer يتعلمها في 2025 ❤️😍
لو نفسك تبقى Frontend Developer شاطر وتتميز في مجالك، الموضوع مش مجرد إنك تعرف تكتب كود وبس! لازم تبقى فاهم أدوات وتقنيات وأساليب تقدر بيها تعمل تجربة مستخدم (User Experience) استثنائية.
ولو عاوزين بوست عن اهم ال Github repo اللي فيها مصادر ليها اكتبولي في الكومنات👌😊
1. Modern JavaScript (ES6+)
الجافاسكريبت لسه هي العمود الفقري لأي شغل Frontend. علشان تبقى متميز ركز على:
- الـ ES6+ Features زي destructuring, spread/rest operators, و template literals.
- مفاهيم متقدمة زي closures, promises, و async/await.
- ال Model programming باستخدام أدوات زي Webpack و Vite.
جرب تعمل مشاريع صغيرة علشان تتاكد انك فهمتها😅
2. Component-Based Frameworks
الفريم ووركس زي React, Vue.js, و Angular مازالت مسيطرة في السوق. اتعلم:
- إزاي تشتغل مع component lifecycle.
- أدوات إدارة الحالة (State Management) زي Redux, Zustand, أو Vuex.
- تقنيات زي Server-side rendering (SSR) و Static site generation (SSG).
📘 ابدأ من الـ official documentation علشان تفهم الأساسيات صح. هتلاقي فيه كل حاجه
3. إتقان React
React بقيت من أكتر المكتبات استخداماً. علشان تشتغل بيها كويس:
- Hooks: زي useState, useEffect, useReducer, و custom hooks.
- Context API: لإدارة الـ global state من غير ما تحتاج مكتبات خارجية.
- Storybook: علشان تبني وتختبر وتوثق الـ UI Components.
- React Query: لتسهيل الـ data fetching والـ caching.
- تحسين الأداء: زي memoization باستخدام React.memo أو useMemo، و lazy loading.
🛠️ اعمل مشروع كامل زي Task Management App باستخدام React. ونفس الموضوع لو هتختار Angular او اي فريم ورك تانيه حاول تدور علي المشابهه ليها فيه
4. Responsive Design و CSS Frameworks
مع التنوع في الأجهزة، الـ Responsive Design ضروري. ركز على:
- الـ Media Queries و CSS Grid/Flexbox.
- Frameworks زي Tailwind CSS, Bootstrap, و Material UI.
- الالتزام بمعايير الوصول (Accessibility).
🎨اعمل موقع بورتفوليو شخصي يكون Fully Responsive.
5. Git و Version Control
التعاون في المشاريع مش ممكن من غير Git. اتعلم:
- الأوامر الأساسية زي clone, branch, merge, و rebase.
- حل مشاكل الـ merge conflicts.
- استخدام منصات زي GitHub لعمل Pull Requests وإدارة المشاريع.
🔗 شارك في مشاريع Open Source علشان تحسن مهاراتك.
6. APIs و Data Handling
علشان تبني ويب أبليكيشن كويس، لازم تفهم APIs كويس:
- RESTful APIs و GraphQL.
- استخدام fetch أو مكتبات زي Axios.
- إدارة الحالة للـ API responses.
🌐 اعمل Weather App باستخدام Public API.
7. Testing و Debugging
ضمان الجودة حاجة أساسية. اتعلم:
- Unit Testing بأدوات زي Jest و Mocha.
- End-to-End Testing باستخدام Cypress أو Playwright.
- تقنيات Debugging في متصفحات الويب.
🛠️ اكتب Tests للـ Components وأنت بتبنيها.
8. تحسين الأداء (Performance Optimization)
المواقع البطيئة بتضايق المستخدمين. حسّن أداءك في:
- Lazy Loading و Code Splitting.
- تحسين الصور واستخدام فورمات زي WebP.
- تحليل الأداء بأدوات زي Lighthouse.
⚡اعمل Audit منتظم للمشاريع علشان تكشف عن أي مشاكل.
9. أساسيات Web Security
احمي مستخدميك واتعلم:
- Cross-Site Scripting (XSS) وطرق منعه.
- Cross-Origin Resource Sharing (CORS) Policies.
- Content Security Policy (CSP).
🔒 تحدي: احمي مشروعك الحالي من المشاكل الأمنية الشائعة.
10. TypeScript
TypeScript بقت مهارة مطلوبة لأي Frontend Developer. ركز على:
- Type Annotations و Interfaces.
- التكامل مع Frameworks زي React و Vue.
- Debugging لتطبيقات TypeScript.
📘 ابدأ من الـ Official TypeScript Documentation.
11. تقنيات CSS المتقدمة
علشان تطور مستواك في التصميم:
- Animations و Transitions.
- مكتبات CSS-in-JS زي Emotion و styled-components.
- الـ Advanced Selectors.
🎨 جرب تعمل Layouts حديثة باستخدام CSS Grid.
12. Build Tools و CI/CD
أتمتة الـ Workflow مهمة جداً. اتعلم:
- Build Tools زي Webpack و Vite.
- Continuous Integration/Continuous Deployment (CI/CD).
- أدوات زي npm Scripts أو Gulp.
🛠️ اعمل CI/CD Pipeline لأي مشروع باستخدام GitHub Actions.
13. Real-Time Communication و WebSockets
للتطبيقات الديناميكية والتفاعلية:
- إزاي WebSockets بيشتغل.
- استخدام مكتبات زي Socket.IO.
- عمل Real-Time Updates في React Apps.
🌐 استخدام عملي: اعمل Chat App Real-Time.
14. Soft Skills
مش كل حاجة تقنية! طوّر:
لو نفسك تبقى Frontend Developer شاطر وتتميز في مجالك، الموضوع مش مجرد إنك تعرف تكتب كود وبس! لازم تبقى فاهم أدوات وتقنيات وأساليب تقدر بيها تعمل تجربة مستخدم (User Experience) استثنائية.
ولو عاوزين بوست عن اهم ال Github repo اللي فيها مصادر ليها اكتبولي في الكومنات👌😊
1. Modern JavaScript (ES6+)
الجافاسكريبت لسه هي العمود الفقري لأي شغل Frontend. علشان تبقى متميز ركز على:
- الـ ES6+ Features زي destructuring, spread/rest operators, و template literals.
- مفاهيم متقدمة زي closures, promises, و async/await.
- ال Model programming باستخدام أدوات زي Webpack و Vite.
جرب تعمل مشاريع صغيرة علشان تتاكد انك فهمتها😅
2. Component-Based Frameworks
الفريم ووركس زي React, Vue.js, و Angular مازالت مسيطرة في السوق. اتعلم:
- إزاي تشتغل مع component lifecycle.
- أدوات إدارة الحالة (State Management) زي Redux, Zustand, أو Vuex.
- تقنيات زي Server-side rendering (SSR) و Static site generation (SSG).
📘 ابدأ من الـ official documentation علشان تفهم الأساسيات صح. هتلاقي فيه كل حاجه
3. إتقان React
React بقيت من أكتر المكتبات استخداماً. علشان تشتغل بيها كويس:
- Hooks: زي useState, useEffect, useReducer, و custom hooks.
- Context API: لإدارة الـ global state من غير ما تحتاج مكتبات خارجية.
- Storybook: علشان تبني وتختبر وتوثق الـ UI Components.
- React Query: لتسهيل الـ data fetching والـ caching.
- تحسين الأداء: زي memoization باستخدام React.memo أو useMemo، و lazy loading.
🛠️ اعمل مشروع كامل زي Task Management App باستخدام React. ونفس الموضوع لو هتختار Angular او اي فريم ورك تانيه حاول تدور علي المشابهه ليها فيه
4. Responsive Design و CSS Frameworks
مع التنوع في الأجهزة، الـ Responsive Design ضروري. ركز على:
- الـ Media Queries و CSS Grid/Flexbox.
- Frameworks زي Tailwind CSS, Bootstrap, و Material UI.
- الالتزام بمعايير الوصول (Accessibility).
🎨اعمل موقع بورتفوليو شخصي يكون Fully Responsive.
5. Git و Version Control
التعاون في المشاريع مش ممكن من غير Git. اتعلم:
- الأوامر الأساسية زي clone, branch, merge, و rebase.
- حل مشاكل الـ merge conflicts.
- استخدام منصات زي GitHub لعمل Pull Requests وإدارة المشاريع.
🔗 شارك في مشاريع Open Source علشان تحسن مهاراتك.
6. APIs و Data Handling
علشان تبني ويب أبليكيشن كويس، لازم تفهم APIs كويس:
- RESTful APIs و GraphQL.
- استخدام fetch أو مكتبات زي Axios.
- إدارة الحالة للـ API responses.
🌐 اعمل Weather App باستخدام Public API.
7. Testing و Debugging
ضمان الجودة حاجة أساسية. اتعلم:
- Unit Testing بأدوات زي Jest و Mocha.
- End-to-End Testing باستخدام Cypress أو Playwright.
- تقنيات Debugging في متصفحات الويب.
🛠️ اكتب Tests للـ Components وأنت بتبنيها.
8. تحسين الأداء (Performance Optimization)
المواقع البطيئة بتضايق المستخدمين. حسّن أداءك في:
- Lazy Loading و Code Splitting.
- تحسين الصور واستخدام فورمات زي WebP.
- تحليل الأداء بأدوات زي Lighthouse.
⚡اعمل Audit منتظم للمشاريع علشان تكشف عن أي مشاكل.
9. أساسيات Web Security
احمي مستخدميك واتعلم:
- Cross-Site Scripting (XSS) وطرق منعه.
- Cross-Origin Resource Sharing (CORS) Policies.
- Content Security Policy (CSP).
🔒 تحدي: احمي مشروعك الحالي من المشاكل الأمنية الشائعة.
10. TypeScript
TypeScript بقت مهارة مطلوبة لأي Frontend Developer. ركز على:
- Type Annotations و Interfaces.
- التكامل مع Frameworks زي React و Vue.
- Debugging لتطبيقات TypeScript.
📘 ابدأ من الـ Official TypeScript Documentation.
11. تقنيات CSS المتقدمة
علشان تطور مستواك في التصميم:
- Animations و Transitions.
- مكتبات CSS-in-JS زي Emotion و styled-components.
- الـ Advanced Selectors.
🎨 جرب تعمل Layouts حديثة باستخدام CSS Grid.
12. Build Tools و CI/CD
أتمتة الـ Workflow مهمة جداً. اتعلم:
- Build Tools زي Webpack و Vite.
- Continuous Integration/Continuous Deployment (CI/CD).
- أدوات زي npm Scripts أو Gulp.
🛠️ اعمل CI/CD Pipeline لأي مشروع باستخدام GitHub Actions.
13. Real-Time Communication و WebSockets
للتطبيقات الديناميكية والتفاعلية:
- إزاي WebSockets بيشتغل.
- استخدام مكتبات زي Socket.IO.
- عمل Real-Time Updates في React Apps.
🌐 استخدام عملي: اعمل Chat App Real-Time.
14. Soft Skills
مش كل حاجة تقنية! طوّر:
- مهارات التواصل علشان تشتغل في فريق.
- التفكير النقدي وحل المشاكل.
- إدارة الوقت وتنظيم المهام.
🤝 شارك في Code Reviews والمناقشات الجماعية.
الخلاصة
لو عاوز تكون Frontend Developer محترف وتواكب الجديد، ركز على المواضيع دي. المفتاح هو الاستمرارية، التطبيق العملي، ومتابعة التطورات الجديدة.
#على الماشي
- التفكير النقدي وحل المشاكل.
- إدارة الوقت وتنظيم المهام.
🤝 شارك في Code Reviews والمناقشات الجماعية.
الخلاصة
لو عاوز تكون Frontend Developer محترف وتواكب الجديد، ركز على المواضيع دي. المفتاح هو الاستمرارية، التطبيق العملي، ومتابعة التطورات الجديدة.
#على الماشي
اللجنة العلمية CS 22
Containerizing applications using Docker
5 أدوات Docker هتسهل حياتك! 💻🐳🐳
شغل Docker أحيانًا بيبقى معقد، بس في أدوات ممكن تسهل الحوار ده😅
دي قائمة بـ
1. Lazy /jesseduffield/lazydocker
Lazy Docker هي أداة تفاعلية بتشتغل من الterminal وبتسهل إدارة الcontainers وimages Docker من غير ما تكتب cmd طويلة
أهم الميزات:
- متابعة حالة الcontainers وال logs
- إعادة تشغيل، حذف، أو إعادة بناء الcontainers بزر واحد
- مراقبة استهلاك الموارد برسومات ASCII
- الدخول على الـshell الخاص بالcontainers بسهولة
طريقة التثبيت:
لو عندك Mac، ممكن تثبتها كده:
brew install lazydocker
وبعدها:
lazydocker
ودي كمان طريقة باستخدام Docker نفسه:
docker run --rm -it -v \
/var/run/docker.sock:/var/run/docker.sock \
-v /yourpath:/.config/jesseduffield/lazydocker \
lazyteam/lazydocker
(ما تنساش تغير
2. Sliplane
https://sliplane.io/?utm_source=5-awesome-docker-tools
Sliplane منصة مخصصة لتشغيل ونشر ال containers بسهولة وبدون خبرة في DevOps.
أهم الميزات:
- تشغيل الحاويات مباشرةً من GitHub أو Docker Hub
- push operations
- نوتيفيكيشن لل health
- مراقبة logs
الأسعار:
البداية من 7 يورو شهريًا للسيرفر. مناسب جدًا للمشاريع الصغيرة
3. Dive
https://github.com/wagoodman/dive?tab=readme-ov-file
Dive أداة بتسمحلك تستكشف Docker image طبقة بطبقة. هتقدر تشوف كل الملفات اللي اتغيرت أو اتضافت في كل طبقة، وتقدر تكتشف الملفات المكررة أو المساحة المهدرة.
طريقة الاستخدام:
dive <your-image-tag>
كمان ممكن تستخدم الأداة من الحاوية نفسها من غير تثبيت:
alias dive="docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"
dive <your-image-tag>
الأداة دي مفيدة جدًا لتصغير الimages وتحسينها
4. Orbstack
https://orbstack.dev/
بديل أسرع وأخف لـDocker Desktop
أهم المزايا:
- تطبيق Native لنظام macOS
- أسرع وأقل استهلاك للموارد
- دعم الcontainers بشكل مباشر من غير لـVMs
للأسف الأداة حاليًا متوفرة لنظام macOS فقط، لكنها بديل قوي. (ممكن تستخدم أدوات زي Podman لو بتشتغل على Linux/Windows).
5. Watchtower
https://github.com/containrrr/watchtower
تحديث الcontainers تلقائيًا
طريقة الاستخدام:
docker run -d \
--name watchtower \
-e REPO_USER=username \
-e REPO_PASS=password \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower container_to_watch --debug
الأداة دي مناسبة جدًا الcontainers اللي شغالة عندك لكن مش دايما بتبقي ابديتيد ف هو بيظبط ده
الخلاصة:
الأدوات دي هتسهل عليك التعامل مع Docker بشكل كبير وهتوفر عليك وقت
شغل Docker أحيانًا بيبقى معقد، بس في أدوات ممكن تسهل الحوار ده😅
دي قائمة بـ
1. Lazy /jesseduffield/lazydocker
Lazy Docker هي أداة تفاعلية بتشتغل من الterminal وبتسهل إدارة الcontainers وimages Docker من غير ما تكتب cmd طويلة
أهم الميزات:
- متابعة حالة الcontainers وال logs
- إعادة تشغيل، حذف، أو إعادة بناء الcontainers بزر واحد
- مراقبة استهلاك الموارد برسومات ASCII
- الدخول على الـshell الخاص بالcontainers بسهولة
طريقة التثبيت:
لو عندك Mac، ممكن تثبتها كده:
brew install lazydocker
وبعدها:
lazydocker
ودي كمان طريقة باستخدام Docker نفسه:
docker run --rm -it -v \
/var/run/docker.sock:/var/run/docker.sock \
-v /yourpath:/.config/jesseduffield/lazydocker \
lazyteam/lazydocker
(ما تنساش تغير
/yourpath بpath الـHome بتاعك). 2. Sliplane
https://sliplane.io/?utm_source=5-awesome-docker-tools
Sliplane منصة مخصصة لتشغيل ونشر ال containers بسهولة وبدون خبرة في DevOps.
أهم الميزات:
- تشغيل الحاويات مباشرةً من GitHub أو Docker Hub
- push operations
- نوتيفيكيشن لل health
- مراقبة logs
الأسعار:
البداية من 7 يورو شهريًا للسيرفر. مناسب جدًا للمشاريع الصغيرة
3. Dive
https://github.com/wagoodman/dive?tab=readme-ov-file
Dive أداة بتسمحلك تستكشف Docker image طبقة بطبقة. هتقدر تشوف كل الملفات اللي اتغيرت أو اتضافت في كل طبقة، وتقدر تكتشف الملفات المكررة أو المساحة المهدرة.
طريقة الاستخدام:
dive <your-image-tag>
كمان ممكن تستخدم الأداة من الحاوية نفسها من غير تثبيت:
alias dive="docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"
dive <your-image-tag>
الأداة دي مفيدة جدًا لتصغير الimages وتحسينها
4. Orbstack
https://orbstack.dev/
بديل أسرع وأخف لـDocker Desktop
أهم المزايا:
- تطبيق Native لنظام macOS
- أسرع وأقل استهلاك للموارد
- دعم الcontainers بشكل مباشر من غير لـVMs
للأسف الأداة حاليًا متوفرة لنظام macOS فقط، لكنها بديل قوي. (ممكن تستخدم أدوات زي Podman لو بتشتغل على Linux/Windows).
5. Watchtower
https://github.com/containrrr/watchtower
تحديث الcontainers تلقائيًا
طريقة الاستخدام:
docker run -d \
--name watchtower \
-e REPO_USER=username \
-e REPO_PASS=password \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower container_to_watch --debug
الأداة دي مناسبة جدًا الcontainers اللي شغالة عندك لكن مش دايما بتبقي ابديتيد ف هو بيظبط ده
الخلاصة:
الأدوات دي هتسهل عليك التعامل مع Docker بشكل كبير وهتوفر عليك وقت
sliplane.io
Sliplane - Simple Docker Hosting Solution
Sliplane is a fully managed container as a service platform, made to simplify Docker hosting. It provides you with the tools to manage and scale your containerized applications.
❤1
تنوية 👇
إذا كان معك كلمة سر موحده لكل الحسابات فعمل لكل حساب كلمة سر مختلفة 🔐
إذا كان معك كلمة سر موحده لكل الحسابات فعمل لكل حساب كلمة سر مختلفة 🔐
الي معهم ايميل جامعي لن تقبلك ميكروسوفت في github الا اذا فعلتها كذلك تكون معلوماتك متكاملة وتعمل خلفية لل profile تبعك على github
طبعا خدمات Azure Cloud الي مقدمها ميكروسوفت لطالب موقفه كذلك مفتح اليمن محظور بس انا جربت كان معي ايميل جامعي من جامعة أمريكية قبل سنه كانت شغاله لما دخلت بالإيميل تبع جامعتنا غيرت سياستها تمام فخدمات Azure مجانا لمدة شهر تقدر تدخل اذا كان معك credit card وستأخذ واحد دولار فقط والخدمات محدودة وفي limit للأستخدم لو انتهت الشهر تقدر تعمل upgrade
بس نصيحة الي مش شغال .NET يتجه AWS ميكروسوفت متعبة
بس نصيحة الي مش شغال .NET يتجه AWS ميكروسوفت متعبة
نظام الحساب الشهري في Azure Cloud (أو أي منصة سحابية مشابهة) ليس عملية بسيطة تقوم بها "دالة" واحدة، بل يعتمد على تصميم معقد ومتكامل يعمل على عدة مستويات.
المكونات الأساسية لنظام الحساب:
1. تجميع البيانات (Data Collection):
يتم تتبع جميع الأنشطة والموارد المستخدمة بواسطة المستخدمين (مثل عدد ساعات تشغيل السيرفرات، كمية البيانات المنقولة، عدد الطلبات، التخزين المستخدم، وغيرها).
يتم تسجيل هذه البيانات في Logs أو Telemetry Systems باستخدام أدوات مثل Azure Monitor أو Application Insights.
2. التخزين والمعالجة:
يتم تخزين البيانات الأولية في قواعد بيانات كبيرة أو مستودعات بيانات مثل Azure Data Lake أو Cosmos DB.
يتم معالجة البيانات باستخدام أدوات تحليل مثل Azure Stream Analytics أو Data Factory لتجميع الاستخدام على فترات زمنية محددة (مثل كل ساعة أو يوم).
3. التحليل والتقييم:
تستخدم الخوارزميات المخصصة لحساب التكلفة بناءً على نموذج التسعير (Pricing Model) الخاص بكل خدمة.
يتم ذلك باستخدام قواعد بيانات تسعير يتم تحديثها باستمرار لتتوافق مع التغييرات في التسعير (مثل التسعير الإقليمي، أو خصومات محددة).
4. التكامل مع النظام المالي:
يتم دمج النتائج المحسوبة مع أنظمة الفوترة (Billing Systems) لتوليد الفواتير.
هذه الأنظمة تدعم آليات مثل تخصيص الفواتير للمستخدمين أو الفرق أو الأقسام.
5. تحديثات مستمرة:
يتم تحديث نظام الحساب باستمرار لضمان دقة العمليات، بما في ذلك معالجة الأخطاء أو البيانات المفقودة.
يتم تطبيق سياسات مثل Retry Policies أو Error Handling للتعامل مع أي حالات فشل.
---
التحديات والحلول:
1. التعامل مع كميات ضخمة من البيانات:
يتم استخدام تقنيات مثل البيانات الموزعة (Distributed Data Systems) ومعالجات البيانات مثل Apache Spark أو Azure Synapse Analytics.
2. ضمان الدقة:
كل عملية تتبع تحتاج إلى سجل دقيق، لذا يتم تنفيذ عمليات Validation وReconciliation.
3. الأداء:
العمليات مكلفة جدًا، لذا يتم تقسيم العمليات إلى Batch Processing (للبيانات التاريخية) وReal-Time Processing (للبيانات الفورية).
4. الأمان:
البيانات الحساسة يتم تأمينها باستخدام Encryption وآليات التحكم في الوصول (Access Control).
---
خلاصة:
نظام الحساب في Azure أو أي خدمة سحابية يعتمد على بنية معمارية متطورة تشمل:
التتبع (Tracking).
التخزين (Storage).
التحليل (Analysis).
التكامل المالي (Integration with Billing Systems).
كل هذه العناصر تعمل معًا لتقديم عملية حساب دقيقة وفعالة، مع ضمان الشفافية والموثوقية للمستخدمين.
المكونات الأساسية لنظام الحساب:
1. تجميع البيانات (Data Collection):
يتم تتبع جميع الأنشطة والموارد المستخدمة بواسطة المستخدمين (مثل عدد ساعات تشغيل السيرفرات، كمية البيانات المنقولة، عدد الطلبات، التخزين المستخدم، وغيرها).
يتم تسجيل هذه البيانات في Logs أو Telemetry Systems باستخدام أدوات مثل Azure Monitor أو Application Insights.
2. التخزين والمعالجة:
يتم تخزين البيانات الأولية في قواعد بيانات كبيرة أو مستودعات بيانات مثل Azure Data Lake أو Cosmos DB.
يتم معالجة البيانات باستخدام أدوات تحليل مثل Azure Stream Analytics أو Data Factory لتجميع الاستخدام على فترات زمنية محددة (مثل كل ساعة أو يوم).
3. التحليل والتقييم:
تستخدم الخوارزميات المخصصة لحساب التكلفة بناءً على نموذج التسعير (Pricing Model) الخاص بكل خدمة.
يتم ذلك باستخدام قواعد بيانات تسعير يتم تحديثها باستمرار لتتوافق مع التغييرات في التسعير (مثل التسعير الإقليمي، أو خصومات محددة).
4. التكامل مع النظام المالي:
يتم دمج النتائج المحسوبة مع أنظمة الفوترة (Billing Systems) لتوليد الفواتير.
هذه الأنظمة تدعم آليات مثل تخصيص الفواتير للمستخدمين أو الفرق أو الأقسام.
5. تحديثات مستمرة:
يتم تحديث نظام الحساب باستمرار لضمان دقة العمليات، بما في ذلك معالجة الأخطاء أو البيانات المفقودة.
يتم تطبيق سياسات مثل Retry Policies أو Error Handling للتعامل مع أي حالات فشل.
---
التحديات والحلول:
1. التعامل مع كميات ضخمة من البيانات:
يتم استخدام تقنيات مثل البيانات الموزعة (Distributed Data Systems) ومعالجات البيانات مثل Apache Spark أو Azure Synapse Analytics.
2. ضمان الدقة:
كل عملية تتبع تحتاج إلى سجل دقيق، لذا يتم تنفيذ عمليات Validation وReconciliation.
3. الأداء:
العمليات مكلفة جدًا، لذا يتم تقسيم العمليات إلى Batch Processing (للبيانات التاريخية) وReal-Time Processing (للبيانات الفورية).
4. الأمان:
البيانات الحساسة يتم تأمينها باستخدام Encryption وآليات التحكم في الوصول (Access Control).
---
خلاصة:
نظام الحساب في Azure أو أي خدمة سحابية يعتمد على بنية معمارية متطورة تشمل:
التتبع (Tracking).
التخزين (Storage).
التحليل (Analysis).
التكامل المالي (Integration with Billing Systems).
كل هذه العناصر تعمل معًا لتقديم عملية حساب دقيقة وفعالة، مع ضمان الشفافية والموثوقية للمستخدمين.
👍1
كيف تقوم Azure Cloud بحساب الاشتراك الشهري لكل مستخدم؟ العملية ليست مجرد دالة بسيطة تنتج الناتج مباشرة بل هي عملية معقدة ومكلفة كيف يتم تصميم وتنفيذ هذا النظام فعليا؟
السؤال
السؤال
Multi-tenancy
ايش هذا الموضوع ايش فائدته شف مثلا جاء لاعندك عميل والعميل قال معي مدرسة في المركز الرئيسي ومعي عدت فروع فرع بنين مثلا وفرع بنات ها طيب انا كمطور يخطر في بالي هذا الموضوع طوالي النظام والواجهه نفس الواجهات في كل الفروع بس تختلف معي البيانات كل فرع ولديه بيانات خاصة به احيانا قد يكون لكل tenant داتابيز منفصله وأحيانا تكون داتابيز للكل بس سيكون في عمود في الجدول ب id لكل مستأجر باللغة الحرفيه وغيرها مثلا الصرافين قد تعمل لهم نظام طبقا لهذا الموضوع جبت لك الموضوع و deep وشوف ايه الفرق مثلا اي الأفضل لو عملت لكل مستأجر داتابيز منفصله لحاله أو أي features تناسب لمتطلبات النظام وإمكانيات المؤسسه
ايش هذا الموضوع ايش فائدته شف مثلا جاء لاعندك عميل والعميل قال معي مدرسة في المركز الرئيسي ومعي عدت فروع فرع بنين مثلا وفرع بنات ها طيب انا كمطور يخطر في بالي هذا الموضوع طوالي النظام والواجهه نفس الواجهات في كل الفروع بس تختلف معي البيانات كل فرع ولديه بيانات خاصة به احيانا قد يكون لكل tenant داتابيز منفصله وأحيانا تكون داتابيز للكل بس سيكون في عمود في الجدول ب id لكل مستأجر باللغة الحرفيه وغيرها مثلا الصرافين قد تعمل لهم نظام طبقا لهذا الموضوع جبت لك الموضوع و deep وشوف ايه الفرق مثلا اي الأفضل لو عملت لكل مستأجر داتابيز منفصله لحاله أو أي features تناسب لمتطلبات النظام وإمكانيات المؤسسه
لا يوجد علي الإطلاق ORM يتكامل بشكل مثالي مع مفاهيم ال DDD مثل EF core ⚡️
عظمة في mapping و تمثيل سهل جدا لكل مفاهيم ال ddd ك ال aggregate و ال entity و ال value object و غيرها✨️
عظمة في mapping و تمثيل سهل جدا لكل مفاهيم ال ddd ك ال aggregate و ال entity و ال value object و غيرها✨️
جمعة مباركة
أنت عندما تتعلم framework عسى الله الشركة مثلا الي دخلت معها كم عدد الأنظمة الي ستنفذها أي فريمورك يتطلب منك أن تفهمها في أي مجال أنت فيه هل مثلا ميكروسوفت عاجزة عن انها تعمل فريمورك أفضل من باقي الفريم ورك أو جوجل خذ بالك دي سياسات شركات وفي علاقات بينهم وتبادل واحترام وفي معيار بينهم لذلك لاتبحث ايه الأفضل أنت ايه يهمك تدخر فلوس خلاص سيبك من المقارنات واتعلم أي حاجة تجيب لك فلوس ميكروسوفت والله انها بتستخدم منتجات جوجو مثلا Angular تبع جوجل ميكروسوفت بتستخدمها في مشاريعها بينما ميكروسوفت معها فريمورك الي هو Blazor .
أنت عندما تتعلم framework عسى الله الشركة مثلا الي دخلت معها كم عدد الأنظمة الي ستنفذها أي فريمورك يتطلب منك أن تفهمها في أي مجال أنت فيه هل مثلا ميكروسوفت عاجزة عن انها تعمل فريمورك أفضل من باقي الفريم ورك أو جوجل خذ بالك دي سياسات شركات وفي علاقات بينهم وتبادل واحترام وفي معيار بينهم لذلك لاتبحث ايه الأفضل أنت ايه يهمك تدخر فلوس خلاص سيبك من المقارنات واتعلم أي حاجة تجيب لك فلوس ميكروسوفت والله انها بتستخدم منتجات جوجو مثلا Angular تبع جوجل ميكروسوفت بتستخدمها في مشاريعها بينما ميكروسوفت معها فريمورك الي هو Blazor .
فذكر‼️
Full stack Developer هذا مفهوم مستنزف للطاقة البشرية يستعمله بعض اصحاب المشاريع والشركات من أجل التوفير واستغلال الاشخاص وخصوصي ان تسارع التكنولوجيا والتقنيات في هذا المجال اصبح أمر متعب وخصوصاً للخريجين الجدد والمخضرمين القدامى إن موضوع التحديث اليومي ومتابعة الأمور التقنية اليوميه في هذا المجال أمر لا يقدره أرباب العمل للأسف بذات في بلادنا ولايعرفون مقدار التعب الجسدي والنفسي في هذا المجال على حساب صحتك النفسية وحياتك والضغوط التي نواجهها هذه الأيام لذلك نصيحة أن تختص في مجال واحد فقط سواءً كان Frontend or Backend or Mobile
وغيرها
والعمل بقاعدة : يجب أن تعرف كل شيء عن شيء وشيء عن كل شيء
أخيرًا في موضوع جامد ودسم 👀😅 هو ال Event sourcing العنوان معك والباقي عليك بهشتاج #ورط نفسك كان كورس أو أي شيء
Full stack Developer هذا مفهوم مستنزف للطاقة البشرية يستعمله بعض اصحاب المشاريع والشركات من أجل التوفير واستغلال الاشخاص وخصوصي ان تسارع التكنولوجيا والتقنيات في هذا المجال اصبح أمر متعب وخصوصاً للخريجين الجدد والمخضرمين القدامى إن موضوع التحديث اليومي ومتابعة الأمور التقنية اليوميه في هذا المجال أمر لا يقدره أرباب العمل للأسف بذات في بلادنا ولايعرفون مقدار التعب الجسدي والنفسي في هذا المجال على حساب صحتك النفسية وحياتك والضغوط التي نواجهها هذه الأيام لذلك نصيحة أن تختص في مجال واحد فقط سواءً كان Frontend or Backend or Mobile
وغيرها
والعمل بقاعدة : يجب أن تعرف كل شيء عن شيء وشيء عن كل شيء
أخيرًا في موضوع جامد ودسم 👀😅 هو ال Event sourcing العنوان معك والباقي عليك بهشتاج #ورط نفسك كان كورس أو أي شيء
لو تكلمنا عن ال Event sourcing لو قلت لك انت الان بتعمل نظام صح و ب تحفظ ال data في الداتابيز البيانات الي بتحفظها لو قلت لك انها ال current state الحاله الي بتحفظ بها البيانات هي الحاله الي هي فيها الآن طيب في عمليات مثلا بتتغير من حين إلى آخر تخيل مثلا اريد احفظ كل العمليات الي بتمر بها مثل من عملية سحب مال من أي صراف الي إلى داخل الحساب داخل البنك في نفس الترانز اكشن اريد احفظ ال history الي حدثت حتى آخر عمليه مثلا دخلت موقع الاكتروني تشتري شيء مثلا اريد احفظ كل عمليات الدفع الي بتمر بها ستقول لي انا بينحفظها انت مثلا في نفس الترانزاكشن الطلب الان مثلا فيه مرحله تحت المعالجة بعدها أصبح approved الطلب انت هنا ستعدل الحاله في الداتابيز طوالي وغيرها من الحالات حتى تتم عملية shipping وستحدث في الداتابيز آخر حاله لطلب وستعرضها كل هذ الهيستوري اريد ان اعمله ياسطى ايش snapshot
ايش بستفيد لو كان نظامي مبني على Event sourcing أو شيء أي عمليات مسجله ك events تقدر ترجع لها متى ماتريد ثانيا لو وقف النظام فجأة تقدر تستعيد النظام إلى حالة ماقبل ان يسقط مثلا ثالثا أنت بتخزن بيانات تقدر تعملها BI وتحللها وتتنبأ للمستقبل عن حالة النظام ومستقبله من خلال البيانات كذلك تقدر من خلالها تقدر تدرس طبيعة العملاء وتقييم وغيرها من التحليل طباعة تقارير بكل بعسسه في النظام ماتضيع كذلك هذا هو جانب حل في الأداء وتحسين في الأنظمة الكبيرة مثلا البنكية وغيرها الذكاء الاصطناعي على ماذا اعتمد هو على history تبعك ياعم الحج بيحفظ كل حدثانت تفعلت مع النظام خوارزميات البحث الي فجأة بحثت في جوجل طلع لك اقترح في يوتيوب
جزء بسيط من عالم يهتم ب تكامل البيانات للماضي والحاضر والمستقبل
ايش بستفيد لو كان نظامي مبني على Event sourcing أو شيء أي عمليات مسجله ك events تقدر ترجع لها متى ماتريد ثانيا لو وقف النظام فجأة تقدر تستعيد النظام إلى حالة ماقبل ان يسقط مثلا ثالثا أنت بتخزن بيانات تقدر تعملها BI وتحللها وتتنبأ للمستقبل عن حالة النظام ومستقبله من خلال البيانات كذلك تقدر من خلالها تقدر تدرس طبيعة العملاء وتقييم وغيرها من التحليل طباعة تقارير بكل بعسسه في النظام ماتضيع كذلك هذا هو جانب حل في الأداء وتحسين في الأنظمة الكبيرة مثلا البنكية وغيرها الذكاء الاصطناعي على ماذا اعتمد هو على history تبعك ياعم الحج بيحفظ كل حدثانت تفعلت مع النظام خوارزميات البحث الي فجأة بحثت في جوجل طلع لك اقترح في يوتيوب
جزء بسيط من عالم يهتم ب تكامل البيانات للماضي والحاضر والمستقبل
❤1
لمحة 👀 برمجية
لو تكلمنا عن ال Event sourcing لو قلت لك انت الان بتعمل نظام صح و ب تحفظ ال data في الداتابيز البيانات الي بتحفظها لو قلت لك انها ال current state الحاله الي بتحفظ بها البيانات هي الحاله الي هي فيها الآن طيب في عمليات مثلا بتتغير من حين إلى آخر تخيل مثلا…
وهذا بيعتمد على CQRS من ناحية تحسين الأداء وعمل projection ك background services لحفظ عمليات ال concurrency ل الداتا