tgindex

DevGuide

описание

Level up daily with insider dev hacks, smart career tips, and real talk! 🚀 ⚡️ Stay connected with me: linktr.ee/AliSamir 📍 To advertise on the channel: https://telega.io/c/the_developer_guide

11 005
подписчиков

Лучшие посты

за три месяца
  • 21 июл.1 821 просмотров3 реакций17 пересылок

    مصطلحات مهمة في عالم الـ System Design 💯 (٦) . . في البوست اللي فات عرفنا إزاي نزود عدد السيرفرات باستخدام الـ Horizontal Scaling، وإزاي الـ Load Balancer بيوزع الـ Requests بينهم. لكن مع الوقت، المشكلة الحقيقية غالبًا بتكون في قاعدة البيانات نفسها. تخيل إن عندك ملايين المستخدمين، ومئات الملايين من الطلبات، وكل السيرفرات بتقرأ وتكتب في نفس الـ Database. في مرحلة معينة هتلاقي إن قاعدة البيانات بقت هي المشكلة الأكبر والأهم... وقتها بنبدأ نفكر إزاي هنحل المشكلة دي... ——— 📌 Replication أول حل هو إننا نعمل نسخ متعددة من قاعدة البيانات. يبقى عندنا: • Primary Database تستقبل عمليات الكتابة (Write). • Replica Databases تستقبل عمليات القراءة (Read). تخيل إن عندك مكتبة عليها زحمة. بدل ما الناس كلها تقف على نسخة واحدة من الكتاب، بتعمل نسخ إضافية علشان عدد أكبر من الناس يقدر يقرأ في نفس الوقت. وده بالضبط اللي بيحصل مع Replication. الميزة إنك تقدر توزع عمليات القراءة على أكتر من Replica، فتخفف الضغط على الـ Primary Database. لكن إيه اللي هيحصل لو حجم البيانات نفسه بقى ضخم جدًا، حتى النسخ المتعددة مش كفاية؟ ——— 📌 Sharding هنا بنقسم البيانات نفسها. بدل ما كل المستخدمين موجودين في قاعدة بيانات واحدة، ممكن نقسمهم على عدة قواعد بيانات. كأن عندك ملف ضخم جدًا، فقسمته على عدة أدراج بدل ما تحطه كله في درج واحد. الميزة إن كل Shard يشيل جزء من البيانات فقط، وبالتالي الضغط يتوزع. لكن الـ Sharding بيضيف تعقيد أكبر، لأن التطبيق لازم يعرف البيانات المطلوبة موجودة في أي Shard. ——— 📌 Vertical Partitioning تخيل جدول مستخدمين فيه: - الاسم - الإيميل - رقم التليفون - الصورة - العنوان - إعدادات الحساب - بيانات إضافية تانية… مش كل الطلبات محتاجة كل الأعمدة دي. فممكن نفصل البيانات الأساسية في جدول، والبيانات الأقل استخدامًا في جدول تاني. وده اسمه Vertical Partitioning. يعني بدل ما كل Query تقرأ جدول ضخم، تقرأ الجزء اللي محتاجاه فقط. ——— 💡 الخلاصة النهارده عرفنا 3 طرق مختلفة علشان نكبر قاعدة البيانات: • الـ Replication: إنشاء نسخ متعددة من قاعدة البيانات لتوزيع عمليات القراءة. • الـ Sharding: تقسيم البيانات على عدة قواعد بيانات مختلفة. • الـ Vertical Partitioning: تقسيم الأعمدة داخل الجداول لتقليل حجم البيانات المقروءة في كل Query. دلوقتي نقدر نتعامل مع قواعد بيانات ضخمة جدًا. لكن… حتى مع كل التقسيم والنسخ دي، لسه فيه مشكلة ممكن تقتل الأداء: إننا نروح نكلم قاعدة البيانات في كل Request. وده اللي هنتكلم عنه في البوست الجاي، لما نتعرف على Caching و Denormalization و CAP Theorem. ——— #system_design

  • 24 июл.1 696 просмотров2 реакций5 пересылок

    Introducing Claude Opus 5. It's a thoughtful and proactive model that comes close to the frontier intelligence of Fable 5 at half the price. https://www.anthropic.com/news/claude-opus-5 . . #ai

  • 27 июл.1 668 просмотров8 реакций17 пересылок

    7 Essential Data Structures for Coding Interviews 💯 . . 1- Array 2- Linked List 3- Hash Table 4- Stack 5- Queue 6- Heap 7- Binary Search Tree ——— #dsa

  • 30 июл.1 579 просмотров4 реакций13 пересылок

    Algorithms are a set of instructions or steps designed to perform a specific task or to solve a particular problem. They are essential in computer science for data processing, calculations, and other tasks. ——— #algorithms

  • 18 июл.1 200 просмотров2 реакций13 пересылок

    без подписи

  • 5 авг.1 127 просмотров1 реакций6 пересылок

    https://youtu.be/9hImAM8Ha7s #ai

  • 12 июл.1 094 просмотров2 реакций17 пересылок

    без подписи

  • 19 июл.1 080 просмотров2 реакций11 пересылок

    Mastering Load Balancing in System Design 💯 . . #system_design

  • 24 июл.965 просмотров3 реакций2 пересылок

    CSS: Tabular Numbers In CSS, tabular numbers force digits to take up the exact same horizontal width. . . #css

  • 31 июл.913 просмотров6 реакций11 пересылок

    مصطلحات مهمة في عالم الـ System Design 💯 (٧) . . في البوست اللي فات عرفنا يعني إيه Replication و Sharding و Vertical Partitioning، وعرفنا إزاي نتعامل مع كميات ضخمة من البيانات. لكن حتى بعد كل ده، فيه سؤال مهم... هل كل Request لازم يروح للـ Database؟ تخيل إن الصفحة الرئيسية في موقعك بيدخلها مليون مستخدم في اليوم، وكلهم تقريبًا بيطلبوا نفس البيانات. هل منطقي إننا في كل مرة نروح نسأل الـ Database عن البيانات دي من أول وجديد؟ أكيد لا... لأن حتى أسرع Database لها حدود، وكل قراءة زيادة معناها ضغط أكبر، واستهلاك أعلى للموارد. ——— 📌 Caching الـ Cache عبارة عن مكان بنخزن فيه البيانات اللي بنستخدمها بشكل متكرر، بحيث لما حد يطلبها مرة تانية، نرجعها بسرعة بدل ما نروح لقاعدة البيانات. لو فيه عندك بيانات ثابتة معظم الوقت، ومبيحصلش عليها تغييرات كتير، فمش منطقي إن كل Request يروح للـ Database. أول Request لو البيانات مش موجودة في الـ Cache وده اسمه (Cache Miss)، يجيبها من الـ Database ويحفظها في الـ Cache، وبعدها الطلبات التالية تعمل Cache Hit. وده واحد من أهم الأسباب اللي بتخلي التطبيقات تكون سريعة الاستجابة، وفي نفس الوقت بيقلل الضغط على قاعدة البيانات. لكن استخدام الـ Cache مش بيحل كل المشاكل. ——— 📌 Denormalization فاكر لما تكلمنا عن SQL Databases؟ وقتها قلنا إننا بنقسم البيانات على جداول مختلفة، علشان نقلل تكرار البيانات ونحافظ عليها منظمة. وده فعلًا أفضل تصميم في حالات كتير. لكن مع زيادة عدد المستخدمين، ممكن تلاقي إنك كل مرة تعرض صفحة واحدة، محتاج تعمل Join بين 4 أو 5 جداول. وده بيكلف قاعدة البيانات وقت ومجهود مع كل Request. هنا بعض الأنظمة بتاخد قرار مختلف. بدل ما تمنع تكرار البيانات، تسمح بتكرار جزء منها، مقابل إن القراءة تبقى أسرع. يعني مثلًا، بدل ما كل مرة تجيب اسم المستخدم من جدول Users، ممكن تخزن اسمه داخل جدول Orders نفسه. أيوه... البيانات بقت مكررة. لكن في المقابل، بقيت تقدر تجيب بيانات الأوردر في Query واحدة، من غير Joins كتير. وده اسمه Denormalization. لكن ليه تمن. لأن لو اسم المستخدم تغير، هتحتاج تحدثه في أكتر من مكان. ومن هنا تبدأ تكتشف إن الـ System Design معظمه عبارة عن Trade-offs. كل قرار بيحل مشكلة، لكنه في المقابل بيخلق تحديات جديدة. ——— 📌 CAP Theorem بعد ما بدأنا نستخدم أكتر من Database، وعملنا Replication و Sharding، كده إحنا دخلنا عالم الـ Distributed Systems. وفي العالم ده، فيه سؤال مهم جدًا... هل ينفع كل السيرفرات تشوف نفس البيانات، والنظام يفضل متاح للمستخدمين، حتى لو حصلت مشكلة في الشبكة؟ للأسف... لا. وده بالظبط اللي بتشرحه CAP Theorem. النظرية دي بتقول إن في الأنظمة الموزعة، لو حصل Network Partition، مش هتقدر تحقق كل المميزات في نفس الوقت. في الحالة دي، لازم تختار بين Consistency و Availability، لأن Partition Tolerance أصبحت مفروضة عليك. فهل الأهم إن كل المستخدمين يشوفوا نفس البيانات، حتى لو بعض الطلبات هتتأخر؟ ولا الأهم إن النظام يفضل شغال ويرد على المستخدمين، حتى لو بعض البيانات تكون لسه متحدثتش في كل السيرفرات؟ علشان كده هتلاقي إن مفيش Database أو Distributed System ينفع لكل السيناريوهات. كل واحد معمول علشان يوازن بين احتياجات مختلفة. ——— 💡 الخلاصة النهارده عرفنا 3 مفاهيم مهمين جدًا في تحسين أداء الأنظمة: • الـ Caching: تخزين البيانات المستخدمة باستمرار في مكان أسرع، لتقليل الضغط على قاعدة البيانات. • الـ Denormalization: تكرار جزء من البيانات لتقليل الـ Joins وتسريع عمليات القراءة. • الـ CAP Theorem: عند حدوث Network Partition، لازم تختار بين Consistency و Availability. ——— دلوقتي بقينا نعرف إزاي نخلي الوصول للبيانات أسرع. لكن... التطبيقات مش بتتعامل مع بيانات بس. إيه اللي بيحصل مع الصور، والفيديوهات، والملفات؟ وهل منطقي نخزنها كلها داخل قاعدة البيانات؟ ده اللي هنتكلم عنه في البوست الجاي، لما نتعرف على Blob Storage و CDN وكمان هنتكلم عن الـ WebSockets

  • 26 июл.908 просмотров5 реакций2 пересылок

    https://www.linkedin.com/posts/dev-alisamir_qabilah-ugcPost-7487142257758777344-hCbp

  • 25 июл.895 просмотров2 реакций9 пересылок

    What Is Micro Frontend Architecture? . . A frontend System Design approach that structures a frontend application as a set of independent, self-contained feature modules, each responsible for a specific domain or functionality. . . #architecture #frontend

  • 25 июн.859 просмотров3 реакций16 пересылок

    без подписи

  • 9 авг.858 просмотров3 реакций12 пересылок

    Learn AI for free directly from top companies. 💯 1- Anthropic: http://anthropic.skilljar.com 2- Google: http://grow.google/ai 3- Meta: http://ai.meta.com/resources 4- NVIDIA: http://developer.nvidia.com/cuda 5- Microsoft: http://learn.microsoft.com/en-us/training 6- OpenAI: http://academy.openai.com 7- IBM: http://skillsbuild.org 8- AWS: http://skillbuilder.aws 9- DeepLearning AI: http://deeplearning.ai 10- Hugging Face: http://huggingface.co/learn ——— #ai

  • 3 авг.814 просмотров1 реакций9 пересылок

    #frontend

  • 4 авг.783 просмотров4 реакций11 пересылок

    الفرق بين Hashing و Encoding و Encryption 🔐 . . وأنت بتشتغل في الباك إند، أو بتتعامل مع APIs، أو حتى بتشتغل على تطبيق بسيط فيه عملية تسجيل دخول… في الغالب قابلت مصطلحات زي Hashing و Encoding و Encryption. وممكن تفتكر إنهم شبه بعض، أو إن أي واحد فيهم "بيأمن البيانات وخلاص". لكن الحقيقة إن كل واحد له هدف مختلف تمامًا، ولو استخدمت حاجة غلط ممكن تفتح ثغرات أمنية وأنت مش واخد بالك. تعال ندردش شوية عن الفرق بينهم... ——— ✅ أولًا: الـ Hashing: تخيل إنك بتعمل بصمة لأي معلومة… مش علشان ترجع لها بعدين، لكن علشان تتأكد إنها متغيرتش. الـ Hashing بياخد قيمة (زي password مثلًا)، ويطلع منها سلسلة ثابتة الطول شكلها عشوائي – اسمها Hash – واللي بتستخدمها عشان تطابق أو تتحقق من البيانات من غير ما تحتاج تخزن الأصل. 📌 المهم هنا: - العملية دي One Way (مفيش رجوع). - لو غيرت حرف واحد، الـ Hash كله بيتغير. - وده اللي بنستخدمه مثلًا لما نخزن الـ Passwords في قواعد البيانات. لو حد عرف الـ Hash، مش هيعرف يطلع منه الباسورد الأصلي (بس ممكن يعمل Brute Force ويحاول يخمنه). ——— ✅ ثانيًا: الـ Encoding: الـ Encoding هو طريقة بنحول بها البيانات لشكل تاني علشان يسهل تخزينها أو نقلها. زي Base64، اللي بتحول مثلًا صورة أو نص يحتوي رموز غريبة لشكل مفهوم لأي نظام. 📌 المهم هنا: - العملية دي Two Way (تقدر ترجّع البيانات الأصلية). - مفيش أي حماية أو تشفير، أي حد يعرف نوع الـ encoding يقدر يفكه بسهولة. - الهدف منه بس إنك تنقل الداتا بدون ما تضيع أو تبوظ. مثال بسيط: لو عندك some text ممكن يتحول بـ Base64 إلى: c29tZSB0ZXh0 ——— ✅ ثالثًا: الـ Encryption: لو أنت عايز تبعت داتا سرية لحد، ومش عايز أي حد في النص يفهمها. هتعمل لها تشفير باستخدام مفتاح (Key)، والمستلم اللي معاه المفتاح يقدر يفكها. 📌 المهم هنا: - العملية دي Two Way، بس لازم المفتاح. - لو المفتاح اتسرّب أو ضاع، أي حد يقدر يفك البيانات. - بتستخدمها في إرسال معلومات حساسة زي بطاقات الدفع أو بيانات المستخدمين. فيه نوعين من الـ Encryption: - الـ Symmetric: نفس المفتاح بيشفّر ويفك (زي AES). - الـ Asymmetric: مفتاحين، واحد بيشفّر (public) والتاني بيفك (private) – زي اللي بيستخدم في HTTPS. #backend

  • 2 авг.761 просмотров2 реакций5 пересылок

    Software Testing with Playwright https://www.freecodecamp.org/news/software-testing-with-playwright #testing

  • 4 авг.750 просмотров2 реакций11 пересылок

    Cybersecurity Basics - CS101 💯 ——— #cybersecurity

  • 5 авг.708 просмотров2 реакций5 пересылок

    #frontend

  • 8 июл.662 просмотров1 реакций3 пересылок

    без подписи