-
المساهمات
6975 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
218
إجابات الأسئلة
-
إجابة Wael Aljamal سؤال في استفسار عن ربط بايثون مع HTML كانت الإجابة المقبولة
ليتم إرسال البيات للمخدم، علينا استعمال بروتوكول http والذي يتكفل بنقل البيانات عبر الانترنت، وفي صفحة HTML يتطلب وضع عنصر form اي الاستمارة، ويتم تحديد الخاصية action والتي هي مسار ملف بايثون الذي سيستجيب للطلبية، والخاصية method والتي هي http method التي تحدد نوع الطلبية المراد إرسالها للخادم، هل هي لجلب البيانات من قاعدة البيانات أي get أو إرسال ملفات و استمارات post او حذف بيانات delete..
أي عليك الاطلاع على كل من:
HTML form http protocol python request مكتبة
بعد فهم الاساسيات، انتقل لتعلم إطار عمل Django وهو اشهر back end للغة بايثون
-
إجابة Wael Aljamal سؤال في هل تمكن دورات برمجة التطبيقات من إنشاء تطبيقات متنوعة في مجالات مختلفة و متكاملة كانت الإجابة المقبولة
في كل من الدورتين يتم لبناء تطبيقات الجوال IOS - Android باستخدام التقنيات المتاحة من كل تقنية تابعة لكل منصة
التطبيقات التي يتم شرحها في الدورة، تستخدم العديد من المكتبات البرمجية وتمكن من التطبيق على طرق مختلفة لحل المشاكل البرمجية في التصميم (كيفية ترتيب بنية ملفات المشروع و تضمين الملفات و تسلسل كتابة الشيفرة و كيفية تبادل البيانات بين مكونات التطبيق و بين التطبيق و المخدم وقواعد البيانات) مما يضع الطالب أما تجربة عملية لكل تفاصيل عملية البرمجة في كل من التقنيات لتي يتدرب عليها. وكل دورة تشرح عدد من التطبيقات المختلفة بالطبع.
جميع الدورات في أكاديمية حسوب مشروحة باللغة العربية الفصيحة ومفهومة وواضحة لتكون متاحة لكل العرب وليس عليك أن تكوني جيدة بالانكليزية للنجاد بالدورة، إنما اللغة الانكليزية مطلوبة بشكل عام ضمن مجال البرمجة.
يتم شرح الأساسيات لكل دورة، على الأغلب لن تضطر لتعلم الأساسيات من مصدر خارجي.. على كل حال المسارات الأساسية في كل دورة متاحة لجميع الطلاب الذين اشتروا دورة واحدة على الأقل من دورات أكاديمية حسوب، ويوجد شرح لأساسيات الويب ويمكنك متابعته إن دعت الحاجة، ولاتنسى أن لتعلم البرمجة على الطالب أن يمتلك مهارات البحث و حل المشكاكل فلا بأس أن يعتمد على نفسه في بعض الأحيان، كما يمكن طرح أي سؤال وسيتم الإجابة عليه من قبل المدربين المتابعين للدورات.
-
إجابة Wael Aljamal سؤال في لدي ميول لتعلم البرمجة ولكن الرياضيات عاىق امامي، أرشدوني للدورة المناسبة كانت الإجابة المقبولة
اهلا نعيمة،
أهنئك على شغفك في تعلم البرمجة، فهي تنشط العقل و تطور سبل التفكير ولاتقتصر على عمر محدد..
بالنسبة لدورة علوم الحاسب و الرياضيات، فهي غير اساسية في تعلم البرمجة! لن تحتاجي لأكثر من العمليات الحسابية الرئيسية مثل جمع وطرح و ضرب وقسمة والعمليات الخاصة بالمقارنة، مثل أكبر و اصغر ويساوي.. ولا تقلقي فإن كل شيى مشروح بطريقة جيدة و يمطن خلال الدورة الاستفسار عن اي شيى غي رمفهوم او يحتاج لشرح إضافي.. ستتعلمين الخوارزميات الأساسية و كيفية تسلسل تنفيذ الشيفرات و سوف تستمتعين ببرمجة لغة سكراتش فهي بيئة تفاعلية ومسلية و تعتمد على العديد من الأفكار البرمجية (تحريك الأشياء و تفاعلها مع بعضها ضمن دروس المشاريع) وغير ذلك من مفاهيم برمجية.
يمكنك تخطي المسارات التي ترينها معقدة واختصاصية إن لم تريدي دراستها مباشرة فلا مشكلة في ذلك..
بالنسبة لدورة تصميم واجهات المستخدم، فهي دورة مركزة و خاصة لتهيئة الطالب لسوق العمل وتعلم جميع الأدوات المستخدمة في تصميم الواجهات بكامل التفاصيل، ومساراتها من الاساسيات للمتقدم بشكل كبير.
اعتقد ان دورة علوم الحاسب ومسار سكراتش هو الأنسب لكِ.
بالنسبة للخصومات، ارجو التوجه لمركز مساعدة حسوب.
-
إجابة Wael Aljamal سؤال في ظهور الخطأ Cannot find module express في node.js كانت الإجابة المقبولة
سبب المشكلة هو عدم تثبيت express على مستوى المشروع locally، والتي يمكن تطبيقها بإحدى الطريقتين:
npm install express or npm install express --save يعد expres اعتمادية خاصة بالمشروع لذلك يتطلب تثبيته محليا، الحزم البرمجية التي يتم تثبيتها globally تكون تتطلب أن تعلم على مستوى نظام التشغيل مثل unit test runners or bootstrappers.
إذا كان node_modules عندك في مسار آخر يمكنك إضافته لمتغيرات البيئة :
set NODE_PATH=your\directory\to\node_modules;%NODE_PATH% إن كنت تريد ربط node_modules المحلي بمجلد آخر على مستوى النظام يمكن عمل وصلة:
npm link <module>
-
إجابة Wael Aljamal سؤال في هل يتوفر لديكم كوبون خصم؟ كانت الإجابة المقبولة
يمكنك الاستفسار عن كوبون الخصم من خلال مركز مساعدة حسوب: help.hsoub.com
-
إجابة Wael Aljamal سؤال في هل استطيع زيادة الدخل من خلال العمل كمستقل فريلانسر (مطور ويب) ؟؟ كانت الإجابة المقبولة
نعم بالطبع يمكنك ذلك، إن كان لديك وقت وتستطيع الالتزام مع العملاء فإن العمل الحر هو طريقة جيدة لزيادة الدخل،
يمكنك عمل حساب في موقع مستقل، ثم التقديم على المشاريع فيه، أو إنشاء حساب في موقع خمسات ثم تقوم بإضافة الخدمات التي يمكنك تقديمها للعميل.
الطريقة الثانية من خلال العملاء السابقين لك، والذين ربما رأوا عملك فيه درجة عالية من الاحتراف، وسيقومون يتوظيفك في مشارع أخرى.
-
إجابة Wael Aljamal سؤال في كيف تضمن لي الأكاديمية استرداد استثماري خلال 6 أشهر وهل سوف تساعدني الأكاديمية على إيجاد فرصة عمل في خلال تلك الفترة عند الحصول على أي دورة؟ كانت الإجابة المقبولة
بمجرد اشتراكك في أي دورة من دورات أكاديمية حسوب، فهذا يعني عمل اتفاق بينك و بين الأكاديمية، وينص الاتفاق على جميع الفقرات و الوعود الموجودة في شروحات الدورات، وهي استرداد قيمة الاستثمار و المتابعة بعد الدورة من قبل مختصي الاكاديمية وغيرها..
أرجو مراجعة ماتقدمه الأكاديمية من شروحات في صفحة كل دورة منها، وهذا ما تلتزم الأكاديمية بتقدمه لطلابها، وبحالة استرداد الأموال، يكفي فتح تذكرة من خلال مركز مساعدة حسوب وسيتم إعادة أموالك، طبعا عليك تقديم التذكرة قبل مرور 6 أشهر على تاريخ تخرجك منها.
رابط: مركز مساعدة حسوب
-
إجابة Wael Aljamal سؤال في هل تكفي دورة تطوير واجهات المستخدم لبناء موقع الكتروني؟ كانت الإجابة المقبولة
إن دورة تطوير واجهات المستخدم، تمح لك ببناء واجهات المواقع أي كل مايظهر للمستخدم و تهتم بالتفاصيل الخاصة بالعرض بشكل كبير وتؤمن فهم كافة الخيارات و الأدوات اللازمة ليظهر الموقع بالشكل المطلوب للمستخدم وبأحسن أداء (زمن تحميل الصفحة) و توافقيتها مع الشاشات المختلفة.
بناء المواقع الالكترونية يحتاج معظم الأحيان للبرمجة الخلفية Back-End أي معالجة طلبات العميل(مستخدم الموقع) بعد النقر على زر ما أو عمل أي تعديل في واجهات الموقع، ليتم تعديل البيانات في قاعدة البيانات و إعادة مشاركتها مع باقي المستخدمين للموقع.
أي لبناء موقع متكامل تحتاج لتعلم كل من Front-End (واجهات المستخدم) و Back-End (برمجة الموقع وقواعد البيانات) ودورة تطوير واجهات المستخدم مسؤولة عن Front-End فقط. ولتعلم Back-End لاحقاً تحتاج لتعلمها لوحدك.
إن كنت ترغب بعمل موقع متكامل يفضل التسجيل إما في دورة جافاسكربت أو PHP (لا يركزان على الواجهات الأمامية لكنها مشروحة بطريقة جيدة) وهنا سيكون الموقع ديناميكيا يمكنك من حفظ بيانات في القاعدة و تعديلها كموقع حقيقي.
-
إجابة Wael Aljamal سؤال في تحويل مصفوفة NumPy إلى قائمة List في Python؟ كانت الإجابة المقبولة
يمكن استخدام الدالة tolist لتحويل مصفوفة numpy إلى list :
np.array([[1,2,3],[1,2,3]]).tolist() => [[1, 2, 3], [1, 2, 3]] أو استخدم flatten :
list(a.flatten()) هذه الدالة تحول المصفوفة لمصفوفة من بعد واحد، ما يسمح بتحويلها لقائمة مباشرة
-
إجابة Wael Aljamal سؤال في التعامل مع لارافيل و ajax كانت الإجابة المقبولة
يمكنك وضع متغير بولياني تتغير قيمته مثلا من true إلى false بعد النقر على الزر، و حتى إسترجاع الطلب تعود على ماكانت عليه وستضع شرطا في اول جزء معالجة الطلب يختبر المتغير إن كان false يعمل return مباشرة. ويمكن وضع مؤقت زمني يضمن حصول تأخير بعد وصول الطلبية و الأفضل هنا عرض إشعار بنجاح إضافة البيانات، يفضل دمج الخاصتين سويا.و يمكنك ايضا إبطال الزر بعمل disable له حتى إكتمال الطلبية.
getElementById("Button"). disabled = true
-
إجابة Wael Aljamal سؤال في هل توجد دالة في NumPy لإرجاع الفهرس الأول لشيء ما في المصفوفة؟ كانت الإجابة المقبولة
إن مصفوفة numpy لا تملك الطريقة index لأنها خاصة بالقوائم list، بل لنبحث عن العناصر التي تحقق شرطاً ضمن مصفوفة numpy علينا استخدام الطريقة where;
# نفرض أن لدينا مصفوفة عشوائية v = np.random.randn(10) print(v) # نطبيق دوال البحث عن أكبر و أصغر عنصر فيها كمثال maximum = np.max(v) minimum = np.min(v) print(maximum, minimum) # where للبحث عن دليل العناصر التي تساوي أحد القيم الموضوعة في الشرط نستخدم index_of_maximum = np.where(v == maximum) index_of_minimum = np.where(v == minimum) أصبح لدينا مصفوفتين نحويان دلائل indexes لكل من العناصر التي تساوي أكبر و أصغر قيمة
-
إجابة Wael Aljamal سؤال في هل على مطور الواجهات الأمامية تصميم الموقع بنفسه؟ بيئة عمل تطوير واجهات المواقع كانت الإجابة المقبولة
إن عمل مصمم على المشروع، على الأغلب سيتم تصدير ملف التصميم كملف فوتوشوب أو ماشابه ويمكنك من خلال البرنامج المناسب، دراسة التصميم و استخلاص الأبعاد و القياسات و الألوان و نوع الخطوط و حجمها.. كل شيئ تقريبا
إن لم يتم توفير ملفات التصميم، وأرسلو لك صوراً عليك تقليد الصور باستخدام مهاراتك، لذلك يفضل الاتفاق على هذه الجزئية قبل البدء ببرمجة تصميم الموقع.
-
إجابة Wael Aljamal سؤال في ما السبب فى هذا الخطأ عندما ارفع ملفاتى على جيت هاب كتعديل على مشروع موجود كانت الإجابة المقبولة
يوجد تعديلات على المستودع البعيد (في غيت هاب) وليست لديك في المستودع المحلي (ربما حذفت ملفات git من مستودعك المحلي)،
إن كان كل شيئ على ما يرام في مشروعك الحالي:
أرجو تنفيذ الأمر:
git push -- force origin هذا سيقوم بتثبيت جميع ملفاتك المحلية على المستودع،
وإلا في حال وجود تعديلات في المستودع البعيد عليك ضمها لمشروعك المحلي أي نفذ:
git pull ثم أعد عمل git push.. ليتم رفع التحديثات
-
إجابة Wael Aljamal سؤال في كيف يمكن رفع التطبيقات على google play و app store وكيف يأتي الربح من خلال رفع هذه التطبيقات على المنصتان؟ كانت الإجابة المقبولة
رفع التطبيقات:
هي عبارة عن جزئين، أولا، يتطلب منك عمل حساب مطوّر عند كل من google و apple لأن هذه الحسابات قادرة على رفع التطبيقات للمتجر.
ثانياً، يتم تصدير المشروع البرمجي لملف تطبيق الهاتف المحمول والذي يكون بصيغة apk أو aab لنظام اندرويد ، او يكون بصيغة ipa لنظام ios.
بعد توفير الامور السابقة، تقوم بإنشاء صفحة للتكبيق على المنصات المختصة و تملأ استمارات بمعلومات التطبيقين، ثم تطتحدد ملفات التطبيقات و ترسلهم للمخدم، بعد المراجعة من قبل فرق كلا الشركتين يتم الموافقة على التطبيق و عندها يمكن البحث عن التطبيق من خلال اسمه وتثبيته عند المستخدمين.
بالنسبة للأرباح، لايوجد أرباح على رفع التطبيقات، بل عن طريق عدة احتمالات ..
مثلا، إعلانات داخل التطبيق مثل admob الخاصة بغوغل او إعلانات فايسبوك.. عضوية او نحتوى يتطلب الدفع.. عمليات شراء ضمن التطبيق وغبرها من أساليب الربح من التطبيقات.
-
إجابة Wael Aljamal سؤال في ما هي الوظائف التي تؤهلني إليها دورة علوم الحاسوب؟ كانت الإجابة المقبولة
إن دورة علوم الحاسب متنوعة جداً، تعطيك فهم جيد للعديد من المجالات ضمن علوم الحاسوب، وإن اطلعنا على تفاصيل المسارات
فإن الدورة ستمنحك معرفة متقدمة بأهم مواضيع علوم الحاسوب، بداً من مكونات الحاسوب والتفكير المنطقي مروراً بأساسيات البرمجة ولغة جافاسكربت وحتى المواضيع الأكثر تقدماً مثل أنظمة التشغيل، قواعد البيانات وعالم الويب وهذا يعتبر بداية قوية و أساسية للاختصاص بعدها في مجال معين، لأن التخصص هو المطلوب في سوق العمل و عصرنا الحالي حيث لا يمكن لشخص واحد إتقان كل التنقنيات و عمل مشاريع بها جميعها.
العمل الذي من الممكن أن تجده حسب رأيي الشخصي:
مدرس أساسيات البرمجة - قواعد البيانات - الويب - الخوارزميات - سكراتش - سطر أوامر نظام لينوكس مدير قواعد بيانات (مسؤول عن العمليات الأساسية فيها) - نسخ احتياطي و إدارة قواعد البيانات مدير نظام لينكس، يحل مشاكل السيفرات و له خبرة في برمجيات هذا النظام فهم أساسيات الشبكات و الخوادم و حماية الويب لن تكون الوظيفة تخصصية بشكل كبير، ولكن بعد الفهم الجيد للدورة هنالك فرصة جيدة في إيجاد عمل.
-
إجابة Wael Aljamal سؤال في ما الفرق بين دورة تطوير التطبيقات باستخدام لغة javascript و دورة تطوير تطبيقات الجوال باستخدام تقنيات الويب وما هي الوظائف التي تؤهلني إليها كلاً منهما؟ كانت الإجابة المقبولة
إن كلاً من الدورتين تؤهلان الطالب لبرمجة المواقع الالكترونية و تطبيقات الهاتف المحمول على حدٍ سواء.
دورة تطوير التطبيقات باستخدام لغة javascript: تركز على جافاسكربت و تقنياتها وتحوي مسارات متنوعةـ في الواجهات الأمامية front-end أي react و الخلفية back-end أي node js و القواعد البيانات (عدة قواعد بيانات) و تطبيقات سطح المكتب و الهاتف المحمول باستخدام react native، هي دورة تعتمد بشكل كلي على جافاسكربت و المكتبات و التقنيات التي تعمل على هذه اللغة وتوفر بيئة تطوير متكاملة لجميع المنصات التي من الممكن أن ترغب بأن تطور منتج برمجي لها.
دورة تطوير تطبيقات الجوال باستخدام تقنيات الويب cordova: تعتمد هذه الدورة على تقنيات الويب في تطوير نطبيقات الهاتف المحمول (ومواقع الويب تولد تلقائيا) بالاعتماد على HTML - CSS - Javascript (جافاسكربت أيضا أساسية هنا) كما تحوي الدورة على استخدام قواعد البيانات و لغات الواجهات الخلفية back-end أداء التطبيقات في React Native أفضل من كوردوفا و أنصح بدورة جافاسكربت، لأن تركيزك على جافاسكربت يفتح لك الباب تقريبا لجميع المجالات.
إجابات مفيدة:
-
إجابة Wael Aljamal سؤال في جلب mac address باستخدام Laravel كانت الإجابة المقبولة
يمكن الوصول ل mac address الخاص بجهاز المستخدم في حال كان متصلا بنفس الشبكة، يستخدم للتميز بين الأجهزة المتصلة على نفس الشبكلة مثلا wifi داخلية أو Ethernet وهو غير متاح للشبكات الخارجية،
إن كنت تريد mac address الخاص بالمخدم يمكن تنفيذ:
<?php echo exec('getmac'); ?> أو <php system('getmac'); ?> أو <?php $mac = system('arp -an'); echo $mac; ?> في لارافيل:
<php Route::get('/getmacshellexec',function() { $shellexec = shell_exec('getmac'); dd($shellexec); } ); Route::get('/getmacexec',function() { $shellexec = exec('getmac'); dd($shellexec); } ); يمكن استخدام الدوال:
<?php function getMAcAddressExec() { return substr(exec('getmac'), 0, 17); } echo getMAcAddressExec(); function getMAcAddressShellExec() { return substr(shell_exec('getmac'), 159,20); } echo getMAcAddressShellExec(); لايمكن لجافاسكربت الوصول ل mac address
الموضوع حساس و متعلق بالحماية ولن تعمل في معظم المتصفحات
يمكن أن تعمل في انترنت اكسبلورر IE باستخدام ActiveXObject:
function showMacAddress() { var obj = new ActiveXObject("WbemScripting.SWbemLocator"); var s = obj.ConnectServer("."); var properties = s.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration"); var e = new Enumerator(properties); var output; output = '<table border="0" cellPadding="5px" cellSpacing="1px" bgColor="#CCCCCC">'; output = output + '<tr bgColor="#EAEAEA"><td>Caption</td><td>MACAddress</td></tr>'; while (!e.atEnd()) { e.moveNext(); var p = e.item(); if (!p) continue; output = output + '<tr bgColor="#FFFFFF">'; output = output + '<td>' + p.Caption; +'</td>'; output = output + '<td>' + p.MACAddress + '</td>'; output = output + '</tr>'; } output = output + '</table>'; document.getElementById("box").innerHTML = output; } showMacAddress(); <div id='box'></div>
-
إجابة Wael Aljamal سؤال في تحويل سلسلة نصية تحوي ارقام لمصفوفة ارقام في لغة dart كانت الإجابة المقبولة
نلاحظ أنه لدينا سلسلة نصية، نريد تقطيعها حسب الفاصلة، ثم نحول كل عدد منها لرقم (هو حاليا نص) ثم نعيد جمع الناتج لقائمة
example .split(',') // تقطيع السلسة .map((String text) => int.parse(text)) // تحويل لأعداد .toList(), // تحويل لقائمة حيث أن example هو رد السيرفر أي قيمة الحقل category
-
إجابة Wael Aljamal سؤال في خاصية تغيير لون الزر لا تعمل فى Android studio كانت الإجابة المقبولة
ضمن activity_main إن قمت بتغيير الزر من Button> إلى
<androidx.appcompat.widget.AppCompatButton سيعمل ويأخذ لون الخلفية المتدرج.
-
إجابة Wael Aljamal سؤال في مشكلة فى بدء تطبيق علي Android studio كانت الإجابة المقبولة
انا عدلت الإصدار من خلال فتح ملف gradle و من هنالك عدلت الرقم، ثم مزامنه gradle ثم تشغيل التطبيق على الهاتف و فتح التطبيق.(ملف gradle هو الثاني بالترتيب موجود على اليسار)
هل يظهر لديك نفس الخطأ؟
بالنسبة لي قمت بتعديل إضافي في ملف strings حيث استبدلت الشيفرة الخاصة بالفاصلة كالتالي '\ تدعى escape latter و عمل كل شيئ..
what\'s your name ونفس الفكرة في السطر التالي..
-
إجابة Wael Aljamal سؤال في overload لل constructors في الجافا كانت الإجابة المقبولة
نعم يمكن ذلك في لغة JAVA حيث سيتم عمل عدة دوال بانية constructor وكل منها يستقبل وسطاء parameters مختلفة
وسينتج عنهم كائنات تم تهيئتا بطرق مختلفة، مثلا ليكن لدينا صندوق Box له 3 أبعاد عرض-ارتفاع-عمق وسنقوم بعمل 3 دوال بانية مختلفة له:
// صنف الصندوق class Box { // خصائصه double width, height, depth; // الباني الذي يسند قيم لجميع الخاصيات Box(double w, double h, double d) { width = w; height = h; depth = d; } // باني بدون وسطاء يسند القيمة 0 لكل الخواص Box() { width = height = depth = 0; } // باني يستقبل وسيط واحد و يسند جميع القيم له Box(double len) { width = height = depth = len; } // حساب الحجم double volume() { return width * height * depth; } } لتجريب الصنف السابق يمكن استخدام الصنف المساعد التالي:
public class Test { public static void main(String args[]) { // تعريف عدة صناديق باستخدم دال البناء المختلفة Box mybox1 = new Box(10, 20, 15); Box mybox2 = new Box(); Box mycube = new Box(7); double vol; // متغيرلتخزين الحجم // أول صندوق vol = mybox1.volume(); System.out.println(" Volume of mybox1 is " + vol); // ثاني صندوق vol = mybox2.volume(); System.out.println(" Volume of mybox2 is " + vol); // ثالث صندوق vol = mycube.volume(); System.out.println(" Volume of mycube is " + vol); } } هكذا سيتم بناء 3 أغراض من الصنف الأول لها نفس الخواص ولكن باستعمال overloading للدالة البانية
-
إجابة Wael Aljamal سؤال في كيف اوثق هوية حسابي؟ كانت الإجابة المقبولة
لتوثيق الهوية في موقع مستقل يمكنك الدخول للرابط التالي: توثيق هوية مستقل ويتطلب ذلك التأكد من بياناتك الشخصية و إرفاق صورة شخصية مع صورة الهوية، أي تضع الهوية الشخصية بجانب وجهك و تاخد صورة (سيلفي). وبعد بعض الوقت يتم تأكيد الهوية و إرسال بريد الكتروني و تظهر الشارة على الموقع.
وإن كنت طالبا في الأكاديمية تواصل مع مركز المساعدة لتوثيق الهوية: مركز مساعدة حسوب
-
إجابة Wael Aljamal سؤال في كيف نقوم بربط تطبيق مبني على فلاتر مع قاعدة بيانات mysql باستخدام asp.net كانت الإجابة المقبولة
لربط قاعدة البيات مع التطبيق عليك دراسة مفهوم ال API هي application programming interface أو واجهة برمجية يمكن استخدامها بدون معرفة التفاصيل الفعلية التي تقوم بها، وضمن الويب web تعتبر على شكل خدمة ويب web service وهي تتيح جلب/عرض بيانات من موقع ما (قاعدة البيانات الخاصة به) عتن طريق الاتصال مع المخدم عبر هذه الخدمة، وهي تكون على شكل روابط فريدة، بعد استدعائها عن طريق HTTP method تعيد بيانات خام على هئية json والتي هي بنية معطيات خاصة بتناقل المعطيات وتخزينها.
كما تسمح API بإضافة و تعديل البيانات في القاعدة، عادة تستخدم من مكون خارج النظام الفعلي أو تطبيق هاتف جوال أو موقع آخرـ وهي تختلف عن رابط صفحة ويب أنها لا تعيد شيفرات html إنما بيانات خام JSON .
JOSN مكون من مفتاح (اسم خاصية و قيمتها)
اسم الخاصية سلسلة نصية حصرا، أما القيمة ممكن أن تكون integer - bool - array أو حتى كائنات JSON فرعية أخرى:
{ "key1" : "value1", // نص "key2" : 2, // رقم "key3" : ["value3.1","value3.2"], // مصفوفة "key4" : { // غرض JSON "key4.1" : "value4.1", // نص }, } مثال بسيط:
{ "name":"John", "age":30, "car":null } افترض أن رابط الخدمة هو: الرابط مثال لموقع له خدمة API
http://website/api/students/10 لاحظ أننا نطلب مسار خاص بطالب معين رقمة 10، حيث تأتينا البيانات بالشكل السابق.. هي تختلف بين موقع و آخر بالطبع حسب المطور ومتطلبات المشروع.
يمكن بالمثل الاتصال مع المخدم و إرسال بيانات له وهو سيضيفها في القاعدة لديه.
أرجو دراسة http methods فهي أساسية للتعامل مع API
GET PUT POST DELETE مقالات من أكاديمية حسوب:
كيف تنشر تطبيق Asp.net Core مع خادم MySQL باستخدام Nginx على أوبنتو 18.04 شرح فلسفلة RESTful - تعلم كيف تبني واجهات REST برمجية أساسيات بناء تطبيقات الويب -
إجابة Wael Aljamal سؤال في ما الفرق بين app.listen و server.listen في node.js كانت الإجابة المقبولة
الفرق الآخر هو في حالة اختيار مخدم بشكل https الخاص بالاتصال الآمن حيث أن express يعيد http.Server object أما في الطريقة الثانية يمكننا بناء المخدم من https:
var https = require('https'); var server = https.createServer(app).listen(config.port, function() { console.log('Https App started'); }); الشكل الافتراضي لكليهما:
http.createServer(app).listen(80); https.createServer(options, app).listen(443); وإن أردت جعل express يشغل كلاً من http - https يمكن استعمال المنطق التالي:
// تضمين مكتبات var fs = require('fs'); var http = require('http'); var https = require('https'); var privateKey = fs.readFileSync('sslcert/server.key', 'utf8'); var certificate = fs.readFileSync('sslcert/server.crt', 'utf8'); // إعادادات https var credentials = {key: privateKey, cert: certificate}; var express = require('express'); var app = express(); // تجهيز المخدم var httpServer = http.createServer(app); var httpsServer = https.createServer(credentials, app); // تشغيل المخدمين httpServer.listen(8080); httpsServer.listen(8443);
-
إجابة Wael Aljamal سؤال في طريقة ارسال مشروع حجمة كبير كانت الإجابة المقبولة
عادةً يمكن حذف المكتبات التي يمكن إعادة تحميلها من الطرف الآخر للمشروع،
مثلا:
إن اعتمد المشروع على node أو npm يمكن ضغط المشروع بدون المجلد node_module نثبت المكتبات ب (npm install) إن اعتمد المشروع على Laravel يمكن حذف المجلد vendor منه نثبت المكتبات ب (composer install) وهكذا بالنسبة لأي مشروع برمجي، كما يمكن اعتماد github + gitlab وغيرها من التقنيات التي تعتمد على git وهي source version controle تسمح بتحديث المشاريع بين المبرمجين و تتبع التغييرات فيها ويفضل تعلمها.
يمكن مراجعة أساسيات git من مقالات أكاديمية حسوب: