DevGuide 🇵🇸
10.9K subscribers
2.62K photos
18 videos
127 files
3.55K links
Join our channel for top-notch programming hacks, epic discussions, and brilliant career moves. 🚀

⚡️ Stay connected with me: linktr.ee/AliSamir

📍 To advertise on the channel: https://telega.io/c/the_developer_guide
Download Telegram
Keys In SQL With Tables Well Explained 💯
3🔥1
دورة مجانية بعنوان: Power BI 101

تهدف هذه الدورة إلى التعرف على أساسيات Power BI، بدءًا من استيراد البيانات، إلى تمثيل البيانات وإنشاء التقارير وdashboard.

ستساعدك الدورة على اكتساب المهارات اللازمة لتمثيل البيانات وإنشاء تقارير فعّالة باستخدام Power BI.

https://satr.codes/course/OC6sfVMdl9/view
2
الـ MVC

نمط الـ MVC، أو Model-View-Controller، يعتبر من أشهر الأنماط المستخدمة في هندسة البرمجيات، وبيساعد على تنظيم الكود بشكل يخلي عملية تطوير وصيانة البرامج أبسط وأسهل.

———

طيب يعني إيه MVC؟ 🤔

الـ MVC بيتكون من 3 مكونات أساسية:

الـ Model: الجزء ده هو اللي بيتعامل مع البيانات. الـ Model بيقوم بتخزين البيانات، معالجة البيانات، والتواصل مع قواعد البيانات.

ممكن تعتبره زي المسئول عن "المنطق" أو "الشغل" اللي بيحصل في التطبيق. مثلًا لو عندك تطبيق بيعرض قائمة بالمنتجات، فالـ Model هو اللي هيجيب البيانات دي من قاعدة البيانات ويجهزها.

الـ View: وده المسئول عن كل اللي المستخدم بيشوفه قدامه على الشاشة. هو المسئول عن عرض البيانات اللي جهزها الـ Model.

يعني مثلًا لو عندك صفحة بتعرض المنتجات، فالـ View هو اللي بيحدد إزاي المنتجات هتظهر (الألوان، الشكل، الترتيب... إلخ).

الـ Controller: وده الوسيط اللي بيعمل التنسيق بين الـ Model والـ View.

بمعنى تاني، هو اللي بيستقبل طلبات المستخدمين، زي لما تضغط على زرار أو تدخل بيانات في فورم، وبعدين يوجه الطلب للـ Model علشان يعالج البيانات، وفي الآخر يرجع البيانات دي للـ View علشان يعرضها.

———

مثال بسيط 🛠

تخيل إنك فاتح موقع للتسوق وعايز تشوف قائمة المنتجات:

⚡️ أول حاجة بتضغط على زرار "عرض المنتجات" – هنا الـ Controller بيستقبل الطلب ده.

⚡️ بعد كده، الـ Controller بيروح للـ Model علشان يجيب البيانات من قاعدة البيانات (قائمة المنتجات).

⚡️ الـ Model بيدور في قاعدة البيانات ويجيب المنتجات.

⚡️ بعد ما الـ Model يجهز البيانات، بيرجّعها للـ Controller اللي بدوره يبعتها للـ View.

⚡️ وأخيرًا، الـ View بيعرض المنتجات على الشاشة بالشكل المناسب اللي المستخدم يقدر يشوفه ويتفاعل معاه.

———

ليه تستخدم الـ MVC؟ 🤷‍♂️

📌 تنظيم الكود: بيخلي الكود منظم أكتر، بحيث تقدر تفصل منطق العمل (الـ Model) عن العرض (الـ View) وعن التحكم (الـ Controller)، وبالتالي لو عايز تعدل في جزء معين، بتعدل عليه من غير ما تأثر على الأجزاء التانية.

📌 سهولة التطوير والصيانة: كل مكون في الـ MVC بيشتغل بشكل مستقل، فلو في مشكلة في العرض (الـ View) مش لازم تلمس الكود الخاص بالبيانات (الـ Model) أو التحكم (الـ Controller).

📌 إعادة استخدام الكود: بما إن الكود متقسم ومنظم، ممكن تعيد استخدام أجزاء معينة منه في مشاريع تانية.

———

نمط الـ MVC هيسهل عليك الدنيا خصوصًا لو شغال على مشاريع كبيرة ومعقدة لأنه بيفصل بشكل واضح بين الأدوار المختلفة لكل مكون في التطبيق.

ده هيوفر عليك وقت ومجهود وهتقدر تعمل تعديل في التطبيق بتاعك بكل سهولة.

بالتوفيق يا بطل 💪🏻
9
الفرق بين AOT Compiler و JIT Compiler في Angular 💡
.
.
طبعًا أنت عارف إن المتصفح مبيفهمش غير لغة واحدة في الآخر، وهي الـ JavaScript. يعني مهما كتبت كود بلغة زي TypeScript أو حتى HTML وCSS، لازم في النهاية الكلام ده كله يتحول لـ JavaScript عشان المتصفح ينفذه ويطلع الموقع على الشاشة.

وده بيحصل عن طريق حاجة اسمها الـ Compiler (أو الـ Transpiler في بعض الحالات زي TypeScript). ولكن في Angular، الـ compilation ده ممكن يحصل بطريقتين مختلفتين، وكل طريقة لها مميزات وعيوب.

———

https://www.linkedin.com/posts/dev-alisamir_angular-devabrguide-typescript-activity-7305272573439713280-pq-Q
3
الفرق بين Dependency Injection و Inversion of Control 💡

لما تتعمق شوية في مجال السوفتوير هتسمع عن مصطلحات زي Dependency Injection و Inversion of Control، وفيه ناس بتتلخبط بينهم وبتفكر إنهم حاجة واحدة. خلينا نوضح الفرق بطريقة بسيطة تفهمك الفكرة كويس...

———

📍 إيه هو Inversion of Control (IoC)؟

خلينا نبدأ بـ Inversion of Control أو زي ما بنختصرها IoC. المفهوم ده ببساطة بيقول إن بدل ما الكود بتاعك هو اللي يتحكم في كل حاجة بنفسه (يعني هو اللي بيعمل الكائنات (Objects) اللي هيشتغل بيها ويعتمد عليها)، بيكون فيه جهة تانية هي اللي بتعمل ده وتدير الموضوع.

يعني الكود بتاعك مش بيهتم بأنه "ينشئ" الـ dependencies (الكائنات اللي بيعتمد عليها)، بل بيستقبلها جاهزة.

تقدر تتخيل الموضوع كأنك مش بتروح تجيب مكونات أكلك بنفسك من السوبر ماركت، أنت بتخلي حد يجيبهم لك ويجهزهم، وأنت بس تطبخ الحاجات اللي وصلتك.

———

📍 إيه حكاية Dependency Injection؟

هنا بقى ييجي دور الـ Dependency Injection. ده ببساطة أسلوب أو طريقة لتطبيق مفهوم الـ Inversion of Control.

بدل ما الكود بتاعك هو اللي يقول "أنا محتاج الكائن ده أو المكون ده عشان أشتغل"، حاجة تانية (زي الـ framework أو الـ container) بتكون مسؤولة عن إنها "تضخ" الكائنات دي لك في الوقت المناسب.

———

📌 مثال يوضح الفرق:

تخيل أنك عندك عربية، لو أنت بنفسك اللي بتروح لمحطة البنزين وتملاها، ده يعتبر إن العربية معتمدة على البنزين اللي أنت بتجيبه.

لكن لو في نظام ذكي في العربية هو اللي بيتحكم ويوصل لها البنزين من غير ما أنت تتدخل، يبقى ده Inversion of Control، لأنك سبت السيطرة للنظام إنه يدير الموضوع.

أما Dependency Injection، فهو الآلية اللي بيتم بيها توصيل البنزين للعربية. يعني هي دي الطريقة اللي البنزين بيوصل بيها لعربيتك عشان تمشي.

———

📌 طب ليه بنهتم بالحاجات دي في البرمجة؟

الفكرة ببساطة إن الطريقة دي بتخلينا نكتب كود مرن وسهل التطوير. لو كل كائن في الكود بتاعك بيعتمد على كائنات تانية وبيعملها بنفسه، ده هيخلي الكود معقد وصعب تختبره أو تعدل عليه.

لكن لما تخلي Dependency Injection مسؤول عن توصيل الـ dependencies، هتقدر تعدل على الكود أو تستبدل أي جزء بسهولة من غير ما تبقى محتاج تغييرات كبيرة.

———

الخـلاصـة


الـ Inversion of Control: هو المفهوم اللي بيقول إنك تسيب التحكم في الـ dependencies لجهة خارجية.

الـ Dependency Injection: هو طريقة لتطبيق المفهوم ده عن طريق توصيل الـ dependencies للكود بتاعك بشكل أوتوماتيكي.

بالتالي، IoC هو الفكرة الكبيرة اللي بتحكم الموضوع، وDependency Injection هو الأداة اللي بتطبق الفكرة دي.

بالتوفيق يا بطل ⚡️
7👍4
All CSS Functions 💡
8👍1
أنـواع قواعـد البيانات 💯

قواعد البيانات (Databases) تعتبر حجر الأساس لأي تطبيق أو نظام برمجي. ببساطة هي المكان اللي بنخزن فيه البيانات (Data) ونقدر نسترجعها وقت ما نحتاجها.

قواعد البيانات لها أنواع كتير وكل نوع بيختلف في طريقة تخزين البيانات والتعامل معاها.

———

📌 الـ Relational Databases (قواعد البيانات العلائقية)


ده يعتبر أشهر نوع وأكثرهم استخدامًا. قواعد البيانات العلائقية بتعتمد على الجداول (Tables) في تخزين البيانات، كل جدول بيكون عبارة عن مجموعة من الأعمدة (Columns) والصفوف (Rows).

البيانات في الجداول دي بتكون مرتبطة ببعض عن طريق العلاقات (Relationships)، وده بيخلي التعامل مع البيانات وتنظيمها أكتر كفاءة.


⚡️ أمثلة:

- الـ MySQL: قاعدة بيانات مفتوحة المصدر وبتستخدم في معظم التطبيات.
- الـ PostgreSQL: قاعدة بيانات مفتوحة المصدر بس بتتميز بمرونة كبيرة في التعامل مع البيانات والعلاقات المعقدة.
- الـ SQL Server: قاعدة بيانات من مايكروسوفت، وغالبًا بتستخدم في التطبيقات اللي بتعتمد على منتجات مايكروسوفت.

———

📌 الـ NoSQL Databases (قواعد البيانات غير العلائقية)

قواعد البيانات NoSQL مصممة للتعامل مع البيانات غير المنظمة أو البيانات اللي بتكون بأشكال مختلفة. النوع ده مش بيعتمد على الجداول زي الـ Relational Databases وبيكون مرن أكتر في التعامل مع البيانات اللي حجمها بيكبر بسرعة.


⚡️ أمثلة:

- الـ MongoDB: قاعدة بيانات NoSQL مشهورة جدًا وبتعتمد على الـ Documents، وبتستخدم JSON-like structure علشان تخزن البيانات.
- الـ Cassandra: قاعدة بيانات موزعة (Distributed) بتستخدم في التطبيقات اللي بتحتاج تتعامل مع كميات ضخمة من البيانات بسرعة وبتحافظ على الأداء العالي.
- الـ Firebase Realtime Database: قاعدة بيانات تابعة لجوجل، بتستخدم كتير في تطبيقات الموبايل اللي محتاجة تحديث البيانات بشكل لحظي (Real-time).

———

📌 الـ Graph Databases (قواعد البيانات البيانية)

النوع ده من قواعد البيانات بيعتمد على الرسوم البيانية (Graphs) في تخزين البيانات. الفكرة هنا إن البيانات بتتخزن على شكل نقاط (Nodes) والعلاقات بين النقاط دي بتكون على شكل خطوط (Edges).

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


⚡️ أمثلة:

- الـ Neo4j: واحدة من أشهر قواعد البيانات البيانية، وبتستخدم في تحليل الشبكات الاجتماعية أو أي نوع من البيانات اللي فيها علاقات معقدة.
- الـ Amazon Neptune: قاعدة بيانات من أمازون بتتعامل مع الرسوم البيانية وبتساعد في التطبيقات اللي بتحتاج بيانات مترابطة بشكل كبير.

———

📌 الـ Key-Value Databases

في النوع ده من قواعد البيانات، البيانات بتتخزن على شكل أزواج (Key-Value). الـ Key هو العنصر اللي بنستخدمه للبحث عن القيمة (Value) المرتبطة بيه. النوع ده من قواعد البيانات بيكون بسيط وسريع جدًا في الاستعلام عن البيانات.


⚡️ أمثلة:

- الـ Redis: قاعدة بيانات مشهورة جدًا وبتستخدم في الكاش (Caching) وفي التطبيقات اللي محتاجة سرعة عالية في التعامل مع البيانات.
- الـ DynamoDB: قاعدة بيانات من أمازون بتدعم الـ Key-Value وبتستخدم في التطبيقات السحابية اللي بتحتاج أداء عالي.

———

📌 الـ Document Databases (قواعد البيانات الوثائقية)

النوع ده بيخزن البيانات على شكل وثائق (Documents)، والوثيقة بتكون غالبًا في شكل JSON أو BSON. قواعد البيانات الوثائقية بتدي مرونة أكتر في التعامل مع البيانات غير المنظمة.


⚡️ أمثلة:

- الـ Couchbase: قاعدة بيانات وثائقية بتمزج بين الأداء العالي والمرونة في التخزين.
- الـ MongoDB: زي ما ذكرنا قبل كده، بتدعم الـ Document-based structure وبتستخدم كتير في التطبيقات اللي بتحتاج تعامل سريع مع البيانات.

———

📌 الـ Column-Family Databases (قواعد البيانات العمودية)

في النوع ده، البيانات بتتخزن على شكل أعمدة بدل الصفوف، وده بيدي كفاءة أعلى في قراءة وكتابة البيانات اللي حجمها كبير.


⚡️ أمثلة:

- الـ Apache HBase: قاعدة بيانات مفتوحة المصدر بتشتغل فوق Hadoop وبتستخدم في التعامل مع البيانات الكبيرة.
- الـ Google Bigtable: قاعدة بيانات سحابية من جوجل بتتعامل مع كميات هائلة من البيانات بشكل عمودي.

———

اختيار النوع المناسب من قواعد البيانات بيعتمد على احتياجات التطبيق بتاعك. لازم تختار على حسب حجم البيانات، طريقة التعامل معاها، والسرعة اللي محتاجها.
7👍3👏1
🏆 Top JavaScript Front-End Frameworks in 2024
6👏1
How to start learning JAVA IN 2025

1. Core Java Basics


- Learn about basic syntax, variables, data types, and operators.
- Control flow: if-else, loops (for, while, do-while).
- Arrays and Strings.
- Methods and Functions.


2. Object-Oriented Programming (OOP)


- Classes and Objects.
- Encapsulation, Inheritance, Polymorphism, and Abstraction.
- Interfaces and Abstract Classes.


3. Core Java Utilities


- Collections Framework (Lists, Sets, Maps, Queues).-
- Generics.
- Exception Handling.
- Input/Output Streams (I/O).


4. Advanced Java Concepts


- Multithreading and Concurrency.
- Java 8+ Features: Streams, Lambdas, Optional, Date and Time API.
- Functional Programming.


5. Database Connectivity


- JDBC (Java Database Connectivity).
- Connect Java applications with relational databases like MySQL or PostgreSQL.


6. Build Tools and Version Control


- Maven or Gradle for dependency management and building projects.
- Git for version control.


7. Frameworks and Tools


- Spring Framework: Learn Spring Boot for building enterprise applications.
- Hibernate: For ORM (Object-Relational Mapping).
- REST APIs: Learn how to create and consume RESTful web services.


8. Front-end Integration (Optional)


- Integrate Java with front-end technologies like HTML, CSS, JavaScript.
- Learn about JSP/Servlets or modern frameworks like Thymeleaf.


9. Testing


- Unit Testing with JUnit.
- Integration Testing.


10. Build Projects


- Create simple projects like a library management system, e-commerce website, or chat application.
- Gradually move to more complex projects using frameworks like Spring Boot.


11. Deployment


- Learn how to deploy Java applications on servers like Apache Tomcat.
- Explore cloud platforms like AWS or Azure for deployment.
3👍2
خصم 100% لمدة 3 أيام على كل الكتب الالكترونية المنشورة من خلال To Data & Beyond:

Efficient Python for Data Scientists
youssefhosni.gumroad.com/l/cbousj

Hands-On Prompt Engineering: Building LLM Applications with Prompt Engineering
youssefhosni.gumroad.com/l/xsmguv

LLM Roadmap from Beginner to Advanced Level
youssefhosni.gumroad.com/l/qigmtg

Top Large Language Models Interview Questions and Answers
youssefhosni.gumroad.com/l/rrzgu

Data Science Portfolio for Success E-Book
youssefhosni.gumroad.com/l/ltjno

تقدر تستخدم الكوبون عشان تاخد الخصم:
5AOPHJC
3👍3