لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 06/21/22 في كل الموقع
-
هل لابد ان اكون متعلم htmlوcss قبل البدئ في دورة الجافا سكريبت ام تكفيني اساسيات اللغه الموجوده في الدورات المعطاه مجانا2 نقاط
-
الإصدار 1.0.0
116469 تنزيل
سطع نجم لغة البرمجة بايثون في الآونة الأخيرة حتى بدأت تزاحم أقوى لغات البرمجة في الصدارة وذاك لمزايا هذه اللغة التي لا تنحصر أولها سهولة كتابة وقراءة شيفراتها حتى أصبحت الخيار الأول بين يدي المؤسسات الأكاديمية والتدريبية لتدريسها للطلاب الجدد الراغبين في الدخول إلى مجال علوم الحاسوب والبرمجة. أضف إلى ذلك أن بايثون لغةً متعدَّدة الأغراض والاستخدامات، لذا فهي دومًا الخيار الأول في شتى مجالات علوم الحاسوب الصاعدة مثل الذكاء الصنعي وتعلم الآلة وعلوم البيانات وغيرها، كما أنَّها مطلوبة بشدة في سوق العمل وتعتمدها كبرى الشركات التقنية. دورة تطوير التطبيقات باستخدام لغة Python احترف تطوير التطبيقات مع أكاديمية حسوب والتحق بسوق العمل فور انتهائك من الدورة اشترك الآن بني هذا العمل على كتاب «How to code in Python» لصاحبته ليزا تاغليفيري (Lisa Tagliaferri) وترجمه إلى العربية محمد بغات وعبد اللطيف ايمش، وحرره جميل بيلوني، ويأتي شارحًا المفاهيم البرمجية الأساسية بلغة بايثون، ونأمل في أكاديمية حسوب أن يكون إضافةً نافعةً للمكتبة العربيَّة وأن يفيد القارئ العربي في أن يكون منطلقًا للدخول إلى عالم البرمجة من أوسع أبوابه. رُبط هذا الكتاب مع توثيق لغة بايثون في موسوعة حسوب لتسهيل عملية الاطلاع على أي جزء من اللغة مباشرة وقراءة التفاصيل باللغة العربية. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «المرجع الشامل إلى تعلم لغة بايثون»، أو مباشرةً من الآتي: المقال الأول: دليل تعلم بايثون اعتبارات عملية للاختيار ما بين بايثون 2 و بايثون 3 المقال الثاني: تثبيت بايثون 3 وإعداد بيئتها البرمجية المقال الثالث: كيف تكتب أول برنامج لك المقال الرابع: كيفية استخدام سطر أوامر بايثون التفاعلي المقال الخامس: كيفية كتابة التعليقات المقال السادس: فهم أنواع البيانات المقال السابع: مدخل إلى التعامل مع السلاسل النصية المقال الثامن: كيفية تنسيق النصوص المقال التاسع: مقدمة إلى دوال التعامل مع السلاسل النصية المقال العاشر: آلية فهرسة السلاسل النصية وطريقة تقسيمها المقال الحادي عشر: كيفية التحويل بين أنواع البيانات المقال الثاني عشر: كيفية استخدام المتغيرات المقال الثالث عشر: كيفية استخدام آلية تنسيق السلاسل النصية المقال الرابع عشر: كيفية إجراء العمليات الحسابية المقال الخامس عشر: الدوال الرياضية المضمنة المقال السادس عشر: فهم العمليات المنطقية المقال السابع عشر: مدخل إلى القوائم المقال الثامن عشر: كيفية استخدام توابع القوائم المقال التاسع عشر: فهم كيفية استعمال List Comprehensions المقال العشرون: فهم نوع البيانات Tuples المقال الحادي والعشرين: فهم القواميس المقال الثاني والعشرين: كيفية استيراد الوحدات المقال الثالث والعشرين: كيفية كتابة الوحدات المقال الرابع والعشرين: كيفية كتابة التعليمات الشرطية المقال الخامس والعشرين: كيفية إنشاء حلقات تكرار while المقال السادس والعشرين: كيفية إنشاء حلقات تكرار for المقال السابع والعشرين: كيفية استخدام تعابير break وcontinue وpass عند التعامل مع حلقات التكرار المقال الثامن والعشرين: كيفية تعريف الدوال المقال التاسع والعشرين: كيفية استخدام *args و**kwargs المقال الثلاثين: كيفية إنشاء الأصناف وتعريف الكائنات المقال الحادي والثلاثين: فهم متغيرات الأصناف والنسخ المقال الثاني والثلاثين: وراثة الأصناف المقال الثالث والثلاثين: كيفية تطبيق التعددية الشكلية (Polymorphism) على الأصناف المقال الرابع والثلاثين: كيف تستخدم منقح بايثون المقال الخامس والثلاثين: كيفية تنقيح شيفرات بايثون من سطر الأوامر التفاعلي المقال السادس والثلاثين: كيف تستخدم التسجيل Logging المقال السابع والثلاثين: كيفية ترحيل شيفرة بايثون 2 إلى بايثون 31 نقطة -
عندما اقوم باستدعاء الصور من صفحة index.html تظهر وعندما استدعيها من ملف style.scss لا تظهر فما السبب1 نقطة
-
1 نقطة
-
لدي بعض المشاريع عملتها ب php version7 وانا الان ثبت xampp , php version8 كيف اجعل هذه المشاريع تعمل ع الاصدار الاحدث1 نقطة
-
قمت بتثبيت المكتبة داخل المشروع واستدعاءها داخل ملف العمل لكن لم اعرف كيف اضع العناصر بطريقه صحيحه داخل الكود1 نقطة
-
كيف اصل الى المفتاح memory limit حتى اعدل فيه1 نقطة
-
وعليكم السلام ورحمة الله، ماهي العناصر التي تحاول وضعها بالتحديد.1 نقطة
-
هل يمكنك إيضاح المشكلة بشكل اكبر كل ما اراه هو شاشة تحتوي ملف html بسيط و استدعاء لملف js. إن كان بإمكانك مشاركة ملفات المشروع حتى استطيع الاطلاع عليهم ومعرفة المشكلة.1 نقطة
-
لدي مكون بسيط في React وأريد أن أقوم بعرضه في الصفحة، لكني أريد أن أعرف طوله وعرضه قبل أن أقوم بعرضه (أي قبل أن يتم عمل render للمكون)، بحيث أستعمل هذه الأبعاد في بعض العمليات الحسابية بعد ذلك. فكرت في إستخدام useRef، ولكن لم أعرف كيف أستخدمها في هذه الحالة. هل توجد طريقة تمكنني من معرفة الطول والعرض للعنصر قبل عرضه؟1 نقطة
-
1 نقطة
-
لدي مصفوفة موجودة في state وأريد أن أقوم بعرض عناصر هذه المصفوفة داخل عناصر <li>، لذلك قمت بكتابة الكود التالي: import * as React from 'react'; export default function App() { const [elements, setElements] = React.useState([1,2,3,4,5]); return ( <div> <ul> { elements.map(function(item, i){ console.log(item); <li>{item}</li> }) } </ul> </div> ) } المشكلة هنا هي أنه يتم طباعة الأرقام في الـ console ولكن لا تظهر عناصر li في الصفحة. ما المشكلة هنا؟ وكيف أقوم بحلها؟1 نقطة
-
هل تظهر اي رسائل اخطاء بنافذة الطرفية console عند استعراض المشروع من المتصفح؟1 نقطة
-
ليس هناك خطا (error) ولكن انا اتسائل لماذا محتوى ملف webpack.config.js const path = require("path"); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const HTMLWebpackPlugin = require("html-webpack-plugin"); const webpack = require("webpack"); module.exports = { entry: { app: path.resolve(__dirname, "src/index.js"), }, output: { path: path.resolve(__dirname, "dist"), clean: true, filename: "[name]_bundle.js", }, devServer: { static: "./dist", hot: true, open: true, devMiddleware: { writeToDisk: true, }, }, module: { rules: [ { test: /\.html$/, loader: "html-loader", }, { test: /\.(sa|sc|c)ss$/, use: [MiniCssExtractPlugin.loader, "css-loader", "sass-loader"], }, { test: /\.(png|jpg|jpeg|svg|gif)$/, use: { loader: "file-loader", options: { esModules: true, outputPath: "images", name: "images/[name].[ext]", }, }, }, ], }, plugins: [ new HTMLWebpackPlugin({ filename: "index.html", template: "./src/index.html", }), new MiniCssExtractPlugin({ filename: "css/style.css" }), new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery", }), ], };1 نقطة
-
هل السؤال متعلق بدورة ما؟ يفضل ارفاق السؤال ضمن قسم تعليقات الطلبة اسفل الفيديو الذي تواجه به المشكلة. وإلا فإنك ستحتاج ارفاق مزيدا من التفاصيل، مثل نص رسالة الخطأ التي تظهر، ومحتوى ملف اعداد ويب باك webpack.config.js1 نقطة
-
كيف يمكنني الحصول على كوبون خصم للاشتراك في الدوره الخاصه بعمل التطبيقات1 نقطة
-
لدي نموذج model ويحتوي على الخاصية relations مثلًا بالشكل التالي: class MyModel(models.Model): relations = models.ManyToManyField(MyOtherModel) الآن أحاول أن أقوم بإزالة الكائنات الموجودة في هذه العلاقات من خلال الكود التالي: object.relations.remove(other_object) ويعمل الكود السابق بدون مشكلة، ولكن أريد أن أقوم بحذف كل العلاقات الموجودة في MyModel بالكامل وليس في كائنات محددة، كيف أقوم بعمل هذا الأمر في جانغو Django؟1 نقطة
-
بالنسبة للصور فحاول أن تقوم بقصها Crop وتصغيرها Resize بحيث يكون حجم الصورة مطابق لحجمها في الصفحة نفسها (أي لا تقوم بتحجيم الصور عبر width و height بل قم بتغير مقاسات الصورة نفسها عبر أي برنامج لتحرير الصور). إن كنت تستعمل webpack فحاول أن تقوم بعمل build بوضع production: webpack --mode production --optimization-minimize1 نقطة
-
مرحبًا بك في المقال الخامس من سلسلة مقالات نظام التشغيل ويندوز 11، سوف نتعرف في هذا المقال على مستكشِف الملفات الجديد وهل شمل التحديثُ جميعَ العناصر أم لا. ما الجديد في مستكشف الملفات File Explorer في ويندوز 11؟ أصدرت مايكروسوفت أخيرًا نسخةً محدثةً من مستكشف الملفات في ويندوز 11، هو لا يزال يحتفظ بنفس التصميم المألوف للإصدار القديم، لكن مع عناصر مرئيةٍ جديدة، وتعديلاتٍ تجعله التحديث الرئيسي منذ سنوات عديدة. يعتمد مستكشف الملفات الجديد على مكتبة واجهة مستخدم ويندوز Windows UI Library، والتي توفر أنماطًا وعناصر تَحكُّم جديدة لتجديد العناصر المرئية والرسوم المتحركة لتطبيقات ويندوز 11، وبالتالي سيكون لديك مستكشف ملفات يتميز بواجهة نظيفة ومبسطة، مع استخدام شريط أوامرٍ جديد وأيقونات جديدة والعديد من التحسينات. لنستعرض الآن جميع التحسينات والتعديلات المتوفرة في الإصدار الجديد من مستكشف الملفات. مستكشف الملفات الحديث لا يتضمن مستكشف الملفات الجديد علامات تبويب، ولكن هناك الكثير من التغييرات بما فيها واجهة حديثة جديدة وأيقونات وقائمة سياقٍ معادٌ تصميمها والعديد من التعديلات الأخرى. تتميز الواجهة في هذا الإصدار الجديد بسطحٍ يطابق لغة التصميم التي اعتمدتها مايكروسوفت في ويندوز 11 بزوايا مستديرة وطبقةٍ أساسية تستخدم مادة Mica، وهي عنصر يتيح للخلفية التألق من خلال التطبيق، لكنها لا تؤثر على الأداء أو عمر البطارية، ويعود السطح إلى اللون الصلب عندما لا يكون التطبيق في بؤرة التركيز، دُمجت الآن القائمة وشريط العنوان في واجهة رأس واحدة. يتخلى مستكشف الملفات أيضًا عن نمط قائمة شريط الأوامر التقليدية ليتحول إلى شريط أوامر جديد يحتوي على أيقونات جديدة، بما في ذلك أوامر قص ونسخ ولصق وإعادة تسمية ومشاركة وحذف، المميز في هذا أن شريط الأوامر لم يعد مجّرد تسمياتٍ مميزة، وهو أمر لا ينبغي أن يشكّل مشكلةً بالنسبة لمعظم المستخدمين، ولكنه قد يجعل الأمر أكثر صعوبةً في التمييز بين عمل كل زر بالنسبة لبعض الأشخاص. على الجانب الأيمن من مستكشف الملفات توجد قائمة "جديد"، والتي تتضمن خيارات إنشاء مجلد، اختصار، أو مستند جديد، ونتيجةً لذلك لن تجد بعد الآن خيار "إنشاء مجلد جديد" في شريط الأوامر، ولكن لا يزال لديك خياران لعمل ذلك: إما باستخدام قائمة "جديد" أو باستخدام اختصار لوحة المفاتيح "Ctrl + Shift + N". نظرًا لأن الشريط الذي يحتوي على علامات التبويب لم يعد موجودًا، يَستخدم مستكشف الملفات الجديد ثلاث قوائم منسدلة جديدة، بما في ذلك خيارات "الفرز" و"التخطيط والعرض" و"المزيد" لاستضافة الخيارات المتبقية. وتتضمن قائمة "الفرز" خيارات الفرز والتجميع، وهي خيارات لفرز المحتوى حسب الاسم وتاريخ التعديل والنوع والمزيد. قائمة "العرض" هي المكان الذي ستجد فيه خياراتًا لإظهار العناصر بأحجام مختلفة، مثل: كبير جدًاو كبير وصغير وقائمة تفاصيل والمزيد. تحتوي القائمة أيضًا على خيار "تمكين العرض المصغر"، بدلًا من أسلوب العرض الجديد لتوفير المزيد من المساحة المتروكة حول العناصر في التطبيق، بالإضافة إلى ذلك تضم القائمة الفرعية "إظهار" خياراتًا لإدارة عرض الجزء الأيسر أو إظهار الامتدادات أو إخفائها أو العناصر المخفية. أخيرًا، الأيقونة ثلاثية النقاط الموجودة على الجانب الأيسر مخصصة لقائمة "مشاهدة المزيد" التي تتضمن أوامر تحديد العناصر وضغط المجلدات إلى ملف ZIP، والتثبيت إلى الوصول السريع وعرض خصائص العناصر وخياراتٍ لإدارة إعدادات التطبيق. وعلى غِرار الإصدار القديم من مستكشف الملفات، ستتغير الخيارات الموجودة في شريط الأوامر وفقًا للمحتوى الذي تعمل عليه أو تعرضه؛ مما يعني أنك سترى أوامرًا مختلفة، وذلك بناءً على مكانك والملفات التي تديرها. على سبيل المثال: لن تكون القائمة "جديد" مُتاحةً في نافذة "هذا الكمبيوتر الشخصي"، ولكن قائمة "عرض المزيد" ستتضمن خياراتًا لإدارة مواقع الشبكة وتعيين محركات أقراص الشبكة. كما أنه عند تحديد صورة أو مجلد مضغوط، ستحصل على خياراتٍ ذات صلة لإدارة هذه الملفات. أيقونات جديدة يقدم مستكشف الملفات في ويندوز 11 أيقوناتٍ حديثة بأنماط وألوان واتجاهات جديدة لتتماشى مع أحدث تغييرات التصميم، وتتوفر الأيقونات الجديدة عبر المستكشف بوجه عام، ولكن تتوفر أكثر التصميمات وضوحًا لمجلدات ملفات التعريف بما في ذلك: "سطح المكتب" و"المستندات" و"التنزيلات" و"الموسيقى" و"الصور"، كما حُدِّثت أيضًا أيقونة "المجلد الجديد"، ويوجد هذه المرة شكلان من الأيقونات أحدهما يشير إلى أن المجلد فارغ، والآخر يشير إلى أن المجلد به محتوى؛ كما توجد أيقونةٌ جديدة للمجلدات المضغوطة أيضًا. ستجد أيقوناتٍ جديدة لمحركات أقراص النظام إلى جانب أيقونة مجلد ملف التعريف، بما في ذلك: محرك التثبيت ومحركات الأقراص الثانوية ومحركات الشبكة والعديد من العناصر الأخرى. قائمة السياق المعاد تصميمها يأتي مستكشف الملفات المُحدَّث أيضًا مع تصميم قائمة سياقٍ جديدة، فعند النقر بزر الفأرة الأيمن فوق عنصرٍ ما أو داخل مجلد، سوف تحصل على قائمة جديدة تتضمن صفًّا علويًا به أوامرٌ لإجراءٍ سريع، مثل: القص والنسخ وإعادة التسمية والمشاركة والحذف، ثم قائمةً بالخيارات بناءً على العنصر الذي تختاره. وباتباع نفس نهج التصميم في نظام التشغيل ويندوز 11، تشتمل واجهة قائمة السياق الجديدة على زوايا دائرية وخلفية شبه شفافة وأيقونة متسقة ومباشرة لكل إجراء. تتضمن القائمة الجديدة الأوامر الأكثر شيوعًا فقط، ولكن إن كنت بحاجة إلى خياراتٍ أخرى أو لو أردتَ إظهار قائمة السياق الكلاسيكية، فيمكنك دائمًا اختيار "إظهار المزيد من الخيارات" واختصاره على لوحة المفاتيح "Shift + F10" وذلك لفتح القائمة الكلاسيكية مع جميع الخيارات القديمة. شريط تمرير جديد حدّثت مايكروسوفت في هذا الإصدار شريط التمرير القديم أيضًا بجعله أكثر بساطة، وهو التصميم الذي سوف تراه عبر جميع العناصر المتبقية. تكامل نظام ويندوز Windows الفرعي مع نظام لينكس Linux يَدمُج مستكشف الملفات أيضًا نظام Windows الفرعي مع نظام لينكس Linux عن طريق إضافة القدرة على الوصول إلى ملفات نظام Linux بخيارٍ جديد في جزء التنقل الأيسر، فأثناء تحديد إدخال Linux على يمين النافذة سيكون لديك القدرة على الوصول إلى جميع التوزيعات المثبتة على الحاسوب، وسوف يؤدي الوصول إلى كل توزيعة مثبتة إلى موضعك داخل دليل الجذر لهذه التوزيعة. وهذا مهم إن كنت تعمل على لغات برمجة تُستهدف من خلال تطوير تطبيقات تعمل على أنظمة لينكس مثل لغة بايثون المتوفرة أساسًا على تلك اﻷنظمة. تجربة مشاركة جديدة ستجد أيضًا تجربةَ مشاركةٍ محدّثة في مستكشف الملفات الجديد، فعند النقر فوق الزر "مشاركة"، سوف تعرض الواجهةُ الجديدة أيقونةَ الملف الذي سوف تشاركه بجانب اسمه وعدد العناصر التي سوف تشاركها. في حالة لم تُفعِّل خاصية "مشاركة الأجهزة المجاورة"، يمكنك تشغيلها مباشرة من الواجهة، هناك زر لتحديد جهات اتصال أو تطبيقات أخرى إن لم تكن موجودةً في قائمة الاقتراحات. يوجد أيضًا خيار للوصول إلى صفحة إعدادات مشاركة الأجهزة المجاورة أسفل الصفحة. تغييرات أخرى عند إجراء عمليات البحث، أصبح من الممكن الآن إزالة عمليات البحث السابقة عن طريق النقر بزر الفأرة الأيمن فوق الإدخال وتحديد الخيار "إزالة من سجل الجهاز" أو النقر فوق الزر (X). إذا كنت تستخدم OneDrive، فسيكون لديك الآن خيار "استخراج الكل" عند النقر بزر الفأرة الأيمن فوق مجلد مضغوط كُوِّن مسبقًا ليكون متاحًا فقط عبر الإنترنت. بالإضافة إلى ما سبق، عند النقر بزر الفأرة الأيمن فوق برنامجٍ نصّي من PowerShell، سترى الآن خيار Run with PowerShell في قائمة السياق. عند إعادة تسمية الملفات والمجلدات في ويندوز 11، يمكنك استخدام المفتاحين "CTRL + سهم لليسار أو لليمين" لتحريك المؤشر بين الكلمات في الاسم، والمفتاحين "CTRL + Delete" أو المفتاحين "CTRL + Backspace" لحذف الكلمات في المرة الواحدة. هل حدثت مايكروسوفت كل شيء في مستكشف الملفات الجديد؟ على الرغم من أن الإصدار المُحدَّث من مستكشف الملفات File Explorer يتضمن عددًا كبيرًا من التغييرات التجميلية، إلا أن هذه التحديثات لم تطَل كل شيء، فعلى سبيل المثال: من خلال الوصول إلى "خيارات المجلد" من قائمة "عرض المزيد"، سترى الواجهة القديمة لهذه النافذة، تتضمن النافذة بعض التعديلات فقط، مثل الزوايا الدائرية للأزرار وبعض الأيقونات الجديدة، لكن لا يزال كل شيء كما كان من قبل. يمكنك العثور على الكثير من النوافذ التي لم تتغير، يمكنك رؤية هذا الأمر في صفحة الخصائص لمحركات الأقراص، وأداة التهيئة، ومعالج تعيين محرك أقراص الشبكة على ويندوز 11. على الرغم من أننا حصلنا على شكلٍ ومظهرٍ جديدَين لمستكشف الملفات File Explorer، إلا أنه لا يزال نفس مستكشف الملفات القديم ولكن بمظهر مختلف. ويمكنك ملاحظة ذلك بسرعة، إذ ما زال العديد من العناصر بمظهرها القديم، ولم تتغير العديد من الميزات كما ذكرنا. كان هذا شرحًا لمستكشف الملفات في 11 Windows، سوف نتعرف في المقال القادم على الإعدادات وكيفية تكوين إعدادات الخصوصية والأمان في نظام التشغيل ويندوز 11، نتمنى أن يكون هذا المقال قد أضاف لكم معلومات جديدة ومفيدة، وفي حال وجود أي استفسارات لا تترددوا في ذكرها لنا في التعليقات. اقرأ أيضًا نظرة سريعة على واجهة المستخدم في ويندوز 11 Windows مخطط اللقطات السريعة وسطح المكتب الافتراضي وتجربة اللمس والقلم في 11 Windows1 نقطة
-
من فضلكم ما هو اسم القالب المستخدم في موقع إيزيس https://superpaba.com/1 نقطة
-
1 نقطة
-
نعم انها كفية بالفعل لإنشاء موقع كامل باستخدامها ولن تحتاج غالباً استخدام اي عنصر لم يذكر بالدورة، إذا كنت مهتم بمطالعة html بشكل اوسع يمكنك الاطلاع على قسم الـ html من موسوعة حاسوب حيث يتم التطرق لتفاصيل التفاصيل هناك.1 نقطة
-
هل لابد ان اكون متعلم htmlوcss قبل البدئ في دورة الجافا سكريبت1 نقطة
-
1 نقطة
-
يمكن الاعتماد على BackHandler من react-native يعمل على android import React, { BackHandler } from 'react-native'; BackHandler.exitApp(); الاستخدام مع تحذير Alert backPressed = () => { Alert.alert( 'Exit App', 'Do you want to exit?', [ {text: 'No', onPress: () => console.log('Cancel Pressed'), style: 'cancel'}, {text: 'Yes', onPress: () => BackHandler.exitApp()}, ], { cancelable: false }); return true; } كما يوجد مكتبة أخرى react-native-exit-app تستعمل Native Module يمكنك تتبع التوثيق و تطبيقه واستخدامها import RNExitApp from 'react-native-exit-app'; ... RNExitApp.exitApp(); ...1 نقطة
-
كلا المكونين يستخدمان لإظهار قائمة طويلة يمكن التمرير scrolling عبرها: ScrollView يُستخدم لعرض أي نوع من البيانات داخله، كمكون ذو ارتفاع أكبر من الشاشة حتى يتمكن المستخدم من التمرير ومشاهدة المكون بأكمله. FlatList مخصص لعرض البيانات المتكررة حيث يعرضها أيضًا ضمن تنسيق قابل للتمرير scrolling. الفرق أن ScrollView يُحمل المكونات داخله مباشرة إلى الذاكرة، بينما يُحمل المكون FlatList فقط المكونات الظاهرة على الشاشة للمستخدم، ويُحمل باقي المكونات عند التمرير عليها ويفرغ من الذاكرة المكونات التي أصبحت خارج الشاشة، لذا نستخدم المكون FlatList عند عرض قوائم بيانات طويلة لتوفير استخدام الذاكرة، أما ScrollView خلاف ذلك. يمكنك القراءة أكثر في صفحة مرجع المكون FlatList وصفحة استخدام المكون ScrollView، والاستفادة من المقال التالي:1 نقطة
-
للعديد من التطبيقات التي تشغلها على حاسوبك واجهة مستخدم، تحتوي غالبًا على أزرار للنقر أو أيقونات للسحب أو حقول نصية للكتابة فيها، وتستخدم بعض التطبيقات الطرفية terminal (أو سطر الأوامر) واجهةً لها، حيث يكتب المستخدم الأوامر بدلاً من النقر فوق الأزرار أو سحب الأيقونات، وتخصَّص الواجهة البرمجية للتطبيقات Application Programming Interface -واختصارًا API- للتطبيقات بدلًا من المستخدمين. تُوجَّه جميع أجهزة الحاسوب في النهاية للمستخدم، ولكن الواجهة البرمجية للتطبيقات تسهّل على المستخدمين كتابة تعليمات برمجية للتحكم بالتطبيق، وقد تكون الواجهة البرمجية للتطبيقات غير فعالة وغير مباشرة لاستخدام التطبيق بالنسبة للبشر، ولكنها طريقة مناسبة لأجهزة الحاسوب لإرسال الإشارات، والحصول على بيانات مفيدة من التطبيقات الأخرى، ويمكن الوصول إليها محليًا أو عبر شبكة -أكبرها الإنترنت-، ويمكن تصميمها لتقبل مدخلات من عدة لغات برمجة وبروتوكولات، ويكثر استخدامها في تصميم ألعاب الفيديو وتعديلها، وتوسيع التطبيقات المعقدة، واستخراج البيانات data scraping والتفاعل معها. البرمجة المبسطة باستخدام الواجهة البرمجية للتطبيقات API من ميزات الواجهة البرمجية للتطبيقات قدرتها على إخفاء متطلبات التعليمات البرمجية المعقدة عن المستخدم، فعلى سبيل المثال، هذا برنامج بسيط مكتوب بلغة C لطباعة جملة "Hello world" على الشاشة: #include <stdio.h> int main(int argc, char *argv[]) { int i; for(i=1;i<argc;i++) { printf("%s\n",argv[i]); } return 0; } يمكن للواجهة البرمجية للتطبيقات المكتوبة لإخراج نفس النتيجة أي طباعة جملة "Hello world" أن تبسط التعليمات البرمجية تبسيطًا كبيرًا، وفيما يلي واجهة برمجية لتطبيقات وهميةً مثالًا على ذلك: cprint(hello_msg) تعليمات إنشاء API معقدةً عادةً، كما هو موضح في مثال Lua، لكن المستخدم النهائي ليس مضطرًا للتعامل مع ذلك، فالشيء الوحيد الذي سيراه هو لغة برمجة مبسطة تمكنه من الوصول إلى نتائج الحسابات المعقدة للغاية. الاستعلامات المبسطة باستخدام الواجهة البرمجية للتطبيقات API يمكن من خلال الواجهة البرمجية للتطبيقات توفير تعليمات للمستخدمين النهائيين لتنفيذ إجراءات محددة أو استعلامات queries عن المعلومات، إذ تمكّن الواجهة البرمجية API المستخدمين من الاستفادة من ميزات البرنامج دون الحاجة لتعلم أوامر برمجية معقدة أو كشف بياناتهم الحساسة، فمثلًا إذا شغلت منتدى دعم أو خادم دردشة فقد ترغب في مشاركة عدد المستخدمين الآخرين -فكلما زاد عدد المستخدمين الموجودين زادت فرصة الحصول على إجابة لسؤال الدعم- لكنك لن تشارك أسماءهم أو أنشطتهم. ومن أمثلة ذلك إصدار API الذي نُفذ بواسطة مضيف Git مفتوح المصدر GitLab، حيث يحتوي GitLab على واجهة برمجية للتطبيقات غنية بالميزات تساعد المطورين على تحديد أحدث إصدارات برامجهم، ويمكن للمبرمجين إنشاء إصدار من خلال واجهة الويب في GitLab، إلا أن العديد من المطورين يفضلون أتمتة العملية بحيث لا نحتاج للنقر يدويًا عبر شاشات الخيارات، ويتيح GitLab إرسال الأوامر عبر بروتوكول HTTP باستخدام طريقة الإرسال POST، وهذا مثال عن ذلك: $ curl --header 'Content-Type: application/json' \ --header "PRIVATE-TOKEN: example_token" \ --data '{ "name": "Release", "tag_name": "2.4", "description": "Fixed Makefile.am" }' \ --request POST https://gitlab.com/api/v4/projects/trashy%2Ftrashy للواجهة البرمجية للتطبيقات GitLab العديد من الميزات، منها الحصول على معلومات حول الوسوم والإصدارات وحذف الإصدارات وتحديثها وما إلى ذلك، ومن السهل على المطورين استخدامها ودمجها في عملياتهم الحالية، لأنها تستخدم طرائق إرسال HTTP القياسية. مفتاح الواجهة البرمجية للتطبيقات API نلاحظ في مثال GitLab أن مفتاح الواجهة البرمجية للتطبيقات API key كان مطلوبًا، ووظيفته هي نفس وظيفة اسم المستخدم وكلمة المرور في الواجهات التفاعلية، ولكن سيكون تقديم حقل اسم مستخدم وكلمة مرور -مثل الذي تراه عند تسجيل الدخول للتحقق من بريدك الإلكتروني- معقدًا؛ لأنه من المتوقع أن يكون الكيانان المتفاعلان من خلال الواجهة أجهزة حاسوب، لذا يُصدر للمبرمج مفتاح الواجهة البرمجية للتطبيقات يضمَّن في التعليمات البرمجية المكتوبة ليتمكن من التفاعل مع الواجهة. يختلف الحصول على المفتاح بناءً على كاتب الواجهة البرمجية للتطبيقات التي تريد استخدامها، فمثلًا توفر GitHub مفتاح واجهة برمجية للتطبيقات في لوحة إعدادات رموز الوصول Access Tokens، بينما تقدم خدمة Twitter -مغلق المصدر- المفاتيح من خلال نطاق فرعي subdomain للمطورين، وتعدّ مفاتيح الواجهة البرمجية للتطبيقات من أدوات المطور؛ لذا نادرًا ما تُصدر لكل مستخدم تلقائيًا، لكنها تحجَز للمستخدمين المتقدمين عند الطلب، ولها نفس مزايا اسم المستخدم وكلمة المرور، فهي تنظم الوصول إلى البيانات الحساسة، وتسمح الواجهة البرمجية للتطبيقات بالكشف عن المعلومات كشفًا انتقائيًا بناءً على الاستدعاءات التي تُوفر من خلالها، وهنا يمكن للمفتاح إجراء استثناءات أيضًا بناءً على احتواء طلب الاستدعاء على مفتاح صالح أم لا . الفرق بين حزمة أدوات تطوير البرامج SDK والواجهات البرمجية للتطبيقات API تجرد الواجهة البرمجية للتطبيقات الدوال البرمجية لتطبيق عن أدوات التحكم بها، أما حزمة أدوات تطوير البرامج SDK فهي دوال البرمجة للتطبيق حرفيًا. تستخدم الواجهة البرمجية للتطبيقات API في التطبيقات المفتوحة المصدر غالبًا لتوفير الراحة أو الأمان، وتسهل في بعض الأحيان على المبرمج إنشاء أدوات حول تطبيق معقد دون الحاجة إلى فهم الكثير حول كيفية عمله، كما يمكن أن تعمل على حماية البيانات المهمة أو الحساسة مع السماح بالوصول إلى البيانات الأخرى، أما في التطبيقات مسجلة الملكية، فتقدَّم حزمة أدوات تطوير البرامج SDK على أنها الجزء "الأكثر انفتاحًا" من شيفرة البرنامج المصدرية، ويلزمنا غالبًا دفع المال للحصول عليه قانونيًا، ويكون جزء المنتج الذي يدفع المطورون ثمنه ليتمكنوا من التطوير باستخدامه. لا حاجة إلى أدوات تطوير البرامج في التطبيقات مفتوحة المصدر من الناحية التقنية؛ لأن الشيفرة المصدرية متاحة للاستخدام والتعديل مباشرةً من قبل أي شخص، ومع ذلك توفر بعض المشاريع مفتوحة المصدر حزمة أدوات تطوير البرامج مثل طريقة لتوضيح الدوال الأكثر أهميةً لحالات الاستخدام الأكثر شيوعًا للمطورين، فعلى سبيل المثال عندما تطور تطبيق Qt، يمكنك استخدام أدوات تطوير برامج Qt بالرغم من أن Qt مفتوحة المصدر، أي أنك ستستخدم مكتبات Qt لتطوير التطبيق، أما إذا أردت تطوير Qt نفسها، فستكتب مكتبات بنفسك، لذا لن تستخدمها في عملية التطوير. يمكن ألا يكون الفرق بين حزمة أدوات تطوير البرامج والواجهة البرمجية للتطبيقات واضحًا في بعض الحالات، ولكن عمومًا توفر حزمة أدوات تطوير البرامج الوصول إلى المكتبات، بينما تستخدم الواجهة البرمجية للتطبيقات هذه المكتبات لإنتاج نتيجة بناءً على أمر معين يمكن تنفيذه من خلالها. إنشاء واجهة برمجية للتطبيقات API تعمل الواجهة البرمجية للتطبيقات على تسهيل التفاعل، وفي علم الحواسيب غالبًا ما يكون التفاعل عبارةً عن طلب وإجابة، وإذا كتبت شيفرةً تستمع إلى التعليمات عبر بروتوكول -دون تدخل بشري مباشر أو معه- فمن المحتمل أنك أنشأت واجهة برمجية لتطبيقات. يمكن كتابة API بأي لغة برمجة، وكُتِب العديد منها بلغة Java بمساعدة البرامج الوسيطة middleware مثل JBoss وscale3، بينما كُتب البعض الآخر بلغة Python باستخدام Flask أو Django أو Pyramid، بينما لا يزال البعض الآخر مكتوبًا بلغات Ruby وPerl وLua وC و++C وNET.، وأي لغة أخرى تقريبًا. الواجهة البرمجية للتطبيقات من نمط RESTful وصف الدكتور روي فيلدنغ Roy Fielding في إحدى أطروحاته أسلوب API الذي أسماه "Representational State Transfer"، والذي يعرف اختصارًا REST، وهنالك عدد من المعايير والشروط التي تجعل الواجهة البرمجية واجهةً من النمط RESTful، ومن أهمها أن تكون عديمة الحالة statelessness، أي أن لا يخزن الخادم (وهو جانب الواجهة البرمجية للتطبيقات الذي يتخذ إجراءً بناءً على الطلبات الواردة من العميل) أي بيانات للمستخدم، وأن يستلم كل ما يحتاجه من البيانات منه، أي يجب أن تحتوي الواجهة البرمجية للتطبيقات من النمط RESTful على استدعاءات مصممة لتوفير جميع البيانات اللازمة لإكمال التفاعل. فإذا كتبت واجهةً برمجيةً للتطبيقات لتوفير الرصيد المصرفي للمستخدم، فيجب أن تستقبل اسم المستخدم وكلمة المرور -أو مفتاح API- والحساب المصرفي المقصود، والأمر المطلوب لاسترداد الرصيد المصرفي، بالإضافة إلى أي خيارات مثل نوع العملة واللغة، ويجب تقديم كل هذه المعلومات مع كل طلب؛ لأن الخادم سيعود -بعد كل طلب- إلى حالة عدم المعرفة الافتراضية، كما لو أنه لم يستلم أي طلب من أي شخص، حتى لو أجرى المستخدم مهامًا ذات صلة من قبل، مثل الحصول على رصيد الحساب قبل تحويل الأموال من هذا الحساب إلى حساب آخر، وسيطلب الخادم مرةً أخرى إرسال جميع بيانات الاعتماد والتفاصيل ضمن الطلب. توجد عدة فوائد للواجهة البرمجية للتطبيقات من النمط RESTful، منها فصل العميل والخادم، ولكن هذا ليس كل شيء، فنظرًا لعدم تخزين الخادم لبيانات المستخدم وعدم اعتماده على نوع معين من الواجهات؛ فيمكن لعدة مطورين تطوير عملاء فريدين للخوادم، أي سنتمكّن من تطوير تطبيق هاتف وتطبيق قائم على الطرفية terminal-based لنفس الخادم دون تعديل، لأن الواجهة البرمجية للتطبيقات توفر واجهةً متوافقةً مع كليهما، إذ تعمل معظم الأوامر الطرفية بنفس الطريقة، حتى أن الأوامر التي تسمح لملفات الإعدادات (التي تخزن الخيارات الدائمة) لا زالت توفر متغيرات البيئة أو خيارات سطر الأوامر لتحديد المعاملات parameter والمدخلات والمخرجات المهمة، لذا يشبه التعامل مع الواجهة البرمجية للتطبيقات من النمط RESTful إلى حد كبير تنفيذ أمر على نظام آخر. الاستفادة من الواجهة البرمجية للتطبيقات إذا لم تستخدم الواجهة البرمجية للتطبيقات مطلقًا، فحاول استخدامها لشيء بسيط، ودوّن ملاحظات حول ما يعجبك فيها وما حدودها، وإذا كنت مطورًا فحاول كتابة واجهة برمجية للتطبيقات، إذ ساعد مفهوم الواجهة البرمجية للتطبيقات، مثل التطبيقات مفتوحة المصدر نفسها، على أن تصبح الحوسبة أكثر مرونةً وسهولةً وكفاءةً، فتعلمه، واجعله مفتوح المصدر! لمعرفة المزيد حول الواجهة البرمجية للتطبيقات يمكنك الرجوع إلى المقالات ضمن وسم api ترجمة -وبتصرف- للمقال ?What is an API من موقع opensource.com. اقرأ أيضًا مقدمة إلى واجهة برمجة التطبيقات Stream API في جافا إنشاء واجهة برمجية API في Laravel 5 الواجهة البرمجية fetch في JavaScript إنشاء واجهة برمجية بسيطة باستخدام إطار العمل المصغّر Lumen1 نقطة
-
الإصدار 1.0.0
13443 تنزيل
يأخذ هذا الكتاب بيدك في أمثلة عملية ومتنوعة تغطي أساسيات SQL وأساسيات إدارة قواعد بيانات Postgres، وتمر على مزايا مهمة في Postgres تزيد من فاعلية الاستعلامات ووضوح عبارتها، ويصل هذا الكتاب إلى مواضيع متقدمة في إدارة قواعد البيانات كالنسخ الاحتياطي وتتبع استخدام الذاكرة، وبذلك يتميز بأنه مناسب للمبتدئ والمتوسط ويضع قدمك على سكة المستوى المتقدم في قواعد بيانات Postgres. بني هذا الكتاب بدايةً على دليل PostgresGuide لمؤلفه Craig Kerstiens المرخص تحت رخصة CC BY-NC أي كان ترجمةً لذلك الدليل فقط، ولكن لمَّا وجدنا الإصدار المستعمل فيه من Postgres قديمًا وينقص الدليل عدة مواضيع إضافية، آثرنا البناء عليه وتحسينه وإضافة كل ما نراه ناقصًا ليحقق الكتاب مبدأ 80/20. فيما يميزه عن غيره، فهو أننا اتبعنا في بداية العمل على هذا الكتاب قاعدة باريتو 80/20، حيث حرصنا على تغطية 20% من مواضيع PostgreSQL التي تُستخدَم في 80% من الحالات في الواقع والمجال العملي، إذ حاولنا الابتعاد عن التفاصيل غير العملية أو قليلة الاستخدام، أي أن هذا الكتاب لا يتطرق إلى شرح أو استخدام الأدوات المتقدمة والتي قد يندر استخدام بعضها، فلم نرد عرض شيء لا يستخدم إلا في حالات قليلة (تكون قد نسيتها إلى حين استعمالها ;-) ). ساهم بالعمل على هذا الكتاب، مصطفى عطا العايش تأليفًا، وجميل بيلوني تحريرًا وإشرافًا، وأخرجه فنيًا فرج الشامي. نرجو أن نكون قد وفقنا في هذا العمل بتوفير دليل عملي نافع يثري المكتبة العربية. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «المرجع الشامل إلى تعلم PostgreSQL»، أو من هنا مباشرةً مما يلي: الفصل الأول: نظرة عامة على Postgres وتاريخها الفصل الثاني: تثبيت Postgres والتعرف على أساسيات إدارتها لقواعد البيانات الفصل الثالث: أساسيات استخدام صدفة psql الفصل الرابع: استخدام أساسيات SQL في Postgres الفصل الخامس: مزايا متقدمة في Postgres الفصل السادس: أنواع بيانات خاصة في قواعد بيانات Postgres الفصل السابع: إدارة النسخ الاحتياطي في قواعد بيانات Postgres الفصل الثامن: أساسيات إدارة الذاكرة في قواعد بيانات Postgres الفصل التاسع: كيفية إدارة الأداء في قواعد بيانات Postgres الفصل العاشر: أوامر متقدمة في صدفة psql1 نقطة