اذهب إلى المحتوى

أكاديميّة حسوب

الأعضاء
  • المساهمات

    4653
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    1

كل منشورات العضو أكاديميّة حسوب

  1. مع انبلاج عصر التنوّر الرقمي والتكنولوجي، ومع الأزمة الصحية التي رضخت لها البشرية جمعاء في سنة 2020 وما ترتّب عنها من ركود اقتصادي، انفتح العالم برمّته على وسائل متاحة منذ عدّة عقود للحصول على دخل اضافي بأقل التكاليف. يشكّل المورد التقني العنصر الأهم والداعم لهذا المفهوم الجديد، إذ أنّه يستقطب الحصة الأكبر من الحاصلين على هذه المداخيل. فخلافًا للمهن التقليدية التي كانت تفرض على العامل الحضور لكي يعرض قدراته الجسدية والذهنية مقابل بدل مادي محدود، فإنّ العالم يشهد اليوم تغيرًا دراماتيكيًا يُمكن القول عنه أنه إيجابي لصالح الوظائف التي لا تحتّم الذهاب الى مكان العمل. من هذا المنطلق، يمكن القول أنّ هذه الحقبة هي حقبة الدخل السلبي. قبل التطرق لموضوع المقالة الأساسي، ألا وهو الدخل السلبي، سيتم تعريف مصطلح الدخل النشط وهو نقيض الدخل السلبي. يمكن القول بأن هذا الوجه المعاصر لطريقة تحصيل المال هو على النقيض التام للدخل النشط الذي يجسّد الوجه التقليدي لطريقة جني العائدات منذ القِدم. الدخل النشط: الوجه التقليدي للدخل لقد شكّلت الزراعة -وهي إحدى أقدم المهن في العالم- مصدر الرزق للكثير من العائلات والأفراد، فقد كان ربّ البيت يزرع ويبيع ما يحصده من محاصيل مقابل بدل مادي ما، وهو ما زال سائداً في الكثير من اقتصادات العالم. حيث يبيع العامل هنا عنصًرا هامًّا يتمثل في القدرة الجسدية والبدنية لإنجاز عملٍ ما مقابل المال، وهذا الأمر مماثل لمن يعرض قدراته الذهنية للبيع مثل موظف في قسم المعلوماتية لشركةٍ ما. تعريف الدخل السلبي بالرغم من صعوبة حصر مفهوم الدخل السلبي ضمن نطاق تعريف واحد شامل، إلا أنه يمكن القول أنّه يشمل الإيرادات التي يمكن الحصول عليها من خلال خصائص تأجير ملكية، أو من خلال شراكة محدودة أو أي استثمار آخر لا يشمل شخصًاا ما بفاعلية. كما أنّ هذا النوع من المداخيل يخضع للضرائب كباقي أنواع المداخيل وإن باستراتيجيات وكيفيات مختلفة. من هم الحاصلون على الدخل السلبي؟ لا يمكن حصر الدخل السلبي بفئة معينة من الناس، فهو يشمل شريحةً واسعةً من أصحاب المهن الذين قد يبذلون جهودًا مضاعفةً عبر الشاشة العنكبوتية مقابل الحصول على دخل مُحدّد؛ ولكن بالإمكان القول -على سبيل المثال لا الحصر- أنّ أولئك الذين يمارسون عملهم من داخل منازلهم وعبر شاشة الحاسوب أو الهاتف بالاضافة الى بعض أصحاب المهن الحرّة، يحصدون في نهاية المطاف على هذا النوع من المداخيل بدون تكاليف مرتفعة على الصعيد المادي التي تشمل تكلفة النقل وتكاليف أخرى، فهذا النمط من الانشطة لا يتطلب أي جهد بدني ملحوظ بل قد يقتصر أحيانًا على تحويل ملف pdf الى ملف على Microsoft word. وعلى الرغم من ضآلة ما يتطلبه هذا النوع من العمل من جهد وعناء، فإنّ ضغطة الزر هذه تولّد دخلًا إضافيًا، وهو أحد أشكال الدخل السلبي. تجدر الاشارة إلى أنّ هذا العمل قد ينطوي على مشقّات ومصاعب جمّة، ولكنّها ذات تكاليف منخفضة نسبيًّا. وأمّا بالنسبة الى عائد الحقيبة المالية فبعض الاقتصاديين والمحللين الماليين المعنيين بدراسة الأسواق المالية يعتبرونها تدرّ دخلًا سلبيًا بينما البعض الآخر يراها كمصدر للدخل الإيجابي. أنواع الدخل السلبي بحسب دائرة الإيرادات الداخلية، وهي وكالة فيدرالية أميركية، يتضمن الدخل السلبي عدّة أنواع تتضمن تحتها عدة فئات، حيث يمثل النوع الأوّل من الدخل السلبي الفائدة الشخصية (لن نتطرق إليه في هذا المقال). وأمّا النوع الثاني، فيعود للدخل الناتج عن خصائص تأجير ملكية ما. وثالثًا هناك الدخل الذي ينجم عن الاستثمارات. القاسم المشترك بين هذه الأعمال أنّها لا تنطوي على وجود مادّي لصاحب العمل وما يترتب عنه من عدم وجود نشاط بدني. الدخل الناجم عن خصائص التأجير تولد خصائص التأجير -أي ما يتعلق بتأجير أصل ما- دخلًا سلبيًا في العموم. ولكن أن يكون الفرد عاملًا في وكالة للشؤون العقارية لا يعني أنّ ما يحصده من إيرادات يندرج تحت عنوان الدخل السلبي، على العكس هذا العائد هو عائد نشط. وأمّا إن كان يملك عقارًا ما وأجّره لشخص ما أو لشركة أو لأي طرف ما، فإنّ الدخل الذي يتأتّى عن هذا العمل هو دخل سلبي. بالإضافة الى ذلك، فإن الدخل الذي يحصل عليه الفرد نتيجة تأجير قطعة أرض ما يُعَد دخلًا سلبيًا، حيث يمكن للمالك الاستفادة من القواعد الموضوعة والموصوفة في حال خسارة الدخل السلبي في الأعوام الضريبية. الدخل الذي يعود على المالك من استثمار لا وجود مادي له به لنفترض أنّ أحد الأفراد يمتلك رأسمالًا معيّنا بقيمة ٣٠٠ ألف دولار ولا يرغب باستثمار معمل خاص به، ولكنه يريد الاستفادة من عوائده. فارتأى أنّ الحل الأفضل هو أن يستثمر هذا المبلغ بالاشتراك مع أحدٍ ما بالمال فقط في مشروع مضمون، ليعطيه عوائد سنوية حسب اتفاقٍ ما. تمثّل العوائد في هذه الحالة مصدرًا للدخل السلبي. ولكن هذا الأمر مشروط بعدم مشاركة صاحب رأس المال بأي عمل أو جهد مادي يساهم في انطلاق هذا الاستثمار. هل يخضع الدخل السلبي للضرائب؟ يخضع الدخل السلبي كباقي أنواع المداخيل للضرائب من قبل مصلحة الضرائب لأي دولة. وأمّا عن النسبة التي تُقتطع من الدخل السلبي، فهي تختلف من دولة لأخرى بحسب الأنظمة الضريبية السائدة لتلك التي الدول. وتجدر الاشارة هنا إلى أنّ هناك بعض الطرق المستخدمة للتخفيف من معدلات هذه الضرائب. سيادة المهن ذات المداخيل السلبية لقد كان لوباء كوفيد 19 سطوةً كبرى وآثارًا هامّةً بعد التصدعات التي فضحها في الكثير من اقتصاديات العالم، حتى المتقدمة منها. ومن ضمن هذه الآثار أنّ الحياة حتى بعد انحسار الوباء لم تَعُد لما كانت عليه، فقد اعتادت البشرية اليوم على إنجاز المهام بأقل التكاليف الممكنة، وذلك من خلال الشبكة العنكبوتية. ومن هنا، فقد بات بالإمكان التعلّم عبر الانترنت، وإتمام الصفقات الكبرى، وإجراء اجتماعات على مستوى الشركات وحتى على مستوى الدول كقمة G20 التي عُقدت اونلاين بحضور الدول العشرين المتقدمة في العالم. ومن هنا، فإنّ السؤال الأهم الذي يطرح نفسه هنا هو حول إمكانية سيادة الانترنت على طابع المهن حتى الأقدم منها، وهو سؤال تجيب عنه الأيام القادمة حتمًا. وإن كانت الأيام تحمل في طياتها إنجاز الأعمال من خلال الانترنت، إلا تلك تحتّم حضور العامل بكينونته المادية، فيمكن القول أنّ مداخيل العالم وحتى مداخيل الدول متمثلة ب GDP ستتشكل كليًا من مداخيل سلبية. بالموجز، فإنّ الدخل السلبي هو الدخل الذي يتم تحصيله من الأعمال التي لا تشمل الوجود المادي المباشر لصاحب الدخل. ويشكّل هذا الدخل الطابع الحالي للكثير من المهن التي لا تتضمن التدخل المباشر للعامل، لا بل وجوده عن بعد كمدخل المعلومات الذي يعمل من منزله لحسابه الخاص. يكمن السبب في كثرة استخدام هذا المصطلح في عزوف العالم الى حدٍّ ما عن المهن التي تتطلب الوجود المادي المباشر لصاحب المهنة، والإعتماد الكبير على الانترنت لإنجاز الأعمال وحتى الضخمة منها. ومن هنا يمكن القول بأنّ عصر العولمة فتح آفاقًا جديدةً للبشرية، وهي مجدية في الكثير من الأحيان. يمكنك الحصول على دخل سلبي بإضافة منتجاتك المصممة أو المبرمجة على بيكاليكا لعرضها للبيع المتكرر، كما يمكنك عرض منتجاتك المعدة سلفًا للبيع المتكرر عبر منصات العمل الحر مثل خمسات ومستقل. المصادر What You Need to Know about Passive Income from Real Estate Activities Passive Income: What It Is, 3 Main Categories, and Examples Passive Activity and At-Risk Rules ‎31 Passive Income Ideas to Build Real Wealth (Updated for 2023) اقرأ أيضًا مدخل إلى العمل الحر مدخل إلى العمل عن بعد تعرف على منصات العمل الحر والعمل عن بعد طريقك إلى العمل الحر عبر الإنترنت
  2. تعد صيغة الملفات PDF من أكثر صيغ الملفات استخدامًا حاليًا، لذا تخزن كافة المستندات في أي مؤسسة بهذه الصيغة، بدءًا بالمستندات القانونية والطبية وحتى المدارس والجامعات، لذا فمن الضروري تعلم كيفية إنشاء هذه الملفات، وتعديلها وحفظها، وأحد أهم البرامج المستخدمة للتعامل مع ملفات PDF هو PDFCreator. ما هو برنامج PDFCreator؟ برنامج PDFCreator هو برنامج مفتوح المصدر، يستخدم لإنشاء ملفات PDF من أي برنامج يتوافر فيه ميزة طباعة المستندات باستخدام طابعات ويندوز، لذا يمكننا باستخدام برنامج PDFCreator إنشاء ملفات الصور و PDF من مستنداتنا الخاصة، ويمكننا دمج المستندات والعديد من الأعمال الأخرى. يمكن تحميل برنامج PDFCreator عن طريق الموقع الرسمي ثم نستطيع تثبيت البرنامج. من أهم المزايا التي يقدمها برنامج PDFCreator: إنشاء ملفات PDF من أي برنامج يدعم خاصية الطباعة. دمج عدة ملفات PDF في ملف واحد. إرسال ملفات PDF المنشأة عبر البريد الإلكتروني. كيف يعمل برنامج PDFCreator؟ كما ذكرنا سابقًا يمكِّننا برنامج PDFCreator من إنشاء ملفات PDF من أي برنامج يملك خيار الطباعة عن طريق طابعة افتراضية، مثلًا يمكن تحويل صفحة ويب إلى ملف PDF باستخدام البرنامج وذلك باتباع الخطوات التالية: نفتح الصفحة المطلوب طباعتها في المتصفح، مثلًا نفتح الموقع الرسمي لمحرك البحث جوجل. من القائمة الموجودة في الزاوية العليا اليمنى نختار الأمر Print. بعد اختيار الأمر Print تظهر النافذة التالية، يجب علينا التأكد من أن الطابعة التي سنطبع عبرها هي PDFCreator. ثم نضغط على زر طباعة Print. ثم تظهر نافذة برنامج PDFCreator التي تطلب منا إدخال بعض المعلومات عن المستند المطلوب، مثل اسم الملف، والمكان المرغوب لتخزين الملف، واسم المؤلف، وموضوع المستند والكلمات المفتاحية في المستند. بعد تعبئة الحقول نضغط على Save لتخزين الملف، ثم سيحول البرنامج صفحة الويب إلى ملف PDF ويمكننا فتح الملف باستخدام أي برنامج يستطيع فتح ملفات PDF مثل Foxit reader مثلًا. بالإضافة لإنشاء ملفات PDF عبر متصفحات الإنترنت باستخدام خاصية الطباعة، يمكن إنشاء الملفات عبر متصفح ملفات ويندوز، وسنحوّل مثلًا ملف صورة بلاحقة png إلى ملف PDF: ننقر بالزر الأيمن للفأرة على الملف المراد تحويله إلى PDF ونختار تحويل باستخدام PDFCreator – convert with PDFCreator. تظهر نافذة برنامج PDFCreator كما حدث سابقًا ونتابع نفس الخطوات السابقة. دمج عدة ملفات PDF في ملف واحد يُمكننا برنامج PDFCreator من دمج عدة ملفات PDF في ملف واحد، وذلك باختيار دمج Merge من واجهة البرنامج. باختيار Merge من النافذة السابقة تظهر النافذة التالية والتي تمكننا من دمج الملفات: يجب إبقاء النافذة السابقة مفتوحة من أجل دمج الملفات، ونحول أي ملف آخر إلى PDF باستخدام PDFCreator فيظهر الملف الثاني ضمن النافذة: نحدد جميع الملفات المطلوب وجودها في الملف النهائي. كما يمكننا استخدام خاصية السحب والإفلات لتغيير ترتيب الملفات ضمن الملف النهائي. نضغط على Merge Selected لدمج الملفات، ثم نضغط على زر متابعة Continue فتظهر نافذة حفظ الملف، نضغط على زر حفظ Save فيفتح الملف النهائي. الأنشطة السريعة Quick actions تُمكننا الأنشطة السريعة من تعديل ملفات PDF بعد إنشائها مباشرةً، وتظهر هذه الخيارات على النافذة الظاهرة بعد إنشاء الملف، وهذه الأحداث هي: الإرسال عبر البريد الإلكتروني Send by e-mail: يستخدم هذا الخيار لإرسال الملف عبر أحد تطبيقات البريد الإلكتروني مثل Microsoft outlook. يؤدي اختيار هذا الخيار إلى فتح تطبيق البريد الإلكتروني وتحميل الملف كمرفق ضمن رسالة البريد الصادر. الطباعة عن طريق PDF Architect – Print with PDF Architect: يفتح الملف في منظور الطباعة Print view في برنامج PDF Architect. فتح الملف باستخدام PDF Architect – Open with PDF Architect: يفتح الملف في برنامج PDF Architect لرؤية الملف الناتج ومتابعة تعديله في حال الحاجة إلى ذلك. الفتح باستخدام المستعرض الافتراضي Open with default viewer: يفتح الملف باستخدام برنامج استعراض ملفات PDF الافتراضي على جهاز الحاسب. فتح المجلد Open folder: يفتح المجلد الذي حُفِظَ فيه الملف المُنشأ باستخدام متصفح الملفات في ويندوز. إرسال الملف عبر البريد الإلكتروني Send by e-mail يمكننا برنامج PDFCreator من إرسال الملفات عبر البريد الإلكتروني وذلك باتباع الخطوات التالية: نتبع أولًا الخطوات التي ناقشناها سابقًا لإنشاء ملف PDF باستخدام برنامج PDFCreator. بدلًا من الضغط على زر Save لحفظ الملف، نضغط على زر e-mail وذلك لإرسال الملف عبر البريد الإلكتروني. نختار المكان المرغوب لحفظ الملف فيه، وهذا أمر ضروري من أجل ربط الملف مع البريد الإلكتروني. بعد اتباع الخطوات السابقة يتم إنشاء ملف PDF المطلوب وربطه مع البريد الإلكتروني والذي سيفتح باستخدام تطبيق البريد الإلكتروني الافتراضي. الملفات الشخصية الافتراضية Default Profiles يأتي برنامج PDFCreator مع العديد الملفات الشخصية الافتراضية، والتي يمكن تعديلها حسب المرغوب من قبل المستخدم ما عدا الملف الشخصي الافتراضي Default Profile، لذا يمكن تعديل أو حتى حذف الملفات الشخصية، ومن هذه الملفات: الملف الشخصي الافتراضي Default Profile: ويعرف هذا الملف الإعدادات المستخدمة بكثرة من قبل المستخدم، لا يمكن تعديل أو حتى حذف هذا الملف الشخصي وذلك لضمان وجود ملف شخصي واحد على الأقل ضمن الملفات الشخصية. الضغط العالي (حجم ملف صغير) High Compression (small file): يولد هذا الضبط للملف الشخصي ملفات صغيرة الحجم وذلك عن طريق تطبيق ضغطٍ عالٍ يسبب ضياعًا في دقة الصورة. الدقة العالية (حجم ملف كبير) High quality (large file): يولد هذا الملف الشخصي الملف بأعلى دقة ممكنة. الطباعة بعد التخزين Print after saving: عند اختيار هذا الملف الشخصي وبعد حفظ الملف مباشرةً يتم فتح النافذة الخاصة بالطباعة لطباعة الملف الناتج بإحدى الطابعات المثبتة على جهاز الحاسب. استخدام الملفات الشخصية يمكن الدخول إلى إعدادات الملفات الشخصية من خلال الضغط على تبويب Profiles في واجهة البرنامج الرئيسية، ويمكن من خلال هذه النافذة القيام بالأعمال التالية: يمكن اختيار الملف الشخصي المطلوب من خلال القائمة المنسدلة profile لذا تحوي في البداية قائمة بالملفات الشخصية الموجودة افتراضيًا ضمن البرنامج. يمكن إضافة ملف شخصي جديد وذلك عن طريق زر الإضافة، وينسخ هذا الزر الإعدادات الحالية إلى ملف شخصي جديد. يمكن حذف ملف شخصي موجود عن طريق زر الإزالة، طبعًا عدا الملف الشخصي الافتراضي Default Profile فلا يمكن إعادة تسميته أو حذفه. يمكن إعادة تسمية ملف شخصي موجود عن طريق الزر Rename، طبعًا عدا الملف الشخصي الافتراضي Default Profile. بعد إنشاء الملف الشخصي الجديد وإدخال كافة الإعدادات المطلوبة، نضغط على الزر save لحفظ الإعدادات. بعض الإعدادات التي يمكن إضافتها إلى الملف الشخصي إعدادات التخزين Save: تمكننا هذه الإعدادات من تغيير المكان الافتراضي لحفظ ملفات PDF المنشأة بالإضافة لتغيير الاسم الافتراضي لحفظ الملف. Output Format: تمكننا هذه النافذة من تغيير الإعدادات الخاصة بصيغة الملف الناتج، مثل اتجاه الصفحة (أفقي – عمودي)، ونظام الألوان المستخدم (RGB, CMYK, GreyScale) وغيرها من الإعدادات. الأحداث الممكنة Actions: تمكننا هذه النافذة من اختيار مجموعة من الأحداث الممكن تنفيذها على الملف كما تمكننا من تحديد الترتيب المرغوب لتنفيذ هذه الأحداث، وتقسم الأحداث الممكنة إلى ثلاث تصنيفات: 1. التحضير Preparation وتحدد هذه الخيارات مجموعة من الأنشطة التي تنفذ قبل القيام بأي عملية تحويل، وهذه الخيارات هي: الرموز الخاصة بالمستخدم User Tokens: يتيح هذا الخيار للمستخدمين إمكانية تعريف رموز خاصة بهم في المستند، وتمسح هذه الرموز من المستند الأصلي بعد تحليل المستند واستخراج قيم الرموز منه، وتستخدم هذه الميزة كالتالي: [[[NameOfToken: User token value]]]، يختار المستخدم اسم الرمز Token اختياريًا، ولكن يجب ألا يحتوي فراغات. تمسح الرمز من الملف الأصلي بعد استخراج قيمتها، ولذلك عند كتابة الميزة ضمن الملف الأصلي يجب أن تكتب في سطر منفصل لأن ذلك السطر سيمسح بعد استخراج معلومات الرمز منه. نعرف الرمز في برنامج PDFCreator بنفس طريقة تعريف الرمز العادي، بالشكل التالي: <User:NameOfToken> ويمكن إعطاء قيمة افتراضية للميزة كالتالي: <User:NameOfToken:DefaultValue>، فيما يلي بعض الحقول التي يمكن استخدام الميزات فيها: العنوان، اسم المؤلف، مسار مخدم نقل الملفات FTP، موضوع البريد الإلكتروني، نص البريد الإلكتروني، الملف الهدف من أجل التخزين الإفتراضي. التوجيه إلى ملف شخصي آخر: تتيح لنا هذه الميزة بدء عملية تحويل أخرى وذلك بتوجيه الملف المصدر إلى ملف شخصي آخر ليقوم الملف الشخصي الثاني بتحويل الملف حسب الإعدادات الموجودة ضمنه. CS-Script: تتيح لنا هذه الميزة إمكانية تنفيذ برنامج مكتوب بلغة #C ليعالج عملية الطباعة، وهذه الميزة متاحة في نسخة الأعمال من البرنامج PDFCreation Business Edition. 2. التعديل Modify تمكننا هذه الخيارات من تعديل وتشفير وتوقيع المستندات التي ننشئها أثناء القيام بعملية التحويل ومنها: الغلاف Cover: تتيح هذه الميزة إمكانية إضافة صفحة أو عدة صفحات غلاف من المستند. الخلفية Background: تتيح إمكانية إضافة ملف PDF كخلفية لملف PDF الناتج. العلامة المائية Watermark: تتيح إمكانية إضافة محتوى ملف PDF كصورة أمامية Background لملف PDF الناتج عن عملية التحويل. عدد الصفحات Page Numbers: وتتيح هذه الميزة إمكانية إضافة أرقام للصفحات على الملف الناتج. التشفير Encryption: وتتيح هذه الميزة إمكانية حماية ملف PDF الناتج عن طريق تشفير المحتوى. 3. الإرسال Send يمكننا هذا الخيار من إضافة بعض الأحداث المتعلقة بمشاركة وتخزين الملف بعد انتهاء عملية تحويله مثل فتح الملف، والمشاركة عن طريق البريد الإلكتروني، والطباعة، والمشاركة على Dropbox، وغيرها من الخيارات. فتح الملف Open File: يفتح الملف ضمن مستعرض ملفات PDF الافتراضي. البريد الإلكتروني E-mail: يفتح بريد إلكتروني جديد ويتم وضع الملف الناتج كملحق ضمن البريد لإرساله عبر البريد الإلكتروني. الطباعة Print: لطباعة الملف الناتج عبر إحدى الطابعات الموجودة. بروتوكول نقل الملفات FTP: لرفع الملف الناتج مباشرةً على مخدم FTP. Dropbox: لرفع الملف على الحساب الخاص بـ Dropbox. في الختام، تحدثنا عن أحد البرامج مفتوحة المصدر المستخدمة لإنشاء وتعديل ملفات PDF، يقدم هذا البرنامج الميزات السابقة مجانًا، وذكرنا أهم الميزات التي يقدمها البرنامج للتعامل مع ملفات PDF من إنشاء وتعديل وحتى الخيارات الممكنة لمشاركة الملف. اقرأ أيضًا فرز وتصفية وطباعة البيانات في برنامج قواعد البيانات مايكروسوفت أكسس Microsoft Access كيفية دمج البيانات Consolidate من مصنفات متعددة في مصنّف واحد في Microsoft Excel إنشاء الملصقات Labels وطباعتها في Microsoft Word
  3. الإصدار 1.0.1

    5613 تنزيل

    تزداد الأنظمة الحاسوبية المحيطة بنا ذكاءً يومًا بعد يوم -بعد تزويدها بأدوات تعلم صنعية- وامتد تطبيق الذكاء الاصطناعي وتعلم الآلة إلى أغلب الأنظمة والتطبيقات المحيطة بنا فقلما تجد تطبيقًا شائعًا لا يتصف بشيء من الذكاء مثل لوحة الكتابة على الجوال التي تقترح عليك كلمات تالية عند كتابة كلمة معينة أو تصحح لك كلمة إن أخطأت بها وأيضًا مثل محركات البحث والمتاجر الإلكترونية التي تقترح على المستخدم اقتراحات توافق ما يطلبه وكأنها تقرأ أفكاره، وهذا بالنسبة للمستخدم النهائي أما بالنسبة لأصحاب العمل فالتطبيقات كبيرة منها أنظمة مراقبة المعاملات المشبوهة في المصارف والحوالات المالية وأنظمة تحليل العملاء وتصنيفهم وأنظمة التنبؤ وغيرها، هذا لم أذكر ما يتعلق بالروبوتات والسيارات وأنظمة الطيران والملاحة ذاتية القيادة وغيرها الكثير مما لا يتسع حصره وذكره. كل ذلك لم يأت من فراغ بل يقف خلفه جيوش من المهندسين والخبراء وبذلك اعتني بعلم الذكاء الاصطناعي وتعلم الآلة أيما اعتناء وألفت فيه مئات الكتب ونشرت آلاف المقالات والأبحاث ومنها هذا الكتاب الذي بين يديك! دورة تطوير التطبيقات باستخدام لغة Python احترف تطوير التطبيقات مع أكاديمية حسوب والتحق بسوق العمل فور انتهائك من الدورة اشترك الآن هذا الكتاب هو الجزء الثاني من كتاب مدخل إلى الذكاء الاصطناعي وتعلم الآلة فبعد تأسيس المفاهيم والمصطلحات التي يقوم عليها مجال الذكاء الاصطناعي وتعلم الآلة في الجزء الأول، ننطلق في الجزء الثاني بتطبيق مشاريع عملية تطبيقية مبنية على بيانات واقعية ويناقش أفكار قابلة للتطبيق في الحياة العملية. فصول هذا الكتاب مبنية على عدة مساهمات ساهم بها كل مؤلف: الفصول الأربعة الأولى تعتمد على كتاب Python Machine Learning Projects لكاتبه Michelle Morales ونقله للعربية بتصرف محمد لحلح المؤلف للجزء الأول والدكتور باسل الخطيب. الفصل الخامس والسادس وهو من كتابة خالد شمعة أثرى بها الكتاب من خبرته الكبيرة في المجال. الفصل الحادي عشر مبني على ترجمة سلسلة A Complete Machine Learning Project Walk-Through in Python لكاتبه Will Koehrsen ونقلها للعربية بتصرف الدكتور باسل الخطيب. الفصول المتبقية هي من كتابة الدكتور باسل الخطيب المختص في مجال الذكاء الاصطناعي وتعلم الآلة والأستاذ في جامعات عدة مرموقة منها جامعة دمشق. ما يميز هذا الكتاب قربه من القارئ العربي، إذ لم يقتصر على الترجمة ونقل تطبيقات أجنبية جاهزة أو تعتمد على نصوص أجنبية بل يعرض تطبيقات على نصوص باللغة العربية وهذا ما يفتقر إليه المحتوى العربي في هذا المجال. مستوى هذا الكتاب متقدم لذا يجب أن تملك معرفة أساسية بمجال الذكاء الاصطناعي وتعلم الآلة وخبرة بلغة بايثون فالمشاريع كلها مطبقة فيها، فإن كنت مبتدئًا فننصح قبل هذا الكتاب قراءة الكتابيين التاليين: البرمجة بلغة بايثون مدخل إلى الذكاء الاصطناعي وتعلم الآلة ترتيب القراءة الأمثل للكتاب يكون من أوله لآخره وفق ما رتبناه لك ولكن يمكنك قراءة الكتاب بأي ترتيب ففصوله لا تعتمد على بعضها باستثناء الفصل الأول الذي يشرح كيفية إعداد بيئة العمل لسائر المشاريع والفصل الأخير الذي يختتم الكتاب بمناقشة مسألة تقييم نماذج تعلم الآلة وحساب مجموعة من مقاييس تقييم الأداء والتي تخبرنا بأداء نموذج التعلم المبني ودرجة تعلمه. يمكنك تطبيق المشاريع محليًا على حاسوبك مباشرةً أثناء قراءة المشروع وتعلمه وستجد غالبًا في بداية أو نهاية المشروع رابط لتنزيل شيفرته ومقارنتها مع الشيفرة التي كتبتها ولتكون لك مرجعًا، كما يمكنك الاستعانة بمنصة Google Colab لتنفيذ المشاريع واختصار وقت التنفيذ وإعداد البيئة وقد وفرنا لبعض المشاريع رابطًا على تلك المنصة. يمكنك قراءة فصول الكتاب على شكل مقالات وتجد روابطها تاليًا: إعداد بيئة العمل للمشاريع مع بايثون بناء مصنف بالاعتماد على طرق تعلم الآلة بلغة البايثون باستخدام مكتبة Scikit-Learn بناء شبكة عصبية للتعرف على الأرقام المكتوبة بخط اليد باستخدام مكتبة TensorFlow بناء روبوتات للعب الألعاب باستخدام طريقة التعلم المعزز ومشتقاتها باستخدام مكتبة TensorFlow تصنيف الصور والتعرف على الوجه في مجال الذكاء الاصطناعي إعداد شبكة عصبية صنعية وتدريبها للتعرف على الوجوه تحليل المشاعر في اللغة العربية باستخدام التعلّم العميق استخدام خوارزميات العنقدة لتجزئة الزبائن تصنيف الشخصيات بالاعتماد على تغريداتهم العربية باستخدام التعلم العميق استكشاف قواعد الترابط في مبيعات المتاجر باستخدام تقنيات تعلم الآلة تحليل بيانات الطاقة لمدينة نيويورك الجزء الأول الجزء الثاني الجزء الثالث تقييم واختيار نماذج تعلم الآلة
  4. سنتعرف في هذا الفيديو على التطبيقات الهجينة Hybrid applications والتطبيقات متعددة المنصات، إذ تتميز بأنها مبرمجة باستخدام تقنية أو لغة برمجة واحدة ليعمل على عدة منصات أو أنظمة مثل أندرويد Android و iOS الخاص بأجهزة أيفون iPhone بعكس التطبيقات الأصيلة Native applications التي تبرمج باستخدام لغات برمجة معينة مثل كوتلن Kotlin أو جافا Java لتعمل على أنظمة أندوريد ولغات برمجة مثل سويفت Swift لتعمل التطبيقات على أنظمة iOS. ومن أشهر أطر عمل التطبيقات متعددة المنصات: React Native و Ionic و Flutter. إذا أردت التعرف أكثر على كيفية برمجة تطبيقات الجوال، فننصحك بالانضمام إلى دورة تطوير التطبيقات باستخدام لغة JavaScript، ولا تنسَ الاستعانة خلال رحلة تعلمك وعملك بتوثيقات موسوعة حسوب المجانية. وإذا أردت متابعة المعلومات البرمجية العلمية مكتوبة فيمكنك الاطلاع على قسم البرمجة في أكاديمية حسوب، كما يمكنك متابعة جديد الفيديوهات التقنية المتاحة على يوتيوب أكاديمية حسوب مجانًا.
  5. سنشرح في هذا الفيديو باش Bash التي تمكننا من التعامل مع الحاسوب ونظام لينكس Linux وإجراء مختلف العمليات على الملفات والبرامج والتنقل بين مختلف المسارات عبر كتابة أوامر بسيطة وسهلة من خلال نافذة سطر الأوامر ، كما تتيح باش Bash الوصول إلى العديد من الأدوات المساعدة مما يسهل أتمتة العديد من المهام اليومية وتعد هذه الأداة أكثر فاعلية للتحكم بالحاسوب مقارنة بالواجهة الرسومية. إذا أردت التعرف أكثر على لينكس، فننصحك بالانضمام إلى دورة علوم الحاسوب، ولا تنسَ الاستعانة خلال رحلة تعلمك وعملك بتوثيقات موسوعة حسوب المجانية. وإذا أردت متابعة المعلومات البرمجية العلمية مكتوبة فيمكنك الاطلاع على قسم البرمجة في أكاديمية حسوب، كما يمكنك متابعة جديد الفيديوهات التقنية المتاحة على يوتيوب أكاديمية حسوب مجانًا.
  6. على الرغم من أن دروبال أحد أشهر أنظمة إدارة المحتوى بجانب ووردبريس وجوملا بما يتميز به من مرونة عالية وقابليته الفائقة للتطويع، والذي يجعل منه الخيار المفضل في الكثير من المشاريع المتوسطة والكبيرة، إلا أن الكثير من المشاريع القائمة على دروبال فشلت أيضًا بسبب وجود التفاصيل الدقيقة والخيارات الكثيرة التي يتطلب إعدادها في دروبال والتي تفرض تخصيص وقت أطول للتعلم للخروج بموقع فعّال لا تؤدي تكلفة المشكلات فيه إلى الوقوع في خطأ استبداله بنظام إدارة محتوى آخر أقل جودة غالبًا، من هذا المنطلق يجب على كل من يريد الاحتراف في تصميم المواقع سواء كان ذلك بدروبال أو غيره، دراسة الخيارات المتاحة من أنظمة إدارة محتوى والأخطاء الرائجة في كل منها للوقاية من الوقوع فيها. هل دروبال مناسب للمشروع؟ إن دروبال نظام إدارة محتوى يمكن به إعداد المواقع البسيطة مثل المدونات الشخصية أو المعقدة المتشكلة من عدة بوابات ومواقع فرعية بقاعدة بيانات مشتركة مثل مواقع الجامعات، إلا أنه يجب دراسة منطق عمل المشروع وحاجات العميل الحقيقية قبل أن ننصح أحدًا باستخدامه. فالكثير من المواقع ليست سوى مجرد نموذج لبطاقة زيارة، أي أنها لن تحوي نظام إدارة أعضاء، مع عدد قليل من الصفحات دون أي نية أو حاجة للإضافة إليها باستمرارية، كما أن البيانات الموجودة لا تستدعي المعالجة والاستدعاء من قاعدة بيانات، في مثل هذه الحالة المنتشرة، ليس من الحكمة تحميل العميل تكلفة خادم بمواصفات خاصة لاستضافة ملفات دروبال والتي يبلغ عددها نحو 35,000 ملف مع 200 ميجابايت، عدا حجم قاعدة البيانات مع سرعة استجابة أقل بالنسبة لأنظمة إدارة خفيفة لا تعتمد قواعد البيانات مثل نظام إدارة المحتوى البسيط Pico CMS والذي لا يتجاوز حجمه 1 ميجابايت في الواقع، وحتى الكثير من المدونات الشخصية. إهمال التحديث اشتهر دروبال بفريق أمن سيبراني يتأكد من معايير الأمان في نواة دروبال، وكذلك في الوحدات الإضافية الشهيرة مما جعله نظام إدارة المحتوى في العديد من القطاعات الحكومية والمالية، إلا أن عمل هذا الفريق الدؤوب يؤدي نهايةً لتعديلات برمجية يجب دائمًا العمل بها ليكون الموقع مصونًا عن الإختراق. على الرغم من أن هذه التوصية إبتدائية ومكررة، إلا أن أكثر عمليات الاختراق تتم باستغلال ثغرات أمنية مضى على انتشارها أكثر من سنة؛ وعليه يجب التذكير دائمًا بهذا الخطأ للمبتدئين والمحترفين. يمكن الإطلاع على آخر التحديثات لنواة دروبال أو الوحدات الإضافية من خلال القائمة: التقارير > التحديثات المتوفرة، أو المسار أدناه، حيث ستظهر الأجزاء التي بحاجة لتحديث لأسباب أمنية باللون الأحمر، والأجزاء التي يتوفر لها تحديث باللون الأصفر. نظرًا ﻷهمية التحديث لأسباب أمنية، ستكون وظيفة التحديث التلقائي للأسباب الأمنية متوفرة في دروبال 10. admin/reports/updates التخطيط السيئ يتيح دروبال بناء موقع كامل دون كتابة سطر برمجي واحد، وحتى دون معرفة آلية عمله داخليًا من حيث العلاقة بين أجزاء دروبال أو التعامل بين دروبال وقاعدة البيانات، إلا أن هذه المعرفة تفرق بين سلوك المحترف العالم والمبتدئ العابر، وحيث أن كل عملية تخطيط تقوم بناء على معرفة الموارد المتاحة واستغلالها بأقل التكاليف أيًا كانت نحو الهدف، فمن الواجب على جميع مستخدمي دروبال معرفة هيكل دروبال للوقاية من الأخطاء في كل طبقة. إن تجاوزنا مسائل التخطيط في مجالات إدارة نظام المعلومات -بمفهومها العام من تقنية المعلومات- والبنية التحتية واختيار التطبيق المناسب، وتوصل فريق المشروع لاعتماد دروبال كنظام إدارة محتوى، فسيكون عليه مناقشة منطق العمل في طبقات دروبال الخمسة وهي: طبقة البيانات: وتشمل تصميم العقد وأنواع المحتوى. طبقة الوحدات البرمجية. طبقة القوائم والمجموعات. طبقة صلاحيات الأعضاء. السمات أو المظهر. بما أن تدفق البيانات يبدأ من الطبقة الأولى (طبقة البيانات) حتى الوصول لطبقة المظهر، فإن أي خطأ في الطريق يؤدي لتوقف العملية المرجوة أو حتى توقف الموقع كاملًا. مصدر الصورة من موقع Drupal.org تحت الترخيص CC BY-SA 2.0. الأخطاء الشائعة في طبقة البيانات رغم أن بناة المواقع ليسوا معنيين بالمعرفة الدقيقة لهيكل قاعدة بيانات دروبال كنظام يتمتع بقدر كاف من التعقيد والكثير من التفاصيل؛ إلا أن نظرة عابرة على هذا الهيكل ستمنحهم فهمًا أعمق للأخطاء ولماذا تحصل طالما تعمل. الصورة أدناه هيكل قاعدة بيانات دروبال حين التثبيت، وتزيد هذه الجداول بأي إضافة على دروبال سواء كانت وحدات برمجية أو أنواع من المحتوى أو أنواع جديدة من الحقول. مصدر الصورة: drupal.org إنشاء العديد من أنواع المحتوى يأتي دروبال افتراضيًا وبه نوعان من المحتوى وهما مقال وصفحة أساسية، وقد يفرض منطق عمل المشروع إضافة المزيد من أنواع المحتوى، وهنا يخطئ أغلب المبتدئين في إضافة عدد كبير من أنواع المحتوى، فمثلًا نوع المحتوى "خبر" لن يكون مختلفًا من ناحية هيكل الحقول عن نوع المحتوى "مقال". مثال آخر، لو كان المشروع موقعًا لمدرسة فيجب تجنب صناعة نوع محتوى لكل من "تلميذ" و "معلم" و "إداري" والاكتفاء بنوع محتوى واحد هو "أشخاص" وتصنيفهم للأنواع المذكورة بحسب معجم ﻷنواع الأشخاص، إلا إذا وجد سبب يفرض إنشاء نوع محتوى جديد. الخطأ في إنشاء أنواع مختلفة من المحتوى له سببان أساسيان، تقني وإنساني. ملخص السبب التقني هو أن لكل نوع من المحتوى خريطة خاصة به تشمل الحقول المرتبطة به، وزيادة أنواع المحتوى سيقلل جودة أداء دروبال، أما السبب الإنساني فهو بسبب كثرة أنواع المحتوى التي تشتت وتزعج أكثر المستخدمين. إنشاء الحقول دون ضرورة يمكن إنشاء عدد لا محدود من الحقول لكل نوع من المحتوى، فمثلًا يتشكل المحتوى "مقال" المتواجد افتراضيًا في دروبال من الحقول "الصورة" و"المتن" و"وسوم"، بينما يتشكل المحتوى "صفحة أساسية" من الحقل "المتن" فقط. في حال حاجة نوع المحتوى "صفحة أساسية" لحقل صورة، تجنب إنشاء حقل جديد، واستخدم حقل الصورة المتواجد مسبقًا لنوع المحتوى "مقال". سبب الخطأ في إنشاء الحقول بشكل متعدد يعود لأمرين، الأول هيكل قاعدة البيانات حيث ينشأ دروبال جدول لكل حقل جديد، والثاني يسبب تعقيد بعض الوظائف لاحقًا في حال تناثر البيانات المتشابهة في أكثر من حقل (جدول)، فمثلًا لو تطلب منطق عمل المشروع إتاحة البحث في "المتن" فقط، وكانت النصوص مخزنة في أكثر من حقل معني بالمتن (أي أكثر من جدول) سيتطلب هذا أكثر من طلب لقاعدة بيانات دروبال وهو ما يقلل من سرعة الأداء. انظر دائمًا للحقول الموجودة في قائمة "استخدام حقل موجود" قبل إضافة حقل جديد، يمكن إضافة حقل جديد من القائمة: الهيكلية > أنواع المحتوى > [إسم نوع المحتوى] > تسيير الحقول، أو من المسار التالي (في حالة نوع المحتوى صفحة أساسية): admin/structure/types/manage/page/fields/add-field إنشاء محتوى جديد بدل إنشاء ترجمة للمواقع متعددة اللغات في حال دعم تعدد اللغات في موقع مبني بدروبال والحاجة لإنشاء ترجمة لمحتوى موجود، استخدم دائمًا لسان التبويب "الترجمة" عوضًا عن إنشاء محتوى جديد لنفس الصفحة بلغة أخرى، فهذا يعني إنشاء محتويين ليس بينها علاقة في قاعدة البيانات. لو رغبت بالإطلاع على سبب هذا الخطأ من قاعدة بيانات دروبال، افتح phpmyadmin ثم اتجه لجدول node، حيث ترى أن المحتوى الواحد يتشكل مرة واحدة حين الإنشاء برقم nid فريد و langcode يبين اللغة التي تم بها إنشاء المحتوى الأصلي، فيما يظهر في الجدول node_field_data كل المحتويات باللغة الأصلية والترجمة المرتبطة بها بذات رقم المحتوى nid الفريد. إهمال معالجة وتحسين الوسائط المتعددة مع أن الوسائط المتعددة جزء من البيانات التي يعرضها دروبال، إلا أنه غالبًا ما تنسى الإشارة إلى أهمية معالجتها لتكون محسنة للعرض على الإنترنت، وهنا يمكن خطأ رائج يقع فيه الكثير من المبتدئين والمحترفين. بالنسبة للصور يفضل ان تكون بصيغة png إذا كان لها خلفية شفافة وذات وسمات رقمية، وصيغة jpg إن لم تكن له خلفية شفافة أو كانت لصور واقعية أو فوتوغرافية، مع الانتباه للمعايير التالية كي لا تكون الصورة ذات حجم كبير. أن تكون ذات أبعاد منطقية للعرض على الشاشة. أن تكون بدقة تقدر بحوالي 72 PPI. أن تكون محفوظة بعد تعديل نمط الألوان إلى indexed color. بالنسبة للصور من نوع jpg، تأكد من حفظها بجودة تتراوح بين 65% و 75%. يؤدي الإنتباه إلى هذه المعايير إلى تخفيض حجم الصور بنسبة تصل لتسعين بالمئة وهو ما يكفل أن يلاحظ المستخدم سرعة تصفح الموقع دون أن ينتبه لوجود أي فرق في جودة الصور. الأخطاء الشائعة في طبقة الوحدات لعل أخطاء طبقة البيانات لا تسبب توقف الموقع عن العمل أو توفير فرصة للخروقات الأمنية، لكن طالما كانت طبقة الوحدات هي الطبقة المعنية بالأوامر البرمجية التي يتشكل منها دروبال، أو تضاف إليه لاحقًا لمنحه المزيد من الوظائف، فقد تؤدي لما سبق. من أهم أخطاء طبقة الوحدات: استخدام الكثير من الوحدات دون ضرورة مع إضافة كل وحدة لدروبال، ما يضاف ليس مجرد اسم، بل تضاف مجموعة ملفات تحمل الأوامر البرمجية للوحدة، وقد يكون من إجراءات تفعيل الوحدة تغيير في قاعدة بيانات دروبال. ينطوي استخدام الكثير من الوحدات على العديد من المحاذير التي يوصي المحترفون من أجلها لتجنب إضافة الوحدات دون ضرورة، منها: إضافة الكثير من الوحدات تقلل كفاءة وسرعة أداء دروبال. قد لا يوفر مطوروا الوحدات تحديثات لها تتوافق مع الإصدارات الأحدث من دروبال، وهو ما يؤدي لصعوبة الهجرة للإصدارات الأحدث. مع زيادة الوحدات تزيد فرص ظهور المشكلات وبروز الثغرات الأمنية. استخدام وحدات مهملة الوحدات جزء حيوي من دروبال ويشارك مجتمع المصادر المفتوحة بأكثر من 48,555 وحدة معروضة في موقع دروبال الرسمي، إضافة للكثير من الوحدات المتوفرة في مستودعات أخرى مثل GitHub، عادة ما تكون الوحدات المشهورة هي الخيار الأمثل نسبة للوحدات المهملة والتي لم تتم تجربتها على عدد كبير من المواقع. يمكن مشاهدة عدد المواقع التي تستخدم الوحدة المعنية تحت العنوان Project information في صفحة الوحدة بموقع دروبال الرسمي. استخدام وحدات غير موثوقة في حال اشتهار وحدة او طلب مطور الوحدة فحص الوحدة من قبل فريق الأمن السيبراني بدروبال واجتياز الوحدة لمعايير الأمان، سيكون بجانبها علامة درع تشير لذلك مثل الصورة أدناه. حاول قدر الإمكان تجنب الوحدات غير الموثوقة أو التي لم يتم فحصها، إلا إذا كنت قادرًا على ذلك. الأخطاء الشائعة في طبقة صلاحيات الأعضاء سنذكر تاليًأ أهم الأخطاء الشائعة التي يرتكبها المبتدؤون في دروبال: تحديد الأدوار بدقة يتيح دروبال وظيفة تحديد الأدوار للمستخدمين، وثمة صلاحيات يمكن تحديدها لكل دور؛ عدم الانتباه لخطورة هذه الوظيفة، لا يعرض موقعك فقط للخطر، بل قد يعرض جميع مستخدمي الموقع لخطر الإختراق الأمني. من أهم التوصيات في طبقة صلاحيات الأعضاء: تجنب إتاحة فرصة إنشاء نص بكل وسوم HTML لغير مديري الدرجة الأولى. حاول تجنب استخدام وحدة PHP لكن في حال الاضطرار لذلك، تأكد من عدم إتاحة صلاحيات الوصول لهذا النص لغير مديري الدرجة الأولى. تجنب برامج الروبوت الخبيثة دروبال نظام إدارة محتوى شهير وبالتالي تستهدفه الكثير من برامج روبوت نشر الإعلانات الخبيثة والتي تقوم بإرسال نصوص عديدة وبلغات كثيرة في قسم التعليقات بموقعك، سيؤدي هذا لإثقال موقعك ببيانات لا فائدة منها من جانب، وتزعج زوار الموقع من جانب آخر. تأكد من تثبيت وتفعيل أحدى الوحدات المعنية بالتأكد من أن المشاركة ليست من برنامج روبوت، مثل وحدة recaptcha والتي تستخدم خوارزميات مقدمة من شركة جوجل للتعرف على برامج الروبوت وحجبهم من المشاركة الخبيثة في موقعك. الخلاصة على الرغم من قدرات دروبال الهائلة كنظام إدارة مناسب للمشاريع المتوسطة والكبيرة؛ إلا أن الاستخدام الطفولي له مثل استخدام أي أداة أخرى بشكل طفولي قد تكون له عواقب وخيمة مثل الإختراق أو لا تظهر كفاءة عمل دروبال في الحالات الحميدة، من الواجب على بناة المواقع مراجعة الأخطاء الرائجة لتجنبها بشكل مستمر لتقديم خدمة مناسبة تتناسب مع قدرات دروبال التي تظهر في الكثير من المواقع الحكومية والمصرفية العالميتين. اقرأ أيضًا كيفية استخدام دروبال كمنصة تدوين متكاملة وحدات دروبال المهمة لغير المبرمجين كيفية إدراج لغات متعددة والترجمة في دروبال
  7. الإصدار 1.0.0

    3655 تنزيل

    تُعَد وظائف تحسين المواقع لمحركات البحث أو متخصص سيو SEO واحدةً من أكثر المهن المطلوبة من قبل أصحاب المواقع والمتاجر الإلكترونية في وقتنا الحالي إذ لا نفع من أي موقع أو محتوى منشور على الإنترنت ما لم يصل إلى الجمهور المخصص له وهو مثل أداة أو مكتبة منشأة في مكان ما لا يعرف أحد كيفية الوصول إليها على عظم النفع فيها، ولمَّا كان الاعتماد على محركات البحث اعتمادًا رئيسيًا بل أحيانًا كليًا للبحث عن محتوى والوصول إليه، فكان لزامًا على كل صاحب محتوى أو موقع أو تطبيق ويب موجود على الإنترنت أن يهتم بهذه النقطة اهتمامًا كبيرًا ليتأكد من ظهور محتواه في نتائج البحث بل وحتى المنافسة على أعلى مرتبة عندما يبحث أحد عن المحتوى ذاك أو ما يتعلق به. تحسين محركات البحث Search Engine Optimization ويختصر إلى سيو SEO هو تعبير مجازي شائع إذ في الحقيقة لا يمكن تحسين محركات البحث أو التعديل عليها، بل يُقصد من ذاك التعبير ممارسات وعمليات تجرى بهدف تحسين ظهور موقعك ضمن نتائج محركات البحث في أعلى النتائج، فهل ترى كم الجملة طويل لذا جاء ذلك الاختصار! ودرج حتى استعمال كلمة سيو -تعريب الاختصار الأجنبي SEO- للإشارة إلى ذلك التعبير المختصر أصلًا وهو ما سنستعمله ضمن الكتاب. يُعد هذا الكتاب مدخلًا شاملًا إلى مجال تحسين محركات البحث أو السيو SEO وممارساتها وأدواتها، بهدف تعلم كيف تُحسِّن من ظهور موقعك عبر محركات البحث، إلى جانب زيادة معدل زياراته الشهرية بنسب جيدة، وسيركز الكتاب بالإضافة إلى ذلك على سرد أفضل الممارسات الشائعة طيلة رحلتك في إضافة المحتوى لموقعك وبناءه حتى يواصل تصدره في نتائج البحث فقد لا يكون هنالك ممارسات ثابتة على فترة طويلة من الزمن نتيجة تغير خوارزميات محركات البحث في عرض النتائج التي تحارب باستمرار الخداع والغش لتجنب تصدر نتائج لا تستحق أن تصل إلى صدارة نتائج البحث. عَمِل على الكتاب متخصص سيو -المؤلف علي القاسم- وقد أفاد وأجاد من خبرته الطويلة في هذا المجال كما اعتمدنا على سلسلة The Beginner's Guide to SEO الشهيرة من موقع MOZ والذي يقدم أشهر الأدوات المستعملة في تخصص السيو، فتلك السلسلة معتمدة أيضًا على خبرة عميقة في المجال، ولم نقتصر على ذلك، بل استشرنا في السلسلة فريق التسويق التابع لشركة حسوب وأخذنا منهم نصائح وملاحظات قيمة وأضفناها في الكتاب، وكل ذلك يضفي قيمةً كبيرةً على الكتاب. أخيرًا وليس آخرًا، حاولنا جعل الكتاب دليلًا شاملًا وفي الوقت نفسه مختصرًا فخير الكلام ما قل ودل ليأخذ بيدك إلى تعلم تخصص السيو وتحسين محركات البحث ويضعك على بداية الطريق لتدخل هذا المجال وتحصل على فرصة عمل أو تُحسن من مهاراتك وترتقي بنفسك إن كنت متخصصًا في السيو. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». يمكنك قراءة فصول الكتاب على شكل مقالات مجموعة ضمن وسم «تحسين محركات البحث 101» وتجد روابطها تاليًا: تحسين محركات البحث SEO وأهميتها لموقعك الإلكتروني كيفية عمل محركات البحث وترتيب جوجل لصفحات الموقع الإلكتروني اختيار الكلمات المفتاحية المناسبة لموقعك الإلكتروني تهيئة الموقع داخليا لمحركات البحث On Page SEO ما هو السيو التقني Technical Seo وأهميته للموقع الإلكتروني بناء الروابط الخلفية للموقع وتحسين موثوقيته من ناحية السيو مؤشرات أداء السيو: بارامترات قياس تحسين محركات البحث لموقعك وتتبع أدائه أداة مشرفي المواقع من جوجل Google Search Console
  8. تساعد زيادة التركيز على أداء المهام المختلفة في أقل وقت ممكن، لكن الأمر ليس بتلك السهولة، فأحيانًا يتسرب إلينا الملل أو نتعرض للتشتيت الذي يجعل استكمال مهمة ما أمرًا في غاية الصعوبة، فكيف يُمكننا تحسين التركيز؟ وما هي الأساليب والاستراتيجيات التي يمكنها تحقيق ذلك؟ هذا ما سنتناوله في هذا المقال الذي يحتوي على: تعريف التركيز العوامل المؤثرة على التركيز كيفية زيادة التركيز استراتيجيات التركيز ما هو التركيز؟ يشير التركيز إلى الجهد الذهني تجاه كل ما نعمل عليه أو نتعلمه في الوقت الحالي، مثل الجهد الذهني الذي تبذله وأنت تقرأ هذا المقال الآن. يخطئ البعض بينه وبين مدى الانتباه، الذي يشير إلى طول الوقت الذي يمكنك فيه التركيز على شيء ما؛ بمعنى متى تفقد تركيزك عند قراءة هذا المقال، هل في المنتصف أم النهاية؟ أم ستبقى مركزًا حتى النهاية؟ ما هي العوامل المؤثرة على التركيز؟ هناك مجموعة من العوامل التي تؤثر على التركيز بما في ذلك العمر وقلة النوم، بالإضافة إلى عدم قدرة بعض الأشخاص على السيطرة على المشتتات، فيما يلي أهم العوامل المؤثرة على التركيز: العمر تلعب المرحلة العمرية التي نعيشها دورًا كبيرًا في قدرتنا على التركيز، إذ يفقد بعض الأشخاص قدرتهم على التركيز تدريجيًا مع التقدم في العمر، ويمكن أن يُصاحب ذلك فقدان في الذاكرة بما في ذلك مرض الزهايمر. التوتر قد يجعل التوتر التركيز بعيد المنال، لذلك فإن التوتر عدو التركيز، إذ لا يمكننا التركيز والانتهاء من مهمة ما بينما نشعر بالتوتر، وستكون النتيجة ارتكاب مجموعة من الأخطاء، والشعور بالانزعاج. الآثار الجانبية لبعض الأدوية إن لبعض الأدوية مجموعة من الآثار الجانبية التي تؤثر على التركيز، على سبيل المثال مضادات الكولين التي تبطئ سرعة المعالجة وقدرتك على التفكير بوضوح. المعلومات الزائدة لقد أدى التطور التكنولوجي إلى فيضان هائل من المعلومات يستحيل إدارته والتعامل معه، ووفقًا لبحث نشرته جامعة كاليفورنيا في سان دييغو في عام 2009، فإن المواطن الأمريكي العادي يستهلك حوالي 34 جيجا بايت من المعلومات يوميًا، هذه المعلومات تأتي في وقت واحد ومن مصادر متعددة سواء وسائل التواصل الاجتماعي ومواقع الويب والهاتف ووسائل الإعلام المختلفة، وهذا الحمل الزائد من المعلومات يؤثر على قدرة أدمغتنا على معالجتها. ووفقًا لعالم النفس العصبي الدكتور كينيث فروندليش من Morris Psychological Group: "فإننا مجبرون على تذكر واستخدام المعلومات التي تتلقاها أعيننا وآذاننا" لكن التعرض المستمر للمعلومات يفوق قدرتنا على المعالجة وهو ما يؤثر على ذاكرتنا وتركيزنا وبالتالي قدرتنا على اتخاذ القرارات المناسبة في النهاية. الأساليب التي تحسن من التركيز استعرضنا فيما سبق العوامل المؤثرة على التركيز، لكن الجيد في الأمر أن زيادة التركيز ممكنة، فالتركيز يشبه العضلات، كلما استثمرت فيه وعملت على بنائه كان أقوى، قد يحتاج منك الأمر مجهودًا كبيرًا وتغيير بعض العادات اليومية، وقبل أن نبدأ في سرد الأساليب التي تساعد على زيادة التركيز دعنا نعرف أولًا على أي عتبة نقف، يجب أن نفهم المرحلة التي نقف عندها، وتحديد ما هي درجة تركيزنا الآن: إذا كان تركيزك جيدًا، فستكون قادرًا على تحديد الأهداف وتقسيم المهام، مع أخذ فترات من الراحة . إذا فقدت القدرة على التخلص من المشتتات ومتابعة مسار التقدم في أداء مهمة ما فهذا يعني أن تركيزك غير جيد. وأيًا كانت نتيجة تقييم التركيز، ما زال بإمكاننا تعلم واحدة أو أكثر من أساليب زيادة التركيز التالية لزيادة التركيز: درب عقلك هناك مجموعة من الألعاب التي تساهم في تحسين مستويات التركيز ومنها: الكلمات المتقاطعة السودكو الشطرنج الألغاز ألعاب الذاكرة وفقًا لنتائج دراسة التي أجراها المركز الوطني لمعلومات التكنولوجيا الحيوية على 4715 شخص في عام 2015، فإن قضاء 15 دقيقة لخمس أيام أسبوعيًا في لعب أحد الألعاب التي تعزز التركيز له تأثير كبير على التركيز، كما تلعب الألعاب دورًا كبيرًا في تدريب الذاكرة وتنمية مهارات المعالجة وحل المشكلات. تحسين النوم إن عدم قدرتنا على الحصول على قسطٍ كافٍ من النوم كل يوم له تأثير كبير على التركيز والانتباه، لذا يوصي الخبراء بالحصول على قسطٍ كافٍ من النوم يتراوح بين 7 و8 ساعات يوميًا، مع تحسين جودة النوم. وهناك مجموعة من الأنشطة والعادات التي يمكنك تعلمها لتحسين جودة النوم ومنها: الاسترخاء قبل النوم وأخذ حمام دافئ. إغلاق الهاتف ووضعه بعيدًا. الحرص على النوم والاستيقاظ في نفس الموعد. تمرن بانتظام وابتعد عن التمارين الشاقة قبل الخلود للنوم. ممارسة الرياضة تلعب الرياضة دورًا كبير في زيادة قوة التركيز والانتباه، وجدت دراسة بعنوان "النشاط البدني في صحة الأطفال وإدراكهم" والتي أجرتها مجلة هنداوي التخصصية والتي أجريت على 116 طالب في عام 2018 أن ممارسة التمارين الرياضية يوميًا تساعد على تحسين التركيز والانتباه بعد 4 أسابيع فقط، لذا ولتحقيق زيادة التركيز حاول تخصيص وقت يوميًا لممارسة الرياضة حتى لو خصصت 20 أو 30 دقيقة للمشي يوميًا. هناك صلة مباشرة بين التمارين الرياضية والقدرة المعرفية والانتباه، عندما نُمارس الرياضة تزيد المواد الكيميائية في الدماغ والتي تقلل من التوتر وتحسن النوم، لذا ينصح الخبراء بممارسة التمارين الهوائية لمدة 150 دقيقة أسبوعيًا مثل المشي، نظرًا لدورها المهم في تحسين مستويات التركيز. قضاء بعض الوقت في الطبيعة تساعد الطبيعة على الاسترخاء وصفاء الذهن وبالتالي التركيز، تشير الدراسات العلمية إلى التأثير الإيجابي للبيئة على الأشخاص لأنها تساعدهم على التركيز في العمل، وتوصلت دراسة أجراها المركز الوطني لمعلومات التكنولوجيا عام 2014 إلى أن وجود النباتات في المساحات المكتبية ساعد في التركيز والإنتاجية بين العاملين، فالبيئات الطبيعية تُحسن الانتباه. التأمل والتفكّر يمكن أن يساعدك ممارسة التأمل والتفكّر على تعزيز الانتباه، بالإضافة إلى تحسين الذاكرة والقدرات المعرفية، وفقًا لمجموعة من الباحثين في جامعة هارفارد فإن عقولنا تتشتت في التفكير حوالي 47% من الوقت، وهذا يعود إما للتفكير في الماضي أو القلق بشأن المستقبل، ويساعدنا التأمل في التخلص من هذه المشكلة لأنه يجعلنا أكثر إدراكًا باللحظة الحالية، وبالتالي للتأمل قدرة كبيرة على تغيير بنية ووظيفة الدماغ من خلال الاسترخاء. خصص بعض الوقت للراحة إن أخذ استراحة بين المهام أو أثناء أداء مهمة معينة يساعد على زيادة التركيز والانتباه، لأنه عند العمل على مهمة لوقت طويل قد تبدأ عقولنا بالتشتت، ورغم ذلك نستمر في العمل عليها فتكون النتيجة هي التوتر وفقدان التركيز، ولكن أخذ قسط من الراحة عند الشعور بالانزعاج يساعد في استعادة تركيزنا بقوة. يرى بعض علماء النفس أننا نفقد تركيزنا عند أداء مهمة معينة يرجع إلى استنفاذ موارد الانتباه، والبعض الآخر يرى أن ذلك يتعلق بميل الدماغ لتجاهل مصادر التحفيز المستمر، وقد وجد العلماء أن صرف الانتباه إلى مكان آخر يمكن أن يُحسن من التركيز كثيرًا، قد نستطيع التركيز لمدة 90 دقيقة قبل أن نحتاج إلى 15 دقيقة للاستراحة وذلك يعود للاختلافات الطبيعية في دورة اليقظة لدينا والتي تختلف من شخص لآخر. تنويع النظام الغذائي تُؤثر الأطعمة التي نتناولها على الوظائف المعرفية كالتركيز والذاكرة، هناك أطعمة لها تأثير إيجابي مثل الأسماك، والبيض، والتوت، والسبانخ؛ وهناك أطعمة أخرى لها تأثير سلبي مثل الأطعمة المصنعة، والدهنية، والإفراط في تناول السكر. ثبت أن النظام الغذائي للبحر المتوسط يدعم صحة الدماغ، وهو يعتمد على استهلاك نسبة كبيرة من الأسماك وزيت الزيتون والبقوليات والفاكهة والخضروات مقابل استخدام نسبة قليلة من اللحوم بأنواعها. من الأفضل تناول وجبة خفيفة من الفواكه الطازجة أو الخضار والمكسرات والبذور في حالة الشعور بالجوع بين الوجبات، وتأكد من شرب كمية كافية من المياه. شرب الكافيين لدى بعض الأشخاص عادة يومية وهي شرب كوب من القهوة عند الاستيقاظ، لأنهم يشعرون أنهم أكثر تركيزًا، وهذا صحيح. قد يساعد شرب كمية من الكافيين في زيادة التركيز لدى بعض الأشخاص، لكنها لا تعمل على زيادة الإبداع. التخلص من المشتتات التخلص من المشتتات خطوة مهمة للبقاء مركزًا، تنقسم المشتتات إلى نوعين: الأول مشتتات داخلية خاصة بنا، وأخرى خارجية خاصة بالبيئة المحيطة، ومن النوع الأول هناك الأفكار التي تراودنا أثناء أداء مهمة معينة وتصرف تفكيرنا عنها، أو الشعور بالقلق والتوتر والضجر وغير ذلك من مشاعر داخلية تصرف انتباهنا، أما المشتتات الخارجية قد تكون عبارة عن صوت مزعج أو الأطفال أو المقاطعة المستمرة من الأشخاص المحيطين بك وغيرها من المشتتات. ولزيادة التركيز تخلص من هذه المشتتات بطريقة واعية وأعد تركيزك مرة ثانية على المهمة التي تقوم بأدائها. نحن في كامل تركيزنا حينما نقول لشيء ما نعم، بينما نقول لا لجميع الأشياء الأخرى، وهذا يعني أن الاستبعاد شرط أساسي للتركيز، ويقول تيم فيريس Tim Ferriss "ما لا تفعله يحدد ما يمكنك فعله"، أغلب البشر لديهم قدرة على التركيز إذا استطاعوا تجنب المشتتات، وبالتالي فإن المشكلة الأساسية ليست في التركيز من عدمه، بل في اتخاذ القرار فيما نود التركيز عليه الآن. اجعل تركيزك على أداء مهمة واحدة يظن بعض الناس أن إنجاز أكثر من مهمة في وقت واحد يؤدي إلى زيادة الإنتاجية لكن ذلك غير صحيح، فعملية التركيز على أداء مهمة واحدة أو مجموعة مهام في نفس الوقت يُشبه إلى حد بعيد كمية الضوء الموجودة في مصباح واحد فهل ستكون أقوى إذا ما وجهنا الضوء على مكان واحد في الغرفة أم على الغرفة بأكملها؟ .هكذا يكون التركيز، عندما نوجه على أداء مهمة واحدة، سننجزها بسرعة ودقة عالية. تعدد المهام يجعلك تحتاج إلى الكثير من الوقت لاستعادة تركيزك، وبالتالي فأنت حينما عندما تنتقل من مهمة لأخرى، فأنت تدفع الثمن، وذلك ما يسميه العلماء بتكلفة التبديل، وهي اضطراب الأداء الذي نشهده عندما نحول تركيزنا من منطقة لأخرى، لذا يعد التركيز على مهمة واحدة من أساليب زيادة التركيز. تحكم في طاقتك وليس في وقتك جَدوِل المهام في الوقت الذي تكون فيه طاقتك في أوجها، هل تكون أكثر طاقةً وتركيزًا أثناء النهار أم الليل؟ ركّز على أداء أصعب المهام حينما تكون طاقتك عالية. لا تتصفح وسائل التواصل الاجتماعي بداية اليوم تُعد وسائل التواصل الاجتماعي من أكبر مصادر التشتت، وجدت دراسة منشورة بالمجلة الدولية لإدارة المعلومات عام 2003، أن الشخص العادي عندما يتحقق من البريد الإلكتروني مرة واحدة كل خمس دقائق، يستغرق في المتوسط 64 ثانية لاستئناف المهمة التي كان يعمل عليها قبل تصفح البريد الإلكتروني، بمعنى أننا نضيع دقيقة من كل ست دقائق بسبب البريد الإلكتروني، لذا فالعنصر الأساسي عندما نقدم نصائح لزيادة التركيز في العمل فهي تجنب تصفح وسائل التواصل الاجتماعي والبريد الإلكتروني قدر الإمكان أثناء العمل. تحديد الهدف عبر رسم خارطة واضحة للتركيز إن تحديد أهدافنا في هذه الحياة، وتحديد أهدافنا اليومية يجعلنا أكثر تركيزًا، لاسيما إذا كانت هذه الأهداف ذكية، الخطوة المهمة بعد تحديد الهدف هي وضع خريطة طريق لكيفية تحديد الهدف: ما الأشياء التي ستقوم بها أولًا "تحديد الأولويات". ما هي الأولويات الأكثر قيمة وكم من الوقت ستستغرق؟ استفد من التكنولوجيا عندما نتحدث عن التكنولوجيا فعادة ما نرى الجانب السلبي منها والنظر إليها على أنها من المشتتات، لكن خلال السنوات الأخيرة تعمل بعض شركات التكنولوجيا على تطوير عدد من البرامج والتطبيقات التي تساعدنا في تنظيم وإدارة أوقاتنا جيدًا، بما في ذلك RescueTime الذي يساعد في تتبع الوقت. freedom: يسمح لك هذا التطبيق بحظر المواقع والتطبيقات التي تشتت الانتباه، يمكنك حظر التطبيقات التي تشتت انتباهك أثناء العمل أو الدراسة. منصة أنا: هي منصة لإدارة المهام تسمح بتبسيط المهام وتقسيمها لقوائم قابلة للتنفيذ، وتساعد في إعداد قائمة المهام اليومية، وتتبعها ومشاركتها مع الآخرين. Coache.me: يساعدك هذا التطبيق على تتبع العادات والأهداف التي وضعتها لنفسك، بالإضافة إلى التواصل مع المدربين العالميين والتواصل مع مجتمع مماثل يحاول تحفيز نفسه. استراتيجيات التركيز هناك مجموعة من الاستراتيجيات التي يمكن إتباعها لزيادة التركيز: إستراتيجية وارن بافيت للتركيز يعتمد المستثمر وارن بافيت على إستراتيجية مكونة من ثلاث خطوات لمساعدة الموظفين على تحديد الأولويات، وهي كالتالي: وضع قائمة بأفضل 25 هدفًا تريد تحقيقه في حياتك. دقق القائمة مرة أخرى ثم ضع دائرة على الأهداف الخمسة الأولى في القائمة والأكثر أهمية بالنسبة لك. اجعل الأهداف الخمسة التي حددتها محور اهتمامك وتجنب باقي القائمة مهما بلغ الأمر. ركز على الانتهاء من مهمة واحدة خلال اليوم. أسلوب بومودورو تساعدك تقنية بومودورو على البقاء مركزًا عند أداء مهمة ما لوقت قصير كالتالي: اضبط عدّاد الوقت لمدة 25 دقيقة وأبدأ العمل. عندما يدق المنبه خد استراحة لمدة 5 دقائق. اضبط المنبه مرة ثانية لمدة 25 دقيقة وعد للعمل. وهكذا بعد أربع جولات من هذا، خذ استراحة طويلة لمدة تتجاوز 20 دقيقة وحتى 30 دقيقة. خاتمة تناولنا في هذا المقال زيادة التركيز وأهم العوامل المؤثرة عليه، والأساليب المتنوعة التي تساعدنا على تعزيز تركيزنا، دعنا نُجرب هذه الأساليب أو بعضها لزيادة التركيز وأداء المهام في أقل وقت ممكن وبالتالي تحقيق أهدافنا وتحسين جودة حياتنا، ولنقل وداعًا للتشتت وتكدس المهام وملاحقة المواعيد النهائية للأعمال. المصادر 12 Tips to Improve Your Concentration 7 Useful Tips for Improving Your Mental Focus 15 Ways to improve your focus and concentration skills Focus: The Ultimate Guide on How to Improve Focus and Concentration Tips to improve concentration Need Help Staying Focused? Try These 10 Tips How to Concentrate And Focus Better to Boost Productivity Five ways science can improve your focus How to Stay Focused While Studying, Backed by Research Study Tips: How To Stay Focused StudyinHow to Stay Focused: 10 Tips to Avoid Distractions While Studying إقرأ أيضًا نصائح عملية للنجاة من اﻷوقات الصعبة في العمل الحر تطوير الذات من الناحية التقنية أربع نماذج لاستمرار نمو العمل الحر
  9. الإصدار 1.0.0

    18443 تنزيل

    يشرح هذا الكتاب كيفية كتابة تعليمات ووصفات يفهمها الحاسوب، ومن المعلوم أن الحواسيب شائعة ومنتشرة بحيث لا يخفى ذلك على ذي عقل وشأنها مثل شأن مفكات البراغي، غير أنها أعقد قليلًا وليس من السهل جعلها تنفذ ما تريد منها بالضبط، إلا إذا كانت المهمة التي تريد للحاسوب تنفيذها سهلة الفهم مثل عرض رسائلك البريدية أو تشغيل برنامج الحاسبة، فحينها ما عليك سوى فتح البرنامج المخصص لذلك، لكن حين تكون المهمة التي لديك فريدةً وأبعادها غير معرفة، فلن تجد تطبيقًا متاحًا لها. يأتي هنا دور البرمجة، فهي الفعل الذي يصف بناء برنامج يتكون من مجموعة أوامر محدَّدة جدًا لتخبر الحاسوب بما يجب فعله، وتُعَدّ الحواسيب بصفتها آلات غبية لا تستطيع فهم البرمجة ولا استيعابها، لكن إذا غضضت النظر عن هذا ورأيت أنه من الممتع والمسلِّي التفكير بمنطق يشبه ذاك الذي تفهمه تلك الآلات فستجد البرمجة أمرًا مسلِّيًا جدًا ونافعًا، فهي تتيح لنا اختصار زمن الأشياء التي ننفذها يدويًا وتستغرق أوقاتًا طويلةً إلى ثواني معدودة، وعليه يمكن النظر إليها على أنها طريقة تجعل حاسوبك يقوم بأمور لم يكن يستطيعها من قبل، وهي في ذاتها -أي البرمجة- بهذا الفهم تكون تدريبًا ممتازًا على التفكير النظري المجرَّد. دورة تطوير التطبيقات باستخدام لغة JavaScript تعلم البرمجة بلغة جافا سكريبت انطلاقًا من أبسط المفاهيم وحتى بناء تطبيقات حقيقية. اشترك الآن كما نوجه هذه الآلات لما نريده من خلال إعطائها أوامر محدَّدة كما ذكرنا، وتكون هذه الأوامر أو البرامج من خلال لغات خاصة بالبرمجة، وهي لغات أُنشئت عمدًا لتُستخدَم في برمجة الحواسيب، ومما يعجب المرء له أن البشر في تطويرهم للأسلوب الذي يتعاملون به مع الحاسوب لم يجدوا أفضل من الطريقة التي يتواصلون بها مع بعضهم بعضًا، فلغات البرمجة الحوسبية تشبه لغات البشر في إمكانية استخدام الكلمات والجمل في صور مختلفة لكتابة تعليمات جديدة في كل مرة تكتب برنامجًا فيها. كانت لغة بيزيك Basic ونظام دوس DOS في الثمانينيات والتسعينيات من القرن الماضي هما الطريقتان الأساسيتان في التعامل مع الحواسيب، وهما أنظمة نصية بالكامل من غير واجهة رسومية مثل التي تراها الآن أمامك على الشاشة، وقد استبدلنا الواجهات المرئية بهما منذ ذلك الحين بما أنها أسهل في التعلم للمستخدِم رغم أنها محدودة الإمكانيات موازنة بالواجهات النصية، لكن لا زالت لغات الحاسوب موجودةً، فإذا أمعنت النظر فسترى أنّ لغةً مثل جافاسكربت JavaScript موجودة في كل متصفح تستخدِمه أنت وهي في كل حاسوب تقريبًا، وإنّ مراد هذا الكتاب الذي بين يديك هو جعلك تألف التعامل مع هذه اللغة لتستخدِمها في صنع برامج نافعة لك ولعملائك. هذا الكتاب هو النسخة العربية المترجمة عن كتاب Eloquent JavaScript الشهير لصاحبه مارين هافربيك Marijn Haverbeke، ويقع في ثلاثة أجزاء، إذ يناقش أول جزء فيها لغة جافاسكربت في اثني عشر فصلًا؛ أما الفصول السبعة التالية فهي عن متصفحات الويب والأسلوب الذي تُستخدَم لغة جافاسكربت به لبرمجتها، ثم في النهاية فصلين آخرين مخصصين لبيئة أخرى لتشغيل جافاسكربت فيها وهي Node.js، كما سيكون في هذا الكتاب خمسة فصول عملية بها مشاريع تصف برامج كبيرة لتعطيك لمحةً عن البرمجة الحقيقية، وهي بناء روبوت توصيل ولغة برمجة ولعبة وبرنامج رسم بالبكسلات وموقعًا ديناميكيًا. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». يمكنك قراءة فصول الكتاب على شكل مقالات مجموعة ضمن وسم «إِلِكوَنت جافاسكريبت» وتجد روابطها تاليًا: القيم والأنواع والعوامل في جافاسكريبت (الجزء الأول: اللغة) هيكل البرنامج في جافاسكريبت الدوال في جافاسكريبت هياكل البيانات: الكائنات والمصفوفات في جافاسكريبت الدوال العليا في جافاسكريبت الحياة السرية للكائنات في جافاسكريبت مشروع تطبيقي لبناء رجل آلي (روبوت) عبر جافاسكريبت الزلات البرمجية والأخطاء في جافاسكريبت التعابير النمطية Regular Expressions في جافاسكريبت الوحدات Modules في جافاسكريبت البرمجة غير المتزامنة في جافاسكريبت مشروع بناء لغة برمجة خاصة علاقة جافاسكريبت بتطور الإنترنت والمتصفحات (الجزء الثاني: المتصفح) نموذج كائن المستند في جافاسكريبت معالجة الأحداث في جافسكربت مشروع لعبة منصة باستخدام جافاسكربت الرسم على لوحة في جافاسكربت HTTP والاستمارات في جافاسكربت إنجاز مشروع محرر رسوم نقطية باستخدام جافاسكربت بيئة Node.js: استخدام جافاسكربت خارج المتصفح (الجزء الثالث: بيئة Node) مشروع بناء موقع لمشاركة المهارات باستعمال Node.js
  10. تمتد قوة وسائل الإعلام المدفوعة Paid media إلى ما هو أبعد من الوصول العضوي Organic reach. دعني أشرح لك أكثر. يشير مصطلح الوسائط المدفوعة Paid media إلى الجهود التسويقية التي تتضمن أساليبًا مدفوعةً للإعلان عبر الإنترنت، أي بالإعتماد على وسائل وممارسات يُدفع من أجلها المال، مثل إعلانات الدفع لكل نقرة PPC وإنشاء المحتوى الذي يوضع ضمنه إعلان لعلامة تجارية والإعلانات المصورة Display Ads، إذ تُعَد الوسائط المدفوعة عنصرًا أساسيًا لتنمية الإيرادات وزيادة الوعي بالعلامة التجارية للشركات عبر الإنترنت؛ وهي تختلف عن الوسائط العضوية Organic media التي نعرفها ويستخدمها معظمنا، والتي تزيد من معدل الوصول العضوي، ومجانية الاستخدام بالكامل، أي عبر وسائل غير مدفوعة مثل تحسين محركات البحث SEO وتسويق المحتوى ومنشورات الشبكات الاجتماعية (لا نقصد المنشورات الدعائية). عبر اختيارك الصحيح للمنصات المدفوعة، ستحصل علامتك التجارية على فرصة رؤيتها من قبل جمهور أكبر وأوسع، والذين سيكون من الصعب الوصول لهم بالوسائل التقليدية. عندما تنفق أموالًا بهدف كسب المزيد منها، فإنك بالطبع سترغب في رؤية عائد استثماري يتناسب مع حجم ما استثمرت، وإن مجموعةً مناسبةً من الأدوات المدفوعة لن تضع حدًا لما تنفقه فحسب، بل ستوفر لك الوقت من خلال جعل عملية استهداف المستخدمين أكثر دقةً وفعاليةً؛ إذ تعتمد الشركات المختلفة على أدوات مختلفة لتحليل حجم إنفاقها على وسائل الإعلان، ولكن يُفضَّل اختيار أداة أو اثنتين من بين الأدوات الجيدة (اعتمادًا على ما لديك من مهام). إذًا ما هي أفضل أدوات الإعلام المدفوعة؟ فيما يلي مجموعة منها. 1. أداة SEMrush تُعَد أداة SEMrush واحدةً من أفضل الأدوات الإعلانية المدفوعة، والميزات التي أضيفت لها مؤخرًا تجعلها من أكثر الأدوات ربحًا وتوفيرًا للمال. فمثلًا، يستطيع خبراء استراتيجيات العلامات التجارية ومن هم مسؤولون عن إعلانات الدفع بالنقرة PPC (وهو أحد أشكال الإعلانات عبر الإنترنت يستخدم لتوجيه الزيارات إلى مواقع الإنترنت، بحيث يدفع المعلن للناشر عند النقر على الإعلان)، استخدام تقرير استهداف الجمهور Audience Targeting لتحسين استراتيجية إعلاناتهم الموجهة للجمهور المستهدف، بالإضافة إلى أن SEMrush لديها واحدة من أكبر قواعد البيانات للكلمات المفتاحية في العالم. أهم ميزات SEMrush إمكانية عرض تقارير PPC الخاصة بموقعك الإلكتروني بنقرة واحدة لترى تقاريرًا عن الكلمات المفتاحية الفريدة وأفكارًا لكلمات مفتاحية واقتراحات لإعلانات ونصائح وتوصيات لإعلاناتك المصوّرة: إمكانية مشاهدة تفاصيل مختلفة مثل الوقت والموقع الجغرافي للإعلانات التي ينشرها منافسوك عبر ميزة التحليل التنافسي، ولتستخدم هذه البيانات فتضيف قيمةً إضافيةً إلى استراتيجيتك الإعلانية الحالية وتتجنب استنزاف ميزانيتك في حملات غير فعالة. إمكانية تحديد أي البلدان أو المناطق التي تجلب أكبر قدر من الأرباح من حيث تكاليف الإعلان، وذلك عبر استخدام خريطة تكلفة النقرة أو CPC (وهي التكلفة التي يدفعها المعلن في كل مرة ينقر فيها مستخدم عبر الإنترنت على إعلانه الرقمي)، وتعديل حملاتك الإعلانية وفقًا للمعطيات التي لديك لقياس، إلى جانب تخطيط حملاتك التسويقية وتقدير عائد الاستثمار ROI. إمكانية مشاهدة الإعلانات المعروضة في جوجل، والتي تحوي كلمات مفتاحية معينة. استخدام ميزة بناء الإعلان Ad Builder لإنشاء إعلانات مربحة بعد إجراء أبحاث عن الطرق التي يستخدمها منافسوك والمعلنون الآخرون للترويج لخدمات ومنتجات في نفس مجال عملك. أكثر ما يحبه المستخدمون في أداة SEMrush يحب المستخدمون كيف أنهم يستطيعون تخصيص حملات الدفع لكل نقرة أو PPC لتواكب منافسيهم عبر ضمان وصول إعلاناتهم إلى الأشخاص المناسبين وتوافق رسائلهم الإعلانية مع اهتمامات الجمهور. توفر إمكانية تقسيم الجمهور إلى قطاعات، استنادًا إلى بيانات مثل اهتمامات المستخدمين والخصائص الديموغرافية، وذلك حتى يتمكن المسوقون من تقديم رسائل إعلانية مخصصة وتناسب الجماهير. تتيح لك الترويج للمحتوى الذي أنشأته بفعالية، إلى جانب الحصول على المزيد من الوسائط المكتسبة عبر تحديد المكانة التي وصل إليها منافسوك في الإنترنت باستخدام أداة البحث الإعلاني الخاصة بالمنصة SEMrush Advertising Research. يمكنك بسهولة موازنة واكتشاف الفرق بين الإستراتيجيات الإعلانية التي تتبناها، وتلك التي لدى منافسيك. 2. أداة Google Ads Editor غالبًا ما يرغب المعلنون، أصحاب الحسابات الضخمة والذين لديهم العديد من الحملات الإعلانية، في تحسين حساباتهم وإدارتها، لكنهم يقلقون حول إضاعة الكثير من الوقت؛ إذ أن معظم الشركات وفي معظم الأوقات، يتوجب عليها العمل بموارد ووقت محدودين، وهنا يأتي دور محرر إعلانات جوجل. تساعد هذه الأداة المجانية في زيادة كفاءة الحملات الإعلانية وأدائها، فبفضل دعم جوجل المستمر والترويج لها، أصبح محرر إعلانات جوجل شائعًا وكثير الاستخدام بين المعلنين المبتدئين والمحترفين على حدٍ سواء، مما يساعدهم في إدارة حسابات إعلاناتهم المتعددة حتى بدون اتصال بالإنترنت. أهم ميزات Google Ads Editor إمكانية إجراء التغييرات التي ترغب بها في حملتك الإعلانية في جوجل بسرعة وسهولة دون الحاجة إلى وجود اتصال بالإنترنت. إمكانية استخدام ملفات CSV لاستيراد تعديلات شاملة إلى حسابك في إعلانات جوجل وتصدير الحملات كملفات HTML أو DLL. إمكانية تطبيق تغييرات واسعة النطاق على حسابك الإعلاني دون إضاعة وقتك، وذلك عبر تكييف الكلمات المفتاحية الحالية لتستهدف مواقع جغرافية محددة. إمكانية استخدام ميزة البحث عن الكلمات المفتاحية المكررة Find Duplicate Keywords، وهذا عبر مسح حسابك بحثًا عنها والتخلص منها، حتى لا تؤثر على أداء حملتك. ما هي تكلفة Google Ads Editor؟ ببساطة، هو تطبيق مجاني يمكنك تحميله وطالما أن لديك حسابًا مفعّلًا على جوجل، فأنت جاهز لاستخدامه على نحو كامل. أكثر ما يحبه المستخدمون في Google Ads Editor عمود الميزانية الموصى بها أو Recommended Budget الذي يتيح للمستخدمين تخصيص الميزانيات على نحو صحيح كي لا تفوتهم أي فرصة لظهور إعلاناتهم. كما يحب المستخدمون أيضًا الإدارة الكاملة للحسابات، والتي تتيح لهم العمل على جميع الحسابات من نافذة واحدة. 3. WordStream Advisor صممت هذه الأداة لمساعدتك في إطلاق حملات مدفوعة تزيد من معدلات النقر والتفاعل والتحويل، فسواءٌ كنت تدير إعلانات على الشبكات الاجتماعية أو بحث مدفوع أو كليهما، تساعدك هذه الأداة على تحسين حملاتك، بحيث تتلقى العملاء المحتملين والزيارات والمكالمات والمبيعات لتحسين عائد الاستثمار ROI. أهم ميزات WordStream Advisor يتيح لك WordStream Advisor تقييم أداء حسابك الإعلاني في جوجل وتلقي توصيات مخصصة وذكية، مثل تحسين المعلومات الإضافية للإعلان، وهذا بناءً على بيانات حسابات المستخدمين الفردية. تتيح الميزات التسويقية الجديدة لإعلانات جوجل في منصة WordStream Advisor إمكانية البقاء على اتصال مع جمهورك المستهدف على نحو يتجاوز البريد الإلكتروني. إمكانية الوصول إلى أدوات إعلانات الشبكات الاجتماعية، وتنفيذ حملات فعالة ومبسطة على فيسبوك بأقل جهد ممكن، وذلك بفضل السريان السهل للعمل والاقتراحات التي توفق بين أهداف أعمالك التجارية والحملات الإعلانية الأخرى عبر الإنترنت. أكثر ما يحبه المستخدمون في WordStream Advisor يحلل الأداء ويقدم توصيات لوضع استراتيجيات عمليات البحث المدفوعة في الحسابات (استراتيجيات البحث المدفوعة، وهي طريقة توصف بالرائعة في عالم التسويق تساعدك في الوصول إلى العملاء الذين يبحثون عن منتجات مشابهة للمنتجات التي تبيعها، بحيث تستهدف الجمهور المناسب وتعرض إعلاناتك في أعلى صفحات نتائج محركات البحث فتحقق أقصى استفادة من حملاتك الإعلانية). يحب المستخدمون الطريقة التي تجذب بها الأداة المكالمات الهاتفية عبر البحث المدفوع عبر تتبع المكالمات نحو الإعلانات التي أدت إلى ظهورها في المقام الأول. الحصول على توصيات من شأنها توفير التكاليف وتحقيق موارد أفضل عبر إتاحة موارد تدريب موسعة وفريق ناجح مخصص لخدمة العملاء. 4. أداة WordStream Google Ads Performance Grader تستخدم هذه الأداة تفاصيلك الشخصية ومعلومات حسابك الإعلاني على جوجل لتحليل أداء الإعلانات وتصنيفها، حيث ستحصل فيها على تقارير مجانيًا، بالإضافة إلى تقييم نهائي حول أدائك في إعلانات جوجل بناءً على معاملات، مثل: الإنفاق المصروف. نقاط الجودة. الإعلانات النصية. أفضل ممارسات الدفع بالنقرة PPC. نسبة النقر إلى الظهور CTR، كلمات مفتاحية طويلة الذيل. مشاركات نسب الظهور (النسبة المئوية لمرات الظهور التي تتلقاها إعلاناتك موازنة بإجمالي عدد مرات الظهور التي يمكن أن تحصل عليها إعلاناتك). نشاط الحساب. أهم مميزات هذه الأداة تزيد من نسبة الظهور، بحيث تحصل على انتشار أكبر ومضاعفة لنتائج توليد العملاء المحتملين. تحافظ على نسبة النقر إلى الظهور CTR مرتفعة عبر اختبار إعلانات نصية مختلفة حتى لا تفقد أي مكانتك أمام المعلنين المنافسين. تحافظ على الأداء حسابك عبر إبقائه نشطًا لفترة أطول. ما هي تكلفتها؟ هي مجانية الاستخدام بالكامل. أكثر ما يحبه المستخدمون فيها يحب المستخدمون مدى فعالية هذه الأداة لأنها توفر تحليلًا معمقًا وشاملًا تقريبًا، وكأنه دُقق من قبل استشاريين محترفين. يمنع إهدار مئات، بل آلاف الدولارات كل شهر على الكلمات المفتاحية الإعلانية غير الضرورية التي لا تعطي معدلات تحويل. يزيد من مجموع نقاط الجودة Quality Score، وبالتالي يؤثر على عائد الاستثمار ROI ويحسّن تصنيف موقعك الإلكتروني ويقلل من نفقاتك. 5. أداة SpyFu وهي أداة بحث مخصصة للكلمات المفتاحية والاستخبار التنافسي يستخدمها المسوقون لتحسين أداء البحث عبر الإنترنت، حيث تساعد هذه الأداة في تحديد مصطلحات البحث المربحة لمنافسيك في حملات البحث المجانية والمدفوعة، لتوفر لك تحليلًا تنافسيًا. أهم ميزات SpyFu إمكانية استخدام ميزة الدفع بالنقرة SpyFu's PPC Research أو ميزة الكلمات المفتاحية للدفع بالنقرة PPC Keywords لتصفية عمليات البحث عن العلامات التجارية، وتصديرها إلى إعلانات جوجل، لتكوّن رؤى عن عدة كلمات مفتاحية في وقت واحد. إمكانية اكتشاف أقوى منافسيك بسهولة عبر استخدامك لهذه الأداة. إمكانية استخدام ميزة محلل المحتوى لفهم معايير الشبكات الاجتماعية، مثل متوسط المشاركة وأفضل أيام الأسبوع أداءً والمحتوى المناسب. أكثر ما يحبه المستخدمون في SpyFu إمكانية امتلاك القدرة على البحث عن أي موقع يختارونه جنبًا إلى جنب مع كل نتائج البحث التي تظهر لهم في جوجل، حيث يمكنك عبر هذه الأداة التحقق من كل كلمة مفتاحية وتصنيف عضوي وأشكال مختلفة للإعلانات على مدار 13 عامًا الماضية. تساعد التوصيات الذكية المستخدمين في توجيه النقرات نحو إعلانات جوجل لزيادة عدد الزيارات إلى الموقع. تتيح لك الأداة إمكانية رؤية الكلمات المفتاحية المهمة التي يفتقدها موقعك الإلكتروني وإعداد كتابة إعلانية تحقق لك، بعد التجارب المتكررة، أرباحًا. 6. برنامج Supermetric وهو برنامج متطور لتحليلات الأعمال يسحب جميع مؤشرات ومقاييس الأداء إلى موقع موحد يسهل الوصول إليه، إذ تعمل منصة تقارير الأعمال هذه مع محركات وأدوات التحليل المختلفة، وهي مثالية لجمع البيانات والاستبصار، من أجل لتصميم واستثمار وسائل التواصل الاجتماعي وتحليلات الإنترنت والتسويق عبره. أهم ميزات Supermetrics يتيح لك هذا البرنامج والمخصص من أجل جوجل درايف بتشغيل تعليمات الاستعلام وتحديث بياناتك بسرعة ومشاركة لوحات التحكم والتقارير مع أعضاء الفريق. إمكانية توصيل وجلب البيانات من مصادر متنوعة مثل مركز إعلانات فيسبوك وجوجل ولينكدإن، بالإضافة إلى مصادر متخصصة أخرى، مثل AdRoll (الشركة المتخصصة في الإعلان الرقمي). يسحب Supermetrics مقاييس الوسائط الاجتماعية من منصة تويتر وفيسبوك ولينكدإن وانستغرام وريديت وغيرها لإنشاء تقارير الوسائط الاجتماعية الشخصية، بما في ذلك إحصاءات المشاركة ونمو المتابعين. أكثر ما يحبه المستخدمون في Supermetrics تدعم المنصة تنويعات مختلفة مثل إعلانات تويتر وفيسبوك وجوجل، مع لوحات تحكم مخصصة لإنشاء تقارير شهرية توجه للعميل بسهولة وتحتوي على جميع المقاييس اللازمة، بحيث تكون التقارير ممتعة بصريًا وسهلة الفهم. إمكانية إنشاء طلب على خدماتك أو منتجاتك، وذلك عبر البحث للوصول إلى المستهلكين المحتملين الذين من المحتمل أن يُبدوا اهتمامًا بما تبيعه. تجمع Supermetrics أجزاءً مختلفةً من البيانات معًا لإنشاء تقرير واحد يوضّح كيف يؤثر أداء موقعك الإلكتروني على عائد الاستثمار، ويحدد مجالات التحسينات حتى تتمكن من اتخاذ قرارات استراتيجية. 7. أداة Invoca يمكن للمسوقين استخدام الحلول التي تقدمها هذه الأداة من تحليلات وتتبع للمكالمات لتحديد أفضل الأساليب التسويقية والحصول على تقارير لمعدلات التحويل من المكالمات الهاتفية Inbound calls، وهي المكالمات الهاتفية التي يجريها العميل ليستقبلها قسم خدمة عملاء أو فريق الدعم فيجيبون عن استفساراتهم. توفر هذه الأداة الفريدة المدعومة بخوازرميات الذكاء الاصطناعي تحليلات للمكالمات في الوقت الحقيقي، لتتيح للمسوقين القدرة على اتخاذ قرارات مبنيةً على بيانات محددة جُمعت من هذه المحادثات الهاتفية. وهذا الأمر يجعل من السهل عليك زيادة عائد الاستثمار ROI عبر زيادة معدلات التحويل والمكالمات المدرة للدخل، وإطلاق حملات عالية الكفاءة، إلى جانب تقديم خدمات أو منتجات تتوافق مع متطلبات العميل. أهم ميزات Invoca استخدام الحلول التي تركز على المكالمات الهاتفية، مثل التحليلات وبرامج تتبع المكالمات لتحسين نموذج الدفع بالنقرة PPC والإعلانات. إمكانية دمج Invoca مع حملتك الإعلانية في جوجل لعرض تفاصيل المكالمات للمكالمات الهاتفية الفردية بالإضافة إلى تفاصيل الحملة وUTM source (وهي تعليمات البرمجية ترفق في نهاية رابط الموقع URL لقياس فعالية حملات التسويق الرقمي)، والكلمة المفتاحية التي أدت إلى المكالمة حتى تتمكن من تعديل استراتيجياتك المدفوعة وفقًا لذلك. إمكانية جمع المعلومات من المكالمات لتحسين منصة تحليلاتك المفضلة. تحسين حملات البحث المدفوعة في إعلانات جوجل. ماهي تكلفة Invoca؟ تقدم Invoca نسخةً تجريبيةً للمستخدمين، وفي حال وجدت أنها مفيدة لعملك، فيمكنك التواصل معهم للحصول على معلومات تفصيلية عن الأسعار. أكثر ما يحبه المستخدمون في Invoca إمكانية دمج الأداة مع تطبيقات جوجل ومنصات الوسائط الاجتماعية ومنصة Salesforce Sales Cloud المتخصصة ببرامج أتمتة التسويق والتحليل ومنصة أدوبي Adobe Experience Cloud، بالإضافة إلى منصة Salesforce Marketing Cloud المتخصصة بإدارة علاقات العملاء ودعم عمليات البيع والتسويق. نظام سهل الاستخدام ويسمح للمستخدمين بتحليل مجموعات البيانات الصغيرة والكبيرة بسرعة لتحسين مؤشرات الأداء الرئيسية الخاصة بعملية تتبع المكالمات. 8. أداة Leadpages تُعَد أداة Leadpages مثاليةً للشركات الصغيرة والمسوقين الذين يرغبون في التفاعل على نحو هادف مع الزوار على القنوات الخارجية، مثل مواقع التواصل الاجتماعي. توجّه هذه الأداة حركة الزيارات إلى صفحات الهبوط المخصصة، حيث يمكن للجمهور المستهدف معرفة المزيد والشراء والتحويل وفقًا لذلك، لذا يمكنك الاستعانة بأداة Leadpages لتستخدم صفحات الهبوط بفاعلية في حملاتك التسويقية والوسائط المدفوعة، مع مراعاة ما تقدمه ولمن ومن أين يأتي الجمهور. كما تساعدك Leadpages في الترويج لصفحات الهبوط خاصتك على قنوات أخرى مغايرة لفيسبوك، وعوضًا عن متابعة أحدث صيحات الشبكات الاجتماعية ومطاردة المنصات كلما زادت شعبية إحداها، ستساعدك هذه الأداة في التركيز على مواقع التواصل الاجتماعي التي لديها أكبر عدد من المتابعين وأكثرهم تفاعلاً. أهم ميزات Leadpages آلية عمل تتسم بالمرونة والرشاقة، كما يمكنك بسهولة دمج صفحات الهبوط في Leadpages مع الإعلانات المدفوعة، من أجل تحقيق عائد مرتفع من إنفاقك الإعلاني. يمكن للزوار الآن مشاركة الصفحات بسهولة على منصات التواصل الاجتماعي المفضلة لديهم، من ضمنها فيسبوك وتويتر ولينكدن، مما يزيد من معدلات الظهور ويزيد من حركة الزيارات. أضف أو خصص علامات Open Graph لصفحتك، والتي تتحكم على نحو أفضل في كيفية عرض المحتوى على المنصات المستهدفة. أكثر ما يحبه المستخدمون في Leadpages تتيح لك هذه الأداة القدرة على التقاط العملاء المحتملين بسرعة، وذلك عبر إمكانية الدمج مع فيسبوك وتويتر ولينكدن ومنصات أخرى. إمكانية الحصول على 5 أضعاف العملاء المحتملين المؤهلين لإعلانات فيسبوك، بالإضافة إلى صفحات هبوط محسنة. يصبح الإعلان الرقمي على وسائل التواصل الاجتماعي أسهل عبر دمج Leadpages مع إعلانات جوجل وفيسبوك لزيادة عدد الزيارات عند إضافة صفحات هبوط محددة، إذ تعمل بالدفع لكل نقرة PPC من أجل الكلمات المفتاحية المستهدفة. 9. منصة Serpstat وهي منصة تجمع عدة وظائف في مكان واحد، مخصصة على نحو أساسي لتحسين محركات البحث SEO، ولكن يمكنها بسهولة التعامل مع جميع احتياجات الوسائط المدفوعة، حيث يمكنك البحث بسهولة عن الكلمات المفتاحية للدفع بالنقرة PPC والاستفادة من خيار البحث بالأسئلة، كما يمكنك أيضًا تحسين موقعك ليتوافق مع إعلانات جوجل باستخدام أداة الكلمات المفتاحية AdWords حتى تتمكن من البقاء في الصدارة بين منافسيك. أهم ميزات Serpstat بدلًا من تكثيف الكلمات المفتاحية أو المطابقة التامة، يستخدم Serpstat التحليل الدلالي لتحليل محتوى منافسيك، فيزيد من ملاءمة صفحتك في عيون خوارزميات جوجل، وتحويل البيانات إلى رؤى قابلة للتنفيذ لفرق وسائل التواصل الاجتماعي والدفع بالنقرة PPC. ألقِ نظرةً على قسم PPC Research لتُكوّن رؤيةً شاملةً على أساليب منافسيك المدفوعة، واجمع إعلاناتهم والكلمات المفتاحية المدفوعة، مع تحديد مواطن الضعف في حملاتك للدفع بالنقرة PPC، واكتشف فرصًا للنمو. ما هي تكلفة Serpstat؟ تقدم Serpstat اشتراك مجانيًا ذو وظائف محدودة بالإضافة إلى وجود اشتراكات مدفوعة مختلفة أكثر ما يحبه المستخدمون في Serpstat يحتوي Serpstat على أداته الخاصة لتجميع الكلمات المفتاحية لفرزها حسب الموضوع، ولكن ما يجعل هذا الأمر فريدًا، هو كيفية تحليله للارتباطات بين الكلمات المفتاحية المختلفة وتقسيمها إلى تسلسلات هرمية ذكية. يوفر Serpstat بيانات تستند إلى معلومات الكلمات المفتاحية والمنطقة الجغرافية، ويقدم معلومات حول أكثر من 180 مليون نطاق. إمكانية تحديد أفضل الكلمات المفتاحية أداءً لمنافسيك، لتسير على خطى نجاحهم وتجني ثمارًا طيبة. 10. برنامج Acquisio هو برنامج قوي لإدارة الحملات، يساعدك على تحسين حملاتك الإعلانية الرقمية. يمكنك بفضل هذه الأداة إدارة حملاتك التسويقية المختلفة والإبلاغ عنها عبر لوحة تحكم واحدة ومبسطة. سيصبح اكتساب العملاء بالنسبة للمسوقين والبائعين والمعلنين المباشرين أمرًا أسهل من خلال الحلول الفعالة التي تقدمها هذه الأداة، فهي تجمع بين منصات الإعلانات المتطورة وأدوات علوم البيانات لتحسين عمليات اكتساب العملاء عبر الإنترنت وأتمتتها. يأتي برنامج إدارة الإعلانات المجهز بالكامل مع مزايا عديدة، مثل إدارة حملتك والتقارير ودعم الدردشة وتحسين الإعلانات على الشبكات الاجتماعية وتحسين عروض الأسعار والميزانية. أهم ميزات Acquisio يمكن لمعلني الدفع بالنقرة PPC استخدام معايير إعلانات جوجل لتحديد ما إذا كان أداء الدفع بالنقرة جيدًا بالنسبة إلى المنافسين الآخرين. يستغل قوة خوارزميات الذكاء الاصطناعي لتقليل تكلفة اكتساب العميل CPA وتكلفة النقرة CPC، ويحسّن من مقاييس الدفع لكل نقرة PPC، مثل معدل التحويل CVR ونسبة النقر إلى الظهور CTR. تتبّع نجاحات جهودك الموظفة في الإعلانات المدفوعة على انستغرام وفيسبوك والمنصات الأخرى من خلال اختبار A/B المتكامل والتحليلات المتقدمة ونصائح لتحسين حملتك الإعلانية. إدارة ميزانيتك من خلال استهداف العملاء، ومراقبة وسائل التواصل الاجتماعي. أكثر ما يحبه المستخدمون في Acquisio إمكانية تحسين الحملات الإعلانية بسهولة عبر إدارة عروض الأسعار والميزانية على مدار الساعة بفضل تقنيات الذكاء الاصطناعي. Acquisio Turing: وهي تقنية لإدارة الدفع بالنقرة PPC مدعومة بالذكاء الاصطناعي، تدعم إدارة عروض الأسعار والميزانية وتقدّم تقديرًا عن العملاء المحتملين وتوزيع الميزانية لتحسين الإنفاق وزيادة معدل التحويلات أو النقرات. يجد المستخدمون أنه من الأسهل الوصول إلى الميزانيات الشهرية عبر قنوات البحث والعرض الموجود، وذلك بالتزامن مع عمل Acquisio على زيادة معدل التحويلات، وتحسين فرص نجاح التسويق عبر محرك البحث على نحو جذري. 11. أداة Crazy Egg وهي أداة تستخدم أدوات تتبع حركة العين مثل الخرائط الحرارية والتراكب وخريطة التمرير وقصاصات الورق Confetti، من أجل فهم اهتمامات العملاء على أي موقع إلكتروني معين، بالتالي زيادة في معدل التحويلات. وتستطيع أداة Crazy Egg تتبع 1,111 زائرًا مقابل كل دولار يتم إنفاقه عليها. أهم ميزات Crazy Egg الخريطة الحرارية: تكشف عن المكان الذي نقر فيه المستخدمون على الصفحة ومدى التمرير لأسفل الصفحة، وحتى إظهار نتائج اختبارات تتبع العين. خريطة التمرير: توضّح المسافة التي مرر بها الأشخاص الصفحة إلى الأسفل، كما تكشف عن المكان الذي يغادر فيه الزائرون الصفحة. التراكب: يعرض تقرير التراكب عدد النقرات التي أجريت على كل عنصر من عناصر صفحة الإنترنت. قصاصات الورق: باستخدام قصاصات الورق، يمكنك تمييز جميع النقرات على الموقع مقسمة بحسب مصادر الإحالة وعبارات البحث والمزيد. أكثر ما يحبه المستخدمون في Crazy Egg يسمح تطبيق إعلانات فيسبوك Facebook Ads المدمج مع Crazy Egg للشركات، بتضخيم فعالية منشوراتها من حيث الوصول والمشاركة والنقرات والظهور، وذلك بناءً على احتياجاتهم. إمكانية تكامل وظائف Crazy Egg مع العديد من مواقع الإنترنت من الطرف الثالث، والتي تعمل مثل بدائل لبرنامج تحليلات جوجل Google Analytics لقياس مدى نجاح موقعك. 12. أداة Ahrefs هو اسم معروف عندما يتعلق الأمر بإجراء أبحاث عن المنافسين وتحسين محركات البحث SEO، ولديه أكبر معدل فهرسة للرابط الخلفي أو المسمى Backlink، بالإضافة إلى أنها تتجاوز كل ذلك لتكون أيضًا أداة وسائط مدفوعة فعالة. بالنسبة للمستخدمين الذين يديرون حملات PPC، يمكنهم استخدام الأداة لتحسين عائد الاستثمار والحصول على أقصى قيمة من استثماراتهم الإعلانية، حيث تعرض هذه الأداة أفضل صفحات الهبوط للمنافسين، لتفهم بوضوح الصفحات التي تعطي معدلات تحويل جيدة بالنسبة لمنافسيك؛ كما تقدم كميةً كبيرةً من البيانات لوكلاء الدفع بالنقرة PPC، مما يسمح للمستخدمين بمشاهدة الكلمات المفتاحية التي يقدمها الآخرون، إلى جانب معدلات تكلفة النقرة وحجم البحث والإعلانات؛ هذا إلى جانب إمكانية الاطلاع على إعلانات المنافسين لرؤية الكلمات المفتاحية للإعلانات التي يستهدفونها. أهم ميزات Ahrefs احصل على معلومات حول مشاركات الشبكات الاجتماعية باستخدام أداة المحتوى المتكاملة من Ahrefs التي تقدم قاعدة بيانات كبيرة وتجعل المحتوى الذي لديك أفضل من محتوى المنافسين. تقدم لك نظرةً شاملةً على استراتيجيات محتوى الشبكات الاجتماعية والدفع بالنقرة PPC الخاصة بالمنافسين لتستطيع إيجاد الثغرات وتحسين استراتيجياتك. إمكانية تصفية النتائج حسب القنوات الاجتماعية لفهم أنواع المحتوى والموضوعات التي لها أفضل أداء على قنوات شبكات اجتماعية معينة. أكثر ما يحبه المستخدمون في Ahrefs هي إحدى أكبر الأدوات التي لديها خوارزميات زحف بعد جوجل، وتُعَد واحدةً من أكبر قواعد بيانات للكلمات المفتاحية. يتيح لك Ahrefs رؤية الكلمات المفتاحية الدقيقة التي يدفع مقابلها منافسوك، بالإضافة لإمكانية الاطلاع على النسبة المئوية لحركة الزيارات التي تولدها. عبر استخدام ميزة تتبع الكلمات المفتاحية للمنافسين، يمكنك تتبع متى أضيفت كلمات مفتاحية أو إعلانات جديدة بواسطة منافسيك. لديهم خدمة دعم بالمحادثات ممتازة. 13. منصة Sizmek هي عبارة عن منصة مستقلة متخصصة بالاستثمارات وموجهة للمعلنين والوكلاء، وتركز على إنشاء حملات إعلانية رقمية. توفر حزمة إدارة الإعلانات المفتوحة من Sizmek حملات رقمية متعددة الشاشات والأكثر إبداعًا وفعاليةً في جميع أنحاء العالم، وهي دعومة بمحرك بيانات لا مثيل له. أهم ميزات Sizmek تدعم إنشاء الخطط الإعلامية بسهولة: من إنشاء الإعلانات وتنشيط البيانات وإدارة الأصول وتقييم النتائج والكثير. يحتوي Sizmek على ميزة استيراد بيانات المستخدمين إلى المنصة من أجل استهداف وتجزئة هادفين. تتيح ميزة الإبتكار الديناميكي Dynamic Creative للمستخدمين إنشاء إصدارات عديدة أثناء جلب البيانات من جميع مكونات الحملة إلى موقع مركزي. يعمل على تحسين الإنشاء على نحو آلي موازنة مع مؤشرات الأداء الرئيسية KPIs التي ضبطت، بحيث يمكنك استخدام الأدوات لإحالة الإعلانات وعرضها. يوفر تحليلات معمقة لكل حملة إعلانية بمعرفات IDs فريدة لتتبع أداء الإعلانات. لديك القدرة على التحكم في بياناتك الإعلانية دون الاعتماد المفرط على جوجل. ما هي تكلفة Sizmek؟ يملك Sizmek نظامًا قائمًا على التسعير الثابت Quote-based pricing (أي يبقى سعر الخدمة ثابتًا حتى لو وجد مقدم الخدمة أن المهام أكثر مما اتفق عليه)، بحيث يعتمد في تسعير خدماته على عدد المستخدمين في الشركات الصغيرة والمتوسطة الحجم والمؤسسات، لذا يمكنك الاتصال بالشركة للحصول على تفاصيل عن عروض الأسعار. أكثر ما يحبه المستخدمون في Sizmek كونها مناسبة للشركات الصغيرة والمتوسطة والشركات الكبيرة. سهلة الاستخدام وتعطي قيمة ممتازة مقابل المال. تدعم تحميل عدة إعلانات بشكل جماعي. لديها فريق خدمة عملاء كبير ومتخصص للإجابة على الأسئلة. يوفر تقارير دقيقة للغاية. 14. أداة SE Ranking إن ما يميز هذه الأداة عن أدوات الوسائط المدفوعة الأخرى في هذه القائمة، هي قدراتها القوية في إدارة الوسائط الاجتماعية، حيث توفر هذه الأداة ميزة النشر المجدول والتقارير الشاملة وبيانات التصنيف المفيدة، لتظهر لك ما أي الممارسات تعطي النتيجة المرجوة في عملك، وأيها تحتاج إلى توجيه انتباهك إليها لجذب زيارات قيمة إلى موقعك الإلكتروني. أهم ميزات SEranking تقدم لك قائمةً كاملةً تحوي جميع منافسيك في مجال الوسائط المدفوعة ببساطة شديدة وعبر إدخال الكلمات المفتاحية. إمكانية معرفة المعلنين السابقين لاستعلام بحث معين. إمكانية معرفة أفضل وقت لنشر منشوراتك على وسائل التواصل الاجتماعي للحصول على تفاعل أفضل مع جمهورك المستهدف. يمكنك بسهولة العثور على الكلمات المفتاحية ذات المعاني المتشابهة واكتشاف الإعلانات الأكثر شيوعًا لمنافسيك. إمكانية التحقق من المعلومات التفصيلية حول نشاط المستخدم والإشارات المرجعية والتغريدات والبيانات الديموغرافية. أكثر ما يحبه المستخدمون في SE Ranking تتيح أداة SE Ranking للمستخدمين القدرة على النظر إلى ما هو أبعد من التصنيفات العضوية وتصنيفات جوجل المدفوعة، وذلك من خلال تتبع ليس فقط كلماتهم المفتاحية، ولكن أيضًا المنافسين. إمكانية استخدام مدقق الصفحة On-page Checker لتحسين صفحات الإنترنت بالنسبة لكلمة مفتاحية معينة بناءً على التوصيات والنصائح. 15. أداة Google Data Studio مع زيادة حجم الإعلانات والبيانات الرقمية لديك، ستزداد صعوبة التعامل مع الكم الهائل لبيانات إعلانات جوجل و منصة التحليلات الخاصة بهم "تحليلات جوجل Google Analytics"، حيث تزداد المشكلة سوءًا عندما تضطر إلى مشاركة تقارير مبسطة وسهلة مع مديري الشركة، لهذا السبب بالذات طورت جوجل أداة Google Data Studio. تجمع كل من أداة التمثيل البصري للبيانات وإعداد التقارير هذه البيانات من ما يصل إلى اثني عشر مصدرًا منفصلًا، متضمنةً أداة تحليلات جوجل لتجمعها في تقارير يمكن مشاركتها وتعديلها وفهمها بسهولة. تشمل المنصة أيضًا رسومًا بيانيةً وخرائط ومخططات وعناصر واجهة مستخدم لتحسين تمثيل البيانات. أهم ميزات Google Data Studio توفير المال والوقت عن طريق إنشاء التقارير ومشاركتها وقراءتها بسرعة وكفاءة. مساعد فريقك وعملك على اتخاذ قرارات أسرع والحصول على نتائج محسّنة بفضل الاستخدامات المتعددة للمنصة وسهولة استخدامها. ما هي تكلفة Google Data Studio؟ بدون أي تكلفة، فهي متاحة مجانًا. أكثر ما يحبه المستخدمون في Google Data Studio كل ما فيها ابتداءً من الألوان وأحجام الخطوط إلى غاية إضافة الصور، قابل للتخصيص والتعديل. مرونة كبيرة في مصادر البيانات، حيث يمكنك استخدام ملفات إكسل وجداول بيانات جوجل (جوجل شيتس) وملفات CSV والكثير. واجهة سهلة الاستخدام، من خلال الإلمام بأساسيات برنامج مايكروسوفت إكسل الذي يُعَد سهلًا إتقانه. التقارير الناتجة تفاعلية ويمكن مشاركتها بسهولة. 16. برنامج Optmyzr وهو برنامج تسويق بنظام الدفع لكل نقرة PPC، اختير كأحد أفضل أدوات الوسائط المدفوعة في جوائز البحث الأمريكية لعام 2018، وهو يجمع المعلومات الأولية من إعلانات جوجل وبينغ في تمثيل بصري شامل للبيانات، بحيث يمكن لمديري الحسابات متابعة النقاط البارزة والاتجاهات وتوجيه استراتيجيات التحسين. هو أداة مناسبة لكل من المبتدئين وخبراء PPC، تمكّنك من إنشاء حملات على نحو آلي واستخدام خوارزميات الذكاء الاصطناعي لتحسين حملاتك على نحو فوري. أهم ميزات Optmyzr يساعد التحسين بنقرة واحدة على تحسين أداء PPC في دقائق. يعمل على أتمتة تحليلات البيانات، بحيث لا يحتاج مسوقو الوسائط المدفوعة إلى المرور عبر جداول بيانات متعددة بحثًا عن نقاط البيانات الرئيسية. تساعد عروض الأسعار والميزانيات المؤتمتة في تحقيق أهداف معدل الزيارات وعائد النفقات الإعلانية وتكلفة الاكتساب والتحويلات. تحكم كامل في عملية تقديم العروض حتى تحصل على أفضل قيمة مقابل أموالك. ما هي تكلفة Optmyzr؟ تقدم Optmyzr إصدارًا تجريبيًا مجانيًا وأربع خيارات للاشتراكات، بما في ذلك أسعار خاصة بالشركات تقوم على مبدأ عدد المستخدمين للشركات والمؤسسات الكبيرة الحجم. أكثر ما يحبه المستخدمون في Optmyzr يدعم Optmyzr التحسين بنقرة واحدة الذي يعمل على أتمتة تحليلات البيانات دون الحاجة إلى المرور عبر جداول البيانات بحثًا عن نقاط البيانات الرئيسية. بفضل ميزة البرامج النصية المحسّنة التي توفر أتمتة التسويق، يمكن للبرنامج تحسين عروض الأسعار لإعلانات الجوال على أساس يومي أو ساعي. يحتوي Optmyzr على إعدادات إنفاق مرنة تساعدك في الحفاظ على ميزانيتك عن طريق الإيقاف المؤقت للإعلانات أو المجموعات الإعلانية أو الحملات أو الكلمات المفتاحية عند بلوغ حد الإنفاق الذي حددته. 17. أداة محرر الإعلانات من مايكروسوفت Microsoft Advertising Editor يدرك كل مسوق أهمية تنفيذ العمليات في الوقت المناسب، فهو أمر أساسي لنجاح حملاتهم الإعلامية المدفوعة؛ وهنا تأتي أهمية محرر الإعلانات من مايكروسوفت، فهو يوفر الوقت والمال ويحسن من أداء حملاتك التسويق. يُعَد المحرر متاحًا للتحميل، وستحصل على تطبيق لسطح المكتب بسيط وبديهي يبسط إدارة حملة الدفع لكل نقرة على نحو كامل، سواءً بوجود اتصال الإنترنت أو بدونه. أهم ميزات Microsoft Advertising Editor يساعد عملك في الوصول إلى المزيد من العملاء ذوي الجودة العالية وتحسين عائد النفقات الإعلانية بحملات الدفع بالنقرة PPC. تمتع بتكلفة نقرة PPC وتكلفة اكتساب CPA أقل من حملات إعلانات جوجل الأخرى المماثلة. إمكانية فحص وتعديل الكلمات المفتاحية وعروض أسعار الكلمات المفتاحية باستخدامك محرر إعلانات مايكروسوفت هذا. إمكانية تشغيل التقارير وتحسين الإعلانات والكلمات المفتاحية من أجل التحسين المستمر لأداء الإعلانات المدفوعة على شبكة البحث، وتحسين معدل التحويلات وخفض التكاليف. ما هي تكلفة Microsoft Advertising Editor؟ يمكنك تنزيل هذه الأداة عبر الإنترنت مجانًا. أكثر ما يحبه المستخدمون في Microsoft Advertising Editor يحب المستخدمون كيف تتيح لهم هذه الأداة الجديدة موازنة الأداء بين متغيري الحملة: تحسين تكلفة الاكتساب CPA والحد من الإنفاق الزائد. إمكانية استهداف المستهلكين ذوي الصلة على وسائل التواصل الاجتماعي مع استهداف الملف الشخصي الذي يستهدف الجمهور الصحيح. إمكانية توجيه نموذج الدفع بالنقرة PPC مع ميزة Action extensions التي تضيف زرًا للدعوة لاتخاذ إجراء CTA بجانب الإعلانات في نتائج البحث وروابط تودي إلى صفحة الهبوط المفضلة لديك. ملاحظات ختامية سواءً كنت مبتدئًا أو خبيرًا في نموذج الدفع بالنقرة PPC، فإن كل حملة تسويق رقمية تتطلب استخدام أدوات الوسائط المدفوعة. لقد صُمِّمت جميع هذه الأدوات المذكورة أعلاه لمساعدة الشركات على تحسين وإدارة إنفاقها بهدف زيادة أرباحها النهائية على المدى الطويل، حيث تتمتع كل أداة بنصيبها من المزايا، لذا يجب أن تضع في حسبانك عدة عوامل مثل التسعير والميزات المحددة لاتخاذ قرار مدروس قبل أن تختار. ترجمة وبتصرّف للمقال 17 Best Paid Media Tools for Marketers لصاحبه Joydeep Bhattacharya. اقرأ أيضًا كيف تدير حملتك الإعلانية المدفوعة على الإنترنت لتحقق لك الأرباح دليلك خطوة بخطوة لعمل حملة تسويقية ناجحة + 9 أدوات تساعدك في ذلك لمحة عامة عن الإعلانات الإلكترونية
  11. على غرار أمثالي من محبي التكنولوجيا والتجارب المختلفة المرتبطة بها اقتنيت مجموعتي الخاصة من منتجات راسبيري باي ذلك الحاسوب الرهيب الذي يمكن استخدامه كأداة خاصة بمنع الإعلانات المزعجة وبناء طابعة ثلاثية الأبعاد وإنشاء خادم ماين كرافت minecraft وغيرها، ولكن الأكثر تخصيصًا كان إعدادي راسبيري باي كخادم ويب واستخدامه لاستضافة مدونتي الخاصة وهو موضوع المقال الذي أشاركه اليوم. إن لم تكن تعرف راسبيري باي من قبل، فننصحك بالرجوع أولًا إلى مقال تعرف على جهاز راسبيري باي Raspberry Pi وهو جزء من سلسلة دليل راسبيري باي. الأسباب التي دفعتني لإعداد خادم ويب مخصص عملت في مجال بناء المواقع وتقديم الدعم الفني لها لمدة طويلة تزيد على عقدين من الزمن جربت خلالها العديد من حلول الاستضافة ولكن ارتفاع التكاليف المادية وكون العمل محدودًا دائمًا بخيارات شركة الاستضافة وأدواتها وسياساتها الأمنية كل ذلك دفعني إلى تجربة إعداد خادم ويب خاص بي أنشأته في منزلي ومجاني بالكامل بكل معنى الكلمة، ولكن هذا النوع من الاستضافة ضمن المنزل معرض دائمًا لمخاطر التوقف بسبب الظروف الطارئة التي تنجم عن انقطاع التغذية الكهربائية أو شبكة الإنترنت في مقر الاستضافة. ما نعرضه في الفقرات اللاحقة هو خطوات إعداد الخادم لمدونة مبنية عبر منصة دروبال لكن الطريقة نفسها تنطبق على أي نظام إدارة محتوى آخر يعتمد PHP. إعداد راسبيري باي كخادم ويب اخترت حاسب راسبيري باي للمشروع وهو من الجيل الرابع مع ذاكرة عشوائية بسعة 4 جيجابايت وبطاقة MicroSD للتخزين بنوعية جيدة بالإضافة إلى وحدة التغذية والصندوق وكل ذلك بتكلفة معقولة. وقد اعتمدت توزيعة سينت او اس CentOS من لينكس كنظام تشغيل أما بخصوص خادم الويب فاخترت أباتشي على الرغم وجود خيارات أخرى ممكنة مثل Nginx والذي إن فضلت اختياره يتعين عليك ضبط إعدادات الأمان الخاص به بما يكافئ ملفات htaccess التي تستخدمها دروبال، كما تم إعداد ما يلزم لاستخدام APCu (user-accessible PHP cache) كذاكرة تخزين مؤقتة من أجل PHP لفوائدها في تسريع التسليم لهذا النوع من المواقع. باختصار أيًا كانت خياراتك عليك مراجعة متطلبات PHP لمنصة دروبال والعمل على تحقيقها ضمن بيئتك وذلك بمساعدة مدير حزمة لينكس الخاص بك مثل Yum، ولا ننسى Cockpit الإضافة المميزة من راسبيري باي التي تسهل إدارة خادم الويب ومراقبة أدائه وموارده مثل سجلات الوصول والتحديثات المتاحة وغيرها عبر واجهتها الرسومية التي تتضمن أيضًا نافذة خاصة بكتابة الأوامر السطرية. تثبيت دروبال على راسبيري باي سنثبت دروبال عبر composer مدير الاعتماديات والحزم في PHP بتنفيذ الأمر التالي: composer create-project drupal/recommended-project my_site_name_dir ثانيًا اضبط الإعدادات ليكون المسار mysitename_dir المحدد في الأمر السابق هو مسار الجذر للاستضافة الافتراضية الخاصة بخادم الويب أباتشي (ويقابلها كتلة الخادم server block في Nginx). وبمجرد طلبك لمسار استضافة الويب فإن دروبال سيكمل عملية التثبيت. قررت -يقول مؤلف المقال- إنشاء موقعي على حاسب محمول منفصل ومن ثم رفعت الكود على GitLab وحملته من هناك على الخادم، في الواقع لست ملزمًا بإجراء هذه العملية إن كنت تهدف فقط لتجربة دروبال على راسبيري باي. إطلاق الموقع على الإنترنت الخطوة التالية بعد بناء الموقع وإعداد خادم الويب هي إطلاق الموقع للعلن وهذا يتطلب مجموعة من الإجراءات أولها الإعدادات على موجه الإنترنت لقبول طلبات الاتصال الخارجية الواردة على المنفذين 80 و 443، ومن ثم حجز اسم النطاق للموقع وذلك عبر مزود خدمة يقدم DNS ديناميكي وهي ميزة مناسبة لاتصالات الإنترنت الخاصة بالمنازل لأنها تستخدم عناوين IP متغيرة ولا يتم تخصيصها بعناوين ثابتة. دون أن ننسى جانب الحماية الذي يتطلب تأمين شهادة SSL لتشفير الاتصال مع الموقع، في الواقع شهادات SSL مكلفة ربما أكثر من الحاسب الذي أعددته كخادم للموقع بالأخص كونها تحتاج لتجديد سنوي مدفوع، لذلك اتجهت إلى Let's Encrypt وحصلت على شهادة مجانية، ويمكنك بالإضافة لذلك تثبيت cretbot لتجديد هذه الشهادة تلقائيًا. تقييم خادم الويب الذي تم إعداده على راسبيري باي والسؤال الآن هل خادم الويب الذي تم بناؤه يضاهي في السرعة حلول الاستضافة عالية التكاليف؟ في الواقع الإجابة هي لا، ولكنه في النهاية مجاني بالكامل باستثناء تكاليف الطاقة الكهربائية اللازمة لتشغيل الجهاز وهي في الحقيقة لا تُذكر، والأهم من مجانية الحل هي حرية إعداد المخدم بالطريقة التي ترغب بها. بعد فترة من الاستخدام قد تلاحظ تباطؤ أداء الخادم والسبب كما تبين لي من حالتي عائد لتراجع أداء بطاقة MicroSD مع الزمن. كما ننوه إلى مشكلة أخرى تواجه هذا النوع من الاستضافة الخاصة ضمن المنازل وهي أن تغيير المنزل أو صيانته أو انقطاع الكهرباء أو خدمات الإنترنت كل هذه الأمور الطارئة ستكون سببًا لخروج الموقع عن الخدمة لفترة لا بأس بها، ولكن رغم كل ما سبق يعد الخادم مناسبًا لحركة تبادل البيانات البسيطة مثل نشر المقالات. تسريع خادم الويب بناءً على التقييم السابق برزت الحاجة لتحسين الأداء ما استدعى ترقية مواصفات العتاد الصلب للخادم فاستخدمت جهاز راسبيري باي مع ذاكرة عشوائية 8 جيجابايت واستبدلت بطاقة MicroSD بقرص تخزين من النوع NVMe SSD (نوع من وحدات التخزين على شكل شريحة يعتمد تقنية SSD لكنه لا يتصل باللوحة الأم بوصلة SATA التقليدية ويستخدم لتسريع أداء الحاسب) مع حافظة USB3، ربما كلفتني وحدة التخزين هذه مع حافظتها أكثر مما دفعته لقاء حاسب راسبيري باي كاملًا مع بطاقة MicroSD ووحدة التغذية والصندوق، ولكن في الواقع أصبح الخادم يعمل جيدًا منذ ما يقارب السنة مع هذه التحسينات المكلفة. أما بالنسبة لنظام التشغيل والبرامج فقد أعدت بنائها هذه المرة باستخدام أوبونتو 64 بت كنظام تشغيل ليتناسب مع زيادة الذاكرة العشوائية إلى 8 جيجابايت وبالطبع يوجد أنظمة تشغيل أخرى مناسبة أما خطوات البناء الأساسية فهي نفسها. ولكن التحسين الأهم على البيئة كان تسريع توصيل الموقع باستخدام شبكة توصيل المحتوى CDN وهي خدمة تقدمها بعض الشركات وتعتمد على الاحتفاظ بنسخ من ملفات الموقع على خوادم الشبكة المنتشرة في عدة أماكن جغرافية حول العالم ويتوفر أحيانًا بعض العروض المجانية لهذه الخدمة كالتي توفرها Cloudflare على سبيل المثال لا الحصر. النتيجة الترقية التي تمت على الخادم أظهرت نتائج جيدة جدًا على السرعة انظر المؤشرات في الصور التالية. بحكم عملي في تطوير مواقع الويب أجريت اختبارات السرعة على العديد من المواقع معظمها من نوع دروبال للأمانة ونتائج هذا الموقع كانت من بين الأفضل، من المؤكد أن لبساطة التصميم أثرًا جيدًا على سرعة الأداء وأن الموقع نفسه كان سيسجل نتائج أقل بوجود المزيد من الصور بالأخص لتصفح الهاتف الجوال (حيث تتم ملائمة اختبار Lighthouse ليحاكي سرعة اتصالات 4G). ومن الجدير بالذكر أن ارتفاع معدل سهولة الوصول للموقع دون مجهود كبير منك كمطور هو ميزة أخرى لإنشاء المواقع باستخدام بنية مثل دروبال مختبرة مسبقًا للعمل بسهولة مع التقنيات المختلفة. خاتمة وفي الختام إن كنت تخطط لتجربة دروبال في بناء موقعك الشخصي وتوفر لديك جهاز راسبيري باي فهذه المقالة كفيلة بتشجيعك على بناء خادمك الخاص وتجربة هذا النوع من الاستضافة بنفس الخطوات التي عرضناها. ترجمة -وبتصرف- للمقال How I run my blog on a Raspberry Pi لصاحبه Martin Anderson-Clutz. اقرأ أيضًا تجميع راسبيري باي والتحضير لاستعماله مدخل إلى خادم الويب بناء موقعك واستضافته باستخدام Git أساسيات تحديد التكلفة المادية الكاملة لبناء موقع ويب.
  12. يُعَد برنامج FileZilla أداةً لتبادل الملفات مفتوح المصدر وشائع الاستخدام يدعم مختلف بروتوكولات تبادل الملفات مثل: FTP و FTPS- بروتوكول FTP عبر طبقة TLS أو SSL- بالإضافة إلى SFTP - برتوكول FTP عبر SSH، وذلك عبر واجهته الرسومية وهي ميزة لطالما فضّلها المستخدم الذي يواجه صعوبة في استخدام الأوامر عبر سطر الأوامر مثل scp و rsync. سنتعرف في هذا المقال على برنامج FileZilla ومميزاته وطريقة تثبيته. تثبيت FileZilla على لينكس لديك خيارين لتثبيت FileZilla إما تثبيته باستخدام ملفاته المصدرية أو عبر حزم مخصصة لكل توزيعة من توزيعات لينكس وهي الطريقة المفضلة، إذ يفترض توافر التطبيق في مستودع تطبيقات معظم (إن لم يكن كل) توزيعات لينكس، لذا استعن دومًا بمركز التطبيقات ومدير الحزم في عملية التثبيت. بالنسبة لأوبونتو انتقل إلى مركز التطبيقات وثبته منه أو قم بذلك باستخدام الأمر التالي: sudo apt install filezilla في حال واجهتك أي رسالة خطأ تفيد بعدم العثور على البرنامج، ففعّل المستودع Universe الخاص بأوبونتو إما من مركز التطبيقات من قائمة Ubuntu Software بتفعيل خيار community-maintained free and open-source software أو بتنفيذ الأمر التالي من سطر الأوامر: sudo add-apt-repository universe ابحث بعد انتهاء عملية التثبيت عن البرنامج وشغله وذلك من خلال كتابة اسمه في شريط البحث السريع (بعد الضغط على الزر الخاص برمز ويندوز على لوحة المفاتيح). استخدام FileZilla عند تشغيل البرنامج FileZilla لأول مرة ستشاهد الواجهة المبينة أدناه، فالجانب الأيسر منها مخصص للجهاز المحلي أي الحاسب المستضيف للبرنامج، أما الجانب الأيمن فهو مخصص للخادم البعيد وسيكون فارغًا قبل الاتصال بالخادم وفور إتمام عملية الاتصال ستظهر ملفات الخادم البعيد ضمنه، وهو ما سنعرض بالتفصيل ولكن قبل ذلك لنتعرف على واجهة استخدام البرنامج. واجهة استخدام FileZilla تنقسم واجهة استخدام البرنامج كما توضح الصورة التالية إلى ستة نوافذ أو أقسام سنشرحها بإيجاز: شريط الأدوات: ويتضمن أزرارًا لتنفيذ مهام متنوعة مثل فتح مدير الموقع أو تحديث قائمة الملفات والمجلدات المعروضة سواء في جانب الجهاز المحلي أو البعيد بالإضافة إلى إعطاء أمر البدء بنقل الملفات أو إيقاف النقل …إلخ. شريط الاتصال السريع: ويستخدم لإدخال بيانات الاتصال بالخادم البعيد وهي اسمه أو عنوانه على الشبكة واسم المستخدم وكلمة المرور. سجل الرسائل: ويعرض رسائل عن تتبع كافة الأحداث الجارية ضمن البرنامج بغض النظر عن نجاح تأسيس الاتصال من عدمه. وتُميّز هذه الرسائل بالألوان الأخطاء باللون الأحمر والأوامر التنفيذية باللون الأزرق أما الأحداث العادية فهي دون لون. الموقع المحلي: هذا الجانب من الشاشة مخصص لعرض ملفات الجهاز المحلي وتنفذ ضمنه أوامر الرفع من الموقع المحلي إلى البعيد. الموقع البعيد: يشابه تمامًا جانب الشاشة المحلي في الخصائص لكنه يعرض ملفات الجهاز البعيد وهو مخصص لأوامر التنزيل أي الإرسال من الخادم للنظام المحلي. رتل عملية النقل: ويبين كافة العناصر التي يتم تبادلها بين الطرفين مع سرعة النقل لكل عنصر. الاتصال بخادم SFTP باستخدام FileZilla قبل البدء يجب أن تتوفر متطلبات الاتصال وهي إعداد الخادم البعيد ليقبل هذا النوع من بروتوكولات الاتصال ومعرفتك عنوان بروتوكول الإنترنت للخادم البعيد واسم المستخدم وكلمة المرور للدخول إليه بالإضافة إلى توفر أذونات الوصول للمجلد الهدف، والآن ننتقل لتنفيذ عملية نقل باستخدام البرنامج. أضف اتصال SFTP جديد من خلال النقر على أيقونة مدير المواقع الموجودة في شريط الأدوات أو عبر اختيارها من قائمة ملف. وبعد أن يفتح مدير المواقع اضغط على موقع جديد ويمكنك إعادة تسميته باسم ذي دلالة، وبعد ذلك اضبط إعدادات الاتصال وفق مايلي: اختر أسفل التبويب عام General بروتوكول الاتصال المطلوب وهو في حالتنا SFTP واكتب عنوان الخادم البعيد ورقم بوابة الاتصال في الخانات المخصصة لذلك وفي حال لم تختر رقم بوابة فإن البرنامج سيستخدم البوابة 22 وهي الخاصة باتصالات SSH. وفي نفس التبويب اختر أحد أنماط تسجيل الدخول ومنها مثلاً النمط الطبيعي وفيه تحدد اسم مستخدم وكلمة مرور، ونمط Key file authentication الذي يستخدم لتحقيق المصادقة على طرفي اتصال SSH ويتطلب وجود مفاتيح تشفير عامة وخاصة. ثم اضغط على زر اتصال الموجود في أسفل النافذة وستتم عملية اتصالك مع الخادم، ولتسهيل العمل يخزن البرنامج اعدادات الاتصال الخاص بك لتستخدمه مرةً أخرى. تتبع اتصالك من خلال رسائل الأحداث الظاهرة في سجل الرسائل فهي مؤشر على نجاح الاتصال كما أن مجرد ظهور الملفات على شاشة البرنامج في جانب الخادم البعيد يعتبر مؤشر على نجاح العملية. إرسال الملفات إلى الخادم البعيد الخطوة الأهم لدقة التنفيذ هي الوجود في المسار الصحيح للملفات على كلا الجانبين المحلي والبعيد، ومن ثم يكفي لعملية الإرسال النقر المزدوج على الملف أو الضغط على الزر الأيمن من الفأرة واختيار رفع upload، فإذا ضغط على ملف من النافذة اليسرى، فسيُرسل مباشرة إلى المجلد الظاهر في النافذة اليمنى (أو يضاف إلى الطابور منتظرًا دوره ليرسل)، والأمر نفسه لنقل الملفات من النافذة اليمنى إلى اليسرى أي من الخادم البعيد إلى المحلي، وهذا سبب التأكيد على وجودك في المسار الصحيح في كلا النافذتين أي على النظام البعيد والمحلي. تنزيل الملفات من الخادم البعيد تُنزَّل الملفات بنفس آلية الإرسال أو الرفع الواردة في الفقرة السابقة بحيث يتم التأكد من فتح المسارات الصحيحة على الجانبين المحلي والبعيد ومن ثم اختيار تنزيل Download بدلًا عن رفع Upload وستجد أن الملفات نقلت للموضع المحدد في مسارك المفتوح على الجانب المحلي من الشاشة. ولو راقبت الأداء ستلاحظ أن عمليات الرفع والتنزيل تجري بشكل متناظر وأن البرنامج يدعم عمليات النقل المتبادل على التوازي ما لم يتم تقييد عدد الاتصالات المسموح بها. خاتمة وبذلك نكون قد أحطنا بأهم الأساسيات الخاصة بعمل البرنامج والتي ستمكن القارئ من إنجاز عمليات تبادل الملفات بين النظام المحلي والخادم بسهولة ويُسر. ترجمة -وبتصرف- للمقال Using FileZilla for Connecting to SFTP Server Via GUI لصاحبه Pratham Patel. اقرأ أيضًا دليل استخدام FileZilla و phpMyAdmin لإدارة ملفات وقواعد بيانات موقع ووردبريس كيفية تنصيب وإعداد خادوم FTP على أوبنتو 3 أخطاء شائعة عند رفع الملفات باستخدام بروتوكول FTP وكيفية إصلاحها النسخة الكاملة لكتاب دليل الأمان الرقمي
  13. الإصدار 1.0.0

    13215 تنزيل

    تسبق كل عملية تنفيذية عملية تصميمية تخطيطية مثل عملية تخطيط أي بناء ودراسته وتحليله ورسمه على المخططات قبل البدء ببنائه وتنفيذه على الأرض وكذلك الحال مع قواعد البيانات فقبل تنفيذها برمجيًا، يكون هنالك مرحلة تصميمية يجري فيها تصميم قواعد البيانات وتخطيط جداولها والأعمدة التي تحتويها وأنواع البيانات فيها والروابط الرابطة بينها والقيود المقيدة لها وهكذا، فلعملية التصميم تلك أهمية كبيرة لأي قاعدة بيانات، ولا يكاد يخلو أي نظام برمجي يتعامل مع البيانات من قاعدة بيانات لذا لابد من إجراء تصميم متين مناسب لقاعدة البيانات التي سيُبنى عليها النظام. يعد موضوع تصميم قواعد البيانات مادة أساسية تدرَّس في السنوات الأولى من تخصص علوم الحاسوب والتخصصات المتعلقة بهندسة الحاسوب والبرمجيات في الجامعة ولابد من تعلم الموضوع ودراسته قبل البدء بتعلم كيفية تنفيذ قاعدة بيانات برمجيًا، فلا يمكن بناء قاعدة بيانات قوية متينة الارتباطات سليمة القيود موحَّدة عديمة التكرارات دون دراسة موضوع التصميم نظريًا وإتقانه عمليًا وذلك بتصميم قواعد بيانات نموذجية والإطلاع على تصميمات أخرى لقواعد بيانات صممها مهندسون أكفَّاء. يشرح هذا الكتاب عملية تصميم قاعدة بيانات شرحًا موجزًا غير مخل، إذ يبدأ أولًا بتغطية كل المفاهيم المتعلقة بقواعد البيانات بدءًا من فكرة قاعدة البيانات بالأصل واختلافها عن أي نظام تخزين بيانات، وحتى العملية التصميمية وعمليات نمذجة البيانات وتمثيلها وعمليات الربط بين جداول البيانات وما يقوم عليها ثم يبني بعدها على ذلك كله شارحًا عملية تصميم قواعد البيانات وتطويرها حتى رسم مخطط ER النهائي لجداول قاعدة البيانات، وهو مخطط نموذج الكيان والعلاقة الواصف لقاعدة البيانات وجداولها وكل تفصيلة فيها، ثم يشرح بعدها كيفية تنفيذ المخطط الناتج عبر لغة SQL ولا يغيب عنه التطرق إلى أنظمة إدارة قواعد البيانات DBMS مع ذكر أشهرها. هذا الكتاب مترجم عن كتاب Database Design - 2nd Edition "تصميم قاعدة بيانات - الإصدار الثاني" لصاحبيه إيدرين وات Adrienne Watt ونيلسون إنج Nelson Eng وهو مبني في الأصل على عدة مصادر ركيزتها كتاب Database Design للمؤلف الأول إيدرين وات، فالمصادر المبني عليها كل فصل مدرجة في نهايته ويمكنك الرجوع إلى الكتاب الأجنبي الأصل إن أردت الإطلاع عليها، كما أن هذا الكتاب الأجنبي يُعتمد في بعض الجامعات لتدريس مادة تصميم قواعد البيانات في فصول قسم علوم الحاسوب وتصميم البرمجيات. انتبه إلى أن هذا الكتاب لا يركز على عملية تنفيذ قواعد البيانات وبرمجتها بل يركز على عملية تصميم قاعدة بيانات وكيفية نمذجتها وإن كان يتطرق إلى لغة SQL سريعًا شارحًا باقتضاب كيفية إنشاء قاعدة بيانات والعمليات الأساسية للتعديل عليها، أما إذا أردت الاستزادة والتعمق في هذا الموضوع، فننصحك بالرجوع إلى كتاب ملاحظات للعاملين بلغة SQL وكتاب الدليل العملي إلى قواعد بيانات PostgreSQL وتوثيق لغة SQL من موسوعة حسوب. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». يمكنك قراءة فصول الكتاب على شكل مقالات مجموعة ضمن وسم «تصميم قواعد البيانات» وتجد روابطها تاليًا: تحليل نظام الملفات لإدارة البيانات وتخزينها واختلافه عن نظام قاعدة البيانات المفاهيم الأساسية في قواعد البيانات وتصميمها خصائص قواعد البيانات والمزايا التي تقدمها نمذجة البيانات وأنواعها في عملية تصميم قواعد البيانات مفاهيم نموذج البيانات العلائقية RDM الأساسية المهمة في تصميم قواعد البيانات نموذج الكيان والعلاقة ER لتمثيل البيانات وتخزينها في قاعدة البيانات قواعد السلامة وقيودها لضمان سلامة البيانات في قواعد البيانات نمذجة الكيان العلاقي ER عند تصميم قواعد البيانات الاعتماديات الوظيفية المستخدمة في تصميم قواعد البيانات فهم عملية التوحيد Normalization المستخدمة عند تصميم قاعدة البيانات عملية تطوير قواعد البيانات Database Development نظرة سريعة على لغة الاستعلامات الهيكلية SQL لغة معالجة البيانات DML الخاصة بلغة SQL أمثلة عملية عن كيفية تصميم قواعد البيانات
  14. لا يعني التصميم المتجاوب مع الأجهزة المحمولة ومع الأجهزة الأخرى، مثل الحاسب المحمول وحواسب سطح المكتب؛ إنتاج نفس المنتج بحجم أصغر فحسب، بل يعني التركيز على ما يهم مستخدمي الأجهزة المحمولة وتقديم تجربة مستخدم متميزة، ولكي تفلح في مرادك لابد من التركيز على المهام وكيفية تنفيذها. لم يعد التصميم المتجاوب مع الأجهزة المحمولة اختياريًا، فقد اقتنى مليارات البشر هواتفًا ذكية وبنسبة أدنى حواسيب لوحية للدخول إلى شبكة الإنترنت، لذا يحرص المصممون على تلبية احتياجات هؤلاء المستخدمين، أو المخاطرة والخروج من سوق المنتجات. يعني هذا تبوء الأجهزة المحمولة المرتبة الأولى في العديد من استراتيجيات تطوير المنتجات، ويعني استيعاب اختلاف تجربة الأجهزة المحمولة عن تجربة أجهزة سطح المكتب. على سبيل المثال، حجم شاشة الهواتف الذكية محدود أكثر، واستمرار اتصالها بالإنترنت قد لا يكون مضمونًا، وعمر بطاريتها ثمين، وهلم جرًا. يجب مراعاة مزايا هذه الأجهزة، فهي أكثر خصوصيةً من أجهزة سطح المكتب، ويمكن تشغيلها دائمًا (حسب شحن البطارية)، كما يمكنك من خلالها التحدث مباشرةً إلى المستخدم وفيها أجهزة استشعار الحركة ونظام التموضع العالمي GPS وأجهزة قياس التسارع، وغير ذلك أيضًا. إذًا كيف يمكننا تطبيق التصميم المتجاوب مع الأجهزة المحمولة؟ هيا بنا نستعرض لمحةً عامةً. التركيز على الأجهزة المحمولة يُعَد حجم شاشة الأجهزة المحمولة محدودَا، مما يعني تصغير حجم التصميم أكثر، لذا يجب عليك تصميم الميزات في أدنى حجم ممكن، ويجب عليك التركيز على المهام الرئيسية التي يريد المستخدم تنفيذها، كما يجب عليك التعامل مع منصات أخرى لممارسة العمل عبر الأجهزة المحمولة. إضافة قيمة في العصر الراهن، يُطلق الجميع تطبيقات للأجهزة المحمولة. وإذا لم تتمكن من تمييز تطبيقك بميزات فريدة لا يوفرها أي منافس، فسوف تدفن تطبيقاتك في حفرة مظلمة عند متاجر التطبيقات. ميزات التشغيل الشخصية إذا كانت الأجهزة المحمولة شخصية، فيجب أن تمتاز وظائف تشغيلها بميزات شخصية وممتعة وقابلة للتخصيص، وذلك بجعلها جزءًا لا يتجزأ من حياة مستخدمك، وليس بالضرورة أن يصبح إنجاز المهام عملًا روتينيًا. مراعاة سياق الاستخدام متى سيتمكن المستخدمون من الوصول إلى ميزات التشغيل في تصميمك؟ هل عند شعورهم بالملل؟ أو هل خلال انشغالهم؟ هل عندما يشعرون بالضياع؟ اجعل ميزات التشغيل تناسب حال المستخدمين، وكن دائمًا على تواصل معهم. ميزات التشغيل المناسبة للأجهزة يجب أن تعتمد عند تصميم ميزات التشغيل على أنماط تسمح بتجربتها على كل الأجهزة المحمولة بطريقة متجاوبة ومتسقة، وذلك من خلال الآتي: إبقاء المستخدم في الصورة: قد تستغرق معالجة البيانات بعض الوقت، ولكن يجب أن تُعلم المستخدم فور تلقى بياناته وتُخبره بالمدة التي سينتظرها. الانتباه إلى التفاصيل: ينبغي أن تُتيح التطبيقات تجارب استخدام سَلِسةً تُمكن المستخدمين من تنفيذ المهام بكفاءة، كما ينبغي أن يشعر المستخدمون ويعلموا أنها جيدة للاستخدام. مشاهدة الواجهة: مستخدمو الهواتف الذكية عبارة عن أصبعي إبهام حرفيًا، يلمسا الشاشة. فهل يمكن إكمال مهامك بسهولة بإبهامي شخص ما؟ لا؟ أعد التفكير فيها إذًا. حفظ الإعدادات التلقائية: تتعلق هذه الإعدادات بأصبعي الإبهام، حيث الحفاظ على الحد الأدنى من الأزرار وعلامات التبويب والحقول وما إلى ذلك، إلى جانب الحفاظ على سهولة المحتوى لقابلية الوصول والتنقل. الحفاظ على اتساق أدوات التحكم وترتيبها أسفل الصفحة: هذا يتيح للمستخدم التركيز على المحتوى ومعالجته كما تقتضي حاجته. مطالبة المستخدم بإدخال البيانات اللازمة فقط: انتبه إلى ما إذا كان التصحيح التلقائي يساعد في إنجاز المهام على جهازك أو يعيقها. تأكد من مساعدة المستخدم في اختيار لوحة المفاتيح المناسبة لإنجاز المهمة. لا تنسى دعم اتجاه أفقي خصوصًا إذا كنت تريد كتابة مزيدًا من النصوص. فكر في إتاحة قفل اتجاه لتسهيل الاستخدام. الاهتمام بشريط التنقل تعتمد الكثير من الأمور على مدى تعقيد مهمتك، ولكن تطبيق شريط التنقل على الهاتف يمكن أن يندرج في هذه الفئات: لا شيء مطلقًا: إذا كنت تقوم بإصدار تطبيق الطقس للحي الذي تعيش فيه، فاستعمل شاشةً واحدةً (وينبغي) لإتاحة المهمة كاملة للمستخدم. علامات تبويب بسيطة: عندما تحتاج إلى تقسيم محتوى متناسق إلى عدة حقول مثل تويتر. قوائم منسدلة: عندما تحتاج إلى تقديم مستويات أعلى من التعقيد. اجمع المحتوى وسَهِل التنقل عبر التسلسل الهرمي. (مثل قائمة إعدادات هاتفك الذكي). تمكين لغة الإشارة إذا كنت تريد تمكين التحكم باستخدام الإيماءات (وهذا سبب يُظهر رغبة مستخدميك في إتمام مهامهم)، فيجب عليك مراعاة الآتي: قابلية الاكتشاف: كيف سيعرف المستخدم أن بإمكانه استخدام الإيماءات لإنجاز مهامه؟ إيماءات بكلتا اليدين: يمكن أن تكون مفيدةً، ولكن يمكن أن تكون عائقًا. فإذا أمسكت كوب القهوة بيد؛ فكيف سيكمل المستخدم مهمته من خلال التحكم بيد واحدة فقط؟ استمرار التواصل يجب إبقاء المستخدم على دراية أثناء إنجاز مهامه. ويجب عليك: اعتماد أسلوب لتقديم الملاحظات: بدايةً من اللمس (اعتمد خاصية الاهتزاز)، إلى المؤثرات البصرية (مؤشرات مستوى التقدم)، ويجب عليك إبقاء المستخدمين على بيّنة حول ما إذا كانت الأمور تسير على ما يرام خلال إنجاز مهامهم. اطلب تأكيدًا عند الضرورة: مربعات الحوار المشروطة مزعجة، ولكن الاستثناء هنا، هو أنك تريد حماية المستخدم. إذا كنت تسأل عما إذا كان شخص ما يريد حذف صورة على سبيل المثال، فيمكنك أن تسأل عما إذا كان متأكدًا قبل تنفيذ الأمر. حفظ التعديلات على المهمة إذا خرج مستخدم من تطبيقك دون إتمام مهمته، فعندما يفتحه مرةً أخرى، يجب السماح له بالدخول مباشرةً لاستكمال نفس المهمة بحفظ آخر تعديلاته، وما عليك سوى أن تحرص على تسريع وتسهيل إعادة فتح المهمة حتى تحظى بحب المستخدمين. مراعاة رسوم الجرافيك يجب أن يكون الرمز الذي تستخدمه لتطبيقك مثاليًا ومعبرًا عن المهمة الرئيسية التي يريد المستخدمون تنفيذها، وما عليك سوى جعل تطبيقك يظهره بوضوح في لمح البصر حتى تزيد إمكانية تنزيله واستخدامه. مراعاة سلاسة الاستخدام الأول حافظ على بساطة الأمور واجعل تركيزك منصبًا على المهام الرئيسية عند بدء تشغيل تطبيقك لأول مرة. يمكنك زيادة مستوى التعقيد مع مرور الوقت لأن المستخدم إذا أحس بالارتباك والتعقيد خلال استخدام تطبيقك للمرة الأولى، فغالبًا لن يكرر استخدامه مرةً أخرى. الخلاصة يمكنك تقديم تجربة استخدام جهاز رائدة لمستخدم تطبيقك، وذلك من خلال التركيز على المهام الضرورية لذلك المستخدم من منصة تضمن قابلية الوصول وميزات التشغيل ونماذج دعم لهذه المهام. تختلف الأجهزة المحمولة عن جهاز سطح المكتب، ولكن هذا لا يعني بالضرورة صعوبة تقديم تجربة متميزة، وإنما مجرد استخدام نهج مختلف. ترجمة -وبتصرف- للمقال Functionality and Mobile Design – Don’t Shrink the Screen, Focus on the Tasks لصاحبه. اقرأ أيضًا مقدمة في تصميم الويب المتجاوب: العناصر الزائفة واستعلامات الوسائط وغيرها كيفية التصميم للأجهزة المختلفة أفضل أطر تصميم المواد لتصميم تطبيقات الويب الحديثة الخاصة بواجهات المستخدم وتجربة المستخدم التصميم للهواتف: التصميم البصري تصميم النماذج الأولية للواجهات الرسومية: نصائح للتصاميم المتجاوبة والموجهة للأجهزة المحمولة
  15. الإصدار 1.0.0

    9243 تنزيل

    أصبحت الترجمة عملًا رائجًا جدًا في هذه الأيام، فأي شاب أو فتاة في مرحلة الدراسة ربَّما يبحث أو تبحث عن وظائف حُرّة في الترجمة ظنًا منهم بأنها وظيفة سائغة لكلّ من أتقنَ لغة أجنبية (أو أكثر)، وربّما تكون الترجمة سهلة إذا كان كلّ ما يلزمها هو إتقان لغة أجنبية، لكن هذا الإتقان لا قيمة له إن لم يجتمع مع إتقان اللغة الأم (وهي العربيَّة هنا) ومع اطلاع متعمِّق على نظرية الترجمة وما اتصل بها من علوم اللغة والأدب، وبدونهما تأتي الترجمة ضعيفةً مثل بناءٍ متهالكٍ بناهُ مهندسٌ مبتدئٌ أو لوحة رسمتها يد تنقصها الخبرة. يُقدِّم هذا الكتاب دليلًا للمترجمين الجدد وأصحاب الخبرة المتوسطة ويساعدهم في استيعاب واكتساب بعض من مهارات الترجمة التي ترتقي بعملهم من "ترجمة المعنى" إلى "تعريبه" وتكييفه مع سياقه الثقافي واللغوي الصحيح، وهو موضوعٌ لم تُكرَّس له كتبٌ كثيرة في المكتبة العربية، فالكتاب مُوجَّه إلى المترجمين المبتدئين الراغبين بتعلّم الترجمة الكتابية من اللغة الإنكليزية إلى العربية، وهو لا يُعنى بالترجمة الشفهية ولا يتطرَّقُ إلى لغاتٍ غيرِ هاتين إلا في أمثلة عارضة، ولا يتطرق إلى الترجمة بالاتجاه العكسي (من العربية إلى الإنكليزية) لأن لها شروطًا وضرورات أخرى تحتاج شرحًا منفصلًا. يساعدُ الكتاب غير المختصّين على خوض غمار الترجمة نظريًا وأكاديميًا والتعرف إلى أهم المدارس الفكرية فيها، وإلى خصوصيات تطبيق هذه المناهج في سياق الترجمة من اللغة الإنكليزية إلى العربية (وهي خصوصيات تختلفُ بين كُلِّ لغتين من اللغات). وتبدأُ هذه الرحلة من سؤالٍ بسيطٍ وشيّق: فهل نقل أو "ترجمة" المعنى بين لغات الإنسان ممكنٌ أصلًا؟ وبذلك يبدأُ الكتاب بمدخلٍ إلى ظاهرة الترجمة وأساسياتها ثُمَّ يتناول مدارسها ومناهجها الكثيرة، وينتقلُ بعد ذلك إلى طُرُق التعريب وتعقيداته الشائكة في ترجمة المفردات والتراكيب والجملة وفي النهج والأسلوب، فيتطرَّقُ لأساسيات الكتابة العربية السليمة وضرورتها بالنسبة للمترجم. يُنصح بهذا الكتاب للمترجمين أصحاب الخبرة القليلة الراغبين بتطوير مهاراتهم وبناء خلفية منهجيَّة وأكاديميَّة في مجال الترجمة، على أنه لا يخلو من صعوبة للمستجدِّين في الترجمة بسببِ طرحهِ للكثير من المفاهيم والمشكلات اللغوية التي تحتاجُ إلى خبرة وتجربة تطبيقية لاستيعابها على أنه يمكن للمترجم المبتدئ قراءة الكتاب ثم الرجوع إليه كلما ازدادت خبرته إذ يمكن أن تعد هذا الكتاب مرجعًا تضعه بين متناول يديك، الهدف من الكتاب هو تأهيل المترجم الشغوف ليصبحَ خبيرًا مقتدرًا على أداء عمله وعلى خدمة لغته وثقافته، فالترجمة ليست منجم ذهبٍ وليست دائمًا مهنة مال، على أنها قوة جوهرية في التغيير والتقدُّم والنهضة، لذا أتمنَّى أن يضع بين يدَيْ المترجم العربي وسيلةً يهتدي بها إلى أصول الترجمة السليمة، وأن يساهم -ولو قليلًا- في نهوض الترجمة العربية لغةً ونوعًا لا كمًا وعددًا. وما يجعل هذا الكتاب جديدًا في المكتبة العربية أمران: الأول أنه كتاب أكاديميّ يُقدّم للقارئ منهجًا وأصولًا علميَّة متّبعة عالميًا، والثاني أنه يلاقحُ ما بينَ هذا المنهج العالمي وبينَ خصوصيَّات وسياق الترجمة العربية في زمننا وما يواجه المترجم فيها من عقبات وتحديات حاضرة. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». يمكنك قراءة فصول الكتاب على شكل مقالات مجموعة ضمن وسم «الترجم والتعريب» وتجد روابطها تاليًا: الفصل الأول: اللغة ومفهوم الترجمة بين اللغات النسبية اللغوية والترجمة: هل تؤثر اللغة على أفكارنا؟ فن الترجمة وأنواعها وأساليب الترجمة الحديثة كتب تزن ذهبا: تراث العرب والترجمة بين الحرفية والتصرف: تاريخ موجز لنظرية الترجمة آفات الترجمة على اللغة من لسان العرب إلى أكسفورد: المعاجم والقواميس وأهميتها في الترجمة تعريب المفردة والمصطلح تعريب تراكيب اللغة تعريب الجملة وأقلمتها تعريب الثقافة: مسائل لغوية في الترجمة العمل في الترجمة
  16. تحظى إدارة المنتجات بدعمٍ كامل من طرف شركات التقنية الأكثر نجاحًا في العالم، لكن بعض الشركات الأخرى لم تعتمد هذا النهج حتى الآن، رغم أنها قادرةٌ على تحقيق فائدةٍ كبيرة من إدارة المنتج. ولهذا السبب، سنشرح لك في هذا المقال أهميتها، وحاجتك إليها في شركتك التقنية أو الرقمية. إدارة المنتج ليست نهجًا جديدًا، فقد كانت بدايتها نحو العام 1931، انطلاقًا من مذكرات نيل ماكيلروي في شركة بروكتر وغامبل P&G، والتي تتحدّث عن حاجة الشركة إلى تعيين أشخاصٍ يمتلكون علاماتٍ تجاريةٍ فرديّة ويفهمون المنتجات التي تقدمها الشركة كليًا، حيث اعتمدت شركة هيولت-باكارد لاحقًا هذا النهج، فكوّن جزءًا رئيسًا من نجاح الشركة، بالإضافة إلى دمجه مع طرق كايزن (التحسين المستمر) المُستمدّة من نهج شركة تويوتا. مؤخرًا، ساهم بيان منهجية التطوير السريع في تطوير وظيفة إدارة المنتج، واعتمدت شركات عديدة -مثل جوجل وAirbnb وفيسبوك ونيتفلكس وغيرها- على منهجية التطوير السريع بصورةٍ كبيرة، وقد أصبحت إدارة المنتجات وظيفةً مستقلةً إلى جانب وظائفَ أخرى، مثل الهندسة والتسويق (بدلًا من أن تنضوي تحت أقسامٍ أخرى)، وكثيرًا ما يرفع التقارير إلى المدير التنفيذي مباشرةً. فما هي إدارة المنتجات إذًا؟ اقرأ هذا التعريف البسيط قبل التعرّف على أهمية وظيفة مدير المنتج. ما هي إدارة المنتجات؟ إن جوهر هذا التعريف هو الطبيعة الشاملة لعدّة قطاعاتٍ في إدارة المنتجات، والتي تشمل الهندسة والتقنيّة واستراتيجيّة دخول السوق وقابليّة الاستخدام ونماذج الأعمال، وتُوجد نظمٌ ووظائفٌ وأدوار تركّز على كل عنصرٍ من الوظائف المطلوبة في الشركات التي لا تمتلك إدارة منتجات، لكنّ غياب هذه الوظيفية يؤدّي إلى فقدان هذا الجمع الشامل للوظائف. تُوفّر ويكيبيديا تعريفًا مفصلًا لإدارة المنتجات يركّز على نشاطاتٍ معينة، ويُساعدك على إدراك ماهيتها، ويعرفها على أساس: "إدارة المنتجات وظيفةٌ مؤسساتيةٌ داخل الشركة، تتعامل مع تطوير المنتجات الجديدة ومبررات بدء الأعمال والتخطيط والتوثيق والتنبؤ وسياسة التسعير وإطلاق المنتج وتسويق المنتج، وتشمل هذه الوظائف كامل مراحل دورة حياة المنتج". مع ذلك كثيرًا ما يخطئ البعض في فهم معنى إدارة المنتجات ويختلط الأمر مع مفهوم دراسات الجدوى، إذ يعتقد الكثيرون أنهما نفس الشيء، وهما ليسا كذلك لذا يمكن توضيح الفرق بينهما في الجدول الآتي: أوجه الاختلاف إدارة المنتجات دراسات الجدوى إنطلاقها ونهايتها تبدأ قبل بدء العمل على المنتج (عندما يكون مجرد فكرة) وتستمر خلال دورة حياته كاملة قبل بدء العمل على المنتج (عندما يكون مجرد فكرة تنتهي وهو ما يزال فكرة بظهور النتائج اانظرية التقديرية المتعلقة بنجاح المشروع أو فشله (قبل بدء دورة حياة المنتج) أساسها نظري + تطبيقي نظري فقط نتائجه دقيقة إلى حد ما افتراضية غالبًا ما تبتعد عن الواقع تناسبه مع أنواع المنتجات يتناسب مع كل المنتجات لا يتناسب مع كل أنواع المنتجات نوع الخبرات اللازمة للقيام بها (للمشاريع المتوسطة أو الكبيرة) تتطلب فريق عمل كامل من مختلف التخصصات تحتاج إلى متخصص في المالية والأعمال وقوانين الأعمال الجهة المسؤولة عن العمل على المنتج إدارة المنتجات مسؤولة عن العمل على المنتج دراسات الجدوى غير مسؤولة عن العمل على المنتج المرونة مرونة جيدة بما أنها تقوم على مراقبة المنتج خلال دورة حياته بالتالي إعادته للمسار المطلوب كلما انحرف لا توجد مرونة كافية إذ تنتهي قبل التطبيق الفعلي للمنتج، بالتالي قد تحدث متغيرات كثيرة لم تتطرق لها دراسة الجدوى من ناحية أخرى، يخطئ الكثيرون أيضًا وحتى بعض الشركات في التمييز ما بين إدارة المنتجات وإدارة المشاريع، لذا فلتسهيل فهم هذين المصطلحين، يمكن اختصار الفرق بينهما في كون أن العمل على المنتج يتطلب عدة مشاريع تحتاج بدورها إلى إدارة، ولتوضيح هذا الفرق بالتفصيل، ننصحك بالاطلاع على المقالة مقارنة بين مدير المنتج ومدير المشروع لتكون الصورة أمامك أوضح أكثر بهذا الخصوص. ما أهمية إدارة المنتجات يجب عليك تعيين مدير منتجات إذا أردت الالتزام بعرض القيمة للعملاء حصريًا، أو عرض القيمة المنتجات بصورةٍ أساسية، حيث تُعَد منصات المواقع والتطبيقات وواجهة برمجة التطبيقات منتجًا بحد ذاته بنظر الكثير من الشركات، إذ يشتري العملاء والمستخدمون تلك المنتجات بصورةٍ أساسية، ويتفاعلون مع الشركة ويجربون منتجاتها عبر تلك القنوات. يتطلب ذلك امتلاك نهج الأخذ بحاجات العملاء (أو المستخدمين أو المواطنين)، بالإضافة إلى المعرفة التقنيّة التي تتماشى مع حاجات مشروعك التجاريّ، ويُطلق على هذا النهج إدارة المنتجات، ويُؤدّي فقدان هذا النهج (أو الوظيفة) إلى اتباع منهجٍ مفكّك، حيث: تأخذ أقسام المبيعات والتسويق والدعم بوجهة نظر المستهلك، لكنّها تُعاين وجهة نظر المستهلك، وذلك انطلاقًا من الأهداف والمشكلات التي تواجهها، ولا تملك فكرةً واضحة عمّا يمكن تحقيقه باستخدام التقنية. تعمل الهندسة والتقنية والعمليات على تصميم المنتجات، لكنّها ليست ضليعةً بما يريده العميل. يضع المشروع التجاري والفريق التنفيذي أهدافًا وغاياتٍ معيّنة. مع ذلك، قد لا تأخذ بالحسبان رأي العميل أو تهتم به، وربما لا تُقدَّر جدوى المنتج بنظر العميل. لتعزيز هذه الفكرة، إليك مثالًا عمليًا عن قيمة نهج إدارة المنتجات الذي يقدّمه للشركات والمؤسسات، إذ تسمح تلك الشركات والمؤسسات لعملائها بتخصيص وإعادة تسمية الحملات التسويقية لرسائل البريد الإلكتروني التي ترسلها الشركة، فينخرط الفريق والإدارة في تلبية المتطلبات المُعدّة مسبقًا، وهو أمرٌ يستغرق عدة شهور، بهدف تقديم خيارات تخصيصٍ كاملة والتي يتطلّب بعضها مواجهة تحدياتٍ تقنيةٍ جادّة. لنفترض أن مدير منتجاتٍ خبير التحق بالفريق، أجرى مقابلاتٍ مع العديد من عملاء الشركة، فاستطاع تقليص خارطة طريق العمل إلى طلبٍ واحد، وهو السماح للعملاء بتغيير شعار الشركة، حيث تُعَد تلك عمليةً سهلة التنفيذ، وسيحبها العملاء بشدّة، لأنها أتاحت لهم إمكانية تخصيص الشعار كيفما يشاؤون، لكنّ العملاء أرادوا الحصول على الشعار فقط، لا إجراء تغييراتٍ على الخطوط أو الألوان أو التخطيط، فكان العملاء بحاجةٍ إلى هذا التخصيص قبل أن يُتاح لهم استخدام المنتج. يتجسّد مثالٌ آخر عن قيمة إدارة المنتجات في الأهداف التجاريّة للشركة، أي رغبة الشركة في طرح المنتج ضمن سوقٍ محدّدة ومتكاملة، وتريد الشركة في هذه الحالة بيع المنتج للعملاء مباشرةً، بدلًا من بيعه للشركات التجاريّة الأخرى، حيث أن الأمرَ منطقيٌ بالنسبة للشركة، وعلى مستوى الاقتصاد الجزئي، حيث يُمكنها في هذه الحالة تأسيس علاقةٍ مع العميل، واستغلال إمكاناتها التشغيليّة في نشاطٍ ماليٍ واسع النطاق. مع ذلك، يكشف النهج التخصصي في إدارة المنتجات عن وجود تحدياتٍ تقنيّة، وحاجةٍ إلى إمكاناتٍ تشغيليّةٍ لخدمة العملاء الذين لم تَحسب الشركة حسابهم، حيث أدّت إدارة المنتجات إلى فجوةٍ كبيرةٍ بين الاستراتيجيّة التي يود المشروع التجاري اتباعها من جهة، ورغبة العملاء المستهلكين من جهةٍ أخرى. عملية إدارة المنتجات تمر عملية إدارة المنتجات بعدة مراحل بحسب المرحلة التي نحن بها من تطوير المنتج، بحيث تحوي كل مرحلة منها عدة جوانب، ويمكن توضيحها في الآتي: قبل بدء العمل على المنتج (المنتج هنا ما يزال فكرة) خلال هذه المرحلة يكون من الضروري اختيار المنهج الموحد الذي سيُتبع في الإدارة، ونجد هنا منهجين رائجين هما: المنهجية الرشيقة أجايل Agile منهج تدفق المياه waterfall وهنا يمكن انتقاء المنهجية الأنسب انطلاقًا من نوع منتجك. وإلى جانب ذلك، لا بد من تحديد الأدوات اللازمة للقيام بإدارة المنتج خلال مختلف مراحله؛ بعد ذلك لا بد من وضع المعالم الرئيسية للمنتج، وذلك من خلال الآتي: البحث والتخطيط: هنا يجب تحديد الحصة السوقية المتوقعة لمنتجنا، والمنافسين الموجودين حاليًا في السوق مع مختلف بياناتهم اللازمة لمتابعتهم وتحديد ميزاتهم التنافسية وأسعارهم، وغيرها من الأمور المهمة لمنتجنا أيضًا. تحديد متطلبات المنتج وتصميمه: يجب هنا مستلزمات إنتاج المنتج نفسه وكيف يكون شكله. عند بدء العمل على المنتج (قبل إطلاقه) في هذه المرحلة يتم العمل على تطوير المنتج وإنتاجه ومتابعة مساره وملاحظة ما يناسبه فعليًا وما يمكن تعديله للوصول إلى الهدف الأساسي منه. بعد العمل على النسخة الأولى من المنتج (بعد إطلاقه) لا يكفي أن تكون هناك متابعة للمنتج فقط عندما يكون فكرة أو قيد الإنتاج، بل لا بد من متابعته خلال مسار دورة حياته في السوق أيضًا، وذلك من خلال التعرف على آراء المستخدمين حوله، والعمل على تطويره وإضافة ميزات وخصائص تتماشى واحتياجات السوق والمستهلكين أكثر، إلى جانب إدارة دورة حياته نفسها. مهارات إدارة المنتجات تحتاج إدارة المنتجات إلى بعض المهارات الأساسية التي تسهم في إنجاح عملية تطوير المنتج وإدارته، وتتمثل هذه المهارات في: اكتساب المعرفة والمهارة اللازمة لإجراء أبحاث السوق. القدرة على بناء الاستراتيجيات للعمل على المنتج. القدرة على التعامل مع المنهجية المناسبة للمنتج. التخطيط للمنتج وخارطة طريق المنتج. مهارات التحليل السليم وحل المشكلات التي تصادف المنتج خلال تطويره وخلال دورة حياته. تقييم تطور المنتج ومساره. القدرة على التفاوض. التواصل الجيد. المهارات قيادية. أدوات إدارة المنتج تتطلب عملية إدارة المنتجات وتطويرها مجموعةً من الأدوات التي تختلف حسب طبيعة المنتج، وحجم الموارد المخصصة له ومدى انتشاره؛ مع ذلك ثمة بعض الأمور المشتركة التي لا بد وأن تتوفر في كل عملية إدارة منتج، والتي سنذكرها في الآتي: أدوات البحث عن المنافسين وتحليلهم: يعتمد البعض للبحث عن المنافسين على أدوات سهلة ومجانية، مثل بحث جوجل للمنتجات الرقمية، والذي يساعدهم على تحديد أبرز المنافسين على اختلاف أنواعهم انطلاقًا من نتائج البحث لديهم، كما يلجأ البعض إلى أدوات تحليل هؤلاء المنافسين خاصةً عندما تكون المنتجات رقمية، فيلجؤون إلى أدوات تساعد على قياس سرعة مواقع المنافسين وقوتها من ناحية السيو والزوار مثلًا إذا كان المنتج الرقمي هو موقع إلكتروني مخصص لشيء معين. أدوات إدارة المشاريع وخرائط المنتجات: تحتاج إدارة المنتجات بصفة عامة إلى مجموعة من الأدوات التي تساهم في إدارة سير العمل وإنشاء خرائط منتجات متوافقة مع خصائص المنتج، ومن بين هذه الأدوات يمكن ذكر: "أداة أنا" وهي أداة باللغة العربية مخصصة لإدارة المشاريع وفرق العمل، والتي يمكن تخصيصها لبناء خرائط منتجات متوافقة مع طبيعة المنتج والمنهج المستخدم في إدارته وكذا أهدافه؛ أيضًا يمكن استخدام بعض الأدوات الاخرى الشائعة للمشاريع الكبيرة نوعًا ما، مثل أداة Roadmunk أدوات تصميم المنتج: يحتاج المنتج أيا كان نوعه إلى وجود تصميم معين له، وبطبيعة الحال تختلف الأدوات المستخدمة للتصميم على اختلاف الميزانيات والخبرات والمتطلبات اللازمة للعمل على المشروع، حيث يستخدم البعض أدوات مجانية في حين يستخدم البعض الآخر أدوات مدفوعة؛ كما يستخدم البعض أدوات بسيطة إذا كانت المتطلبات بسيطةً أيضًا، أو يلجؤون إلى أدوات معقدة تحتاج إلى خبرات عالية بالعمل. أدوات التواصل بين فريق العمل: يحتاج فريق العمل على المنتج إلى وسيلة محددة للتواصل فيما بينهم، فهم فريق متعدد التخصصات والالتزامات، لذا فاستخدام وسيلة واضحة موحدة للتواصل سيكون مهمًا جدًا، وهنا يمكن اعتماد البريد الإلكتروني، أو وسائل التواصل الاجتماعي مثلًا، لكن هذه التواصلات ستكون خارجية ومتعبة بالإدارة أحيانًا، لذا يمكن اعتماد أدوات تساهم في تقليل التنقلات مع إمكانية الاستفادة منها بأكثر من وجه، وهنا يمكن استخدام أداة أنا مثلًا التي سبق وذكرناها أعلاه، من أجل إضافة التواصلات اللازمة بين أعضاء الفريق بسلاسة. أدوات عرض المنتج وتقديمه: يحتاج العمل مع فريق متنوع على المنتج إلى وجود أدوات عرض مناسبة تستخدم للعروض التقديمية في الاجتماعات من أجل شرح الأفكار وتقدم العمل ومثال هذه الأدوات نذكر شرائح البروبوينت، كما يمكن أن يكون هناك استخدام للأدوات من أجل عرضها أمام مستثمرين؛ وأخيرًا العرض على العملاء. تختلف الأداة هنا حسب اختلاف نوع العرض من بسيط إلى احترافي، كما قد تختلف الجهة القائمة عليها، حيث يمكن اللجوء في الحالات التي تتطلب احترافيةً عالية إلى استخدام قوالب جاهزة بجودة عالية تمكن من الوصول إلى الأهداف المطلوبة مثل اقتناء قوالب جاهزة من بيكاليكا، كما قد تتطلب الحصول على قوالب احترافيةً مخصصة يمكن تحصيلها من مواقع العمل الحر مثل مستقل أو خمسات. أدوات تحليل الزوار والمستخدمين: تستمر إدارة المنتجات إلى ما بعد إطلاق المنتج وخلال كل دورة حياته، وبطبيعة الحال عملية الإدارة ستحتاج إلى وجود بيانات قابلة للقياس لتحسين مسار المنتج في كل مرة وفهم المستخدمين، وهنا يمكن الاعتماد على أدوات تحليل معينة يتم اختيارها انطلاقًا من طبيعة المنتج. نذكر هنا على سبيل المثال أدوات التحليل من جوجل google analytics الذي يسمح بمعرفة معلومات تفصيلية عن المستخدمين زوار المواقع، كما يمكن الاعتماد الاستبيانات الإلكترونية، أو على وسائل التواصل الاجتماعي لمعرفة آراء المستخدمين ومتطلباتهم. أسئلة متكررة إذا كنت وزملاؤك تتساءلون عن قيمة إدارة المنتجات في الشركة، فإليك بضع أسئلةٍ متكرّرة عن الموضوع، ومآخذَ شائعة على إدارة المنتج. لا نتعامل مع عملاء، بل مع المواطنين أو أعضاء مؤسساتٍ ومنظماتٍ أخرى: لا تُؤثّر نوعية العملاء الذين تتعامل معهم على حاجتك إلى نهج إدارة المنتجات، لذا ركّز القواعد التي تعلّمتها على هؤلاء المواطنين (أو الأعضاء) بدلًا من العملاء. العميل أو المنتج مملوكٌ لقسمٍ آخر: قد تُواجه بعض الفرق الرقميّة التي تحاول تطبيق أفضل الممارسات، مشكلةً تتمثل بامتلاك الأقسام الأخرى مدير منتجاتٍ مسؤول عن المنتج، وفي مثال عن ذلك،نجد المصارف، أين يكون مدير المنتجات مسؤولًا عن بطاقة الائتمان، وفي هذه الحالات، لا تزال بحاجةٍ إلى نهج إدارة المنتجات في الفرق الرقمية المسؤولة عن تلك المنتجات الرقميّة، وبهذا يكون المنتج الرقمي في أغلب الأحوال، سبيلًا لتفاعل العميل، أو مفتاح حصوله على التفويض، حيث يُفيد الاستثمار في إدارة المنتجات حينها في التأكّد من أن العنصر الرقمي الذي تُقدّمه يعمل بأفضل صورة، بافتراض أنّك تواجه خطرًا من ناحية الإيرادات والفرص. لدينا مدير منتجاتٍ يهتم بتحليل XYZ: تتمحّور إدارة المنتجات حول التأكّد من أداء العمل على نحوٍ صحيح، بينما تركّز إدارة المشاريع بشدّة على ضمان سير العمل على أكمل وجه، إذ يُكمّل كل منهما الآخر، وتحتاج إليهما معًا لتحقيق نتائجَ موفّقة. كيفية دخول مجال إدارة المنتج بدء شركتك الشخصية: لا شيء أفضل من بدء شركتك لتعلّم إدارة المنتجات، والسبب هو أن مؤسس الشركة يؤدي كافة الأشياء بنفسه (في مرحلة البداية على الأقل). وعندما تُؤسس شركتك، ستكون مسؤولًا عن تحليل البيانات والتسويق وإدارة المنتج وخدمة العملاء وما إلى ذلك، وستصبح قادرًا على إنجاز كافة أنواع العمل، حتى لو لم تتقنها باحترافيّة، وهذا هو السبب الذي سيجعلك مدير منتجاتٍ متفوّق، لأنك ستتفاعل يوميًا مع عددٍ متنوعٍ من أصحاب المصلحة؛ مع أنها تجربة متقلبة تحمل في طياتها الكثير من الخبرات التي ستتعلمها في هذه الرحلة، إلا أنها رحلةٌ مكلّفةٌ نوعًا ما، خصوصًا إذا كان هدفك النهائي هو إتقان إدارة المنتجات، ومع ذلك، إذا حصلت على هذه الفرصة وكنت مُؤهلًا للتحدّي، ننصحك بتجربة ريادة الأعمال ولو مرةً واحدة. فإذا بدأت شركتك الناشئة، ستتعلم الكثير من هذه العملية، خصوصًا تلك الجوانب أو الأشياء التي تُمنى بالفشل، والتي تضعك -في نهاية المطاف- على المسار الصحيح لاكتشاف الأشياء الناجحة. برامج دراسية أو برامج التدريب للحصول على وظيفة مساعد مدير منتج: يناسب هذا المسار خريجي الجامعات الجُدد، حيث تقدّم الشركات الكبرى -مثل فيسبوك وجوجل وأمازون وآبل ومايكروسوفت، وغيرها- برامج مساعد مدير المنتج التي تُهيّئ أيّ شخصٍ لا يملك خبرةً لدخول مجال إدارة المنتج، كما وتساعدك هذه البرامج الدراسية على التعلّم بسرعة لأنها تتميّز بمنهجٍ دراسيٍ مصمّم بعناية، ويشمل العمل على منتجاتٍ ذات قاعدة مستخدمين حيّةٍ وضخمة، والحصول على الإرشاد والتدريب، ودوران الموظف في عددٍ مختلف من شركات المنتجات، بالإضافة إلى فرصة بناء شبكةٍ اجتماعية، مع أن تلك البرامج الدراسية تتميّز بكونها شديدة المنافسة، إذ يمكنك اتباع مسارٍ آخر، عبر الانخراط في برنامج تدريبٍ صيفي تُقيمه إحدى الشركات الكبرى. مصدر الصورة: RocketBlocks الانتقال داخل الشركة: يُعَد الانتقال إلى وظيفة مدير المنتج داخل الشركة التي تعمل لديها أحد أسهل الطرق لدخول المجال من دون إنفاق الأموال، وذلك بصرف النظر عن الوظيفة التي تشغلها حاليًا، فلا شكّ أن وظيفتك تتطلب مسؤولياتٍ معينةٍ قابلة لإعادة الصياغة بصورةٍ مشابهة لمسؤوليات مدير المنتج، وإذا لم تستطع ذلك، يُمكنك التقرّب من فريق المنتجات في الشركة التي تعمل لديها. اجتمع مع مدير المنتجات لتفهم الدور الوظيفي الذي يلعبه، وقدّم له المساعدة قدر الإمكان، وعبّر عن رغبتك في الانضمام إلى الفريق، حيث ينتقل الموظفون إلى إدارة المنتجات قادمين من أقسامٍ مختلفة كليًا، مثل التسويق وخبرة العملاء والعمليات والتحليلات والهندسة، لذا تأكّد أن بمقدورك فعل ذلك. ماجستير في إدارة الأعمال: يسعى الكثير من الأشخاص إلى الحصول على درجة ماجستير في إدارة الأعمال، للوصول إلى منصب كبير مديري المنتجات أو مدير منتجاتٍ أوسط في الشركات الضخمة، والتي تدفع بدورها أجرًا محترمًا للخريجين الجدد الذين يحملون درجة الماجستير، حيث تُوظف الشركات المُدرجة ضمن قائمة فورتشن 500 حملة درجة الماجستير في إدارة الأعمال مباشرةً بعد التخرج، في حين تبحث شركاتٌ أخرى عن هؤلاء لملء شواغر وظيفيةٍ في منصب مدير المنتجات، فما السبب وراء هذا التهافت على حملة الماجستير؟ أحد الأسباب الرئيسة هي امتلاك هؤلاء فرصةً للتفاعل مع العديد من الأشخاص ذوي الخلفيات المتنوّعة إبان فترة دراستهم، والعمل معهم على طيفٍ واسع من المشاريع، وتقديم العروض ودراسة مواد أو مساقاتٍ إلزامية، مثل التمويل والاستراتيجيات والعمليات وتحليل البيانات وغيرها، لهذا السبب، تُعَد درجة الماجستير في إدارة الأعمال بمثابة حزمةٍ شاملة، وتُساعدك في الحصول على وظيفةٍ في إدارة المنتجات. في المقابل، تكون تكلفة هذه الدراسة كبيرة، لذا يجب عليك التفكير إذا كنت بحاجةٍ إلى درجة الماجستير أم لا. برامج أو مخيمات تدريبية لإدارة المنتجات: تُوفّر بعض الشركات برامجًا أو مخيماتٍ تدريبيّة في مجال إدارة المنتجات، مثل شركة Product School أو جنرال أسمبلي General Assembly، وتُعَد تكلفة تلك البرامج وورشات العمل أقل بكثير من تكلفة دراسة الماجستير في إدارة الأعمال، كما وتشهد اليوم رواجًا لدى الراغبين في تعلّم إدارة المنتجات، وقد تُوفّر تلك البرامج عونًا لمَنْ يرغب بالانتقال إلى منصب مدير المنتج داخل الشركة ولا يمتلك المهارات المطلوبة، أو لا يرغب في إنفاق كمٍّ هائلٍ من المال على الدراسات العليا، إذ تُساعدك المخيمات التدريبية على اكتساب المهارات والمعرفة المطلوبة في إدارة المنتجات، عبر إنشاء منتجاتٍ رقمية والحصول على الإرشاد ودراسة حالاتٍ فردية، لذا فأفضل ما يمكن أن تقدّمه تلك البرامج والمخيمات هو المساقات التعليميّة التي يدرّسها مدربون ومعلمون من شركاتٍ مُدرجة ضمن قائمة فورتشن 500. مصادر أخرى كي تتمكن من دخول إدارة المنتجات تحتاج الخطوات السابقة إلى بعض التنظيم والوقت حتى تتمكّن من تنفيذها؛ مع ذلك، لا يوجد ما يمنعك من تعلّم مدخلات ومخرجات إدارة المنتجات، كما أن هناك الكثير من الكتب التي ألفها رواد الأعمال، بعضها غني بالمعلومات والمصادر التي تُساعدك على اكتساب فكرةٍ أوضح عن مسؤوليات مدير المنتج وكيفية إجراء مقابلة عملٍ ناجحة، وإن رغبت في تعلمها باحترافية، فننصحك بالانضمام إلى دورة إدارة تطوير المنتجات المقدمة من أكاديمية حسوب. ترجمة -وبتصرُّف- للمقالين What Is Product Management And How It Can Help You Drive Growth لصاحبها Scott Middleton و‎5 Ways And Resources to Get Into Product Management لصاحبها Bisman Singh. اقرأ أيضًا التحضير لمقابلة العمل بهدف الحصول على وظيفة مدير المنتج كيف تدير قنوات توزيع المنتج؟ تطوير منتج جديد خطوة بخطوة النسخة العربية الكاملة لكتاب مدخل إلى التسويق
  17. الإصدار 1.0.0

    8514 تنزيل

    تُعد أنظمة التشغيل موضوعًا متقدمًا في العديد من برامج علوم الحاسوب، حيث يتعرف المتعلم على كيفية البرمجة بلغة C بحلول الوقت الذي يتعرف فيه على أنظمة التشغيل، وربما يأخذ المتعلم فصلًا دراسيًا في معمارية الحاسوب Computer Architecture قبل ذلك، فيصبح الهدف من تقديم هذا الموضوع عادةً هو عرض تصميم وتنفيذ أنظمة التشغيل للطلاب مع افتراض ضمني أن بعضهم سيجري بحثًا في هذا المجال، أو يكتب جزءًا من نظام تشغيل. هذا الكتاب مترجم عن الكتاب Think OS لكاتبه آلن داوني Allen B. Downey والذي يعد مسودة أولية لم تكتمل بصورة نهائية بعد إذ طُوّر لفصلٍ دراسي في كلية أولين Olin College يدعى أنظمة البرمجيات Software Systems. لا يفترض هذا الكتاب أنك قد درست معمارية الحاسوب، فيجب أن يمنحك فهمًا أفضل أثناء قراءته عن الحاسوب ومعماريته وكيف يعمل المعالج والذاكرة فيه وكيف تُدار العمليات وتُخزَّن الملفات وما يحدث عند تشغيل البرامج، وما يمكنك القيام به لجعل البرامج تعمل بصورة أفضل وأسرع بوصفك مبرمجًا. يشرح الفصل الأول بعض الاختلافات بين اللغات المُصرَّفة compiled واللغات المُفسَّرة interpreted، مع بعض الأفكار حول كيفية عمل المصرِّفات compilers، ويشرح الفصل الثاني كيف يستخدم نظام التشغيل العمليات لحماية البرامج قيد التشغيل من التداخل مع بعضها البعض. ويشرح الفصل الثالث الذاكرة الوهمية virtual memory وترجمة العناوين، ويتحدث الفصل الرابع عن أنظمة الملفات ومجرى البيانات، ويصف الفصل الخامس كيفية تشفير الأرقام والأحرف والقيم الأخرى، ويشرح أيضًا العامِلات الثنائية bitwise operators. أما الفصل السادس، فيشرح كيفية استخدام إدارة الذاكرة الديناميكية وكيفية عملها، ويدور الفصل السابع حول التخبئة caching وهرمية الذاكرة. ويشرح الفصل الثامن تعدد المهام multitasking والجدولة scheduling. ويدور الفصل التاسع حول خيوط POSIX وكائنات المزامنة mutexes، ويشرح الفصل العاشر المتغيرات الشرطية POSIX ومشكلة المنتج / المستهلك، ويدور الفصل الحادي عشر حول استخدام متغيرات تقييد الوصول POSIX وتطبيقها في لغة C. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «مدخل إلى أنظمة التشغيل»، أو تجدها مسردة بالترتيب التالي: الفصل الأول: مفهوم التصريف Compilation في لغات البرمجة الفصل الثاني: العمليات Processes في أنظمة التشغيل الفصل الثالث: الذاكرة الوهمية Virtual memory في نظام التشغيل الفصل الرابع: فهم الملفات Files وأنظمة الملفات file systems الفصل الخامس: تمثيل الأعداد والنصوص بالبتات وإجراء العمليات على مستوى البت الفصل السادس: إدارة الذاكرة Memory management في لغة C الفصل السابع: فهم عملية التخبئة Caching في معمارية الحاسوب الفصل الثامن: تعدد المهام Multitasking في الحواسيب الفصل التاسع: مفهوم الخيوط Threads في عملية المعالجة الفصل العاشر: المتغيرات الشرطية وحلها مشاكل التزامن بين العمليات في لغة C الفصل الحادي عشر: متغيرات تقييد الوصول Semaphores في لغة البرمجة سي C
  18. المحتوى هو أحد أهم العناصر في موقع الويب أيًا كان نوعه ووظيفته، إذ بنيت المواقع والتطبيقات للمستخدمين حتى يستفيدوا من محتواها سواء لقراءة أو تعلم أو تسوق وما إلى ذلك. فثبت عبر تجارب سلوكيات المستخدمين أن نصفهم يجرون عمليات البحث ضمن المواقع التي يتصفحونها، ومن هنا نشأت الحاجة إلى استخدام المطورين لأساليب بحث داخلية في مواقعهم، والأفضل من ذلك استخدام محركات بحث داخلية، حيث يوفر محرك البحث الداخلي تجربة أفضل للمستخدم تجعل الوصول إلى ما يريده من الموقع عملية سريعة وبسيطة، خاصة إذا كان الموقع يعرض منتجات تجارية مثلًا ويريد المستخدم أن يبحث عما يريد، أو إذا كان موقع محتوى متخصصًا وأراد المستخدم أن يبحث عن موضوع معين فيه. كم وافر من المحتوى الموجود على الإنترنت موجود باللغة الإنكليزية، وهنالك وسائل ومحركات بحث وفيرة تتيح إمكانية البحث باللغة الإنكليزية، ولكن عندما يأتي الأمر إلى المستخدم العربي والمحتوى العربي، نجد قصورًا في جودة البحث إلى الدرجة التي تجعل البحث الداخلي في المواقع عملية دون فائدة، فأتى محرك البحث العربي لبلب ليحل هذه المشكلة بالاعتماد على أفضل الأساليب والتقنيات، وبمجهود موجه للجمهور المتحدث بالعربية. سنبني في هذا المقال موقع ويب يعرض مقالات، بشكل مبسط، باستخدام Node.js وقاعدة بيانات MySQL (أو MariaDB) وسنرى معًا الفارق بين وظيفة البحث التي سننشئها يدويًا، وبين نتائج البحث التي يعطينا إياها لبلب عند استخدامه في الموقع، فهيا بنا. جدول المحتويات التهيئة الأولية للمشروع تصميم الصفحات تهيئة إدارة قواعد البيانات وإنشاء الموجهات Routes إضافة المقالات بناء عملية البحث اعتمادًا على قاعدة البيانات مفاهيم متعلقة بمحرك البحث الداخلي تهيئة حزمة لبلب بناء عملية الفهرسة Indexing تعديل عملية البحث وتجارب البحث تجارب البحث باستخدام لبلب الخلاصة التهيئة الأولية للمشروع سننشئ مجلدًا جديدًا باسم my-blog للمشروع ونفتحه باستخدام محرر Visual Studio Code وبعدها نفتح نافذة سطر الأوامر، وننفذ الأمر التالي فيها لإنشاء مشروع Node.js جديد: npm init اختر ملف الانطلاق app.js عند السؤال عن ذلك ثم أنشئه بعدها في جذر المجلد بإنشاء ملف جديد ضمن محرر الأكواد vscode. يجب أن ننتبه إلى أهمية تنظيم ملفات عمل المشروع، فمن المهم جدًا أن تكون أسماء المجلدات دالةً على وظيفتها، وأن تكون الملفات مقسمةً تقسيمًا صحيحًا. علينا أن ننشِئ مجلدًا للضبط باسم config ونضع بداخله ملفًا لإنشاء قاعدة البيانات والجدول articles إن لم تكن موجودةً، لكن قبل ذلك، علينا أن نثبت بعض الحزم من مدير الحزم npm لتضمين الوحدات modules التي تلزمنا في عملنا. اكتب ما يلي في سطر الأوامر: npm install express express-session body-parser sequelize uuid ejs mysql سنشرح سريعًا وظيفة كل حزمة من الحزم السابقة: express: هي إطار العمل المساعد في تطبيقات node.js، وحزمة express-session هي حزمة تعريف الجلسة لكل مستخدم حيث ستفيدنا في عملية البحث. body-parser: هي الأداة التي ستساعدنا في قراءة الطلبات requests. sequelize: هي عبارة عن orm (وسيلة تواصل بين الخادم وقاعدة البيانات تتولى جميع الاستفسارات بين التطبيق والخادم وقاعدة البيانات) سيساعدنا في إدارة عمليات قاعدة البيانات. uuid: هي أداة تولد معرفات فريدة عالميًا. ejs: هي محرك العرض الذي سنستخدمه لعرض صفحاتنا. mysql: هي حزمة للتواصل مع قواعد البيانات. يمكنك الرجوع دائمًا إلى موقع npm لمعرفة المزيد عن هذه الحزم. سننشِئ قاعدة بيانات باسم myBlog، سنبدأ بكتابة الملف dbCreation.js ضمن مجلد config كما يلي، لا تنسَ تغيير معلومات الاتصال من المستخدم الجذر root أو أي مستخدم آخر وتغيير كلمة المرور password إلى كلمة المرور الخاصة بك: //تنفذ الأوامر الموجودة فى هذا الملف فى بداية إنشاء المشروع فقط let mysql = require('mysql'); //معلومات الاتصال بالخادم المحلى let con = mysql.createConnection({ host: "localhost", user: "root", password: "password", multipleStatements: true }); //تعريف أمر إنشاء قاعدة البيانات وإنشاء الجدول المستخدم فى التطبيق let sqlCommand = ` CREATE DATABASE IF NOT EXISTS myBlog CHARACTER SET utf8 COLLATE utf8_general_ci; use myBlog; CREATE TABLE IF NOT EXISTS articles ( id int AUTO_INCREMENT, title varchar(200), author varchar(100), content text, tags varchar(500), createdAt datetime, updatedAt datetime, PRIMARY KEY (id) ); ` con.connect(function(err) { //تنفيذ إنشاء قاعدة البيانات con.query(sqlCommand, function (err, result) { if (err) throw err; }); }); تخزن قاعدة البيانات معلومات كل مقال كما يوضح الكود إذ تحتوي على جدول فيه الحقول الآتية: حقل id رقمي من النوع int والذي يمثل معرِّف المقال وهو المفتاح الرئيسي primary key للجدول، ويزداد تلقائيًا. الحقول title و author و tags لتخزين عنوان المقال واسم كتابها والوسوم المستعملة فيها وذلك على التتالي وبالترتيب، وهي من النوع varchar. الحقل content من النوع text الذي يمثل محتوى المقال. الحقلان createdAt و updatedAt لتخزين متى أُنشِئت المقالة ومتى حدثت، وهما من النوع datetime. بعد إنشاء قاعدة البيانات وضبطها، لنشغل الخادم عبر كتابة الكود التالي في ملف app.js: const express = require("express"); const bodyParser = require("body-parser"); const session = require("express-session"); const uuid = require("uuid"); const errorHandler = require("./middleware/errorHandler"); const db = require("./config/dbCreation"); // ‫لإنشاء التطبيق باستخدام express const app = express(); //تحديد محرك العرض app.set("views", `${__dirname}/views`); app.set("view engine", "ejs"); // ‫‫خيارات حزمة body-parser app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json({ extended: true })); // تعيين المجلد الحاوي للملفات القابلة للإرسال app.use('/public', express.static('public')); // تحديد المنفذ const port = process.env.PORT || 5000; // ‫تحديد session secret const sessionSecret = "keyboard cat"; // استخدام حزمة الجلسة لتمييز كل مستخدم app.use( session({ genid: (req) => { return uuid.v4(); }, secret: sessionSecret, resave: true, saveUninitialized: true }) ); // ‫استدعاء المستقبل article routes require("./routes/article.routes")(app); // معالجة الأخطاء app.use(errorHandler); app.listen(port, () => { console.log(`server is up, listening on port ${port}`); }); بناء على ما كتبناه هنا، علينا إنشاء مجلد views على جذر المشروع وهو ما سيحوي صفحات العرض والتي سيكون امتدادها ejs حيث خصصنا ejs كمحرك للعرض، كما سننشئ مجلدًا اسمه public يحوي ملفًا اسمه style.css حيث عيننا هذا المجلد على أن محتوياته قابلة للإرسال إلى حاسوب العميل. تصميم الصفحات سنحتاج في مشروعنا هذا إلى الصفحات التالية: الصفحة الرئيسية (فيها عرض للمقالات أو لنتائج البحث). صفحة عرض المقالة. صفحة إنشاء المقالة. إن أمعنا النظر فسنجد أن الترويسة والتذييل لهذه الصفحات نفسها، فلا حاجة لتكرار الشيفرات نفسها في أكثر من ملف، لذا سنقسم الملفات إلى الملفات التي سيلي ذكرها في هذا القسم. سننشئ ضمن المجلد views ملفًا نسميه header.ejs يحوي الشيفرة التالية: <!DOCTYPE html> <html lang="ar"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>مدونتي</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css"> <link rel="stylesheet" href="../public/style.css"> </head> <body> <nav class="navbar fixed-top navbar-expand-md "> <div class="container"> <a class="navbar-brand mr-0 ml-4 " href="/">مدونتي</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <i class="fas fa-bars"></i> </button> <div class="collapse navbar-collapse" id="navbarNav"> <ul class="navbar-nav mr-md-1"> <li class="nav-item ml-md-2 active"> <a class="nav-link" href="/article/create"> <i class="fas fa-plus ml-1"></i> إنشاء مقال <span class="sr-only">(current)</span> </a> </li> </ul> <form class="form-inline mt-2 mt-md-0" action="/search" method="GET" > <input name="q" id="q" class="form-control ml-sm-2" type="text" placeholder="عن ماذا تريد أن تبحث ؟" aria-label="Search" required> <button class="btn btn-primary my-2 my-sm-0" type="submit">ابحث</button> </form> </div> </div> </nav> وهذه هي ترويسة الصفحة، استدعينا فيها مكتبة Bootstrap من نظام توصيل المحتوى CDN، واستدعينا فيها مكتبة fontawesome من نظام توصيل المحتوى CDN، واستدعينا ملف style.css الذي أنشأناه، كما بنينا شريط التنقل للموقع. سننشئ ضمن المجلد views ملفًا آخر اسمه footer.ejs وهو تذييل الصفحة، ونكتب فيه التالي: </div> <script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script> <script src="../public/script.js"></script> </body> </html> وهنا أيضًا استدعينا مكتبة jQuery وملف JavaScript الخاص بمكتبة Bootstrap، وملف script.js الذى يحتوى على السكربت الخاص بالتطبيق، وأغلقنا الأوسمة المفتوحة الموجودة في ملف header.ejs. سنهيئ الآن الصفحة الرئيسية في الموقع والتي ستمكننا من عرض المقالات. لننشئ الآن ملف index.ejs أيضًا في مجلد views ولنكتب فيه: <%- include('_header') %> <main role="main" class="container-fluid"> <div class="jumbotron"> <div class="container"> <h1 class="text-center">أحدث المقالات</h1> </div> </div> <div class="container pt-4 pb-4"> <div class="row"> <% if(!articles || articles.length == 0) { %> <h5 class="col mt-5 pt-5 text-center">لا توجد مقالات لعرضها</h5> <% }else { %> <% articles.forEach(article => { %> <div class="mb-4 col-md-6 col-sm-12"> <div class="card shadow-sm p-3 bg-white rounded"> <div class="card-body"> <h2 class="card-title mb-3"> <a class="text-primary text-decoration-none" href="/article/<%= article.id %>"><%= article.title %></a> </h2> <p class="card-text mb-4"><i class="fas fa-user-circle"></i> <%= article.author %></p> <button class="delete-btn btn btn-danger btn-sm" data-id="<%= article.id %>">حذف المقال</button> </div> </div> </div> <% }) %> <% } %> </div> </div> </main> <%- include('_footer') %> الشيفرات المحاطة بالإشارتين <% و %> هي شيفرات JavaScript يقرؤها ejs لتنفيذ ما ضمنها، وفي حالتنا هنا نستورد الترويسة والتذييل للصفحات، ونضع ما يعبر عن المقالات في الكائن الذي سنوفره عند تنفيذ الصفحة حتى نعرض بياناته. لنضع تنسيقًا لتحسين شكل الصفحة، إذ سنكتب شيفرة التنسيق التالية في الملف style.css الذي أنشأناه في المجلد public: /*-الخط المستخدم بالموقع-*/ @import url('https://fonts.googleapis.com/css2?family=Almarai&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Almarai:wght@700&display=swap'); /*-الإعدادات العامة للموقع-*/ body { direction: rtl; text-align: right; font-family: 'Almarai', sans-serif; font-size: 16px; } .bg-light{ background-color: #e9ecef !important; } textarea{ resize: none; } .container--error{ margin-top: 70px; } .container--error p{ font-weight: 700; } .container-fluid{ padding: 0 !important; margin-top: 56px; } .navbar{ background-color: #e9ecef; padding: 15px; } .navbar-toggler{ border: 1px solid #212529; } .navbar-toggler:focus{ border:1px solid #212529 !important; } .navbar-brand{ color: #212529 !important; font-weight: 700; } .navbar .navbar-collapse form{ margin-right: auto; } .navbar .navbar-nav{ padding-right: 0; } .navbar .navbar-nav .nav-link{ color: #212529; } .navbar .navbar-nav .nav-link i{ font-size: 13px; } .jumbotron{ border-radius: 0; padding: 6rem 2rem; } .card{ border: none; height: 100%; } .card-title a{ transition: all 0.3s ease; } .form-control{ border: none; height: auto; } .article-head{ display: inline-flex; align-items: flex-start; justify-content: center; flex-direction: column; } .article-head h5{ color: #868686; } /*-responsive-*/ @media (min-width: 1100px){ .container--article-create{ max-width: 900px; } .container--article-view{ max-width: 900px; } } @media (max-width: 768px){ .navbar-nav > li:first-child{ margin-top: 20px; } .navbar > .container{ padding-right: 15px; padding-left: 15px; } } @media (max-width: 576px){ .navbar-collapse form button[type=submit]{ width: 100%; } .navbar > .container{ padding-right: 0; padding-left: 0; } } أنشأنا حتى الآن الصفحة الرئيسية التي ستعرض كل المقالات أو نتائج البحث، ولننشئ الآن الصفحة التي ستمكننا من إضافة مقالات جديدة؛ سننشئ في مجلد views ملفًا اسمه create_article.ejs ونكتب فيه: <%- include('_header'); %> <main role="main" class="container-fluid"> <div class="jumbotron"> <div class="container"> <h1 class="text-center">أنشئ مقالًا</h1> </div> </div> <div class="container container--article-create pt4 pb-4"> <form action="/article" class="pt-5 pb-5" method="POST" id="create-article-form"> <div class="form-group"> <label for="title">عنوان المقال</label> <input type="text" class="form-control pt-2 pb-2 mt-1 bg-light" id="title" name="title" placeholder="أدخل عنوانًا مناسبًا لمقالك" required> </div> <div class="form-group"> <label for="author ">الكاتب</label> <input type="text" class="form-control pt-2 pb-2 mt-1 bg-light" id="author" name="author" placeholder="ما اسم كاتب المقال؟" required> </div> <div class="form-group"> <label for="content">نص المقال</label> <textarea class="form-control pt-2 pb-2 mt-1 bg-light" id="content" name="content" placeholder="نص المقال هنا" rows="7" required></textarea> </div> <div class="form-group"> <label for="tags">الوسوم</label> <input type="text" class="form-control pt-2 pb-2 mt-1 bg-light" id="tags" name="tags" placeholder="مثال على الوسوم: الكتابة,العمل" required> </div> <div class="form-group text-center"> <input type="submit" class="btn btn-lg btn-block mt-3 btn-primary" value="أنشئ المقال"> </div> </form> </div> </main> <%- include('_footer'); %> والآن لننشئ الصفحة التي ستعرض مقالًا عند النقر على عنوانه في الصفحة الرئيسية؛ سننشئ ضمن المجلد views ملفًا اسمه article.ejs ونكتب فيه: <%- include('_header'); %> <article class="container-fluid"> <div class="jumbotron"> <div class="container text-center"> <% if(!article) { %> <h1 class="text-center">لا يوجد مقالات!</h1> <% } else { %> <div class="article-head text-right"> <h1 class="text-right mb-3"><%= article.title %></h1> <h5 class="text-right mt-1">الكاتب: <%= article.author %></h5> </div> <% } %> </div> </div> <div class="container container--article-view"> <% if(!article) { %> <h1>المقال الذي طلبته غير موجود!</h1> <a href="/" class="btn btn-secondary btn-sm">عد إلى الصفحة الرئيسية</a> <% } else { %> <div> <%-article.content%> </div> <% } %> </div> </article> <%- include('_footer'); %> والآن لننشئ الصفحة التي ستعرض الخطأ للمستخدم في حالة قام بكتابة رابط غير موجود، سننشئ ضمن المجلد views ملفًا اسمه error.ejs ونكتب فيه: <%- include("_header"); %> <div class="container-fluid"> <div class="jumbotron"> <div class="container"> <h1 class="text-center">حدث خطأ ما!</h1> </div> </div> <div class="container container--error text-center"> <h2 class="text-center">أعد المحاولة لاحقًا </h2> <a href="/" class="btn btn-lg mt-3 btn-primary">عد إلى الصفحة الرئيسية</a> </div> </div> <%- include("_footer"); %> تهيئة إدارة قواعد البيانات وإنشاء الموجهات Routes بعد أن انتهينا من تصميم الصفحات، حان الوقت الآن لإنشاء طريقة التعامل مع قواعد البيانات، وكما تحدثنا سابقًا، سنستخدم Sequelize التي هي ORM شهيرة في Node.js. سننشِئ ملفًا جديدًا باسم sequelize.js، وسنضع فيه الشيفرة الآتية لتهيئة عملية الاتصال بقاعدة البيانات، وأذكِّرك بتغيير اسم المستخدم وكلمة المرور وفقًا لبيئة العمل الخاصة بك: const { Sequelize } = require("sequelize"); const DATABASE_NAME = "myBlog"; const USER_NAME = "root"; const PASSWORD = "password"; const DIALECT = "mariadb"; const sequelize = new Sequelize(DATABASE_NAME, USER_NAME, PASSWORD, { dialect: DIALECT, dialectOptions: { connectTimeout: 1000 }, logging: false, }); module.exports = sequelize; لتستطيع حزمة sequelize التعرف على قاعدة البيانات من نوع MariaDB (أو MySQL)، علينا تثبيت الحزمة المُخصَّصة لها بتنفيذ الأمر التالي: npm install mariadb وبهذا أصبح المشروع جاهزًا لكتابة الموجهات routes؛ لننشئ مجلدًا باسم routes بداخله ملف article.routes.js يحوي الشيفرة الآتية: const controller = require("../controllers/article.controller"); module.exports = (app) => { app.get("/", controller.viewIndex); }; ولكن يجب أن ننشئ مجلدًا باسم controllers وننشئ ملف باسم article.controller.js ونكتب فيه ما يلي: const Article = require("../models/article"); exports.viewIndex = (req, res, next) => { Article.findAll() .then((articles) => { res.render("index", { articles: articles }); }) .catch((error) => { next(error); }); }; هيأنا هنا الموجه الرئيسي، وعند طلب العنوان localhost:5000 في المتصفح فسيجلب الخادم كل المقالات من قاعدة البيانات، ويفسر الصفحة index.ejs ويعطيها الكائن articles حتى يعرض معلومات المقالات. نشغل المشروع عن طريق كتابة الأمر التالي في ملف المشروع في سطر الأوامر: npm start يجدر بالذكر أننا عدلنا القسم scripts في ملف package.json ووضعنا سكربت start لبدء تشغيل التطبيق عبر node للملف app.js. [...] "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node app.js" }, [...] في الخطوة التالية لنهيئ المستقبل الذي يوجهنا إلى نموذج أو استمارة إنشاء مقال؛ سنضيف داخل ملف article.routes.js بعد الشيفرة السابقة: app.post("/article", controller.create); app.get("/article/create", controller.viewCreate); بعد ذلك نضيف الشيفرة الآتية داخل ملف article.controller.js: exports.viewCreate = (req, res) => { res.render("create_article"); }; exports.create = (req, res, next) => { Article.create(req.body) .then((article) => { article.save(); res.redirect("/"); }) .catch((error) => { next(error); }); }; وبهذا نستطيع الآن إنشاء مقالات جديدة، واستعراضها من الصفحة الرئيسية، وحتى نرى المقال بعد الضغط على بطاقته في الصفحة الرئيسية، سنضيف ما يلي داخل ملف article.routes.js بعد الشيفرة السابقة: app.get("/article/:id", controller.viewArticle); بعد ذلك نضيف الشيفرة الآتية داخل ملف article.controller.js: exports.viewArticle = (req, res, next) => { Article.findOne({ where: { id: req.params.id, }, }) .then((article) => { res.render("article", { article: article }); }) .catch((error) => { next(error); }); }; وبهذا أصبح المشروع جاهزًا لإضافة وعرض المقالات من قاعدة البيانات. لا تنسَ حفظ كل شيء ثم تشغيل المشروع، أو استخدم حزمة nodemon لتعيد تشغيل المشروع تلقائيًا عند كل تعديل تجريه على شيفراتك. إضافة المقالات سننشئ بداية مقالًا للتحقق من صحة الإدخال إلى قاعدة البيانات، وليكن بالمعلومات التالية: وبعد أن تحققت من صحة العمليات التي بنيتها، سأنشئ مجموعة من المقالات ذات المواضيع المتقاربة من أكاديمية حسوب، ولا بد أن نتحدث عن كل المقالات التي أدخلناها حتى نفهم نتائج البحث. سأدخل المقال الأول بعنوان «كيف تقدّر أجر مساعدك عن بعد» وسأدخل اسم الكاتب عدنان، وفي نص المقال سأنسخ فقط المقدمة، وفي صندوق الوسوم سأدخل كلمة أجر مساعدك. المقال الثاني بعنوان «أسس القيادة التقنية» والكاتب ابراهيم سليمان، وسأنسخ فقط المقدمة، وفي صندوق الوسوم سأدخل أسس القيادة. والمقال الثالث بعنوان «معضلة الإنتاجية والكاتب هو عمر، وسأنسخ فقط المقدمة، وفي صندوق الوسوم سأدخل الإنتاجية. إذًا حصلنا الآن على ثلاثة مقالات، مواضيعها مختلفة، بالإضافة إلى المقال الأول التجريبي، وأصبح لدينا ثلاث كُتَّاب لكل منهم مقال، ولنبن الآن مستَقبِل البحث. بناء عملية البحث اعتمادًا على قاعدة البيانات يعتمد معظم المطورين على المعامل like في عبارات SQL لبحثهم، العملية كافية بالنسبة للبحث في شيء محدد يدركه المستخدم مسبقًا ولا مجال فيه للاختلاف الكبير بين آراء مختلف المستخدمين وصياغتها لعبارة البحث، وكل مافي الأمر هنا أن تبحث باستخدام هذا المعامل عن ما يشبه عبارة البحث في حقل العنوان أو حقل الوسوم tags للمقال، وتوفير مربع بحث آخر للبحث حسب الكاتب. وتُنفّذ العملية ببساطة بمقارنة السلاسل النصية المطلوبة مع عبارة البحث التي أدخلها المستخدم، دون أدنى شكل من أشكال تحليل محتوى المقال أو تعرف أداة البحث على موضوعه ومدى فائدته للمستخدم بناء على عبارة البحث. حتى أنشئ وظيفة البحث التقليدية، سأذهب إلى قسم الموجهات routes في ملف article.routes.js وأضيف الموجه التالي: app.get("/search", controller.search); بعد ذلك نضيف الشيفرة الآتية داخل ملف article.controller.js: exports.search = (req, res, next) => { Article.findAll({ where: { [Op.or]: { title: { [Op.like]: `%${req.query.q}%` }, tags: { [Op.like]: `%${req.query.q}%` }, content: { [Op.like]: `%${req.query.q}%` }, }, }, }) .then((articles) => { res.render("index", { articles: articles }); }) .catch((err) => { next(err); }); }; سيبحث هذا التابع في حقول العنوان والمحتوى والوسوم عن ما يتضمن حرفيًا ما أدخلناه في عبارة البحث، فإذا بحثنا باستخدام إحدى العبارات: أسس القيادة التقنية، معضلة الإنتاجية، مقال تجريبي؛ فإنه سيعيد لنا نتيجة واحدة كانت قيمة وسومها تحتوي العبارة. لكن ماذا إذا بحثنا مثلًا عن "أشياء إنتاجيّة"؟ نذكر أن أحد مقالاتنا كان يتحدث عن الإنتاج وفيه فقرة عن أشياء إنتاجيّة حقيقيّة، وتعلم أن تحصيلك لنتيجة بحث دقيقة تعطي المستخدم ما هو مفيد له فقط بناء على الدالة like شيء مستحيل، جرب مثلًا البحث عن "اشياء إنتاجيّة" دون همزة ستجد أنه لا يعيد لك أي نتائج. ولربما تبحث عن أمر آخر، كلمة أسس مكتوبة مع همزة في المقال الذي عنوانه أسس القيادة التقنية، ابحث عن "اسس" دون همزة، وستجد أنه لا يعيد لك أي نتائج! مفاهيم متعلقة بمحرك البحث الداخلي يأتي هنا دور محرك البحث لبلب والذي له القدرة على تحليل النص ومعرفة موضوعه ومضمونه، وجدولة نتائج البحث على أساس هذا التحليل، لنجرب الآن بناء البحث باستخدام لبلب لنرى إن كان سينجح في إعادة نتائج لنا بناء على العبارات التي لم تعد نتائج في البحث السابق، ولكن قبل أن نبدأ ببناء الوظائف، لنفهم بعض المفاهيم الأساسية. محرك البحث لبلب هو محرك بحث سحابي، يعمل على جدولة أو فهرسة indexing المحتوى الذي يصله من الموقع، ومن ثم التفاعل مع عبارة البحث التي تصله وتوفير النتائج التي يجدها مناسبة. من هنا نعرف أنه لدينا عمليتين حتى نصل إلى المطلوب: الأولى جدولة المحتوى، والثانية هي عملية البحث. يوفِّر محرك البحث لبلب واجهة برمجية Web API للتعامل معها بشكل مباشر، كما يوفر حزمة برمجية SDK لكل من المنصات: Node.js و PHP Laravel و WordPress، حتى تسهل التعامل مع الواجهة البرمجية API الخاصة به. يمكنك الرجوع إلى التوثيق الرسمي للواجهة البرمجية وللحزم البرمجية لأي تفاصيل ومعلومات إضافية. يتطلب التعامل مع واجهة لبلب البرمجية حسابًا على موقع لبلب، ويتم الحفاظ على وثوقية وأمان المعلومات عند التعامل مع لبلب من خلال استخدام مفاتيح خاصة بمشروعك API Key تستطيع توليد مفاتيح جديدة من خلال لوحة التحكم الخاصة بمشروعك (من خلال الدخول الى لوحة التحكم -> ثم الضغط على اسم المشروع الخاص بك -> ثم الدخول الى قسم API Keys) ونلاحظ وجود مفتاحين: الأول للقيام بعملية الفهرسة عند لبلب والثاني لإجراء عمليات البحث من بإستخدام لبلب. تهيئة حزمة لبلب لدي مشروع اسمه academyhsoub في حسابي على لبلب، ولهذا المشروع جدول collection اسمه posts وله البنية التالية: أستطيع من هنا التحكم في حقول هذا الجدول بإضافة حقول جديدة ومنحها أسماء أو حذف حقول موجودة، وجعلها إلزامية بتفعيل الخاصية required لها. سنثبت حزمة لبلب بالأمر الآتي: npm install @lableb/javascript-sdk وبعدها ننشئ ملفًا باسم lableb.js داخل المجلد config ونضع به الشيفرة الآتية: const { LablebClient } = require("@lableb/javascript-sdk"); const PROJECT_NAME = "academyhsoub"; const INDEXING_TOKEN = "محتوى هذا الحقل من حسابك على لبلب"; const SEARCH_TOKEN = "محتوى هذا الحقل من حسابك على لبلب "; let lableb; LablebClient({ platformName: PROJECT_NAME, APIKey: SEARCH_TOKEN, indexingAPIKey: INDEXING_TOKEN }) .then(lablebClient => { lableb = lablebClient; }) .catch(error => { console.error(error); }) module.exports = lableb; وهكذا سنستطيع استخدام المتغير lableb لمختلف العمليات. هيأنا هذا الثابت بإعطائه اسم المشروع ومفاتيح الواجهة API KEYs الخاصة بالجدولة والبحث، حيث أن الحزمة ستوجه الطلبات إلى رابط واجهة لبلب البرمجية بالشكل التالي في حال عملية الجدولة: https://api.lableb.com/api/v2/${PROJECT_NAME}/indices/${COLLECTION_NAME}/documents?apikey=${INDEXING_TOKEN} وبالشكل التالي في عملية البحث: https://api.lableb.com/api/v2/${PROJECT_NAME}/indices/${COLLECTION_NAME}/search/default?q=${SEARCH_QUERY}&cat=Lifestyle&limit=1&apikey=${SEARCH_TOKEN} وبذلك تختصر علينا الحزمة كتابة هذه العناوين وتشكيلها يدويًا. بناء عملية الفهرسة Indexing سأضيف الآن عمليات الفهرسة بتوسيع extend صنف قاعدة البيانات حتى نعمل ببنية صحيحة. سنبني عملية فهرسة Indexing مرتبطة بالصنف Article وظيفتها جدولة كل المقالات السابقة في قاعدة البيانات، وستفيدنا هذه العملية في التأكد من فهرسة المقالات التي أضيفت إلى قاعدة البيانات قبل استخدام محرك البحث، أو عندما يكون قد جرى تعديل على المقالات ولم تتم فهرسته. وعملية الفهرسة مرتبطة بالكائن article عند إنشاء كل كائن جديد حتى تتم فهرسته بعد الإنشاء مباشرة. ولبناء العمليتان، ننشئ مجلدًا جديدًا باسم models وبداخله ننشئ ملف باسم article.js ونكتب بداخله الشيفرة التالية: const { Sequelize, Model } = require("sequelize"); const sequelize = require("../config/sequelize"); const lableb = require("../config/lableb"); class Article extends Model { //إنشاء مستند قابل للفهرسة خارج الكائن _document() { return { id: this.id, title: this.title, content: this.content, url: `/article/${this.id}`, tags: this.tags, authors: this.author, }; } // إنشاء مستندات قابلة للفهرسة لجميع المقالات static async _findAllDocuments() { return Article.findAll().map((a) => a._document()); } // فهرسة مستند واحد _index() { return lableb.index({ documents: [this._document()] }); } // حذف مستند واحد من الفهرسة async _deleteIndex() { return lableb.delete({ documentId: this.id }); } // فهرسة جميع المقالات static async indexAll() { const documents = await Article._findAllDocuments(); return lableb.index({ documents: documents }); } // تحويل نتائج البحث القادمة من لبلب إلى مقالات قابلة للعرض static async search(query, limit) { const lablebResult = await lableb.search({ query: encodeURIComponent(query), limit: limit }); const searchResults = lablebResult.response.results; return searchResults.map((searchResult) => ({ id: searchResult.id, title: searchResult.title, content: searchResult.content, author: searchResult.authors[0], tags: searchResult.tags[0], })); } } Article.init( { title: Sequelize.STRING, author: Sequelize.STRING, content: Sequelize.STRING, tags: Sequelize.STRING, }, { hooks: { afterSave: function (article) { article._index(); }, beforeDestroy: function(article) { article._deleteIndex(); } }, sequelize, modelName: "article", } ); module.exports = Article; سنشرح الشيفرة السابقة؛ أنشأنا في البداية صنفًا يحتوي على الدالة document_ ليكون وسيطًا معبرًا عن المقال الواجب جدولته. بعد ذلك أنشأنا التابع findAllDocuments_ لإنشاء مستندات قابلة للفهرسة لجميع المقالات وأنشأنا بعد ذلك التابع index_ لفهرسة مستند واحد والتابع indexAll لفهرسة جميع المقالات، ولا بد أن نذكر هنا أن خدمة لبلب تتعامل مع المعلومات المفهرسة فيها عبر حقل id، فإذا تم إرسال المقالات إلى لبلب وكانت مُعرِّفاتُها موجودة مسبقًا، فسيتم تحديثها لا تكرارها. ونلاحظ أثناء بناء المصفوفة documents_ أننا خزننا حتى روابط هذه المقالات. ونُذكِّر أننا أضفنا هذا الجزء من قبل وهو مسؤول عن عرض وجدولة كل المقالات: exports.viewIndex = (req, res, next) => { Article.findAll() .then((articles) => { res.render("index", { articles: articles }); }) .catch((error) => { next(error); }); }; تعديل عملية البحث وتجارب البحث رأينا في السابق نتائج البحث التي لم تكن ذات جدوى عالية، والآن لنعلق دالة البحث القديمة بحيث تصبح بدون تأثير على التطبيق ونضع الدالة الآتية بدلًا منها فى الملف article.controller.js وجعلها كالآتي: exports.search = (req, res, next) => { Article.search(req.query.q, 10) .then((articles) => { res.render("index", { articles: articles }); }) .catch((error) => { next(error); }); }; exports.indexAll = (req, res, next) => { Article.indexAll(); }; ونحصل من دالة بحث لبلب على نتائج البحث لنتصرف فيها. إذا علقنا كل محتوى القديم وكتبنا الأسطر التي تنفذ عملية البحث باستخدام لبلب، وتعتمد على نتائج بحث لبلب في عرض المقالات، عوضًا عن قاعدة بياناتنا وهكذا بنينا كامل عملية البحث. تجارب البحث باستخدام لبلب لدينا ثلاثة مقالات تتحدث عن مواضيع مختلفة، وموضوع واحد بعنوان مقال تجريبي، لنجرب البحث عن كلمة "اشياء إنتاجيّة": ونلاحظ أنه أعاد لنا المقالة التى تتحدث عن أشياء إنتاجية وهى "معضلة الإنتاجية "على الرغم أنها لا تبدأ بهمزة، وأعاد أيضًا مقال أسس القيادة التقنية بعدها لأنها تحتوى على كلمة الأشياء. جرب الآن البحث عن كلمة "اسس" دون همزة. و"أسس" مع همزة. ونلاحظ هنا أنه جلب لنا مقال أسس القيادة التقنية فى كلتا الحالتين، هل كنا سنستطيع برمجة دالة بحث تعطينا نفس الدقة في النتائج؟ حسنٌ، لنبحث عن عبارة مخصصة جدًا في مقال كيف تقدّر أجر مساعدك عن بعد، لنبحث عن عبارة "ميزانية مشروعك" ونلاحظ أننا حصلنا فقط على نتيجة واحدة وهي مقالة كيف تقدّر أجر مساعدك عن بعد، ويجب أن تتذكر أننا وضعنا المقدمة فقط فى المحتوى الخاص بالمقالة، لذلك اخترت عبارة من المقدمة وبحثت عنها، وسنفعل المثل فى عمليات البحث القادمة. لنبحث عن كلمة "نيويوركر" ونلاحظ مجددًا أنه أعاد مقالة "معضلة الإنتاجية" فقط إذ أنَّها المقالة الوحيدة لدينا التى تحتوى على هذه الكلمة. لنبحث الآن باستخدام عبارة أقرب لما يكتبه البشر عادة، لنبحث عن "ما هى المعضلة الانتاجية؟" وسنرى أنه أعاد لنا مقالة معضلة الإنتاجية فقط، واستثنى المقالات الأخرى: نستنتج أن محرك البحث استطاع عرض نتيجة بناء على عبارة سؤال طبيعي. لنجرب البحث عن عبارة "مقال تجريبي" وسنجد أنه أعاد المقالات التى تحتوى على كلمة مقال أو تجريبى ولكن "مقال تجريبى" فى بداية الترتيب. لنبحث عن اسم الكاتب "عدنان": ونرى أن النتيجة عادت فقط بالمقالات التي كتبها عدنان، دون أي مجهود منا لجعل عملية البحث تستهدف حقل الكاتب من كائن المقال. الخلاصة رأينا الفائدة من استخدام محرك بحث تجريبي، تخيل أن لديك موقع تجارة إلكترونية يعرض منتجاته باللغة العربية، أليس جميلًا أن تحصل على دقة كهذه في إرجاع النتائج، فضلًا عن ترتيبها حسب الأقرب للبحث؟ وهل تستطيع بناء دالة بحث بنفس القدرات باستخدام الأدوات التقليدية مثل تعليمات SQL أو مقارنة السلاسل النصية باستخدام لغة البرمجة التي بنيت موقعك بها؟ أجرينا في هذا المقال مقارنة بين البحث باستخدام دالة بدائية يدوية، والبحث باستخدام محرك بحث عربي، واخترنا لبلب لهذه المهمة، واستنتجنا أن محرك البحث يتجه أكثر نحو فهم الموضوع واستيعاب مختلف صيغ عبارات البحث التي يدخلها المستخدم بلغة طبيعية غير مصطنعة كما هو الحال في البحث باستخدام الوسوم، ونرجو أن يكون المقال مفيدًا ونرحب بأية تعليقات أو استفسارات لديكم. اقرأ أيضًا إنشاء صفحة البحث في الووردبريس نمذجة البيانات وأنواعها في عملية تصميم قواعد البيانات
  19. الإصدار 1.0.0

    9906 تنزيل

    التصميم هو مهنة العصر الحالية، هذا العصر الذي يولي أهميةً كبيرةً منقطعة النظير للعامل البصري، فيدخل مجال التصميم في كل مناحي حياتنا اليومية فكل شيء تراه حولك بدءًا من صور أغلفة المنتجات وحتى الإعلانات والملصقات والشعارات وأغلفة الكتب وكل شيء تقريبًا قد مرَّ على يدي مصمم وعولج داخل أحد تطبيقات الرسم والتصميم فسوق التصميم كبيرٌ يزداد فيه الطلب على المصممين يومًا بعد يوم. تمثلت رؤيتنا للكتاب في أن يكون المرجع الأول للمصمم العربي أو من يريد تعلم مجال التصميم الجرافيكي وذلك بجعله شاملًا لكل ما يحتاج إليه المتعلم في بداية رحلته التعليمية في هذا المجال وليتضمن العناصر الأساسية في هذا التخصص سواء كان ذلك في الأساسيات أو البرامج والتطبيقات أو أفكار التصميمات. يهدف الكتاب لإخراج أفراد متمكنين من أساسيات مجال التصميم الجرافيكي ولديهم المعلومات والخبرة الأساسية اللازمة لدخول سوق العمل وتحقيق دخل مادي عبر سوق الإنترنت الكبير وذلك من خلال تنفيذ أعمال التصميم الجرافيكي عبر منصات العمل الحر العربية مثل مستقل وخمسات. يتكون الكتاب من خمسة أقسام رئيسية: الأساسيات والمبادئ البرامج والتطبيقات مجالات التصميم الجرافيكي قواعد التصميم المسار المهني والتطوير الذاتي دخول سوق العمل هذه النقاط الخمس نعدها شاملة لما يحتاج إليه المصمم الجديد ليكون قادرًا على إنتاج تصميم وبيعه في السوق. يستهدف الكتاب جمهور المصممين المبتدئين أو من يريدون دخول هذا المجال، وعليه فإن الكتاب ليس موجهًا للمصممين المتقدمين أو المحترفين فهؤلاء في الغالب يتعلمون مباشرة من مصادر متقدمة سواءً عربية أو أجنبية ولكن قد يكون لدى البعض منهم نقص في معرفة أساسيات التصميم الفنية والأكاديمية، لذا يمكنهم آنذاك الرجوع إلى فصول بعينها من هذا الكتاب أي أنَّ فصول هذا الكتاب قد تفيد حتى من كان متقدمًا في مجال التصميم التطبيقي ولكن دون أساس أكاديمي سليم. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «أساسيات تصميم الرسوميات»، أو تجدها مسردة بالترتيب التالي: مقدمة إلى تصميم الرسوميات (التصميم الجرافيكي) عناصر تصميم الرسوميات مبادئ تصميم الرسوميات الألوان في تصميم الرسوميات ونظرية الألوان تعرف على أشهر برامج وتطبيقات تصميم الصور والرسوميات مقدمة إلى برنامج أدوبي فوتوشوب Adobe Photoshop مقدمة إلى برنامج أدوبي إليستريتور Adobe Illustrator والتعرف على واجهته مساحات وقياسات العمل التصميمي النص وأسلوب الطباعة Typography في تصميم الرسوميات قواعد التعامل مع الصور والرسوميات قواعد تصميم الأيقونات والشعارات قواعد تصميم المطبوعات والإعلانات قواعد تصميم الواجهات قواعد تصميم الرسوم البيانية قواعد تصميم الهوية البصرية دليل المسار المهني لمصمم الرسوميات مواقع العمل الحر والعمل عن بعد لتصميم الرسوميات
  20. ذكرنا في المقال السابق أهمية إطار العمل أباتشي كوردوفا في مساعدة المطوّرين على تقليل تكلفة ووقت تطوير التطبيقات الهجينة للهواتف، وبدأنا بالحديث المفصل عن كوردوفا الذي يُعَد رائدًا في مجال تطوير التطبيقات الهجينة بناءً على المهارات التي يمتلكها مطور تطبيقات الويب، وذلك لتسريع آليات بناء تطبيقات الهاتف. كما وضحنا معمارية تطبيق الهاتف المبنيّ باستخدام كوردوفا وهيكلية التطبيق المبنيّ عليه. يهدف هذا المقال إلى التعرف على الأدوات والخطوات اللازمة لتجهيز بيئة العمل المطلوبة لإنشاء تطبيقات الهاتف الهجينة باستخدام كوردوفا كي يتسنّى لنا البدء بإنشاء التطبيقات. تثبيت إطار العمل أباتشي كوردوفا يتواجد إطار العمل كوردوفا مثل حزمة في نظام إدارة الحزم الخاص بلغة جافا سكربت Node Package Manager "NPM"، لذا يتوجّب علينا في البداية تثبيت Node.js من خلال زيارة الموقع الإلكتروني لـ Node.js وتنزيل النسخة المتوافقة مع نظام التشغيل، ومن ثمَّ تثبيتها على الحاسوب. يُعَد التثبيت على أنظمة ويندوز سهلًا جدًا من خلال ملف تثبيت البرنامج الذي يُنزّل من الموقع ثم تثبيته على الجهاز، في حين نحتاج لطريقة أخرى في نظام تشغيل Linux من خلال تنفيذ بضعة أوامر في سطر الأوامر، لتثبيت Node.js على Linux، يمكنك الاطلاع على مقالة تثبيت Node.js على نظام أبونتو 18.04، والتي تتحدث بالتفصيل عن هذه النقطة بالتحديد. يمكن التأكد من نجاح التثبيت ومعرفة الإصدار المثبّت من خلال سطر الأوامر الخاص بنظام التشغيل ويندوز باستخدام الأمر node –v بعد التأكد من اكتمال تثبيت Nodejs يمكننا الانتقال للخطوة التالية، ألا وهي تثبيت كوردوفا، وذلك من خلال تنفيذ الأمر التالي في سطر الأوامر: npm install -g cordova وتكون النتيجة كما في الصورة التالية: لا يستغرق التثبيت كثيرًا من الوقت (بالاعتماد على سرعة اتصال الإنترنت لديك)، وعند اكتماله يمكن كتابة الأمر الموالي لنتأكد من سلامة التثبيت: cordova help تُعرض الخيارات المتاحة من خلال هذا الأمر مثل ضبط الإعدادات وإنشاء تطبيق وغيرها من الأوامر المتاحة، والتي نتعرف عليها في المقال القادم، حيث سنتطرق لإنشاء أول تطبيق. لا تختلف الخطوات في نظامي التشغيل Linux وOS، حيث يمكننا استخدام الأمر التالي مع ملاحظة كتابة sudo قبل تنفيذ الأمر في حال كان المستخدم الحالي محدود الصلاحيات: sudo npm install -g cordova وبهذا نكون قد تمكنًا من تثبيت كوردوفا بخطوتين فقط وبسهولة بالغة. إنشاء أول تطبيق كوردوفا يجب أولًا تحديد مسار المجلد الذي يُنشَأ التطبيق فيه، ثم تنفيذ الأمر الذي يُنشِئ تطبيق كوردوفا مع كافة الملفات والمجلدات الضرورية المطلوبة بداخله cordova create myFirstApp بهذا نكون قد نفذنا أمر إنشاء تطبيق جديد اسمه myFirstApp مباشرةً على محرك الأقراص C، وباستعراض محتويات التطبيق الجديد كما نلاحظ في الصورة التالية، نجد بداخله مجلد www والذي بدوره يحتوي مجلدات css وimg، بالإضافة إلى ملف index.html، كما هو الحال مع أساسيات الموقع الإلكتروني التي فصلنا الحديث عنها في المقال السابق، كما يمكننا فتح مجلد التطبيق من خلال برنامج بيئة التطوير VSCode الذي سنتعرف عليه لاحقًا. تثبيت بيئة التطوير المتكاملة Integration Development Kit لقد ذكرنا في هذا المقال حتى الآن بعض الخدمات التي تقدمها بيئة التطوير المتكاملة IDK ودورها في مساعدة المطوّر في إنجاز برمجة التطبيقات، وهناك بعض البيئات التي تكون مخصصةً للغة برمجة معينة، ففي حال برمجة التطبيقات الأصيلة باستخدام أندرويد مثلًا؛ فسيستخدم المطوّرون برنامج Android Studio. هناك بعض بيئات التطوير العاملة التي يمكن استخدامها بعد تخصيصها ببعض الإضافات من داخل برنامج بيئة التطوير حسب اللغة التي يعمل عليها المبرمج، وهذه الإضافات يمكن إضافتها لبعض برامج بيئة التطوير مثل Android Studio أو أي برامج تحرير النصوص البرمجية مثل برنامج Visual Studio Code من شركة MicroSoft. يمكن إنشاء تطبيقات كوردوفا من خلال برنامج Android Studio، لكننا سنحتاج إلى تثبيت إضافة كوردوفا Cordova Plugin لتدعم تطوير تطبيقات كوردوفا، ونظرًا لكون البعض يشتكي من احتياج برنامج Android Studio إلى حاسوب ذي موارد ومواصفات عالية، فلهذا سنختار في هذا المقال استخدام برنامج VS Code، ولتثبيت البرنامج يلزمنا تنزيله من موقع البرنامج visualstudio code، وتنزيل ثم تثبيت النسخة المتوافقة مع نظام التشغيل الذي يستخدمه حاسوبك. أدوات تطوير البرمجيات Software Development Kit أدوات تطوير البرمجيات SDK هي مجموعة من البرمجيات المُستخدمة لأغراض محددة مثل تطوير تطبيق لجهاز أو برنامج تشغيلي محدد، حيث تشمل منقّحًا Debugger ومكتبات، كما تحتوي على عيّنة من النصوص البرمجية التي تزوّد المطوّرين بأمثلة تشكّل فرصةً للمطورين لتعلّم كيفية إنشاء التطبيقات الاساسية باستخدام هذه الأدوات مما يمكّنهم من إنشاء وتطوير تطبيقات أكثر تعقيدًا وتطويرًا، كما توفّر خاصية التوثيق التقني والتي بدورها يمكن أن تتضمن دروسًا تعليمية وأسئلةً أكثر تكرارًا. تحتوي بعض هذه الأدوات على العديد من النماذج الرسومية مثل الواجهات والأيقونات التي يستطيع المطوّر إضافتها في التطبيقات التي تُنشَأ. ومن الأمثلة على ذلك حِزمة تطوير برامج أندرويد SDK التي تدعم أنظمة التشغيل الخاصة بالحاسوب مثل Windows وLinux وiOS، وهناك أدوات تطوير أخرى خاصة بنظام ويندوز بكافة إصداراته، وأدوات تطوير نظام التشغيل iOS، وغيرها الكثير. وبما أن معظم الشركات تشجع المطورين على إنشاء تطبيقات خاصة بمنصاتها، فإنها تُقدّم أدوات التطوير الخاصة بها مجانًا، حيث ينزّلها المطور من الموقع الرسمي للشركة ويبدأ بعملية التطوير فورًا؛ أما في حال استخدام بيئة المتصفح من أجل تطوير التطبيق الهجين للهاتف وتشغيله عبر المتصفح، فيمكنك إضافة منصة المتصفح للتطبيق والتي لا تتطلب أي حزم SDK للنظام الأساسي كما سنوضح لاحقًا. لنبدأ في الجانب العملي الآن، لإنشاء التطبيقات وتشغيلها سنحتاج إلى تثبيت حزم SDK لكل نظام أساسي نرغب في تشغيل التطبيق عليه، وبتنفيذ الأمر التالي يمكننا التحقق مما إذا كانت الحزم المثبتة تفي بالمتطلبات الأساسية لبناء التطبيق: cordova requirements وإذا لم تُثبت أيٌّ من متطلبات التطبيق فستظهر مثل هذه الرسالة: No platforms added to this project. Please use 'cordova platform add <platform>' . والتي تفيد بضرورة إضافة متطلبات التطبيق، وهو ما سنتعرف عليه الآن بالتفصيل. تثبيت SDK الخاصة بالنظام المستهدف تختلف الحِزم البرمجية المطلوبة تبعًا للنظام الي نرغب في تشغيل التطبيق عليه، ونخصص الحديث هنا عن الأدوات المطلوبة لتشغيل التطبيق على نظام أندرويد، ونؤكد على أن الخطوات المطلوبة لتشغيل التطبيق على نظام iOS متشابهة باختلاف الأدوات المطلوبة، ونحتاج هنا لأربع أدوات كما يلي: حزمة التطوير الخاصة بلغة البرمجة جافا Java Development Kit أو اختصارًا JDK، والتي يمكن تحميلها من الرابط الخاص بها على موقعهم الرسمي ثم تثبيتها. حزمة Gradle التي تساهم في تسريع إنشاء التطبيقات، وتُعَد إحدى متطلبات التطبيقات المنشأة باستخدام كوردوفا، ويمكن تثبيتها من الموقع الرسمي لـ Gradle، وللاستزادة من المعرفة عن وظائف Gradle يمكنكم زيارة مقال دليلك الكامل إلى نظام البناء Gradle. حزمة التطوير الخاصة بأندرويد Android SDK Tools التي تُثبّت من خلال برنامج Android Studio الذي يمكن تنزيله من الموقع الرسمي لـ Android Studio، وبعد تثبيت البرنامج يجب الدخول إلى إدارة SDK أين ستظهر لنا عدة خيارات للتنزيل فنختار منهما أولًا SDK Platforms، وهنا يفضل اختيار أحدث إصدار (إلا إذا كنت تنوي التطوير لإصدارات قديمة من منصة أندرويد)، ثم تثبيت Android SDK Platform-Tools كما في الصور الثلاثة التالية: نختار أولًا SDK Manager ثم نختار الإصدار الأحدث وننزله. ثم نختار Android SDK Platform-Tools لتنزيلها. تثبيت جهاز أو أجهزة وهمية Virtual Device بإصدارات مختلفة من نظام أندرويد لتشغيل واختبار التطبيق عليها، ولهذه الخطوة بدائل، إذ يمكن الاستغناء عنها بتوصيل هاتفك مباشرةً على الحاسوب والبدء بتشغيل واختبار التطبيق من خلاله. يمكن الوصول لمدير الأجهزة الوهمية من خلال خيار ADV في إعدادات برنامج Android Studio كما في الصور التالية: وعند اختيار AVD Manager ستظهر شاشة إدارة الأجهزة الوهمية كما يلي: وكما هو واضح من الصورة، فإن هذه الخاصية تمكننا من اختيار نوع الجهاز الذي نرغب في محاكاة تشغيل التطبيق عليه، مثل الشاشات الذكية والهواتف والساعات الرقمية والهاتف اللوحي، وبعد اختيار نوع الجهاز - وليكن جهاز الهاتف - ننتقل إلى الخطوة التالية لتثبيت نظام الهاتف كما يتضح في الصورة التالية: هناك برنامج مستقل لإنشاء الأجهزة الوهمية – بعيدًا عن برنامج Android Studio – يسمى Genymotion، وهو موجه للذين يستخدمون حاسوبًا ذو مواصفات محدودة، هذا البرنامج غير مجاني بالكامل لكنه يفي بالمتطلبات الأساسية لتشغيل واختبار التطبيقات من خلاله. أما بخصوص تثبيت SDK الخاصة بنظام iOS، فإننا نحتاج هنا إلى نظام iOS الذي نجده مثبتًا على أجهزة Mac، ولا يمكن تطوير تطبيقات لمنصة iOS بسهولة وفعالية إلا من خلال حاسوب Mac. في البداية يجب تثبيت برنامج Xcode وذلك بإحدى الطريقتين، إما من (متجر التطبيقات)، أو من (تنزيلات مطوري Apple) الذي يتطلب التسجيل بعضوية مطور Apple. الآن وبعد تثبيت SDK حسب نظام التشغيل الذي نستخدمه، سننتقل إلى الخطوة التالية في تجهيز بيئة العمل، وهي إضافة المنصة المراد استخدامها للتطبيق، وهنا سنستخدم الأمر التالي: cordova platform add android تظهر في الصورة أعلاه نتيجة تنفيذ الأمر السابق، والذي يضيف منصة أندرويد للتطبيق ليعمل على الهواتف العاملة بنظام التشغيل أندرويد، وكما أشرنا سابقًا يمكنك استخدام بيئة المتصفح لتطوير التطبيقات الهجينة. ولتجهيز التطبيق للعمل عبر منصة المتصفح يلزمنا إضافتها للتطبيق بتنفيذ الأمر التالي: cordova platform add browser يضيف هذا الأمر بيئة المتصفح للتطبيق كما يتضح من الصورة، حتى تكون فيه إمكانية لتشغيله عبر المتصفح كما أسلفنا في فقرة سابقة. أما إذا كنا نرغب في إضافة منصة iOS للتطبيق - بعد تثبيت SDK الخاصة بـ iOS-، فإننا ننفذ الأمر التالي: cordova platform add ios إضافة متغيرات البيئة يتعرف نظام التشغيل ويندوز على الحِزم البرمجية المضافة إليه ويمكّننا من استخدام أوامر هذه الحِزم من واجهة سطر الأوامر، وذلك من خلال إضافة قيمة لها في متغيرات البيئة Environment Variables، حيث تُضاف بعض هذه المتغيرات تلقائيًا، بينما يحتاج بعضها إلى إضافتها يدويًا. لمعرفة المزيد من التفاصيل عن متغيرات البيئة يمكنكم الاطلاع على مقال الطّريق نحو فهم مُتغير المسار ‎$PATH، والذي يتحدث عن متغيرات البيئة. يمكن إضافة متغيرات البيئة إلى ويندوز يدويًا من خلال النقر بزر الفأرة الأيمن على أيقونة "هذا الحاسوب This Computer"، واختيار عنصر "خصائص Properties" لتظهر عدة خصائص من بينها خيارات النظام المتقدمة Advanced System Settings ليظهر مربع الحوار التالي: نختار منه بند "متغيرات البيئة Environment Variables"، ومنها يظهر مربع الحوار التالي: في مربع الحوار الظاهر سنحتاج للتعامل مع عنصرين: عنصر متغيرات البيئة الخاصة بالمستخدم، وهنا نضيف المتغيرات التالية من خلال النقر على زر "جديد New": عنصر "JAVA_HOME" ويشير إلى مسار تثبيت JDK. عنصر "ANDROIDSDKROOT" ويشير إلى مسار تثبيت SDK. عنصر متغيرات البيئة الخاصة بالنظام، وهنا يجب النقر على المتغير PATH وإضافة عنصرين أحدهما خاص بـ JAVA_HOME والآخر يخص Gradle، كما يظهر آخر عنصرين في الصورة التالية، فكلاهما يشير إلى مسار التثبيت الخاص بهما. بناء التطبيق كما أسلفنا، فإن كوردوفا – افتراضيًا – ينشئ التطبيق على شاكلة تطبيقات الويب، والذي تكون صفحة البداية فيه باسم index.html بداخل مجلد يحمل اسم www، مع الأخذ بالحسبان أي تخصيصات تفاعلية من خلال ملف JavaScript أو تنسيقات من ملف CSS. ولبناء التطبيق نستخدم الأمر التالي: cordova build كما يمكننا التحكم في اللاحقة بتخصيص بناء التطبيق لمنصة معينة مثل أندرويد أو iOS كما في المثال التالي: cordova build android بتنفيذ أمر بناء تطبيق كوردوفا لمنصة أندرويد ستكون النتيجة في واجهة سطر الأوامر كما يلي: تشغيل التطبيق لأول مرة نأتي الآن لأهم نقطة في هذا المقال، وهي أننا بعد الانتهاء من التجهيزات اللازمة لبناء التطبيق، فإننا نصل لنقطة النهاية ( نهاية التجهيزات وبداية الإعدادات والخيارات اللامحدودة ) ألا وهي تشغيل التطبيق. توفّر أدوات تطوير البرمجيات SDK محاكيًا يمكّن المطوّرين من تشغيل التطبيق واختبار تفاعله مع مميزات الهاتف المحمول، وفي حال استخدام الأجهزة الوهمية – التي أشرنا لها سابقًا – فبإمكاننا الوصول إليها من خلال تنفيذ الأمر التالي: cordova emulate android بتنفيذ الأمر السابق سيعمل المحاكي المتاح - وفي حالتنا هذه يعمل محاكي نظام أندرويد - ويُعرض التطبيق عليه كما هو موضح في الصورة التالية: أما إذا كنت تفضل أن توصل هاتفك المحمول بالحاسوب لتشغيل التطبيق عليه ثم تنفيذ الأمر: cordova run android تجدر الإشارة هنا -فيما يختص بالهواتف العاملة بنظام أندرويد- إلى ضرورة تجهيز الهاتف المحمول لإمكانية تشغيل التطبيق عليه، وذلك من خلال الانتقال إلى الإعدادات حول الهاتف والنقر سبع مرات متتالية على عنصر رقم إصدار نظام التشغيل، حيث ستظهر رسالة تحذيرية تفيد بأنك على وشك تفعيل وضع المطورين، وهنا سيظهر بند جديد في قائمة الإعدادات باسم "خيارات المطورين Developer options"، حيث بالدخول إليه سنفعّل خيار "وضع التصحيح Debug mode" كما يظهر في الصورة التالية، مع الأخذ بالحسبان اختلاف مسمى البند ومكانه في الإعدادات تبعًا لنوع الهاتف وإصدار النظام فيه. الخاتمة تُعَد الخطوات اللازمة لتجهيز بيئة العمل طويلةً نوعًا ما، وتحتاج إلى الدقة في تنفيذها، مثل اختيار الحِزم المطلوبة والتركيز على إصدارها، كما يجب التنويه إلى ضرورة الانتباه عند إنشاء متغيرات البيئة للعاملين على نظام التشغيل Windows، إلا أن هذه الخطوات تُنفّذ لمرة واحدة فقط، وبعدها يبدأ العمل على وظائف التطبيق نفسه. تعرفنا في المقال على تثبيت إطار العمل كوردوفا وإنشاء أول تطبيق من خلاله، ثم بدأنا في تفصيل تجهيز بيئة العمل من خلال تثبيت IDE مناسب، وتثبيت SDK التي يتطلبها نظام التشغيل على الحاسوب، وبعدها بنينا التطبيق تمهيدًا لتشغيله كما في الخطوة الأخيرة، وسنتطرق في المقال التالي إلى إدارة القوالب الخاصة بالتطبيق، والتعرف على هيكلية (بنية) الملفات في مجلد التطبيق. اقرأ أيضًا نظرة عامة عن تطوير تطبيقات الأجهزة المحمولة عبر كوردوفا أنشئ تطبيقك الأول في Cordova نظرة هيكلية عامة لمنصة Cordova
  21. ألقينا في المقال السابق نظرةً عامةً عن تطوير تطبيقات الهاتف، وتطرقنا إلى الطّرق الأربعة المتّبعة في تطوير تطبيقات الهاتف، بحيث فصّلنا الحديث عن طبيعة كل طريقة مع سرد ميّزاتها وعيوبها، ثم وجّهنا المقال نحو طبيعة التطبيق وأجزائه، وبدأنا في تخصيص الحديث عن التطبيقات الهجينة بصفتها حلا وسطًا لمن لا يمتلكون المهارات العالية لتطوير تطبيقات أصيلة بنسخة منفردة لكل نظام تشغيل، ولتوفير الكثير من الوقت والموارد المالية المخصصة لإنشاء تطبيقات أصيلة، وسنتحدث في هذا المقال عن إطار العمل أباتشي كوردوفا Apache Cordova الذي يمكّن المطوّرين من إنشاء تطبيقات هجينة للهاتف، مع ذكر طبيعة إطار العمل وميزاته وعيوبه. لقد تطورت حاجة المؤسسات إلى وجود موقع إلكتروني يعرض أعمالها للجمهور، ومع سيطرة الأجهزة الذكية على سوق تقنية المعلومات، فقد احتاجت المؤسسات إلى المهارات والموارد اللازمة لإنشاء تطبيقات لجميع المنصات الشائعة للهواتف، وذلك للوصول إلى عملائها عبر هواتفهم في أي وقت، ومع صعوبة توفير بعض الموارد لإنشاء تطبيقات أصيلة، فقد توجهت المؤسسات نحو تطوير التطبيقات الهجينة للهواتف؛ وذلك لما توفره هذه الطريقة من إتاحة نفس التطبيق على منصات متعددة تتضمن بعض الميزات من خلالها تجاوز القيود المتعلقة بالوقت والموارد البشرية والمالية. يطور المبرمجون التطبيقات الأصيلة للهواتف عن طريق إنشاء تطبيق مستقل لكل منصة (كما وضحنا في المقال السابق في وصفنا لطرق إنشاء تطبيقات الهواتف)، بينما تطوَّر التطبيقات الهجينة للهواتف باستخدام تقنيات الويب القياسية HTML5 وCSS3 وJavaScript، من خلال أحد أُطر العمل على النقيض من تطبيقات الويب التقدمية للهاتف والتي تُنشر من خلال متاجر التطبيقات وتوفر تجربة مستخدم أصلية. إذًا فاختيار طريقة التطبيقات الهجينة للهواتف توفر كثيرًا من الوقت اللازم لإنشاء أول نسخة من التطبيق على كل المنصات. سنخصّص هذا المقال للحديث عن إطار العمل كوردوفا الذي يُستخدم على نطاق واسع لتطوير التطبيقات الهجينة للهاتف، ويقدم العديد من الإمكانيات للمطوّرين للاستفادة القصوى من إمكانيات الهاتف، مستغلين معرفتهم بتقنيات الويب القياسية التي سنبدأ الحديث عنها مباشرةً باختصار قبل الانتقال إلى الحديث بالتفصيل عن إطار العمل أباتشي كوردوفا. مفاهيم ومصطلحات للعمل بأباتشي كوردوفا تتكون تقنيات الويب القياسية من ثلاث مكونات رئيسة هي HTML وCSS وJavaScript، حيث يفهم متصفح الإنترنت هذه التقنيات ويستطيع تفسيرها compile وعرضها render على صفحاته دون أي مساعدة من برامج خارجية على العكس من بعض لغات البرمجة التي تطلب وجود خادوم Server، مثل لغة PHP التي تستخدم خادومًا مثل Apache ليفسر تعليماتها البرمجية وينتجها بإحدى أشكال تقنيات الويب القياسية التي يفهمها المتصفح ويستطيع عرضها. سنذكر بعضًا من تفاصيل هذه التقنيات كما يلي: لغة ترميز النص التشعبي HTML لغة Hyper Text Markup Language واختصارها HTML، هي الطريقة الرئيسية التي تُنشأ بها أي صفحة في المواقع الإلكترونية على شبكة الإنترنت، ولا تُعَد لغةً برمجيةً بالمعنى المتعارف عليه للغات البرمجة، ولكنها طريقة لهيكلة ووصف محتويات صفحة الويب لمتصفحات الانترنت، حيث أن أي المتصفح يحتاج لمعرفة مكونات الصفحة من عناوين ونصوص وصور وروابط وغير ذلك من محتويات الصفحة، كي يتمكن من عرضها بالشكل الصحيح. لقد أُضيفتسلسلة مقالات تتحدث بالتفصيل عن HTML في أكاديمية حسوب، حيث يمكنك الاطلاع عليه والاستفادة منها. وتتكون صفحة الويب من مجموعة من العناصر التي تُسمى وسوم Tags -جمع وسْم tag-، حيث كل وسْمٍ يمكن أن يحتوي على بعض الخصائص attributes والأصناف classes التي يمكن من خلالها تخصيص الوسم وإضافة نصوص التنسيق الخاصة CSS. لغة التنسيق CSS لغة التنسيق Cascading Style Sheet - CSS تختصّ بدورها في تصميم وتشكيل المظهر العام لصفحة الويب، مثل تحديد الخطوط والهوامش والمسافات لعناصر الموقع، وكذا تحديد لون الخلفيات وحجم العناصر، والحصول على الحركات في الموقع، والعديد من المزايا الأخرى. للتعرف على المزيد من وظائف وخصائص لغة التنسيق، يمكنك الاطلاع على سلسلة المقالات الخاصة بها على أكاديمية حسوب. جافاسكريبت JavaScript هي لغة برمجة عالية المستوى تُستخدم بالأصل في متصفحات الويب لإنشاء صفحات تفاعلية بين الموقع الإلكتروني والمستخدم، كما توجد بعض المكتبات المبنية على جافا سكربت التي تساعد على إنجاز وظائف أكثر بنصوص برمجية أقل مثل مكتبة jQuery وأُطر العمل Vue.js وAngular وReact. تتوفر مجموعة من مقالات على أكاديمية حسوب تمكّنك من الاطلاع على طبيعة لغة البرمجة هذه وخصائصها، وأطر العمل المبنية عليها. إطار العمل framework يُعَد إطار العمل أداةً تحتوي عدة مكونات تساعد المطوّر على وضع أساس التطبيق الذي يرغب في إنشائه، كما يوفر مجموعةً من النصوص والملفات البرمجية المكتوبة مسبقًا لجزء من التطبيق، ويتواجد هذا المفهوم في عدة لغات برمجية مثل لغة Java التي يتوفر لها إطار العمل Spring، ولغة PHP التي يتوفر لها عدة أطر عمل مثل CodeIgniter، وLaravel، وكذلك لغة JavaScript التي وضحنا لها في الفقرة السابقة بعض المكتبات وأطر العمل. تكمن أهمية أطر العمل في إمكانيتها لتوفير الوقت على المبرمج لأنه يجد أرضًا صلبةً لبدء تطبيقه من خلالها، مستغلًا الملفات والنصوص البرمجية المعدّة مسبقًا. هذه الميّزات تتطلب بالضرورة أن يكون المطور على علم جيّد بلغة البرمجة الأم، إضافةً إلى الخدمات والإمكانيات التي يوفر إطار العمل، مما يعني أن إطار العمل هو أداة مساعدة فقط، وعلى المبرمج تطويعها واستغلال إمكانياتها بما يخدم التطبيق الذي يعمل عليه. بيئة التطوير المتكاملة Integrated Development Kit هي تطبيق يهدف إلى جعْل عملية كتابة النصوص البرمجية أمرًا ميسّرًا، ويمكن لهذه البيئة أن تجمع بين الأدوات المختلفة التي تساعد المطورين على كتابة التعليمات البرمجية وتحريرها، وبناء الملفات التنفيذية واختبار النتيجة وتصحيحها في حال وُجِد خلل بها، مما يوفّر كثيرًا من الوقت والجهد، وبالتالي زيادة إنتاجية المطوّرين. عادة ما تتكون هذه البيئات البرمجية من أداة لكتابة وتحرير النصوص البرمجية، وتحتوي على مفسّر compiler يشكّل دور الوسيط بين المبرمج والحاسوب، وتحوي أيضًا إمكانية تتبّع الأخطاء ومساعدتك على إصلاحها، وكذا العديد من الأدوات الأخرى لإتمام تطوير البرمجيات. من الأمثلة على هذه البيئات، نجد برنامج NetBeans لتطوير البرمجيات بلغة جافا، وبرنامج Visual Studio Code لعدة لغات برمجة - حسب تخصيص الإضافات - مثل PHP وC#، وغيرها الكثير. بهذا نكون قد ذكرنا باختصار نبذةً سريعةً عن تقنيات الويب القياسية؛ لأهميتها في تطوير التطبيقات الهجينة للهاتف، ويجب على القارئ الذي يرغب في استكمال هذه السلسلة عن تطوير تطبيقات الهاتف الهجينة أن يكون متمكّنًا من هذه التقنيات، إذ أنّنا لن نتطرق لشرحها في هذه السلسلة، وسندرج في نهاية هذا المقال مراجع لشرح هذه التقنيات. عمل أباتشي كوردوفا Apache Cordova بناءً على ما سبق ذكره، تستطيع المؤسسة تسريع تطوير التطبيقات الهجينة للهاتف من خلال الاعتماد على أطر العمل المتاحة في هذا المجال، وأبرزها أباتشي كوردوفا Apache Cordova. في العام 2011 أنشأت مجموعة Nitobi فكرة إطار العمل تحت مسمى PhoneGap، ثم استحوذت عليه Adobe System وأطلقت عليه اسم Cordova، والذي يُعَد إطار عمل Framework مفتوح المصدر ومتاح لتطوير التطبيقات الهجينة للهواتف. إنّ ما يميز كوردوفا هو احتواؤه الكثير من الإمكانيات المقدَّمة للمطورين، والتي تمكّنهم من إنشاء تطبيقات هاتف تعمل على كافة الأنظمة من خلال استخدام تقنيات الويب القياسية سالفة الذّكر، بحيث تُستخدم لغة الترميز لعرض محتوى التطبيق، ولغة التنسيق لإضافة اللمسات الجمالية على المحتوى المعروض، بينما تستخدم لغة JavaScript لتنفيذ الوظائف التي يقدّمها التطبيق، وتتعامل مع تفاعل المستخدم مع التطبيق. إذًا، فإطار العمل كوردوفا يمكّن المطورين من إنشاء تطبيقات هجينة متطورة للهاتف، وذلك باستخدام العديد من مكتبات JavaScript، ومن المزايا المذهلة التي يقدمها كوردوفا أنه يوفّر للمطور آلية لتجهيز التطبيقات الهجينة للهاتف لكل منصات الهواتف، مما يعني أنه يمكن تثبيت تطبيق كوردوفا على الهواتف تمامًا مثل تطبيقات الهاتف الأصيلة، حتى لو كان مبنيًّا باستخدام تقنيات الويب. في ميّزة إضافية تشجّعك على استخدام كوردوفا لتطوير التطبيقات الهجينة للهاتف، نجد توفير إضافات برمجية متنوعة تسمح للتطبيق بالوصول إلى إمكانيات الهاتف مثل الكاميرا ومحدد المواقع وحالة البطارية، كذا الوصول للملفات والوسائط المتعددة، وغيرها الكثير سنتحدث عنها بالتفصيل في المقالات القادمة. لذا يتوجب على المطوّر فهم طبيعة عمل إطار العمل كوردوفا والاطلاع على الميزات التي يقدمها ليساعده في تطوير تطبيقاته. معالم إطار العمل أباتشي كوردوفا يدعم نظام تشغيل الهاتف التطبيقات التي تُثبّت عليه، مقدمًا لها العديد من الخدمات التي من بينها المجسات أو المستشعرات، والتعاطي مع المدخلات لتمريرها إلى التطبيق، وفي حال بناء تطبيق الهاتف من خلال كوردوفا، فإن التطبيق سيتكون من جزئيتين رئيستين - كما هو موضح في الشكل أدناه - أولها تطبيق الويب (الذي يُبنى باستخدام تقنيات الويب القياسية) الذي يتعامل مباشرةًً مع محرك عارض الويب WebView من خلال واجهة برمجيات كوردوفا API، وواجهة برمجيات HTML مرفق معه ملف الإعدادات العامة التي تتحكم في العديد من سلوكيات تطبيقات كوردوفا، وهنا يأتي دور محرك عارض الويب في التواصل مع الجزء الثاني من التطبيق وهو إضافات كوردوفا المتنوعة أو المخصصة، تُعدّ الكاميرا والوسائط وجهات الاتصال ومحدد الموقع الجغرافي وغيرها الكثير من الإضافات الجاهزة في كوردوفا، بينما يمكنه التواصل من الإضافات المخصصة التي يطوّرها المبرمجون لدعم وظائف التطبيق الذي يعملون عليه؛ أما بخصوص نظام التشغيل، فإنه يتواصل مع محرر عارض الويب من جهة، ومع الإضافات مباشرةً لتنفيذ وظائف التطبيق. يوضح الشكل أدناه بالتفصيل تركيب الشكل العام لتطبيق مبنيّ من خلال كوردوفا، وآلية التواصل بين أجزائه. نتطرق في النقاط القادمة إلى الجوانب المهمة في كوردوفا، والتي يجب على المطوّر معرفتها كي تساعده في تطوير التطبيقات قاعدة الملفات البرمجية الموحدة تدعم كوردوفا في الوقت الحالي الأنظمة الأساسية المشهورة مثل iOS وAndroid وبالتالي، يمكن للمطور استخدام إطار العمل كوردوفا لإنشاء تطبيق هاتف موحّد موجّه للأنظمة الأساسية للهاتف من خلال كتابة التطبيق بتقنيات الويب القياسية التي تحدثنا بالتفصيل أعلاه. إذًا فكوردوفا تساعد المطور في برمجة أو تطوير التطبيق لمرة واحدة، ثمّ تُنشئ حزمةً برمجيةً قابلةً للتثبيت لكل نظام من أنظمة التشغيل بطريقة مستقلة، هذه الحزمة -عند تثبيتها على الهاتف- تقدّم للمستخدِم تجربة استخدام التطبيقات الأصيلة من خلال الوصول إلى إمكانيات الهاتف مثل الكاميرا ونظام تحديد المواقع GPS والبلوتوث وجهات الاتصال. عارض الويب WebView تُشغّل واجهات التطبيقات الهجينة في الحاوية التي يوفرّها نظام التشغيل، وتُعرض هذه الحاوية في شاشة الهاتف، وبما أن أنظمة التشغيل تستخدم نفس عارض الويب WebView، فإن الحاوية تتغير تبعًا لخصائص نظام التشغيل، بينما يتبقى عرض صفحات الويب دون تغيير. وبناءً على هذه الخاصية المتوفرة في أنظمة التشغيل، فقد صُمّمت واجهة المستخدم في كوردوفا لتبدو تقنيًا مثل عرض الويب WebView، كما تقدّم كوردوفا من خلال مكتباتها وإضافاتها الرائعة تجربة مستخدم أصيلة، من خلال تفاعلها مع مكونات نظام تشغيل الهاتف، وهو ما يعطي ميّزةً مذهلةً للمطورين بإثراء تجربة المستخدم للتطبيق بطريقة مستقلة عبر كل نظام تشغيل بدون تغيير الملفات البرمجية للتطبيق طبعًا. تذكر دومًا المزية الرئيسة للتطبيقات الهجينة، وهي تطبيق واحد لكل أنظمة التشغيل. معمارية/بنية الإضافات عند استخدام إطار العمل كوردوفا، يستطيع المطورون ربط نصوص برمجية مكتوبة بلغة جافا سكربت للنصوص البرمجية التي تعمل في الواجهة البرمجية الخلفية Back-End من خلال الإضافات (المكونات الإضافية) الاختيارية القوية التي توفرها كوردوفا، إذ توفّر كوردوفا للمطورين عددًا كبيرًا من الإضافات الجاهزة حسب الوظيفة التي يرغب المطوّر بإضافتها للتطبيق، والمتوافقة مع نظام التشغيل الذي يستهدفه التطبيق. يستطيع المطوّر تمكين التطبيق من الوصول إلى إمكانيات الهاتف مستخدمًا إحدى الإضافات التي توفرها كوردوفا، على سبيل المثال يستطيع المطوّر استخدام واجهة برمجية التطبيق Application Programming Interface - API للاستفادة من خصائص الحماية من النظام الأساسي، وفي نفس الوقت، إذا لم يجد المطوّر الإضافة البرمجية التي توفر طلبه بشكل دقيق، فأن كوردوفا -من خلال API الخاصة بها- تمهّد الطريق للمطوّر لبرمجة الإضافات الخاصة به وفقًا لاحتياجاته الدقيقة. واجهة سطر الأوامر Command Line Interface تساعد واجهة سطر الأوامر الخاصة بكوردوفا المطورين على تسريع مراحل تطوير تطبيقات الهواتف وإمكانية اختبارها وتجهيزها لتعمل على الأنظمة، من خلال كتابة بعض الأوامر المعروفة، حيث يستطيع المطورون استخدام CLI لتسريع المهام الروتينية لتطوير تطبيقات الهاتف مثل إنشاء مشروع جديد وتجهيز التطبيق للعمل على الأنظمة المختلفة، كما يمكنهم أيضًا تنفيذ أوامر لاختبار التطبيق الهجين للهاتف باستخدام أجهزة حقيقية أو محاكيات وهمية Simulators تُضاف مسبقًا في بيئة العمل. يجب على المطوّر تجهيز بيئة العمل من خلال تثبيت حِزم أدوات تطوير البرمجيات Software Development Kit - SDK لكل منصة هاتف مستهدَفة قبل استخدام أدوات CLI، وسنتطرق في [المقال القادم](راب المقال) إلى تجهيز بيئة العمل، ونتعرف على الأدوات المطلوبة. مجموعة متنوعة من أدوات التطوير يتوافق إطار العمل كوردوفا مع العديد من أطر تطوير تطبيقات الهواتف وبيئات التطوير المتكاملة IDEs، كذا والأدوات المستخدمة على نطاق واسع. وبالتالي يستطيع المطورون توسيع إطار عمل كوردوفا بسهولة، وذلك من خلال الاستفادة من الأدوات شائعة الاستخدام مثل دمج أُطر عمل أخرى لبيئة التطوير مثل إطار العمل أيونيك Ionic Framework - الذي يستخدم لتطوير تطبيقات هجينة -، وبيئة التطوير التي تتوافق مع طبيعة التطبيقات التي نطوّرها مثل Android Studio وVisual Studio Code من MicroSoft، والذي تَطوّر كثيرًا في الآونة الأخيرة ليدعم مجموعةً من الأدوات لكوردوفا من بينها مُثبِّت سهل الاستخدام، ومحرر النصوص البرمجية مع دعم لتنقيح الأخطاء، وتخصيص تجربة التطبيق، بالإضافة إلى آليات لاختبار التطبيق؛ أما بخصوص برمجيات أدوات التطوير SDK فإنها توفر للمطورين خيارات متعددة لتطوير التطبيقات الهجينة للهواتف مثل دعم أيونيك Ionic لتحسين مظهر وأدوات تفاعل المستخدم مع التطبيق look and feel، ورفع جودة تجربة المستخدم. نقاط ضعف التطبيق الهجين لكوردوفا مثل جميع أدوات التطوير الأخرى للتطبيقات الهجينة للهواتف، تحتوي كوردوفا على بعض العيوب، نذكر منها ما يلي: بطء التطبيق موازنةً بالتطبيقات الأصيلة: إن الاهتمام بتوافق التطبيق الهجين عبر جميع أنظمة التشغيل يجعل تطبيقات الهاتف المنشأة بكوردوفا تعمل أبطأ من التطبيقات الأصيلة. عدم غزارة الإضافات: غالبًا ما تواجه المطورين بعض الصعوبة في العثور على إضافات تتوافق بدقة مع الوظائف المطلوب تنفيذها في التطبيق، مما يضطرهم للجوء إلى تصميم وبرمجة إضافات مخصصة لتتوافق مع احتياجات التطبيقات التي يطوّرونها. المزيد من تخصيص التطبيق: يضطر المطورون للجوء إلى تخصيص التطبيق ليتوافق أكثر مع أنظمة التشغيل المختلفة -تحديدًا iOS وأندرويد-، بتخصيص يتوافق مع طبيعة نظام التشغيل نفسه، وهذه من العيوب التي يعمل مطورو إطار العمل كوردوفا على تطويرها ومعالجة النقص فيها لتكتمل تجربة بناء تطبيقات هجينة تعمل بجودة عالية على جميع أنظمة التشغيل، وقد نجد لها بعض الحلول في الإصدارات القادمة من كوردوفا. الخلاصة إجمالًا لما سبق، فإن إطار العمل كوردوفا -عمومًا- ساعد المؤسسات على تقليل تكلفة ووقت تطوير التطبيقات الهجينة للهواتف كثيرًا، لقد وضحنا في هذا المقال بعض المصطلحات الخاصة بتقنيات الويب القياسية التي يجب على المهتمّ بتطوير التطبيقات الهجينة الاهتمام بها وإتقانها، ثم بدأنا في الحديث عن إطار العمل أباتشي كوردوفا الذي يُعَد رائدًا في مجال تطوير التطبيقات الهجينة بناءً على المهارات التي يمتلكها مطور تطبيقات الويب لتسريع آليات بناء التطبيقات، كما وضحنا معمارية تطبيق الهاتف المبنيّ باستخدام كوردوفا كي يكون المطوّر على علم بتركيب وهيكلية التطبيق. وختمنا المقال ببعض العيوب في كوردوفا، والتي تضيف بعض الاستفسارات في عقل المطوّر الذي يجب عليه دراسة وفهم إمكانيات كوردوفا ونقاط الضعف فيها ووضع ذلك في الحسبان وموازنتها وفقًا للاحتياجات الدقيقة لكل تطبيق. سنتحدث في المقال القادم عن تجهيز بيئة العمل الخاصة بإطار العمل كوردوفا قبل إنشاء أول تطبيق هجين. اقرأ أيضًا نظرة هيكلية عامة لمنصة Cordova أنشئ تطبيقك الأول في Cordova
  22. قبل عقدِ من الزمان، بدأت الهواتف الذكيّة والحواسيب اللوحية بالسيطرة على قطاع التقنية وتكنولوجيا المعلومات وبدأ سوقها بالنمو المتسارع، حتى وصلت إلى ما هي عليه الآن، بحيث بات لا يمكنك في هذه الأيام أن تجد أحدًا يستغني عن استخدامها في مجالات يصعب حصرها، مثل التجارة الإلكترونية والتعليم الإلكتروني والتسلية والترفيه والتواصل الاجتماعي والمجال الطبي والتسويقي .. إلخ، وكذا الغوص في تطبيقاتها متعددة المزايا والخدمات. وبالتوازي مع الهواتف الذكية، فقد ظهرت تطبيقاتها التي تشكّل سوقًا خاصًا له ميزاته التجارية والمالية والتقنية. لعملية إنشاء تطبيقات الهواتف الذكية - ودعنا مبدئيا نصطلح على تسميتها بتطبيقات الهاتف-، عدة منهجيات أو طرق لإنشائها بالاعتماد على التقنيات المستخدمة وشركات تصنيع الهواتف، حيث سنتطرق في هذا المقال إلى هذه الطرق الأربعة، مع الاستطراد بتوضيح الفروق بينها، ولا نغفل بذلك ذِكر الميزات والعيوب التي تخص كل من هذه الطرق. نظرة عامة عن تطوير تطبيقات الهاتف سنتعرف في هذا المقال على معلومات عامة عن تطوير تطبيقات الهواتف، وطرق التطوير المعروفة، مع توضيح الميزات والعيوب لكل طريقة. تطوير تطبيقات الهواتف هو عملية إنشاء تطبيقات برمجية تعمل على الهواتف، من خلال إنشاء حِزم برامج قابلة للتثبيت مهمتها تنفيذ خدمات في الخلفية، مثل الوصول إلى إمكانيات الهاتف أو البيانات باستخدام واجهة برمجة التطبيقات. تتطلب بعض التطبيقات، وجود اتصال شبكة للعمل مع موارد الحوسبة عن بُعد، مع مراعاة نظام التشغيل المستهدف لتشغيل التطبيق عليه. تطبيقات الهاتف وأنظمة تشغيل الأجهزة تسيطر منصتان رئيستان على سوق الهواتف الذكية، أولهما هو نظام iOS من شركة Apple، وهذه المنصة هي نظام التشغيل المتواجد في الهواتف iPhone من شركة Apple، والثاني هو Android من Google، وهو ليس حكرًا على أجهزة Google فقط كما هو الحال مع Apple، بل يُستخدم أيضًا من قِبل العديد من مصنعي الأجهزة الذكية كالساعات وشاشات العرض والأجهزة المنزلية الذكية، وكذلك الهواتف. على الرغم من وجود بعض أوجه التشابه بين هذين النظامين الأساسيين عند برمجة وتطوير التطبيقات، فإن التطوير لنظام iOS يختلف عن التطوير لنظام Android، حيث أن عملية التطوير تتضمن استخدام أدوات تطوير برامج SDKs مختلفة، بالإضافة إلى أدوات تطوير أخرى تختلف بين نظامي التشغيل، فحينما نرى أن شركة Apple تستخدم نظام iOS حصريًا للأجهزة الخاصة بها، فإن Google تجعل Android متاحًا للشركات الأخرى شرط أن تفي بمتطلبات محددة مثل تضمين بعض تطبيقات Google على الأجهزة التي تنتجها، ويمكن للمطورين إنشاء تطبيقات لمئات الملايين من الأجهزة من خلال استهداف كلا النظامين. طرق تطوير تطبيقات الهواتف هناك أربعة طرق تطوير رئيسة عند إنشاء تطبيقات الهاتف، وهي كما يلي: تطبيقات الهاتف الأصيلة Native تطبيقات الهاتف الأصيلة متعددة المنصات عبر الأنظمة الأساسية Cross-Platform Native تطبيقات الهاتف الهجين Hybrid تطبيقات الويب التقدمية Progressive Web Applications لكل من هذه الطرق المذكورة أعلاه لتطوير التطبيقات الخاصة بالهواتف، عدد من المزايا والعيوب الخاصة به، والتي يأخذها المطورون بالحسبان عند اختيار أحد طرق التطوير لمنتجاتهم البرمجية، بالإضافة إلى الاهتمام بتجربة المستخدم المطلوبة، وموارد الحوسبة والميزات الأصيلة التي يتطلبها التطبيق، والميزانية المرصودة للتطوير، والفترة الزمنية المتاحة، والموارد المرصودة للحفاظ على التطبيق من فريق عمل لتطويره وحل المشاكل العارضة وما يستلزم ذلك من تغطية مالية، وذلك ضمن دورة حياة تطوير التطبيق من بداية تحليل النظام وحتى الانتهاء باختبار التطبيق وتجربته وإطلاقه إلى سوق العمل، وسنفصل الآن توضيحًا لكل طريقة تطوير مع سرد الميزات والعيوب. أولا: تطبيقات الهاتف الأصيلة Native تُكتَب تطبيقات الهاتف الأصيلة بلغة البرمجة وأطر العمل البرمجية التي يوفرها مالك النظام الأساسي، وتعمل مباشرةً على نظام تشغيل الهاتف ذاك فقط، مثل لغة البرمجة Objective-C وSwift المستخدَمتين لتطوير تطبيقاتٍ تعمل ضمن نظام iOS وAndroid، وفي هذه الطريقة يُستخدم Android Studio على سبيل المثال لتطوير تطبيقات خاصة بنظام Android باستعمال لغات البرمجة المدعومة جافا Java أو كوتلن Kotlin، بينما يُستخدم Xcode على نظام التشغيل Mac لتطوير تطبيقات خاصة بنظام التشغيل iOS باستخدام لغات البرمجة Objective-C أو Swift. المميزات الأفضل أداءً خلال تشغيل التطبيق. الوصول المباشر إلى واجهات برمجة التطبيقات الخاصة الهاتف. العيوب ضرورة وجود اعتبار للتكلفة المادية لكل نظام تشغيل عند إنشاء التطبيق وصيانته، حيث أنه ستبنى نسخة كاملة منفصلة لأجهزة الأندرويد من قِبل مبرمج أندرويد، وبالتوازي ستبنى نسخة خاصة بأجهزة لآيفون من قِبل مبرمج iOS. ثانيا: تطبيقات الهاتف الأصيلة متعددة المنصات عبر الأنظمة الأساسية Cross-Platform Native يمكن كتابة تطبيقات الهاتف الأصيلة عبر الأنظمة الأساسية بلغات وأطر برمجة مختلفة، ولكنها تُجمَّع لاحقًا في تطبيق أصيل يعمل مباشرةً على نظام تشغيل الهاتف، وفي هذه الطريقة تُستخدم أّطر عمل متقدمة مثل Flutter وXamarin وReact Native المميزات كود رئيسي/ملفات برمجية موحدة لمنصات متعددة. سهولة وسرعة إنشاء وصيانة التطبيق الخاص بك. إمكانية إعادة الاستخدام لفقرات متعددة من النص البرمجي في وظائف مماثلة في التطبيق أو تطبيقات أخرى، مما يقلل من الوقت الذي يستغرقه إنشاء التطبيق. العيوب الاعتماد على مكتبات خارجية مخصصة للوصول إلى الميزات الأصيلة للهاتف. كود رئيسي/ملفات برمجية متعددة لكل منصة. ثالثا: تطبيقات الهاتف الهجينة Hybrid لقد صُمّمت تطبيقات الهاتف الهجينة باستخدام تقنيات الويب القياسية مثل HTML5 وCSS وJavaScript، وهي مجمعة مثل حزم تثبيت التطبيق، حيث تعمل التطبيقات المختلطة -طبعًا على العكس من التطبيقات الأصيلة- على "حاوية ويب" توفر إمكانية التشغيل عبر المتصفح، بالإضافة إلى كونها جسرًا لواجهات برمجة التطبيقات الأصيلة للهواتف، وهنا تُستخدم أُطر عمل مثل أباتشي كوردوفا Apache Cordova وأيونيك Ionic. المميزات توفير الكثير من الوقت والجهد وكذلك المال، من خلال تطوير تطبيق واحد لكل المنصات. كود رئيسي/ملفات برمجية مشتركة بين تطبيقات الويب وتطبيقات الهاتف، وتُعَد أهم الميزات لمطور التطبيق. استخدام مهارات تطوير الويب لبناء تطبيقات الهواتف. العيوب أداء أقل موازنةً بالتطبيقات الأصيلة، إضافةً إلى محدودية الأداء بسبب التجسير. يوجد اختلاف - قد لا يتفق عليه الكثير - بخصوص واجهات التطبيق وتجربة المستخدم، فلا شك أن التطبيقات الأصيلة تتفوق في الواجهات عن الهجينة. رابعا: تطبيقات الويب التقدمية Progressive Web Applications تطبيقات الويب التقدمية PWA هي تطبيقات ويب تستخدم بعضًا من إمكانيات المتصفح -مثل العمل في وضع عدم الاتصال وتشغيل بعض العمليات في الخلفية وإضافة ارتباط إلى الشاشة الرئيسية للهاتف-، لتوفر للمستخدم تجربة ما يشبه التطبيق عبر المتصفح. تشكّل هذه الطريقة نهجًا بديلًا لتطوير تطبيقات الهواتف التقليدية عن طريق تجاوز تسليم التطبيق لمتجر التطبيقات الخاصة بالمنصة، وكذلك تخطي خطوات تثبيت التطبيق. وهنا تستخدم أُطر عمل مثل Angular وReact وPolymer لإنشاء تطبيقات الويب التقدمية. المميزات التطبيق نفسه متاح لكل من الويب والهاتف. يمكن الوصول إليه من خلال عنوان الإنترنت URL، ولا يلزم التثبيت. العيوب دعم محدود للميزات الأصيلة للهاتف. اعتماد إمكانيات التطبيق على المتصفح المستخدم. موازنة التطبيقات الأصيلة مقابل التطبيقات الهجينة على أعلى مستوى، هناك أربع طرق رئيسة تختلف بها التطبيقات الأصيلة عن التطبيقات الهجينة كما هو موضح في الجدول التالي: table { width: 100%; } thead { vertical-align: middle; text-align: center; } td, th { border: 1px solid #dddddd; text-align: right; padding: 8px; text-align: inherit; } tr:nth-child(even) { background-color: #dddddd; } التطبيقات الأصيلة التطبيقات الهجينة المنصة المستهدفة منصة محددة حسب نظام التشغيل متعدد المنصات لغة البرمجة تستخدم لغة البرمجة التي تدعمها المنصة، مثل استخدام جافا وكوتلن في نظام أندرويد، واستخدام Objective-C وSwift في نظام iOS. لا يمكن استخدام أدوات بديلة مطلقًا. لا يمكن التعامل مع إمكانيات نظام التشغيل مباشرة إلا من خلال لغات البرمجة المذكورة، حيث يفهمها النظام ويقوم بتفسيرها Compile وتنفيذ تعليماتها تستخدم طريقة برمجية مختلفة بالاعتماد على تقنيات الويب القياسية يفهمها متصفح الويب في النظام، ويقوم المتصفح بدور الوسيط بين تطبيق الهاتف المبني بهذه الطريقة من جهة، وبين نظام تشغيل الهاتف من جهة أخرى الوصول إلى إمكانيات الهاتف مباشرةً من خلال النص البرمجي من خلال بعض الإضافات الأصيلة، أو إضافات خارجية في أغلب الحالات إطار العمل المستخدم أُطر عمل خاصة بالمنصة Platform Frameworks أُطر عمل الويب القياسية Web Frameworks لماذا تختار طريقة التطبيقات الهجينة على طريقة التطبيقات متعددة المنصات؟ تتمثل إحدى مشكلات تطوير تطبيقات الهاتف الأصيلة في أنها تتطلب مجموعة مهارات عالية التخصص، فعلى الرغم من وجود مجتمعات مطورين كبيرة ونابضة بالحياة للغة سي C (وهي اللغة الأم لتطوير تطبيقات iOS، وما بُني عليها من لغات برمجة عالية المستوى مثل Objective-C ثم Swift التي صدرت لتشكّل بديلًا عن كل ما سبقها)، وجافا Java (الخاصة بتطوير تطبيقات Android)، وكذلك لغة البرمجة Kotlin (التي اعتمدت رسميًا من جوجل منذ 2017 لتكون ثاني لغة برمجة لتطوير تطبيقات الأندرويد بعد جافا)؛ إلا أن هناك عددًا أقل من المطورين الذين يمتلكون مهارات عالية ومعرفة كبيرة بالإصدارات الخاصة بالنظام الأساسي لتلك اللغات وبيئة التطوير المتكاملة IDE الخاصة بكل لغة. لا شك أن هناك طلب كبير على المطورين المتميزين للتطبيقات الأصيلة، حيث تتعرض العديد من الشركات لضغوط شديدة فتكون الخيارات إما توظيفهم دائمًا وتحمل تكلفتهم الباهظة كما ذكرنا في عيوب هذه الطريقة من التطوير، أو اعتماد أسلوب التعهيد الذي يمكنهم من توظيف مؤقت لشركات أو مبرمجين لإنشاء التطبيقات. هذه التحديات تجعلنا نفكر في اتجاه آخر، وهو إمكانية إنشاء تطبيق يعمل على جميع المنصات بتقنيات معروفة ومهارات متوسطة، وهنا يأتي تصنيف التطبيقات الهجينة الذي يعتمد على تقنيات الويب القياسية، وسنركز على هذا التصنيف في هذه السلسلة؛ أما إن كنت من ذوي المهارات العالية في تطوير التطبيقات لمنصة محددة فهنيئًا لك، إلا أن هذه السلسلة موجهة للمهتمين بتطوير أو إنشاء تطبيقات الهاتف باستخدام الأطر الهجينة. كيف تعمل الأطر الهجينة ومتعددة المنصات عبر الأنظمة الأساسية؟ تسمح التطبيقات الهجينة للمطورين باستخدام تقنيات الويب القياسية HTML, CSS, JS، حيث يمكن من خلال هذه التقنيات إنشاء موقع ويب مثل موقع لعرض معلومات المؤسسة، أو موقع إخباري، أو موقع شخصي.. إلخ؛ أو إنشاء تطبيق ويب ليكون موقعًا ذا غرض معين مثل موقع لعرض المقالات، أو موقع لتنزيل الكتب، أو موقع لحساب السعرات الحرارية والوزن المثالي.. إلخ. تُغلّف التطبيقات الهجينة في حاوية تسمح لتطبيق الويب بالعمل مثل التطبيق الأصيل على الهاتف، حيث يمكن استخدام معظم التعليمات البرمجية من تطبيق ويب لإنشاء تطبيق هاتف بالاعتماد على أنّ تطبيقات الهواتف الهجينة هي مجرد تطبيقات ويب تعمل في بيئة متصفح الويب المضمن في نظام تشغيل الهاتف. يعتمد نظام أندرويد على عارض الويب WebView بينما يعتمد نظام iOS على UIWebView الذي يستخدم في إصدار iOS الثاني حتى الثامن، وقد طُوِّر لتسريع عرض المكونات في المتصفح بدءًا من الإصدار الثامن، وصدر باسم جديد هو WKWebView. يُعَدّ تطوير التطبيقات الهجينة بديلًا فعالًا لمطوري الويب الذين يرغبون في إنشاء تطبيقات الهواتف بسرعة، نظرًا لأن أداء طريقة عمل المتصفحات في الهواتف في تحسن مستمر من ناحية تحويل التطبيق وتشغيله وعرضه. وبالمثل، تُكتَب تطبيقات الويب التقدمية PWA باستخدام تقنيات برمجة تطبيقات الويب التقليدية، ويكون الوصول إليها مبدئيًا من خلال متصفح نظام التشغيل إما على الهاتف أو جهاز الحاسوب. توفر معظم الأطر المشتركة بين الأنظمة الأساسية مكونات أصيلة للعمل مع التعليمات البرمجية عبر الأنظمة الأساسية، بينما تعمل بعض الأطر الأخرى مثل Flutter وXamarin، على ترجمة التعليمات البرمجية عبر الأنظمة الأساسية إلى الكود الأصيل للحصول على أداء أفضل. أجزاء تطبيقات الهاتف من وجهة نظر فريق التطوير ينظر فريق التطوير إلى عملية تطوير التطبيق من خلال منظورين رئيسين، وهما الواجهات الأمامية والوظائف التي ينفذها التطبيق. بعض التطبيقات ينجزها شخص واحد مؤهل في المنظورين - بلا شك اعتمادًا على حجم التطبيق والوقت المقدر لإنشائه -، وبعض التطبيقات يحتاج إلى فريق عمل متخصص كل في جزئيته، نوضّحهما كما يلي: الواجهة الأمامية لتطبيق الهاتف Front-End الواجهة الأمامية للهاتف هي الجزء المرئي والتفاعلي من التطبيق الذي يتفاعل معه المستخدم، وعند استخدام مصطلح "مبرمج تطبيقات الهاتف"، فإننا غالبًا ما نقصد الجزء الأمامي من التطبيق، بحيث يكون هذا المبرمج مؤهلًا في اللغات، والتقنيات المستخدَمة لإنشاء هذه الواجهات، بحيث قد يكون وحده مطورًا للتطبيق، أو يشاركه أشخاص مختلفون في تصميم وتطوير الواجهات، فقد يتواجد في الفريق مصممو رسومات متخصصون مسؤولون عن إنشاء عناصر مرئية للتطبيقات مثل الرموز والخلفيات والألوان والسمات وأجزاء أخرى من التطبيق، في حالة أنواع معينة من التطبيقات مثل الألعاب مثلًا، وقد يضم الفريق مطوري الرسوم المتحركة. الواجهة الخلفية لتطبيق الهاتف Back-End بغضّ النظر عن النظام الأساسي للواجهة الأمامية أو طريقة التطوير المستخدمة ومدى جمال والتصميم، فإن تنفيذ التطبيق للوظائف المطلوبة منه تُعَد أكثر أهميةً للمستخدمين، وإلا ما الفائدة من تطبيق آلة حاسبة يبدو جيدًا، ويستخدم رموز وسمات وألوان رائعة، لكنه ينجز عمليات الحساب بطريقة خاطئة ومنافية للمنطق. نظرًا للأهمية الحاسمة للخدمات الخلفية لنجاح تطبيقات الهاتف، فإن لدى المطورين العديد من الخيارات المعمارية المهمة التي يجب عليهم الموازنة بينها واختيار أفضلها، من بينها الخدمات التي يجب أن ينشؤوها بأنفسهم، وأي الخدمات الخارجية المقدَّمة من طرف ثالث يجب أن يستفيدوا منها، وبعد ذلك يجب عليهم تشغيل وصيانة خدماتهم الخاصة أو إذا استفادوا من خدمات الطرف الثالث. خدمات تطبيقات الهاتف الرئيسية هناك المئات من الخدمات السحابية والجهات الخارجية التي يمكن لمطوري تطبيقات الهواتف الاستفادة منها لتسريع تطوير تطبيقاتهم وتسليمها، ومع ذلك فمن الصعب أن يتمكن المطور من إجمال وفهم كل هذه الخدمات، ولهذا بدلًا من ذلك، يجب على مطوري الهواتف البحث عن بيئة تطوير تسهّل عليهم دمج واستخدام القدرات المطلوبة الأكثر شيوعًا في تطبيقاتهم بسرعة وسهولة، مع الحفاظ على حرية الاستفادة من العديد من الخدمات الفردية المتاحة، وهذه الخدمات مصنفة كما يلي: خدمات أساسية إدارة إنشاء العضوية وتسجيل الدخول للمستخدمين. تسجيل الدخول عبر منصات التواصل الاجتماعي (تسجيل الدخول بحساب Facebook أو Twitter، إلخ). تحليل طريقة استخدام المستخدم للتطبيق ومتابعة سجل الأخطاء. الإشعارات الآنية/اللحظية. اختبار التطبيق على نفس الفئة من الأجهزة المستخدمة. خدمات البيانات التخزين السحابي. بيانات الحقيقية في الوقت الفعلي. منطق ووظائف التطبيق / وظائف السحابة. تعلم الآلة المحادثة الآلية (الرد التلقائي). التعرف على الصور والفيديو. التعرف على الكلام (تحويل النص إلى صوت، وبالعكس). الموازنة بين التطبيقات المذكورة لإنشاء تطبيقك الخاص من خلال ما سبق وتعرفت عليه، فما هو اختيارك من بين الطرق المذكورة أعلاه لإنشاء تطبيقك الخاص؟ يتردد المطور في استخدام الطريقة الأمثل لتطوير التطبيق، فقد يكون المطور ذو مهارات عالية لكن تطبيقه بسيط، أو العكس، فالمتغيرات في آلية اختيار طريقة التطوير كثيرة، ويتحتم على المطور الموازنة بينها. sنحاول من خلال المخطط التالي الإجابة على بعض التساؤلات التي تمر في خاطر المطور، ونخلُص من خلال الإجابات إلى طريقة التطوير المناسبة للتطبيق. إنشاء تطبيق أصيل هذه الطريقة هي المثلى، حيث تكون كل الخيارات للتطوير متاحة، وبلا شك ستُرضي كافة المستخدمين عبر تجربة مستخدم متكاملة، لكن يجب رصد ميزانية جيدة لها، إضافةً إلى زيادة عدد المطورين في فريق العمل لتشمل نظامي التشغيل Android وiOS، مع الأخذ بالحسبان الوقت الذي يتطلبه التطوير لإنشاء التطبيق وإطلاقه لمتجر التطبيقات وسوق العمل. إنشاء تطبيق متعدد الأنظمة الأساسية تُعَد هذه الطريقة حلًا وسطًا بين خيارات طرق تطوير تطبيقات الهواتف، فهي أقل تكلفةً موازنةً بالتطبيقات الأصيلة، مع أداء في مستوى جيد ومرضٍ للمستخدمين، إضافةً إلى كسب الوقت المستغرق في إنشاء نفس التطبيق لكافة أنظمة التشغيل. إنشاء تطبيق هجين ما تتميز به هذه الطريقة هو سرعة وقت تطوير التطبيق مع تكلفة متواضعة، وغالبا ما تستفيد الشركة الناشئة من إنشاء تطبيق هجين مثل حل تجريبي. إنشاء تطبيق ويب PWA رغم سرعة وقت تطوير التطبيق في هذه الطريقة، إلا أنها تُستخدم في حالات مخصصة، مثل تخطي الحاجة إلى متجر التطبيقات حيث يمكن الوصول إلى التطبيق من المتصفح، وكذا قلة الحاجة لاستخدام بيانات الإنترنت، إلى جانب إمكانية التصفح في وضع عدم الاتصال. خاتمة لقد تعرفنا في هذا المقال على تصنيف تطبيقات الهاتف، وصنّفنا طرق تطوير هذه التطبيقات في أربعة طرق، حيث وضحنا منهجية كل طريقة في إنشاء أو تطوير تطبيقات الهاتف، إضافةً إلى التركيز على بيان ميّزات كل طريقة وعيوبها، ثم تطرّقنا إلى الحديث عن تقسيمٍ لعملية تطوير تطبيق الهاتف، والتي تنقسم لفئتين أولاهما فئة تصميم واجهات التطبيق Front-End والتي تهتم بالشكل الجمالي لواجهات وصفحات التطبيق، والتي بدورها تراعي تجربة المستخدم وتعمل على تطويرها وتطويع التطبيق ليكون أسهل ما يكون للمستخدم؛ أما الفئة الثانية فتختص بتطوير وظائف وعمليات التطبيق وتسمى تطوير الواجهات الخلفية Back-End. وقد خُتم المقال بآلية توجه المستخدِم نحو اختيار الطريقة المناسبة في التطوير، متبوعةً برسم توضيحي عن المزايا التي يتطلبها المستخدم في التطبيق، والطريقة المثلى لتطوير هذه التطبيق. سنتحدث في المقال القادم عن الخطوة الأولى في تطوير تطبيقات الهاتف بالطريقة الهجينة، بالاعتماد على تقنيات الويب القياسية HTML5, CSS, JS من خلال إطار العمل أباتشي كوردوفا Apache Cordova وما تتطلبه من أدوات لتجهيز بيئة العمل والبدء بإنشاء أول تطبيق جوال من خلال كوردوفا. اقرأ أيضًا نظرة هيكلية عامة لمنصة Cordova أنشئ تطبيقك الأول في Cordova المدخل الشامل لتعلم تطوير الويب
  23. إذا كنت ستشتري سيارة غدًا، فبماذا ستفكر؟ بافتراض أن لديك ميزانيةً معقولة وبذلك لا نقصد السيارات الفارهة، فهل ستفكر في سيارة فورد أو بي إم دبليو أو ربما تسلا أو جنرال موتورز أو أودي أو جاكوار أو تويوتا؟ هناك الكثير من التصميمات المختلفة التي قد تحتويها قائمتك المختصرة، ولكنها وبدون أدنى شك ستحتوي بعض السيارات التي صنعتها إحدى الدولتين اللتين تُعَدان في صدارة صناعة السيارات، وهما ألمانيا واليابان. تنتج عدة شركات مثل بي إم دابليو ومرسيدس وفولكس فاكن وأودي وهوندا وتويوتا ومازدا ونيسان، وهي سيارات تحظى بشعبية في جميع أنحاء العالم، ولكن ما الذي مكَن هذه الشركات المصنِعة من التقدم على منافسيها الفرنسيين والإيطاليين والأمريكيين والبريطانيين والكوريين؟ لماذا اختيرت سياراتهم من العديد من السائقين؟ يكمن جزء من الإجابة في وجود هوَس وطني مشترك أعطى الشركات المصنعة في هذين البلدين ميزة الجودة المتأصلة بعمق في الثقافة الألمانية واليابانية. تشتهر شركات تصنيع السيارات اليابانية والألمانية بمنتجاتها عالية الجودة مثل هذه الطرازات من BMW ومرسيدس لا يُعَد امتلاك سيارة رائعة المظهر وسلسة القيادة الأمرًا جيدًا إذا كانت سيئة التصميم ومركبةً بطريقة غير احترافية، فهي على الأغلب ستتعطل باستمرار، وتُتركك على جانب الطريق في انتظار شاحنة سحب. عندما لا يلبي المنتج توقعات الجودة لعملائه يصبح غير ناجح، وهذا لا ينطبق فقط على المنتجات المادية مثل السيارات، ولكن أيضًا على المنتجات الرقمية. حيث سيُلغى تثبيت أي تطبيق رديء الجودة في المستقبل القريب، كما سيتوقف استخدام مواقع الويب رديئة الجودة. إذًا كيف نحافظ على مستوى الجودة المناسب دون إبطاء عملية الإنتاج ودون زيادة التكاليف زيادةً كبيرة؟ يجب أن تحكم أولًا على جهودك المبذولة في التصميم والبحث، للتأكد من أنك تبذل المستوى المناسب من الجهد المطلوب للفوز، وفي التالي، يجب أن تستخدم قائمة مراجعة تجربة المستخدم للتأكد من أن كل إصدار يخرج من أبواب المصنع الافتراضي، يفي بمعايير تجربة المستخدم المتفق عليها. سنتحدث تاليًا عن قائمة مراجعة تجربة المستخدم، وكيفية إنشائها وكيفية استخدامها للمساعدة في الحفاظ على المستوى الصحيح من الجودة. ما هي قائمة مراجعة تجربة المستخدم تتشابه طريقة الفحوصات التي يجب أن تمر بها كل سيارة صُنعت في الشركة المصنعة للسيارة من أجل فحص الجودة مع مجموعة متفق عليها من اختبارات تجربة المستخدم للتحقق من كل إصدار والتي ستُغطي عادةً مجالات، مثل: سهولة الاستخدام، والتصميم المرئي، والمحتوى، وإمكانية الوصول، وتجربة المستخدِم على الهاتف المحمول؛ إلى جانب تلبية أي معايير قبول وظيفية مثل قصص المستخدمين، كما يجب أن تفي الإصدارات بقائمة مراجعة تجربة المستخدم، ولا يمكن إصدار ما لا يستوفي جميع متطلبات تجربة المستخدم الضرورية. تحافظ قائمة مراجعة تجربة المستخدم على مستوى الجودة المطلوب أولًا من خلال حث الفريق على الاتفاق على مستوى الجودة الذي يجب أن يكون عليه، وثانيًا عن طريق مساءلة أنفسهم جماعيًا أمامه. تُوجد في العادة معايير يجب الوفاء بها، مثل: متطلبات العلامة التجارية الرئيسية، وإمكانية الوصول، واتباع مبادئ التصميم المتفق عليها. إنشاء قائمة مراجعة تجربة المستخدم يجب الموافقة على قائمة مراجعة تجربة المستخدم وعدم فرضها، كما يجب البدء من الحد الأدنى لمتطلبات تجربة المستخدم للإصدار والبناء عليها. ويُعَد إنشاء قائمة طويلة من المتطلبات، من الأخطاء المنتشرة، حيث سيصعب إيفاء جميع المتطلبات، وستخلق مأزقًا كبيرًا عند الإصدار. تُعِد ورشة عمل الفريق نقطة انطلاق جيدة لإنشاء قائمة مراجعة لتجربة المستخدم، والهيكل التالي هو مثال للهيكل الناجح: قبل إنشاء ورشة العمل، اجمع أمثلة قوائم مراجعة تجربة المستخدم واطلب اقتراحات من الفريق. احصل على المتطلبات اللازمة لتجربة المستخدم من أجل قائمة المراجعة. ضع متطلبات تجربة المستخدم في مجموعات، مثل: قابلية الاستخدام، والتصميم المرئي، وإمكانية الوصول، وإزالة أي نُسخ مكررة. أجرِ تصويتًا على متطلبات تجربة المستخدم التي يجب اتباعها. أجرِ تصويتًا على متطلبات تجربة المستخدم التي ينبغي اتباعها. بمجرد الموافقة على النسخة الأولية، يجب تفحُص قائمة المراجعة بانتظام وتعديلها إذا لزم الأمر. استخدام قائمة مراجعة تجربة المستخدم من الخطأ الاقتصار على فحص قائمة مراجعة تجربة المستخدم قبل الإصدار مباشرةً، فهذا لا يترك وقتًا كافيًا لمعالجة أي طارئ، كما لا يساعد في إعطاء طابع الجودة اللازم خلال عملية التطوير والتصميم، لهذا يجب استخدام قائمة مراجعة تجربة المستخدم للمساعدة في مراجعة التصميمات الجديدة، ومراجعة العمل أثناء تطويره، وأيضًا للمساعدة في الإجابة عن كل هذه الأسئلة المهمة: هل الفريق سعيد بالمضي قدمًا في هذا الإصدار؟ تُعَد جلسة اختبار تجربة المستخدم الاستكشافية طريقةً رائعةً لمراجعة العمل قيد التطوير وفقًا لقائمة مراجعة تجربة المستخدم. مثال على قائمة مراجعة تجربة المستخدم لقد أوجزت مثالًا لقائمة مراجعة تجربة المستخدم، والآن سيقرر الفريق ما إذا كانت العناصر ضروريةً، أو ينبغي فقط استخدامها على وجه الاستحسان، وما إذا كانت هناك أي متطلبات لتجربة المستخدم يجب إضافتها. تشمل قائمة المراجعة ما يلي: سهولة الاستخدام التصميم المرئي المحتوى إمكانية الوصول الهاتف المحمول سهولة الاستخدام من المهم أن تكون واجهة المستخدم قابلةً للاستخدام، لهذا ركّز على قابلية الاستخدام في سياق المهام الرئيسية للمستخدِم، والوظائف التي يجب أن ينفذها. إليك بعض الأسئلة المهمة المتعلقة بقابلية الاستخدام والتي يجب طرحها: هل كيفية إكمال المهام الرئيسية واضحة؟ هل سيعرف المستخدمون كيفية إكمال المهام الرئيسية؟ هل من الواضح ما يجب عليهم فعله، وكيفيته؟ هل واجهة المستخدم بسيطة ومنظَمة؟ يجب ألا تكون واجهة المستخدم مزدحمةً بالعديد من عناصر التحكم والمعلومات بل يجب أن تنظَّم بطريقة يسهل فهمها. هل واجهة المستخدم متناسقة؟ يجب أن تكون مكونات واجهة المستخدم وأنماط التصاميم فيها متناسقةً بطريقة تحقق الانسجام. هل استُخدمت المعايير والأنماط المعروفة في واجهة المستخدم؟ يجب أن تستخدِم واجهة المستخدم المعايير والأنماط التي سيكون المستخدمون على دراية بها حيثما أمكن ذلك. هل الميزات والمعلومات المهمة متوفرة؟ لا يجب إخفاء الخصائص والمعلومات المهمة أو فقدها، لأن المستخدم غير مضطر لحفظ هذه المعلومات في رأسه. هل مهام سير العمل المرغوبة مدعومة؟ يجب أن تكون مهام سير العمل متسقةً مع ما يتوقعه المستخدمون وأن يكون مكان وجود المستخدِم ضمن سير العمل واضحًا وأن تكون الخطوات التالية معروفة. هل هيكل النظام و النموذج الذهني المستخدمان واضحان؟ يجب أن يكون هيكل التطبيق أو موقع الويب واضحًا وسهل الفهم، ويجب أن يكون النموذج الذهني الذي يستخدمه المستخدمون واضحًا. هل التنقل بديهي ومتسق؟ يجب أن يكون التنقل بديهيًا ومتسقًا ويستخدم معايير وأنماط واجهة المستخدم المعروفة. هل تتوفر التغذية الراجعة السريعة والمناسبة؟ يجب تقديم ملاحظات سريعة ومناسبة بعد إجراء المستخدم، حيث يجب إعلام المستخدم مسبقًا عند تنفيذه لإجراء لا يمكن التراجع عنه مثل الحذف. هل العبارات التي تحث المستخدم على العمل واضحة؟ يجب أن تكون الروابط والأزرار واضحة، وأن تحتوي على تسميات وصفية، وتظهر بأنها قابلة للنقر. هل المشاكل والأخطاء المحتملة تُعالج بطريقة جيدة؟ يمكن للمستخدمين توقع المشكلات المحتملة وحلها والتعرف على الأخطاء عند حدوثها وتشخيصها ومعالجتها. هل المساعدة والتعليمات الكافية متوفرة؟ يجب أن تكون المساعدة والتعليمات متاحةً عند الضرورة، فإذا احتاج المستخدمون إلى مزيد من المساعدة أو كانت لديهم أسئلة مهمة، فيجب أن يكون واضحًا إلى أين يذهبون. هل واجهة المستخدم فعالة وموثوقة؟ قد يؤدي ضعف الأداء والموثوقية إلى إعاقة تجربة المستخدم إعاقةً كبيرة، فعلى سبيل المثال إذا استغرقت الصفحة وقتًا طويلًا للتحميل أو لم يحدث شيء بعد التفاعل، فيجب تحذير المستخدمين بشأن العمليات البطيئة، وتقديم التغذية الراجعة للإشارة إلى كيفية تقدم العملية. هل واجهة المستخدم متوافقة مع مبادئ التصميم؟ لابد من وجود مبادئ تصميم ثابتة تعمل مثل بوصلة لمنتجك. التصميم المرئي من المهم أن تكون واجهة المستخدم مصممةً جيدًا بصريًا إلى جانب كونها قابلةً للاستخدام. إليك بعض الأسئلة المهمة حول التصميم المرئي والتي ينبغي طرحها: هل التصميم متوافق مع نظام العلامة التجارية وإرشادات التصميم؟ يأمل الكاتب أن تكون إرشادات نظام التصميم أو العلامة التجارية في مكانها الصحيح لضمان وجود علامة تجارية وتجربة مستخدم متسقة. هل الأنماط والألوان والخطوط والصور والشعارات والأيقونات متوافقةً مع الإرشادات؟ هل تُستخدم لوحة الألوان؟ يجب أن يستخدم التصميم لوحة ألوان لضمان تناغم الألوان المستخدمة، وهناك عدد من الأدوات الرائعة التي يمكن استخدامها لإنشاء لوحة ألوان، مثل: Colourcode، وColormind، وCoolors. هل تُستخدم الشبكة للمساعدة في المحاذاة؟ تساعد المحاذاة في تحقيق النظام والتنظيم داخل التصميم، فالنصوص ذات المحاذاة الصحيحة للهامش على الصفحة أسهل في القراءة والفهم، كما يساعد التخطيط على أساس الشبكة على تحقيق محاذاة مكونات واجهة المستخدم. هل التسلسل الهرمي المرئي للتصميم واضح؟ يجب استخدام الألوان، والأنماط، والأشكال، والحجم، لإبراز أهم عناصر التصميم. هل التصميم بسيط؟ يجب ألا تحتوي واجهات المستخدم على معلومات أو مكونات غير ضرورية، حيث يتنافس كل عنصر من عناصر واجهة المستخدم على جذب انتباه المستخدم، لذلك كلما كان التصميم أبسط كان ذلك أفضل. هل التصميم متسق؟ يعتمد الاتساق داخل التصميم على تكرار الألوان والأشكال والأنماط وأنماط التصميم، كما يساعد الاتساق المستخدمين على فهم طريقة تقديم المعلومات لهم. المحتوى من المهم أن يكون المحتوى، مثل: نص المساعدة، والتصنيفات، ورسائل الخطأ، والصور؛ موجزًا وسهل الفهم ومفيدًا للمستخدمين. إليك بعض الأسئلة المهمة حول المحتوى التي ينبغي طرحها: هل المحتوى متوافق مع إرشادات أسلوب الكتابة؟ في حالة وجود دليل لأسلوب الكتابة، فعلى واجهة المستخدم أن تتبعه، مثل: تصميم النص، ونبرة الصوت، والتهجئة والغلاف، والمصطلحات، وما إلى ذلك. هل نبرة الصوت المستخدَمة مفيدة؟ هل نبرة الصوت المستخدمة مفيدة أم أنها تتحدث مع المستخدمين بطريقة غير لائقة؟ فمن الأفضل أن يتكلم المستخدم مع المستخدم الآخر كما لو أنه يحدِثه وجهًا لوجه، ولكن بتفويض شخص يمكنه المساعدة بطريقة فعالة. هل المحتوى مفيد؟ هل يساعد المحتوى المستخدم في إنجاز المهمة المطلوبة؟ إذا لم يكن المحتوى مفيدًا، فعلى المستخدم مراجعته أو إزالته تمامًا. هل المحتوى موجز؟ كلما كان المحتوى موجزًا، كان ذلك أفضل. لهذا يجب معرفة هل المحتوى كثير الكلام؟ وهل يمكن إزالة المعلومات الزائدة؟ هل المحتوى سهل الفهم؟ من المهم استخدام لغة بسيطة وسهلة الفهم، وتجنَب الجمل المعقدة والمصطلحات والاختصارات التي قد لا يكون المستخدمون على دراية بها. هل المحتوى منظم جيدًا؟ هل هناك توافق جيد بين بنية المحتوى و المهمة التي يتعين على المستخدم إنجازها؟ على سبيل المثال، هل تستخدم الوثائق هيكلًا يعتمد على المهمة أو على خصائص أخرى؟ وهل تُستخدم الأسئلة الشائعة لِجعل المحتوى أو الهيكل الذي يعتمد على المهام أكثر ملاءمة؟ هل المحتوى قابل للفحص؟ هل العناوين الوصفية والتسميات والعبارات التي تحث المستخدم على اتخاذ إجراء مستخدَمة لتسهيل فحص وفهم المحتوى المتاح؟ هل الأنماط والمحاذاة والتقارب والتباعد مستخدمة بطريقة جيدة لمساعدة المستخدمين على تفسير المحتوى المتاح؟ هل المحتوى جدير بالثقة؟ هل المحتوى دقيق ومُحدَّث وخالٍ من الأخطاء، مثل: الأخطاء المطبعية، والإملائية؟ إمكانية الوصول لا تتعلق إمكانية الوصول فقط بعدم القدرة، لأن إمكانية الوصول الجيدة تمكِّن جميع المستخدمين من الحصول على منتجات بسيطة وقابلة للاستخدام وشاملة. إليك بعض الأسئلة المهمة حول إمكانية الوصول: هل معايير الويب والنظام الأساسي مستخدَمة؟ يجب استخدام معايير الويب والنظام الأساسي المعترف بها، وكذلك عناصر التحكم في واجهة المستخدم وغيرها من العناصر، من أجل دعم خيارات إمكانية الوصول إلى النظام الأساسي واستخدام التقنية المساعدة. هل يُستخدم ترميز دلالي جيد بما في ذلك اللغة وأي بيانات وصفية؟ يوفر استخدام الترميز الدلالي الجيد والبيانات الوصفية المناسبة للمتصفحات والتقنية المساعدة المعلومات الضرورية حول عناصر التحكم في واجهة المستخدم والمحتوى.، لهذا من المهم تحديد اللغة بحيث يمكن لقارئات الشاشة تطبيق النطق المناسب. هل يمكن إكمال المهام باستخدام لوحة المفاتيح فقط؟ يجب أن يتمكن المستخدم غير القادر على استخدام الفأرة أو لوحة اللمس من إكمال مهامه باستخدام لوحة المفاتيح فقط، ويجب أن يكون استخدام الجدولة والتنقل عبر لوحة المفاتيح والتفاعل مع عناصر تحكم واجهة المستخدم ممكنًا باستخدام الأزرار والروابط وعناصر النموذج. هل المحتوى وترتيب التركيز منطقيان، وهل التركيز الحالي واضح؟ يجب أن يكون المحتوى بما في ذلك تخطيط النماذج منطقيًا عند استخدام التقنية المساعِدة مثل قارئ الشاشة، ويجب أن يكون ترتيب التركيز منطقيًا وأن يكون التركيز الحالي واضحًا عند الجدولة بين العناصر. هل يوجد تباين كافٍ لعرض المحتوى؟ يجب أن يكون هناك تباين كافٍ للمستخدمين للتمييز بين النص والصور والمحتويات الأخرى، كما يجب أن لا تقل نسبة التباين للنص الكبير عن 1:3 بين ألوان المقدمة والخلفية؛ أما بخصوص لنص بالحجم الطبيعي، فيجب أن تكون نسبة التباين 1:4.5على الأقل. يمكن لأداة مثل مدقق التباين WebAIM توفير نسبة تباين لألوان المقدمة والخلفية. هل النص قابل للقراءة ويمكن تغيير حجمه؟ يجب تحديد حجم النص وتصميمه للتأكد من أنه قابل للقراءة، ويجب استخدام حجم لا يقل عن 12 نقطة (16 بكسل). حيث قد تكون خطوط Sans serif مثل Arial أسهل في القراءة من خطوط Serif مثل Times New Roman، ويجب أن يكون المستخدمون قادرين على تغيير حجم النص باستخدام المتصفح أو خيارات الوصول. هل يمكن إكمال المهام عند تغيير نمط المحتوى أو إزالته؟ قد يكون لدى بعض المستخدمين عناصر من النمط غُيرت أو أُزيلت لتحسين وضوح المحتوى، مثل: تطبيق نمط عالي التباين، أو زيادة حجم النص بطريقة ملحوظة، فمن المهم في مثل هذه الحالة أن يظل بإمكان المستخدمين إكمال المهام. هل المعلومات الإضافية متوفرة لدعم استخدام اللون؟ يجب ألا تعتمد واجهة المستخدم على استخدام اللون وحده لنقل المعلومات، بحيث يستفيد المستخدمون المصابون بعمى الألوان أو ضعف البصر أو الذين يستخدمون الجهاز في ضوء الشمس المباشر من المعلومات الإضافية لدعم استخدام الألوان، مثل: النصوص، والأيقونات الإضافية. هل العناصر التفاعلية واضحة ومع مشغلات وأهداف مناسبة؟ من المهم أن تكون العناصر التفاعلية، مثل: الأزرار، والروابط، وعناصر تحكم واجهة المستخدم، واضحةً ولها أهداف فعالة، كما يجب أن تكون المسافة بين العناصر كافية، إلى جانب ضرورة دعم العناصر المشغلات المناسبة، مثل: النقرات، وضغطات المفاتيح. هل استُخدِمت العناوين الوصفية والعناوين الرئيسية والروابط والتسميات؟ يجب استخدام العناوين الوصفية، والعناوين الرئيسية، والروابط، والتسميات، للتأكد من أن المحتوى له معنى خارج السياق، فهذا مهم لقارئ الشاشة ومستخدمي التكبير الذين قد يفسرون المحتوى خارج النظام المعتاد، كما يجب تجنب النص غير الواصف للروابط، مثل: انقر هنا، أو قراءة المزيد. هل تفتح الروابط في نفس النافذة؟ قد يكون فتح الروابط في نافذة جديدة مربكًا للأشخاص الذين يجدون صعوبةً في إدراك المحتوى المرئي، وكذا بالنسبة لبعض الأشخاص الذين يعانون من إعاقات إدراكية، لذا فمن الأفضل فتح الروابط في نفس النافذة، وفي حالة عدم إمكانية ذلك، فيجب إخطار المستخدمين بأنه سيُفتح رابط في نافذة جديدة. هل البدائل المكافئة للصور والصوت والفيديو متاحة؟ إذا لم تكن الصورة زخرفيةً بحتة، فيجب توفير نص بديل، ولا ينبغي أبدًا استخدام الصور بدلًا من النص، كما يجب أن تكون التنسيقات البديلة، مثل: الترجمة، ولغة الإشارة، والوصف الصوتي، والنصوص؛ متاحةً للمحتوى الصوتي والمرئي. هل يمكن إيقاف تشغيل مقاطع الفيديو أو الصوت أو الرسوم المتحركة التي تُشغل تلقائيًا؟ يمكن أن يكون تشغيل مقاطع الفيديو أو الصوت أو الرسوم المتحركة التي تُشغل تلقائيًا، معطلًا لمستخدمي قارئ الشاشة ومربكًا، أو حتى مزعجًا لبعض الأشخاص ذوي الحساسية الإدراكية أو الحسية. لهذا تأكد من إمكانية إيقاف مقاطع الفيديو والصوت والرسوم المتحركة، وتجنب المحتوى الذي يومض أكثر من 3 مرات في الثانية الواحدة لأن هذا قد يسبب عدم الراحة، أو الغثيان، أو حتى حدوث نوبات للبعض. وليكون الأمر أكثر مثاليةً، فيجب أن يكون هناك خيار إلغاء الاشتراك للمستخدمين في محتوى التشغيل التلقائي. هل الإخطار بتحديثات الصفحة والتحكم بالتحديثات مُتاحان؟ يجب إخطار المستخدمين قبل التحديث التلقائي للصفحة لأن تحديثات الصفحة بأكملها قد تكون مربكةً لبعض الأشخاص مثل أولئك الذين يستخدمون قارئ الشاشة. الهاتف المحمول إن الاستخدام الأساسي للمنتج يكون على سطح المكتب، ومع لك فمن المهم تقييم قابلية استخدامه على الأجهزة الأخرى. حيث يجب أن يكون المستخدم قادرًا على إكمال المهام الرئيسية على جهاز محمول إكمالًا مثاليًا. وإليك بعض الأسئلة المهمة حول تجربة المستخدِم في الأجهزة المحمولة: هل يمكن إكمال المهام الرئيسية على جهاز المحمول؟ قد لا تكون تجربة المستخدم في الهاتف المحمول أو الجهاز اللوحي مثالية، ولكن يجب أن يكون المستخدمون قادرين على إكمال المهام الرئيسية، وأن يتوفر أيضًا نفس المحتوى والوظائف المتوفرة لمستخدمي سطح المكتب لمستخدمي الأجهزة المحمولة. هل المحتوى يستجيب ويتعدَل دون فقدان المعلومات؟ يجب أن يستجيب المحتوى ويتعدَل عبر أحجام الشاشات المختلفة، دون فقدان للمعلومات أو الوظائف، كما يجب تجنب التمرير الأفقي حيثما أمكن ذلك. هل يمكن للمستخدمين التبديل بين الاتجاه الرأسي والأفقي؟ من الناحية المثالية، يجب أن يكون المستخدم قادرًا على استخدام اتجاهه المفضل (عادةً ما يكون عموديًا)، ويجب أن يكون المحتوى نفسه متاحًا للاتجاه الرأسي والأفقي، وإذا كان المنتج يعمل فقط في اتجاه محدد، فيجب إبلاغ المستخدم بذلك. هل المحتوى قابل للقراءة على الجهاز المحمول؟ يجب أن يكون المحتوى بما في ذلك النصوص والصور قابلًا للقراءة على الجهاز المحمول، وألا يقل حجم النص عن 16 بكسل، ولا يقل ارتفاع السطر عن 1.5. يجب تطبيق التصميم المثالي للهاتف المحمول لتحسين تجربة المشاهدة عليه. هل العناصر التفاعلية واضحة والحجم والمسافات كافية عند النقر؟ من المهم أن تكون العناصر التفاعلية، مثل: الأزرار، والروابط، والتنقل؛ واضحة ويمكن النقر عليها، ويجب أن يكون التباعد والحجم كافيين للنقر بالحجم الملائم للمس الأزرار، وللأدوات الأخرى، يجب ألا يقل عن 1 سم × 1 سم (حوالي 44 بكسل × 44 بكسل). ترجمة -وبتصرّف- للمقال How to maintain quality with a UX checklist. اقرأ أيضًا دور المنهج العلمي والحدس في تجربة المستخدم. النسخة العربية الكاملة لكتاب مدخل إلى تجربة المستخدم (User Experience - UX).
  24. هل يمكن الاستفادة من قوى الحدس والتفكير العلمي التي تبدو متعارضة من أجل تغذية استكشافات تجربة المستخدم الجديدة والمبتكرة؟ يحب الكاتب أن يفكر بذهنه بطريقة تشبه لعبة كرة الطاولة، حيث يمثل الإبداع والحدس نصف الطاولة، بينما يمثل المنطق والاستدلال النصف الآخر منها، فما يترتب على هذه الطريقة هو سيل هائل من الأفكار. يؤكد الكاتب بأن زملاءه من باحثي تجربة المستخدم يمكنهم فهم هذه الفكرة وأن النظام في تجربة المستخدم بطبيعته الأولية، يستفيد كثيرًا من عقلية رياضة كرة الطاولة. إذا كان هذا صحيحًا بالفعل، فلماذا تنتشر إذًا فكرة وجود معضلة بين الحدس والتفكير العلمي؟ وهل يمكن أن تتواجد هاتين الاستراتيجيتين في وقت واحد من أجل اكتساب المعرفة القابلة للتنفيذ؟ إن الكاتب ليس وبأي حال من الأحوال أول شخص يستكشف هذين البندين، لكنه يود مشاركة بعض الأفكار الرئيسية من بحثه ليكون في صالح الحدس العلمي لتجربة المستخدم. سنشرح الأسئلة الموجودة بالأعلى خطوةً بخطوة من خلال مناقشة المجالات الرئيسية التالية: ما معنى المنهج العلمي؟ وما هي مزاياه وعيوبه؟ ما هو الحدس؟ ما هي مزاياه وعيوبه؟ التأثير الثقافي الغربي والتقليدي. التطبيق العملي للحدس العلمي في عمليات تجربة المستخدم. الاستنتاج. ما معنى المنهج العلمي؟ المنهج العلمي هو أحد العمليات المفهومة على نطاق واسع وهو الحصول على المعرفة في موضوع محدد بحيث تكون هذه المعرفة قائمة على الأدلة، فهو عبارة عن عملية جمع وتقييم الأدلة التجريبية بعناية ومنهجية من أجل اختبار الأفكار والإجابة على الأسئلة، يركز المنهج العلمي وبشدة على المنهج التجريبي وعلى العقلانية حيث يتقبل بسهولة إمكانية وجود أخطاء في الاستنتاجات السابقة وذلك عند توفُر المزيد من البيانات التي توضح وجود فرضية أكثر وضوحًا وشمولية. ومما سبق يتضح أن المنهج العلمي يتضمن عادةً التسلسل التالي: الفرضية: وهي التي لها قابلية الاختبار الضرورية لتحديد رؤية قابلة للتنفيذ في الدراسة الناجحة، كما أن الفرضيات المحددة والقابلة للقياس تحدد مقاييس النتائج الصحيحة وطرق البحث التي يلزم استخدامها والمهام اللازمة لاختبار الفرضيات. الإجرائية: تتضمن هذه الخطوة تحديد المقاييس والأساليب والمهام المقابلة بطريقة منهجية، وذلك لجمع البيانات الصحيحة وقياس سلوك المستخدم المطلوب. الاختبار والمراقبة: تتمثل الخطوة التالية في مراقبة سلوك المستخدم وتسجيله وتحديد مقداره من حيث الإجراءات التي نفذَها والمواقف التي تبناها أثناء أداء المهام المحددة في إطار محاكاة محكم أو في واقع الحياة. التحليل: تُجمع البيانات من القنوات المختلفة من أجل التحليل، والحساب، والموازنة، وتطبيق الاختبارات الإحصائية الصحيحة، وذلك لتحديد الرؤى الرئيسية التي ستثبت صحة الفرضيات الأولية أو تبطلها، وتساعد أصحاب المصالح على اتخاذ قرارات حاسمة. محددات الأسلوب العلمي محددات المنهج العلمي هي: يصعب استخدام المنهج العلمي في كثيرٍ من الأحيان، حيث قد يتطلب وقتًا طويلًا، وتخطيطًا لوجستيًا، ومصادر متعددة. قد تؤدي بيئة الاختبار التي تُراقب بشدة إلى استخلاص رؤى مؤقتة، وغير صالحة لبيئة العالم الحقيقي التي تحتوي على ترابطات وعلاقات معقدة. قد تؤثر التحيزات في تسجيل البيانات الموضوعية على موثوقية البيانات التي جُمعت وبالتالي على تقييمها. -تأثيرهوثورن، حيث يظهر تحيز المراقِب أيضًا عندما يعرف الشخص أنه يُفحص، مما يجعله يتصرف بطريقة مختلفة عن الطريقة التي يتصرف بها في عادته. يقتصر استخدام المنهج العلمي على معالجة الأسئلة التجريبية فقط، ونظرًا لصعوبة قياس ما نريد قياسه في بعض الأحيان، فإننا نطور نوعًا من المقاييس البديلة التي تحقق أفضل أداء ممكن. يُعَد المنهج العلمي محايدًا في الحكم على القيمة أو الأخلاق، فهل الأشياء جيدة أم سيئة؟ عادلة أم غير عادلة؟ جميلة أم قبيحة؟ شرعية أم غير شرعية؟ أو كيف يجب أن يكون العالم؟ غالبًا ما تكون معرفة الحالة المزاجية للمستخدم و دوافعه أمرًا صعبًا، والتي تحتوي على رؤى عميقة حول الإجراءات والمواقف الناتجة. ما هو الحدس يشعر الإنسان في لحظةٍ ما بشعور الكشف المفاجئ ويصرخ "أها"، فهو شعور غريزي يحدث في المواقف المحيرة أو غير المنطقية. لقد اشتُقّ مصطلح الحدس من الكلمة اللاتينية intuer وتعني رؤية الداخل، فهي الطريقة في اكتساب الخبرة والمعرفة ولكن دون الملاحظة أوالاستدلال، إذ يأتي الانطباع الشخصي البديهي بوجه عام، بعدة طرق، وهي: الاستبصار (الرؤية الواضحة)، والإنصات (الاستماع الجيد)، وما يعرف بالكلارسينتيس Clairsentience أي الشعور الواضح، فالحدس هو عملية غريزية وغير مدروسة تساعدنا في اتخاذ قرارات مصيرية في ثواني معدودة، ووفقًا لما وصفه دانيال كانيمان فإن نظام التفكيرالأول هو المسؤول الرئيسي عن تطور الحدس، وهو يزيد من فرصة بقائنا على قيد الحياة. يوضح مشهد من القصص المصورة اليابانية initial D كيف يتألق الحدس في المواقف الحساسة للوقت، ومن خلال مساعدة العقل، يتعامل الحدس مع سلسلة من المحفزات الخارجية، بحيث يتفاعل مع المحفزات ويراقب الردود المقابلة له، لهذا فهو لا يُعَد عمليةً غير عقلانية، أو غير منطقية، أو ليس له أساس، أو لا يحتوي على البيانات الجديرة بالثقة. الحدس هو عملية مستمرة وشاملة، يستفيد من المعرفة والتجارب السابقة لربط النقاط، وتحديد الأنماط التي لا تراها عادةً الحواس المحيطة، والتي يتعذر تفسيرها عن طريق العقل. محددات الحدس يذكر الكاتب كانيمان في كتابه "التفكير السريع والبطيء Thinking, Fast and Slow"، أنه لكي يعمل الحدس، يجب استيفاء ثلاثة شروط، وهي: الترتيب المنظم أي أن المتغيرات في بيئة معينة لا تتغير فجأةً. الكثير من الممارسة مع وجود خبرة سابقة. ردود فعل لحظية، أي عليك أن تعرف على الفور ما إذا كان ما فعلته هو خطأً أم صواب، فقد وجدت دراسة أجراها جويل بيرسون لقياس الحدس، أن المعلومات التي يُدركها الدماغ بطريقة حدسية تساعده في اتخاذ القرار فيما إذا كانت هذه المعلومات تحمل بعض القيمة، أو مجرد أدلة إضافية لا تتجاوز ما يمتلكه الناس بالفعل في أذهانهم الواعية. يقول الشرط الأول للكاتب كانيمان أن العمل سريع الخطى، والمتغير باستمرار لايحقق الترتيب المنتظم. إن التعليمات والتوجيهات من الإدارة العليا معرضة للتغير باستمرار، وتكثر الأدلة التاريخية الدالة على مدى التقلب في الأجزاء المعقدة والمترابطة الموجودة في الأسواق العالمية. يُكتسب الحدس من الخبرة السابقة، ولا يمكن الاستفادة من موقف معين إلا إذا واجه المرء نفس الموقف مرةً أخرى، ففي حالة الافتقار إلى خبرة من موقف مماثل سابق، فسيصبح من الضروري تعميم التجربة السابقة من أجل تخمين الحدث التالي. بالنسبة لشرط كانيمان الثالث، فإن ردود الفعل اللحظية ضرورية للحدس، ولكن مرةً أخرى، تتكشف الآثار المترتبة على قرارات العمل مع مرور الوقت وليس في غضون ساعات. وعلى عكس الأنظمة التي تعتمد على المنطق، فإن الحدس لا يستطيع عمل تنبؤات طويلة المدى. وفقاً لكانيمان فإن الحدس لا يستطيع عمل تنبؤات عالية الدقة. لا يمكن توليد معرفة جديدة عن طريق التلاعب بالنظرية الموجودة فعليًا، حيث لا يوجد شيء يماثل النظرية. إن الاعتماد على الحدس يزداد سوءًا عندما يميل الناس إلى المبالغة في تقدير دقة ما يعرفونه. تأثير الثقافة الغربية والتقليدية هل يمكن أن تكون عقلية رياضة كرة الطاولة الخاصة بالكاتب هي نتيجة نشأته في بيئة هندية تقليدية بجانب اندماجه مع التعليم الغربي؟ على المستوى الكلي إن الاطلاع على تطور عمليات البحث عن المعرفة وصنع القرار من منظور ثقافي، يثير بعض الأفكار الدالة على الصراع الملحوظ بين الطريقة العلمية والحدس، يقدِم فولفيو ماتزوتشي في ورقته لمحةً عامةً وموجزةً عن الاختلافات الأساسية بين الاثنين: يشتهر العلم الغربي الذي يتميز بجذوره العميقة في الفلسفة اليونانية القديمة وعصر النهضة، بأنه موضوعي. تتصل المعرفة التقليدية بالعاطفة، وقد طورت مفهومًا جديدًا للبيئة يؤكد على الطابع التكافلي المعقد بين الإنسان والطبيعة. يفضِل العلم الغربي الأساليب التحليلية والاختزالية على عكس النظرة الأكثر حدسيةً وشمولية، والتي غالبًا ما توجد في المعرفة التقليدية. العلم الغربي هو علم وضعي ومادي على عكس المعرفة التقليدية، التي هي روحية ولا تميز بين الأمور التجريبية والأمور المقدسة. العلم الغربي هو علم موضوعي وكمي على عكس المعارف التقليدية الذاتية والنوعية. يعتمد العلم الغربي على انتقال المعلومات بطريقة أكاديمية وتعليمية، في حين أن المعارف التقليدية غالبًا ما تُنقَل شفهيًا من جيل إلى جيل. يعزل العلم الغربي كائنات الدراسة عن سياقها الحيوي، من خلال وضعها في بيئات تجريبية بسيطة يمكن التحكم بها، مما يعني أيضًا أن العلماء يفصلون أنفسهم عن الطبيعة التي هي موضوع دراساتهم. وعلى النقيض من ذلك، تعتمد المعرفة التقليدية دائمًا على السياق والظروف المحلية الخاصة بها. تعجز أنظمة المعارف التقليدية عن تفسير الواقع على أساس مفهوم خطي يمثل السبب والنتيجة، بل تفسرها على أنها عبارة عن عالم مكون من مجموعة من الدورات متعددة الأبعاد والتي تكون فيها جميع العناصر جزءًا من شبكة متشابكة ومعقدة من التفاعلات. على المستوى الجزئي يقول ملخص الكوجيتو Cogito: أنا أفكر، إذًا أنا موجود، فقد أصبح البيان الشهير الذي زعمه رينيه ديكارت عنصرًا أساسيًا في الفلسفة الغربية. حيث أكد ديكارت أن عملية الشك في وجود المرء، يُعَد دليلًا على وجود العقل الخاص بالفرد. ومع ذلك، فقد تعامل العلماء مع الدماغ ووظائف الدماغ بطريقة فكرية على أنهما آخر حدود العلم الحديث وذلك لفترةٍ طويلة. حيث قال مايكل تار -وهو المدير المشارك لمركز كارنيجي ميلون للأسس العصبية للإدراك-: من ناحية أخرى، تولي المجتمعات الشرقية القليل من الاهتمام للدِماغ والتفكير مثل قاعدة أساسية للتجربة الإنسانية، بينما اقتصرت أنظمة التعليم والعلوم الحديثة إلى حد كبير على وظيفة الذكاء، ويؤدي الاستخدام المفرط لوظيفة واحدة مثل أي نظام معقد آخر إلى إجهاد هذا النظام. يعرِّف أدب اليوغا أيضًا كلًا من الحدس والتفكير المنطقي أنه وظيفة للذاكرة، لكن الحدس هو عملية أسرع حيث أنه يتخطى العديد من الخطوات اللازمة للتفكير المنطقي (تجميع البيانات، وتحليل البيانات، وإسقاط البيانات التي حُلّلَت)، إنها تعالج مجموعةً استثنائيةً من البيانات التي من الصعب إدراكها، على سبيل المثال: عملية المشي الفيزيولوجية والتي هي عملية بسيطة ومعقدة في نفس الوقت. تقدِّم الدراسة نفسها التي أجراها جويل بيرسون في عام 2016، دليلًا قويًا على أن الحدس هو في الواقع وظيفة لخوارزميات كيميائية حيوية معقدة يمكن قياسها كميًا. الحقيقة الصادمة هي أن أي شيء يعمل من الذاكرة، مثل: الفكر، أو الحدس. ومع أن القوة الحسابية المتقدمة ستتفوق عليه، إلا أن الأبعاد العبقرية للعقل في شكل ذكاء نقي هي التي ستميز دائمًا التجربة الإنسانية عن الآلات. ويضيف الكاتب بأن كونه فردًا من متخصصي تجربة المستخدم وصنَاع القرار، فمن المهم ملاحظة أن تجربة المستخدم لا تنفصل عن التجربة البشرية الكبرى، وأن ممارسة الحدس العلمي تصبح مهمةً للغاية أثناء تنقلهم في العالم المعقد والمتطور من حولهم. التطبيق العملي للحدس العلمي في عمليات تجربة المستخدم يتمثل الدور الرئيسي للحدْس لدى الكاتب -أي في عالم تجربة المستخدم-، في توفير أساس مفاهيمي يقترح الاتجاهات التي قد تتخذها استكشافات البحث والتصميم الجديدة، وهذا يشمل الحصول على معرفة بالحقائق الضرورية والأمور البديهية غير المنطقية في نظام رسمي قائم على المنطق، وكذا تفسيرات للمبادئ والقيم الأخلاقية، مثل: التنوع، والشمول في تصميم المنتج. يقول أينشتاين: إن الحدْس والعاطفة هما أمران حاسمان في عملية البحث عن المعرفة، سواءً في السياقات الغربية أو التقليدية، ويفترض دانيال كانيمان أنه حتى عندما نعتقد أننا نتخذ قرارات بناءً على أسس عقلانية، فإن معتقداتنا وتحيُزاتنا وحدْسنا الموجودة في نظامنا الأول، هي من تقودنا إلى العديد من خياراتنا. الخطوات العملية التي تزيد من دور مبادئ الحدْس العلمي في عمليات صنع القرار: إن وجود بيئة العمل الشاملة والمتنوعة ليست الشيء الجيد الوحيد الذي يحتاجه الفرد، بل من المفيد أيضًا أن يكون لديه فريق متنوع ثقافيًا، يتميز أفراده بأفكار مختلفة اختلافًا جذريًا، ويعملون معًا لحل المشكلات المعقدة. عليك أن تكون حذرًا وصارمًا بشأن السياق المطبَق والعينة المختارة أثناء إجراء التعميمات العامة. عليك أن تعرف ما الذي تقيسه، فعندما يكون الهدف هو فهم سلوك المستخدم في نظام معقد ومترابط، فعليك أن تركز أكثر على الرؤى النوعية والقصص التي تُتداول، وذلك لكشف بعض دوافع المستخدم ونواياه الأساسية، بدلًا من مجرد ملاحظة المواقف الملحوظة ومعرفة نوع وتكرار الإجراءات المنفذة. عليك (إذا كان هذا ممكنًا) مساعدة فريق العمل الصغير في بناء حدْس يمكن الاعتماد عليه، وذلك من خلال خلق بيئة مفتوحة ومستقرة، وكذا فترة تدريب، وذلك من أجل تحديد الأنماط ومعرفة علامات التغيير في بيئة الأعمال. عندما تتخذ القرارات الكبيرة، فمن الجيد أن تكون بطريقة التداول، مثل: فرضيات الاختبار، واعتماد طريقة "الفريق الأحمر" المعروف أيضًا باسم محامي الشيطان في التخمين الثاني لمعرفة نتائج القرار. حاول أن تبتعد عن العمل من وقت لآخر، وتمهل واستثمر في الأنشطة التي لها مردود طويل الأجل من المعرفة والإبداع. كن منفتحًا وتقبل الملاحظات الصادقة. الحدس قابل للتدريب، وأكثر الطرق فاعليةً لذلك هو التأمل الذاتي ليس من خلال الدورات التدريبية عبر الإنترنت أو أي تقنية، ولكن من خلال البحث عن النفس تجريبيًا، وما يعنيه الكاتب هنا هو البحث في داخل الإنسان. الاستنتاج يجب على الإنسان أن يفكر في كيفية دراسة نفسه وتعليم التفكير البديهي الذكي للمصممين والباحثين وصناع القرار، فكلا الأمرين مهمين ولا يتفوق أحدهما على الآخر، ويعبر الكاتب عن إيمانه الشديد في ضرورة تطبيق جميع مهاراتنا من أجل إنشاء تصميمات ذكية و للحدْس العلمي دور عظيم في ذلك. ترجمة -وبتصرّف- للمقال The Role of The Scientific Method & Intuition in UX لصاحبه Sujay Kotwal. اقرأ أيضًا كيفية الحفاظ على الجودة من خلال قائمة مراجعة تجربة المستخدم. مدخل إلى تجربة المستخدم (User Experience - UX).
  25. الإصدار 1.0.0

    7444 تنزيل

    إطار العمل Vue.js هو أحد إطارات جافاسكربت المخصصة لبناء تطبيقات ويب والواجهات الأمامية يتميز بأنه إطار شامل واعد سريع الأداء ذاع الصيت يتميز بالكثير من الخصائص القوية ويستحق تعلمه لبناء واجهات مواقع وتطبيقات ويب متميزة وقوية خصوصًا تطبيقات الويب ذات الصفحة الواحدة SPA، توجهت أنظارنا لإضافة محتوى عربي مميز يشمله في خطة لإضافة مصادر تعليمية عالية الجودة تشرح أشهر أطر لغة جافاسكربت لبناء الواجهات الأمامية للمواقع وتطبيقات الويب. يبدأ الكتاب فصوله الأولى بشرح مفهوم إطار العمل والتعرف على Vue.js وأخذك سريعًا وباختصار لبدء استعماله ببناء أول تطبيق عبره. ستبدأ من الفصل الثاني في Vue.js بالتعرف على إطار العمل Vue.js عن قرب وعن آلية عمله وكيفية استعماله في بناء الوجهات الأمامية ثم تنتقل بعدها إلى التعرف على الموجهات الشرطية والتكرارية واستعمالها في قوالب الواجهة الأمامية، يليها الدخول إلى عالم مكونات Vue.js وتعلم كيفية بناءها. ستبدأ بعدها في الفصل السابع الأمور المتقدمة إذ ستتعلم التعامل مع سطر أوامر Vue.js لبناء المشاريع والتطبيقات بسهولة ويسر ثم ستتعرف بعد ذلك على مفاهيم متقدمة في Vue.js وكيفية بناء تطبيقات ذات صفحة واحدة. ستتعلم في الفصول الأخيرة من الكتاب كيفية ربط تطبيقك بالإنترنت وإضافة قاعدة بيانات له وإطلاق إلى العالم الخارجي متحرين استعمال أشهر منصات النشر وأيسرها تعاملًا. حتى تستفيد أكبر استفادة من الكتاب، يجب أن تملك معرفة أساسية مسبقة بلغة HTML ولغة CSS ومعرفة جيدة بلغة جافاسكربت، إذ يركز الكتاب على إطار العمل Vue.js الذي هو أحد أطر عمل جافاسكربت ولن يتطرق الكتاب إلى شرح لغة جافاسكربت، وقد تجد صعوبة في فهم أجزاء الشيفرات والاستفادة من الكتاب دون تلك المعرفة المسبقة. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «مقدمة إلى vuejs»، أو تجدها مسردة بالترتيب التالي: مقدمة إلى Vue.js استخدام Vue.js للتعامل مع DOM الموجهات الشرطية والتكرارية في Vue.js التعرف بالتفصيل على كائن Vue.js مدخل إلى التعامل مع المكونات في Vue.js المزيد حول المكونات في Vue.js إنشاء مشاريع Vue.js باستخدام Vue CLI التعامل مع دخل المستخدم عن طريق نماذج الإدخال في Vue.js المرشحات Filters والـمخاليط Mixins في Vue.js استخدام Vue.js للاتصال بالإنترنت بناء تطبيقات ذات صفحة واحدة باستخدام التوجيه Routing في Vue.js نشر تطبيق Vue.js إلى الإنترنت
×
×
  • أضف...