-
المساهمات
69 -
تاريخ الانضمام
-
تاريخ آخر زيارة
المعلومات الشخصية
-
النبذة الشخصية
كاتب ومترجم ومدقق لغوي، بخبرة تربو على السبع سنوات.
- الموقع
آخر الزوار
2651 زيارة للملف الشخصي
إنجازات محمد ناولو2

عضو نشيط (3/3)
10
السمعة بالموقع
-
يتطلب بناء مدونة ناجحة قادرة على تحقيق مداخل معرفةَ جيدة بكيفية الوصول إلى الجمهور المستهدف. وفي الواقع، يُعَد الفهم العميق لجمهور المدونة الأمر الأكثر أهميةً في رحلة تنمية المدونة. تُعَد معرفة الجمهور المستهدف وتعلم كيفية تقديم المساعدة لهم من الأمور الأساسية التي ستساعد على كتابة منشورات ذات قيمة للقارئ تقدم له حلول للتحديات التي يواجهها، ناهيك عن أن تحديد الجمهور المستهدف أمر أساسي في المنافسة مع المدونات الأخرى. في الواقع، يساعد فهم الجمهور المستهدف على تجنب إضاعة الوقت في كتابة منشورات لا يرغب أحد في قراءتها، وسيُظهر لنا الموضوعات التي ستلقى قبول القراء على المدى الطويل فقط. يسعى العديد من المدونين الجدد لمعرفة جمهورهم المستهدف عند وضع خطط مدوناتهم، فضلًا عن كيفية العثور عليهم فعليًا. وهنا تأتي الأسئلة: لمن يجب أن نكتب؟ وكيف نعرف الموضوعات التي ستثير اهتمامهم؟ كيف نجذب القراء من جمهورنا المستهدف؟ سيقدم هذا الدليل الإجابة عن كل الأسئلة السابقة، وسيوضح كيفية العثور على الجمهور المستهدف، إضافةً إلى كيفية معرفة احتياجاتهم التي يسعون خلفها من خلال 11 طريقة سهلة. 1. وسائل التواصل الاجتماعي في المتوسط، يقضي مستخدمو الإنترنت في جميع أنحاء العالم ما يقارب 151 دقيقة يوميًا على منصات التواصل الاجتماعي، لذلك تُعَد وسائل التواصل الاجتماعي أداةً جيدةً للعثور على الجمهور المستهدف، فضلًا عن معرفة الطريقة التي يفكر بها الأشخاص والأشياء التي يهتمون بها. يجب على المدونين الاستفادة من منصات التواصل الاجتماعي للعثور على جمهورهم المستهدف ومعرفة المزيد عنهم، لذا دعونا نلقي نظرةً على بعض وسائل التواصل الاجتماعي الرئيسية ولنتعرف على كيفية العثور على الجمهور المستهدف من خلالها. منصة فيسبوك Facebook يُعَد فيسبوك من الأماكن التي توفر موجز آخر الأخبار ويُعَد هذا بمثابة وجهة يمكن من خلالها التعرف على ما يحبه الأشخاص ويكرهونه، وكذلك اهتماماتهم وآرائهم. قد تكون بعض المعلومات التي نصادفها مفيدةً لصناعة محتوى أفضل للمدونة، كما قد لا تكون مفيدة؛ إذ يعتمد ذلك على نوعية المحتوى الذي تقدمه المدونة. ثمة طريقة أخرى للعثور على الجمهور المستهدف على فيسبوك، وهي الانضمام إلى المجموعات الموجودة في مجال تخصص معين، فهناك الكثير من المجموعات المتخصصة التي يمكن الانضمام إليها ومعرفة المزيد عن الجمهور الذي نريد جذبه إلى مدونتنا، وإذا درسنا المنشورات التي يشاركها الأعضاء في مثل هذه المجموعات، فيمكننا اكتشاف أشياء مثل: المنتجات التي يحبون استخدامها الأسئلة أو المخاوف التي تتكرر لديهم المشاكل التي يواجهونها الأمور الرائجة في مجال التخصص التركيبة الديموغرافية للمهتمين بمجال المدونة يتيح فيسبوك إمكانية متابعة الصفحات الأخرى ضمن مجال تخصصاتنا، لذلك قد نتمكن من الوصول إلى مؤثرين آخرين يقدمون محتوى مشابه، مما يفتح الباب أمام فرص تعاون محتملة، والتي قد تتماشى مع الإستراتيجية الشاملة للمدونة. كان هذا لحالة وجود إحصائيات ونشاط واضح ومتابعين بعدد جيد؛ أما في حال كنا نشطين على فيسبوك ولدينا عدد قليل من المتابعين، فيمكنننا استخدام الرؤى Insights، وذلك لمعرفة المزيد من المعلومات عن جمهورنا المستهدف وفهم بعض الاتجاهات حول الأشخاص الذين يريدون التعاون معنا. تقدم تحليلات صفحة الأعمال على فيسبوك مجموعةً من الرؤى الرائعة، ولكن بالنسبة إلى الإحصائيات التي تتعلق بنوع الجمهور المستهدف الذي نجذبه إلى صفحتنا، فهي تأتي في ثلاث فئات رئيسية: المعجبين بالصفحة المتابعين الحسابات التي تصل إليها منشوراتنا ضمن كل فئة من هذه الفئات الفرعية، يمكن جمع المعلومات الديموغرافية لمعرفة المزيد حول جمهورنا المستهدف، مثل: الجنس الدولة المدينة اللغة بنترست Pinterest من الطرق الفعالة لمعرفة المزيد عن اهتمامات الجمهور المستهدف عبر بنترست هي بالبحث عن الكلمات المفتاحية، وهي طريقة مشابهة للبحث عن الكلمات المفتاحية لتحسين محركات البحث، ولكنها تحتوي على بعض الاختلافات القليلة. لإجراء بحث عن الكلمات المفتاحية في بنترست، يمكن البدء بكلمة واحدة مرتبطة بنوعية المحتوى على مدونتنا، فإذا بحثنا مثلًا عن كلمة تكنولوجيا المعلومات فستظهر لنا النتائج: هنا ستصبح الأمور مثيرة للاهتمام، تساعد قائمة الكلمات المقترحة القابلة للنقر في أعلى الصفحة على تضييق نطاق نتائج البحث. يعرض بنترست هذه الكلمات المفتاحية الثانوية لأن هذه هي الأشياء التي يبحث عنها المستخدمون عادةً عندما يبحثون عن كلمة "تكنولوجيا المعلومات"، وهي وسيلة مفيدة للغاية بالنسبة لنا لفهم الموضوعات التي يهتم بها جمهورنا المستهدف، لا سيّما إذا كانوا يستخدمون بنترست بكثرة. يمكن النقر على أي من الكلمات أو العبارات المدرجة في الأعلى، وسنكون قادرين على تضييق نتائج البحث. على سبيل المثال، إذا نقرنا فوق كلمة "والاتصالات والتعليم" فسيُختصر نطاق البحث ليشمل المواضيع الأكثر تحديدًا: سيمنحنا هذا فكرةً أوسع عما يهتم به جمهورنا المستهدف، ولكن كيف يمكن استخدام هذا لمعرفة المزيد عن النوع من الجماهير؟ دعونا نجرب مثالًا آخر في مجال مختلف وعلى نطاق أكبر لنعرف الاهتمامات على النطاق العالمي، وسنبحث من جديد عن عبارة Healthy Recipes، وسنركز الآن على البحث بين الدبابيس. ملاحظة: الدبابيس هي علامات مرجعية يستخدمها الأشخاص لحفظ المحتوى الذي يحبونه على بنترست. قبل عام 2017، كان من المسموح في بنترست معرفة مدى شعبية أي دبوس، وذلك من خلال إظهار عدد المرات التي أُعيد فيها تثبيت هذا الدبوس، لكن لم يَعُد بإمكان الجميع الاطلاع على مثل هذه المعلومات، إنما يمكن فقط لمالك الدبوس رؤية هذه البيانات، لذا ليس من السهل معرفة مدى شعبية دبوس معين كما كان من قبل. ومع ذلك، يمكننا رؤية عدد متابعين الحساب صاحب الدبوس، فإذا كان ينشر الكثير من المحتوى في مجال تخصصنا ولديه عدد كبير من المتابعين، فقد يكون متابعوه من نفس النوع الذين نتطلع إلى جذبهم إلى مدونتنا. بعد مراجعة لعدد قليل من أهم الدبابيس التابعة للكلمة المفتاحية Healthy Recipes، وجدنا حسابًا يضم عددًا كبيرًا من المتابعين: لدى الحساب 28.6 ألف متابع ومدونة مليئة بالمحتوى عالي الجودة، لذا سيكون من الجيد البحث أكثر في تفاصيل الحساب وصاحبه، فقد تكون فرصةً مناسبةً لمحاولة إقامة شراكة ترويجية في حال كان متوافق معنا، ومن أفكار الشراكات المربحة للطرفين والتي يمكن تنفيذها مع المدونين النشطين على بنترست: طلب إنشاء لوحة مجموعة، إذ يمكن المساهمة بالدبابيس التي سيراها الجمهور المشترك. معرفة ما إذا كان مستعدًا لنشر عدد قليل من دبابيسنا على لوحاته التي تحظى بشعبية عالية، مقابل قيامنا بالشيء نفسه. الإشارة إليه في منشور ضيف، والذي يمكن أن يعرض محتوانا لقرائه ومتابعيه على بنترست. إذا ذهبنا إلى صفحة الحساب على بنترست، سيكون بإمكاننا رؤية الأشخاص الذين يتابعونه عن طريق النقر على المجتمع Community وكذلك الأشخاص الذين يتابعهم أيضًا، مما يمنحك العديد من فرص الشراكة المحتملة. علاوةً على ذلك، عند تصفح متابعي حساب بنترست الذي يحقق نجاحًا واضحًا في مجال تخصصنا، سيكون بإمكاننا معرفة المزيد عن الأشخاص المهتمين بنوع المحتوى الذي نرغب في تقديمه، إذ يمكن أن يساعد ذلك على اكتشاف التركيبة الديموغرافية لجمهورنا المستهدف، لا سيمّا العمر والجنس. كان هذا لحالة وجود إحصائيات ونشاط واضح ومتابعين بعدد جيد؛ أما في حال كنا نشطين على بنترست ولدينا عدد قليل من المتابعين، فيمكنننا استخدام الرؤى Insights، وذلك لمعرفة المزيد من المعلومات عن جمهورنا المستهدف وفهم بعض الاتجاهات حول الأشخاص الذين يريدون التعاون معنا. يمنح حساب بنترست التجاري المجاني مجموعةً من الرؤى القيّمة حول جمهورنا المستهدف. فإذا نقرنا على خيار رؤى الجمهور Audience Insights مثلًا، فسيكون بإمكاننا التعرف على معلومات مثل: يمكن أيضًا امتلاك معرفة أكبر حول جمهورنا المستهدف من حيث التركيبة الديموغرافية والخصائص النفسية، بما في ذلك: الأصناف التي يهتم بها جمهورنا المستهدف الأعمار توزيع الأجناس المواقع الجغرافية الأجهزة التي يستخدمونها من الوظائف الرائعة التي يتيح لنا بنترست تجربتها هي اختيار إحصائيات حول إجمالي جمهورنا أو جمهورنا المتفاعل فقط، وهو أفضل في معرفة المزيد عن القراء المستهدفين الأساسيين فقط، على النحو الآتي: إجمالي الجمهور هو كل من شاهد أيًا من دبابيسنا أو تفاعل معها خلال آخر 30 يومًا الجمهور المتفاعل فقط هم الذين تفاعلوا مع أي من دبابيسنا في آخر 30 يومًا إنستجرام Instagram لا يوجد في إنستجرام مجموعات مثل فيسبوك، لكن يمكن أن تكون الوسوم أو الهاشتاجات Hashtags وسيلةً فعالةً جدًا للعثور على الجمهور المستهدف والوصول إليهم من خلال المحتوى الذي ننشره. تسمح الوسوم بإيجاد إيجاد العديد من المنشورات الرائجة لشخصيات مؤثرة مشهورة، ومن ثم محاولة بناء علاقات معهم، كما قد نجد كنزًا من الكلمات المفتاحية التي يمكن استكشافها على نحو أوسع. يمكن أن تعطينا هذه الكلمات المفتاحية فكرةً عما يهتم به الأشخاص في المجال الذي نريده، وإذا نقرنا على الصور الرائجة، فسنتمكن من الوصول إلى أهم المؤثرين في مجال تخصصنا، مما يفتح لنا العديد من الاحتمالات. يمكن التعرف على نوعية المحتوى الذي ينشره هؤلاء المؤثرين، ومدى تقبل الجمهور له، كما يمكن تصفح متابعيهم للحصول على فكرة عن أنواع الأشخاص المهتمين بمحتوى المجال الذي نريد البحث فيه، ويمكن أيضًا التفاعل مع بعض هؤلاء المتابعين لمعرفة المزيد حول المحتوى الذي يبحثون عنه. كان هذا لحالة وجود إحصائيات ونشاط واضح ومتابعين بعدد جيد؛ أما في حال كنا نشطين على إنستجرام ولدينا عدد قليل من المتابعين، فيمكنننا استخدام الرؤى Insights، وذلك لمعرفة المزيد من المعلومات عن جمهورنا المستهدف وفهم بعض الاتجاهات حول الأشخاص الذين يريدون التعاون معنا. إذا كنا نستخدم حسابًا تجاريًا على إنستجرام، فسنتمكن من الوصول إلى رؤى واضحة حول متابعينا، والتي ستوفر لنا بيانات مهمة مثل: الفئات العمرية للجمهور المستهدف جنس المتابعين، نسبة الذكور ونسبة الإناث المواقع الجغرافية متوسط الأوقات/الأيام التي يكون فيها المتابعين أكثر نشاطًا عند تعلم كيفية العثور على الجمهور المستهدف لمدونتنا، يمكن أن تكون هذه الرؤى النوعية مهمةً إلى حد كبير لاتخاذ قرارات مدروسة حول المكان الذي يمكن منحه المزيد من وقتنا. منصة إكس X تُعد منصة إكس X -تويتر سابقًا- من منصات التواصل الاجتماعي الرائعة للتواصل مع الأشخاص ذوي التفكير المماثل ومعرفة المزيد عن الجمهور المستهدف، وهناك ثلاث طرق للعثور على الجمهور المستهدف في منصة إكس X ومعرفة المزيد عنهم، وهي: القوائم Lists الوسوم أو الهاشتاجات hashtags البحث عن المؤثرين في مجال تخصصنا إذ من المحتمل أن يصل هؤلاء الأشخاص إلى الجمهور الذي نريد الوصول إليه. 2. البحث في منتديات المناقشة عبر الإنترنت في عصر وسائل التواصل الاجتماعي، قد يكون من السهل نسيان منتديات المناقشة عبر الإنترنت التي ما تزال موجودةً في كل مجال تقريبًا، فبينما يستخدم العديد من الأشخاص منصة X أو فيسبوك، توفر المنتديات المخصصة أيضًا مكانًا للأشخاص أصحاب التفكير المماثل لمناقشة الموضوعات التي تهمهم. يمكن البحث عن منتديات تتناول العديد من الموضوعات المختلفة بسهولة شديدة، وذلك ببساطة عن طريق البحث في جوجل عن المنتدى الذي نريده وتصفح النتائج. على سبيل المثال، إذا بحثنا عن منتديات الأعمال الخشبية باللغة بالإنجليزية woodworking forums ستظهر لدينا أكثر من 28 مليون نتيجة: هناك أمر مهم للغاية يجب التأكد منه على الفور عند تقييم المنتدى، وهو ما إذا كان محتوى المنتدى حديثًا أم أنه محتوى قديم؛ إذ من المهم أن يكون المنتدى نشطًا لنتمكن من جمع معلومات حول جمهورنا المستهدف. إذًا ما الذي يمكن الاستفادة منه عند الوصول إلى هذه المنتديات؟ أولًا، يمكن معرفة الموضوعات التي يتحدث عنها هؤلاء القراء في المنتدى، فمثلًا فيما يتعلق بالنجارة، قد نجد: مناقشة عامة حول النجارة، وعند النقر فوق هذا، سيكون بإمكاننا رؤية الكثير من المواضيع الفرعية التي تُناقش استعراض المشاريع، حيث يمكن للأشخاص مشاركة مشاريعهم التصاميم والخطط المصنوعات الخشبية تشكيل الخشب هذه موضوعات واسعة قد يرغب الأشخاص المهتمون بمجال النجارة معرفة المزيد عنها، وهي كلها مواضيع قد تمنحنا بعض الإلهامات لمنشورات جديدة يمكن نشرها على مدونتنا. إذا أردنا الاطلاع على المناقشات في قسم الأعمال الخشبية العامة ومعرفة نوعية الأسئلة التي كان الناس يطرحونها، سنصل إلى بعض الأسئلة مثل: هل يمكن لتجفيف الخشب في الفرن أن يشوهه؟ وهذا ما يقودنا إلى أن تجفيف الخشب بالفرن قد يكون موضوعًا يسعى القراء في مجال النجارة إلى معرفة المزيد عنه، ويمكننا أن نكتب منشورات عن هذا الأمر بعناوين مثل: كيفية تجفيف الخشب بالفرن بدون تشويهه 10 أخطاء شائعة يجب تجنبها عند تجفيف الخشب بالفرن هل يمكن لتجفيف الخشب بالفرن أن يشوهه؟ 3 طرق لتجنب حدوث ذلك تطبيق هذه الاستراتيجية على مدونتنا الخاصة، لن يساعدنا على التعرف أكثر على جمهورنا المستهدف فحسب، لكنها أيضًا مهمة لمعرفة المشكلات الشائعة التي يواجهها جمهورنا والحلول التي يمكن تقديمها لهم عبر محتوى مدونتنا. 3. استخدام جوجل للبحث عن جمهورنا المستهدف يمكن البحث في جوجل عن بعض الكلمات المفتاحية في مجال تخصصنا. صحيح أننا قد لا نعثر على جمهورنا المستهدف بالضبط، لكنه سيساعدنا بالتأكيد على التوجه نحو المكان الصحيح، والوصول إلى طرق فعالة للتواصل مع الأشخاص الذين من المحتمل أن يكونوا القراء المثاليين لمدونتنا. لنأخذ مثالًا آخر. إذا كنا نريد إطلاق مدونة عن الطعام ونرغب في مشاركة أفضل مطاعم موجودة بالمملكة العربية السعودية، فسنبحث عن مطاعم بالسعودية ونلاحظ النتائج كالآتي: النتيجة الأولى تخص مطعم اسمه المطعم السعودي. إذا نقرنا على هذه النتيجة، ستنتقل إلى صفحة معلومات المطعم، الذي نجد به 1333 تقييم، ويمكننا مراجعة هنا جميع التقييمات، وسيكون بإمكاننا رؤية آرائهم بعد تجربة المطعم. وبمراجعة هذه التقييمات، سيكون بمقدورنا تحديد بعض الخصائص حول الجمهور المستهدف مع الطعام، وما يحبه، والأمور التي تجعله يفضل مطعم عن سواه، ووجبة عن سواها، مما سيمكننا حتى من استخراج مواضيع إضافية حول للحديث عنها بمدونتنا لاحقًا. من خلال البحث على جوجل عن الكلمات المفتاحية في مجال تخصصنا، سيكون بمقدورنا القيام بالآتي: الحصول على فكرة واضحة عن المواضيع الرائجة العثور على المواقع الإلكترونية الرائدة في مجال تخصصنا والتي يقضي جمهورنا المستهدف الكثير من الوقت عليها معرفة نقاط قوة المقالات الناجحة التعرف على العناوين الرئيسية التي تحقق أفضل أداء وآراء القراء التي يتركونها على تلك المواقع ستمنحنا هذه العملية أيضًا فكرةً أكثر وضوحًا عن نوعية المحتوى الذي يناسب جمهورنا المستهدف. 4. النظر إلى المنافسين في مجال تخصصنا لمعرفة المزيد عن جمهورنا المستهدف، بإمكاننا مراقبة المؤثرين والمدونين والعلامات التجارية المنافسة في مجال تخصصنا، وذلك ببساطة عن طريق البحث بالكلمات المفتاحية على بحث جوجل ومعرفة المتصدرين في مجالنا. لنفترض أننا نعمل كمدوني سفر ونريد إنشاء أفضل دليل للسياحة في قطر، بما ذلك الإقامة والطعام والمعالم السياحية التي يمكن زيارتها، وهنا يمكن البحث عن السياحة في قطر ككلمة مفتاحية مناسبة، وسيظهر لنا على الفور أقرب المنافسين لنا في هذا المجال: من الواضح أن مدونة سفرك Safaraq من المنافسين الأقوياء في المجال، كونها تظهر في النتيجة الأولى ولديها العديد من أدلة السفر، لكن هذا لا يعني أنه من المستحيل التفوق عليها، فمن خلال كتابة محتوى جيد وفريد للقراء ومراعاة قواعد تحسين محركات البحث SEO سنكون قادرين على المنافسة على ترتيب نتائج البحث، فحتى وإن لم تظهر في النتيجة الأولى، فستكون من ضمن النتائج الأولى على الأقل. وبغض النظر عن المنافسة، يمكن معرفة الكثير عن جمهورنا المستهدف من خلال تصفح مواقع ومقالات المنافسين الناجحين، مثل: ملاحظة عناوين المقالات التي يبدو أنها تحقق أداءً جيدًا على جوجل النقر على كل موقع من هذه المواقع ومعرفة المواضيع التي تغطيها التعرف على المناقشات التي تحدث في قسم التعليقات وأصحاب هذه المناقشات ملاحظة كيفية تنظيم الموقع للمقالات والأقسام الرئيسية التي يحتويها إن معرفة ما يقوم به الأشخاص الآخرون في مجال تخصصنا سيمنحنا فكرةً جيدةً عما هو شائع، لا سيّما عند النظر إلى المدونين الناجحين، إذ سنعرف نوعية المنشورات التي تحظى بأكبر قدر من الاهتمام، والأشياء التي تجذب الجمهور. 5. قراءة قسم التعليقات في مدونات المنافسين بعد دخولنا إلى مدونات المنافسين، ثمة طريقة أخرى مفيدة للغاية للعثور على جمهورنا المستهدف ومعرفة المزيد عنهم، وهي تخصيص بعض الوقت لقراءة قسم التعليقات في مقالاتهم الرائجة، وكذلك في حساباتهم على وسائل التواصل الاجتماعي. ستمنحنا قراءة قسم التعليقات أفكارًا رائعةً حول الأسئلة التي تدور في رأس الناس، وسيكون بإمكاننا الإجابة عنها بطريقة رائعة، فإذا كنا نعمل على دليل السفر إلى تايلاند مثلًا، فسنجد ملايين نتائج البحث التي تستهدف جميعها كلمات مفتاحية من قبيل: الأشياء التي يمكنك فعلها في تايلاند، وأماكن للزيارة في تايلاند. وعندما نبحث في مقالات المنافسين، سنصل إلى أحد أفضل أدلة السفر إلى تايلاند موجود على مدونة IndieTraveler: وعلى الرغم من أن الدليل نفسه مليء بالأفكار الثرية التي يمكن جمعها وتغطيتها في دليلنا، إلا أن التمرير للأسفل نحو قسم التعليقات سيكشف عن منجم ذهب من الأفكار حول الجمهور المستهدف والأسئلة التي تدور في رأسهم حول هذا الموضوع، وهي جميعها مواضيع يمكن الإجابة عليها في دليلنا الخاص. يميل ماريك Marek صاحب مدونة IndieTraveler إلى أخذ خطوة متقدمة والإجابة عن الأسئلة المتكررة في التعليقات، لكن ليس كل مدون أو علامة تجارية ستفعل ذلك. ومن جانب آخر، حتى وإن أجاب على الأسئلة في قسم التعليقات، لن يحصل المحتوى على نتائج عالية في نتائج البحث عن هذه الأسئلة، لذا ما يزال بإمكاننا كتابة دليل أكثر شمولية يغطي جميع المواضيع والأسئلة التي تهم الجمهور. سنتعرف من خلال تعليقات المدونة على الجمهور المهتم في المجال، وسيكون بإمكاننا جمع أفكار رائعة حول الأسئلة التي لديهم والأشياء التي يهتمون بمعرفة المزيد عنها، لذا من المهم الحرص على جمع المعلومات التالية أثناء قراءة قسم التعليقات: ما هي المعلومات التي لم يغطها منافسونا بعد؟ ما المحتوى الإضافي الذي يبحث عنه المعلقون؟ ما هو التوزيع الديموغرافي للأشخاص المشاركين في التعليقات؟ ما هي المشاكل الرئيسية التي يبحثون عن حلول لها؟ 6. التعلم من قسم التعليقات في مدونتنا إذا كان لدينا مدونة تجذب بعض الزيارات المستمرة من القراء، فسيكون قسم التعليقات أحد الأماكن القيّمة لمعرفة المزيد عن جمهورنا المستهدف ولاستلهام الأفكار وفهم ما يريد جمهورنا معرفة المزيد عنه. يتحدث كاتب المقال ريان روبينسون Ryan Robinson عن التعليقات في مدونته وكيف يستفيد منها في استلهام الأفكار ومعرفة المزيد عن جمهوره المستهدف: يتابع ريان روبينسون حديثه عن كيفية الاستفادة من تعليقات الجمهور: من خلال هذه الأنواع من التعليقات، سنتمكن من الوصول إلى مجموعة من أفكار المقالات المفيدة لجمهورنا، وسنتعلم باستمرار عن هوية القراء في مدونتنا وكيفية فهم جمهورنا المستهدف بطرق جديدة وفعالة. 7. استخدام الإحصائيات المعروفة هناك الكثير من شركات الأبحاث وجمع البيانات التي توفر معلومات وإحصائيات مجانية يمكن استخدامها لمعرفة المزيد عن مجموعات من الأشخاص، مثل مركز بيو للأبحاث Pew Research Center الذي يُعَد من المصادر الرائعة التي يمكن استخدامها لفهم التركيبة الديموغرافية والخصائص النفسية لجمهورنا المستهدف. وفقًا للمعلومات الواردة في موقعهم، فإن مركز بيو للأبحاث هو عبارة عن مؤسسة بحثية لا تتبع إلى أي جهة، بل تعمل على تزويد الجمهور بمعلومات عن القضايا والمواقف والاتجاهات حول العالم؛ إذ تعمل على إجراء استطلاعات الرأي العام والأبحاث الديموغرافية وتحليل المحتوى وغيرها من أبحاث العلوم الاجتماعية القائمة على البيانات، وبعيدًا عن أي توجهات أو مواقف سياسية. يغطي موقع المؤسسة مجموعةً واسعةً من المواضيع المرتبطة بالمدونات على اختلاف مجالاتها، بما في ذلك: وسائل الإعلام والأخبار أحدث الاتجاهات الاجتماعية الإنترنت والتقنية العلوم يُعَد مركز بيو للأبحاث Pew Research Center مصدرًا رائعًا للمساعدة في الحصول على معلومات حول التوزيع الديموغرافي للجمهور المستهدف وتوفير بيانات مفيدة حول سلوكياتهم وطرق تفكيرهم. فعلى سبيل المثال، نشر المركز قبل فترة منشورًا بعنوان "ما توصلت إليه الأبحاث حتى الآن عن الجيل Z"، والذي يتضمن الكثير من المعلومات المفيدة؛ إذ تقدم هذه المقالة البحثية إحصائيات حول: التنوع العرقي للجيل Z المستوى التعليمي للجيل Z التوجهات والميول السياسية للجيل Z مدى وصول الجيل Z إلى الوسائل التقنية كيف يمكن الاستفادة من معلومات مثل هذه؟ حسنًا، إذا كانت مدونتنا تركز في الأساس على المحتوى المخصص للجيل Z، أو إذا كنا نأمل في كتابة محتوى مرتبط بهذا الجيل، فلا بُد أن نعرف أين يقضي هذا الجيل وقته عبر الإنترنت، وكيف سينظرون إلى المحتوى الذي نقدمه، وما الذي يهتمون به. كل هذه المعلومات ستكون مفيدةً لنا للغاية. 8. تصفح الأسئلة على مجتمعات الأسئلة والأجوبة يمكن الاعتماد على المواقع التي توفر مجتمعات الأسئلة والأجوبة المتاحة عبر الانترنت للاطلاع على آراء واهتمامات جمهورنا المستهدف، مثل المواقع العالمية Quora، وreddit، وموقع حسوب I/O العربي، إلى جانب الاطلاع على أقسام الأسئلة والأجوبة بالمواقع التي تتيح النقاش لمستخدميها حسب مجالها، مثل قسم الأسئلة والأجوبة بأكاديمية حسوب، الذي يتيح للمستخدمين طرح أسئلتهم والنقاش مع غيرهم بالمجالات التي تقدمها أكاديمية حسوب. تقوم فكرة الاستفادة من هذه المواقع على إتاحة فرصةً للتفاعل مع جمهورنا المستهدف والتعرف عليه وعلى مشاكله أكثر. فلو كنا نرغب بإنشاء مدونة ألعاب مثلًا ونريد معرفة المواضيع التي تهم جمهورنا المستهدف، فسيكون من المناسب البحث عن الكلمات الأساسية للمجال مثل Gamer، وما شابهها من كلمات تخص المجال ضمن الموقع المتوافق مع جمهورنا المستهدف، وستظهر لنا عدة مواضيع، سنستلهم منها بعض الأفكار الرائعة حول مجتمع اللاعبين، وإذا كنا نرغب في كتابة محتوى في مجال الألعاب، فستكون هذه المناقشات مكانًا مثاليًا للبدء. لا يقتصر الأمر على مجرد الإجابة عن هذه الأسئلة مباشرة على هذه المواقع، إذ سيتلقى جمهورنا المستهدف إشعارًا بالإجابة، بل يمكن التوسع في الإجابات عبر نشر مقالات شاملة على مدونتنا. من الأسئلة التي يمكننا إيجادها بهذه المواقع في مجال الألعاب، نجد: ما هي الأشياء التي لا يجب قولها للاعب؟ ما هي الاختلافات بين اللاعبين العاديين واللاعبين الشغوفين؟ كيف يمكن للمرء أن يصبح لاعبًا محترفًا؟ سيساعدنا السؤالان الأول والثاني على أن نكون أكثر صراحةً مع جمهورنا المستهدف، في حين يمكن للسؤال الأخير أن يدفعنا لكتابة محتوى يبحث عنه بالتأكيد عدد كبير من اللاعبين الطموحين. فيما يتعلق بالموضوع الأول الذي يناقش الأشياء التي لا ينبغي قولها للاعبين الآخرين، يمكن البحث عما يزعج اللاعبين أو يحبطهم عادةً، ومن ثم كتابة هذه الإحباطات في منشور خاص.، فعلى سبيل المثال، من المواضيع الشائعة التي تكررت عدة مرات هو أن اللاعبات يشعرن بعدم الاحترام في مجتمع الألعاب، لذا قد تكون هذه فكرةً يمكن أخذها في الحسبان عند كتابة المحتوى. أما عن الموضوع الثاني الذي يتحدث عن الاختلافات بين اللاعبين العاديين واللاعبين الشغوفين، فهي تناقش الفرق بين اللاعب الذي يلعب لأجل الاستمتاع دون الاكتراث الشديد بالنتائج، على عكس اللاعبين الشغوفين الذين يقضون الكثير من الأوقات في اللعب، لكن بالنسبة لمنشورنا الذي سنكتبه، يجب أن نحدد الفئة المستهدفة. هل هم اللاعبون العاديون؟ أم الشغوفون؟ هذا الاختيار يعود إلى ما نشعر أنه مناسب أكثر لجمهورنا. أما السؤال الأخير الذي بعنوان كيف يمكن للمرء أن يصبح لاعبًا محترفًا، فهو موضوع رائع يمكن الاستفادة منه وكتابة منشور بأسلوب الدليل الشامل، إذ يرغب العديد من اللاعبين في الحصول على فرصة لكسب المال من شيء يحبون فعله، ومن هذا المنطلق، سيكون هذا المنشور مثاليًا للمدونة التي تختص بمجال الألعاب. هذه الأفكار ما هي إلا جزء مما يمكن تعلمه من المواقع التي تقدم مجتمعات نقاشات إذا قضينا وقتًا كافيًا في البحث والاطلاع وبذل قصارى جهدنا في الإجابة عن الأسئلة التي يطرحها جمهورنا المستهدف. 9. الاستماع إلى برامج البودكاست ومشاهدة مقاطع الفيديو تُعَد برامج البودكاست ومقاطع الفيديو على يوتيوب طريقةً أخرى رائعة للوصول إلى جمهورنا المستهدف ومعرفة المزيد عنهم، إذ تُعَد منصة يوتيوب ثاني أكبر محرك بحث في العالم بعد جوجل، ويشاهَد عبره أكثر من مليار ساعة من مقاطع الفيديو يوميًا. ستساعد برامج البودكاست ومقاطع الفيديو على التعرف على ما هو رائج في مجال تخصصنا، وما يريد جمهورنا المستهدف معرفة المزيد عنه، والأمور التي يجري الحديث عنها في مجال تخصصنا. إن اكتشاف شعبية بودكاست ما ليس بالأمر السهل تمامًا، لكن يمكن معرفة مدى الاهتمام الذي يحظى به هذا البودكاست. فعلى سبيل المثال، إذا كنا نريد معرفة مدى نجاح بودكاست ما على منصة iTunes، فهناك ثلاثة مؤشرات رئيسية: المراجعات Reviews التقييمات Ratings التصنيفات Rankings المراجعات هي كلها من أشخاص حقيقيين قد استمعوا إلى البودكاست وشعروا بأنهم لا بُد وأن يشاركوا آراءهم، وهذا ما قد يقدم لك فكرةً واضحةً حول مشاعر الأشخاص تجاه بودكاست معين أو موضوع ما، وهو أمر مفيد للغاية إذا كنا نريد تقييم الموضوعات التي يجب تغطيتها في مدونتنا أو برنامج البودكاست الخاص بنا. التقييمات Ratings هي تقييم الأشخاص للبودكاست من نجمة واحدة إلى 5 نجوم، لذا ستحصل برامج البودكاست الأكثر استماعًا على الكثير من التقييمات. أما التصنيفات Rankings فهي طريقة أخرى للعثور على برامج البودكاست الأكثر استماعًا والحلقات الرائجة في مجال تخصصنا؛ إذ يصنف iTunes برامج البودكاست حسب كل فئة. لا توجد طريقة محددة لمعرفة كيفية تصنيف iTunes لبرامج البودكاست على منصتهم، لكنهم يصنفون أفضل برامج البودكاست حسب كل فئة، وبالتالي يمكن بسهولة الاطلاع على برامج البودكاست ذات التصنيف الأعلى في مجال تخصصنا ومعرفة الحلقات التي تحظى بأكبر قدر من الاهتمام. بمجرد الوصول إلى مقدمي برامج البودكاست وأصحاب قنوات اليوتيوب الشهيرة، ستكون أمامنا الكثير من الخيارات: متابعتهم والتعرف أكثر على الجمهور المشترك من خلال الاطلاع على المحتوى الذي ينشرونه التواصل معهم ومعرفة ما إذا كان بإمكاننا أن نكون ضيوفًا على برنامجهم، أو إذا كان بالإمكان الظهور في إحدى الحلقات على يوتيوب لنظهر أمام جمهورهم جمع أفكار حول عناوين منشورات لمدونتنا، وكذلك أفكار يجب تغطيتها في حلقات البودكاست ومقاطع الفيديو الحرص على معرفة نوعية المحتوى الذي يحقق أداءً جيدًا ومشاهدات عالية من قِبل الجمهور، لأن برامج البودكاست وقنوات اليوتيوب هذه تنتمي إلى نفس مجالنا، لذلك من المحتمل جدًا أن يتكون جمهورهم من نفس الأشخاص الذين نأمل في جذبهم، وبالتالي علينا التفكير في الشكل الذي يمكن أن تبدو عليه الشراكة الناجحة معهم. 10. التحدث مع الأشخاص المهتمين بمجال تخصصنا هناك طريقة أخرى للتعرف على الجمهور المستهدف لمدونتنا، وهي التواصل معهم شخصيًا،. وذلك من خلال: الانضمام إلى الأندية التي تشجع التفاعل المباشر مع بعضها البعض حضور المؤتمرات والندوات، إما بالواقع أو عبر الإنترنت التسجيل في الأحداث المحلية في منطقتنا على الرغم من أن هناك الكثير من الطرق التي يمكن من خلالها الوصول إلى جمهورنا المستهدف عبر الإنترنت، لكن لا شيء يضاهي الدروس التي يمكن تعلمها من خلال التحدث مباشرةً مع الأشخاص الذين يشاركوننا الشغف في نفس مجال تخصصنا، وهم كذلك مرشحون من خبرتنا. سيخبرنا الأشخاص المهتمون بنفس مجالنا عن نوع المحتوى الذي سيحقق لنا النجاح. صحيح أن المدونين يقضون الكثير من وقتهم عبر الإنترنت، لكن لا يمكن إنكار فائدة التواصل مع الأشخاص وجهًا لوجه، لذا يُفضل الحرص على التواجد شخصيًا في الأحداث أو المؤتمرات التي يمكن حضورها ومعرفة المزيد عن الجمهور المستهدف. على سبيل المثال، إذا كنا نفكر في إنشاء مدونة حول الكتب، معناها من المهم التفكير في الذهاب إلى مؤتمر عن الكتب، وهكذا. من المؤكد أنه لا يتعين علينا الذهاب فقط إلى أكبر الأحداث في العالم لمعرفة المزيد عن الجمهور المستهدف لمدونتنا، بل يمكننا الانضمام إلى أي مجموعات أصغر من الأشخاص الذين لديهم نفس التفكير في بلدتنا أو مدينتنا، وإذا لم تكن هذه المجموعات موجودةً بالفعل، فمن المهم المبادرة إلى تنظيم واحدة بأنفسنا. التحدث إلى هؤلاء الأشخاص الحقيقيين وبدأ حوار معهم حول احتياجاتهم، واكتشاف الأشياء التي تجعلهم مهووسين في المجال، دون نسيان إخبارهم عن مدونتنا خلال تلك المحادثات. 11. قراءة الكتب والتواصل مع المؤلفين في مجال تخصصنا قراءة أفضل الكتب في مجال تخصصنا يُعَد طريقةً أخرى لمعرفة المزيد عن جمهورنا المستهدف، فعلى الرغم من أن قراءة الكتب قد لا تجعلننا على صلة مباشرة بجمهورنا، لكن سيكون لدينا فهم أفضل للأشياء المتعلقة بجمهورنا المستهدف. علاوةً على ذلك، يجب النهل من هذه الكتب وأن نكون قادرين فيما بعد على كتابة مجموعة واسعة من المواضيع لجذب جمهورنا المستهدف. إذا كانت هناك تعليقات عبر الإنترنت حول الكتب التي نريد قراءتها، فيمكن أيضًا معرفة المزيد عن جمهورنا المستهدف من خلال تصفحها، لا سيّما على بعض المنصات الشهيرة، مثل منصة GoodReads، وكذلك قسم المراجعة في أمازون الذي يُعَد مكانًا جيدًا للاطلاع على المراجعات والتعليقات التي تركها أشخاص حقيقيون. في الختام عندما نجري أبحاثنا الخاصة حول جمهورنا المستهدف، من المهم تذكر أن الجمهور فريد ومختلف عن أي جمهور آخر، فقد تكون مدونتنا في مجال متخصص للغاية، وتجذب جمهورًا محددًا، أو قد يكون لدينا مجال واسع يجذب نطاقًا واسعًا من أنواع مختلفة من الأشخاص؛ وفي كلتا الحالتين، سيكون جمهورنا دائمًا مختلفًا عن جمهور أي مدونة منافسة أخرى في مجال تخصصنا، حتى ولو بنسبة ضئيلة. لا شك أن رحلتنا نحو اكتشاف الجمهور المستهدف ما هي إلا الخطوة الأولى من الطريق الطويل، إذ ما يزال أمامنا تعلم كيفية تلبية احتياجاتهم، وهو موضوع مهم للغاية. في الوقت الذي نفهم فيه جمهورنا المستهدف والأشياء التي يحبها، من المهم قضاء بعض الوقت في إعداد منشورات تضيف إلى معرفتهم قيمةً كبيرة، مع الحرص أيضًا على إمضاء وقت كاف في قراءة تعليقاتهم، لنكون واثقين من تحقيقنا الفعلي للهدف الأساسي من عملية التدوين وكتابة المنشورات، والذي يتمثل في أن تكون المدون الأكثر فائدةً في مجال تخصصنا. ترجمة -وبتصرّف- للمقال How to Find Your Target Audience for Your Blog لصاحبه Ryan Robinson. اقرأ أيضًا كيف يصبح الشخص كاتبا مستقلا إلى جانب عمله ويحصل على أول عميل أيهما أفضل للكاتب المستقل الكتابة المثالية أم التواصل مع القراء كيفية تغيير مدونة تعاني إلى الأفضل إذا قررت الاحتفاظ بها قائمة لأهم مصطلحات التسويق بالمحتوى
-
يعتقد الكثير من الخبراء أن تحليلات الويب هي العنصر الأكثر أهميةً في أي إستراتيجية تسويقية عبر الإنترنت، ومع ذلك، قبل البدء في استخدام هذه التحليلات، لا بُد من فهم ما يجب قياسه من تحليلات الويب، وكيفية قياسه. وبناءً على إحصائية أجراها موقع W3tech فإن 65% من المواقع الإلكترونية تستخدم أداةً على الأقل من أدوات تحليل الويب، وتتربع تحليلات جوجل Google Analytics على قمة أدوات تحليلات الويب المستخدمة. لا توجد قواعد محددة لإنشاء إستراتيجية تحليلية، لأن عملية تحليل وتحديد كيفية جمع البيانات في النشاط التجاري قد تستغرق وقتًا طويلًا، وقبل البدء في تنفيذ إستراتيجية التحليلات، من المهم فهم ما تعنيه هذه الإستراتيجية، ومن أهم العوامل التي يجب مراعاتها هي خطة القياس Measurement Plan. خطة القياس Measurement Plan هي عبارة عن وثيقة تحدد الأهداف الرئيسية للعمل والطرق والإستراتيجيات التي سيتم من خلالها تحقيق هذه الأهداف، كما يمكن أن تساعد على تتبع جميع المقاييس وتحسين كفاءة العمليات. مع ذلك، تفشل العديد من الشركات في قياس فعاليتها التسويقية لأنها لا تدري الاتجاه الذي تتجه نحوه استراتيجيتها وكيف ستحقق أهدافها. بالمقابل، يساعد وجود خطة قياس على اتخاذ قرارات صائبة وتحسين كفاءة العمل، وأحد أهم العوامل التي يمكن مراعاتها عند إنشاء خطة قياس هو ضمان تتبع كل نشاط وتحليله. ليست هناك حاجة إلى التعقيد الشديد طبعًا في تحضير خطة القياس، إذ يكفي أن يكون لدينا ملف على إكسل Excel أو ملف على جوجل Google Sheet فقط؛ لكن من المهم تذكر أنه مع كل تغير في أهداف العمل، لا بد أيضًا من تحديث خطة القياس، ولهذا من المهم تحديد بعض المواعيد لإجراء جلسات مراجعة منتظمة على مدار العام لتحديث الخطة. 1. العمل على تحديث أهداف الموقع الإلكتروني وفقًا لأندرو كوتشيريافي Andrew Kucheriavy المؤسس والرئيس التنفيذي لشركة إنتكنيك Intechnic، فإنه من الطرق الرائعة لتحديد الأهداف وتحسين أداء المواقع الإلكترونية هو استخدام نموذج سمارت SMART، إذ يمكن أن يساعد المديرين التنفيذيين على اتخاذ قرارات صائبة وتحقيق أهدافهم، لذا فإن تحديد هدف واضح وثابت هو أمر ضروري لنجاح الموقع. فيما يلي بعض الأهداف الرئيسية التي يجب أن يحققها كل قسم من أقسام الموقع عادةً: التسويق: زيادة عدد زيارات الموقع، وتعزيز التفاعل مع العملاء المحتملين، والوصول إلى عملاء محتملين جدد، وإعادة جذب العملاء الحاليين المبيعات: إتمام صفقات البيع وتعزيز الاتصالات مع العملاء دعم العملاء: تحسين رضا العملاء من خلال تقديم خدمة أفضل مشرفو المواقع: تبسيط وتحسين محتوى الموقع الفريق البرمجي: التكامل مع الأنظمة الأخرى، وتلبية متطلبات الأمان والأداء وقابلية التوسع العمليات: خفض التكاليف عن طريق تبسيط وأتمتة سير العمل والمهام الموارد البشرية: جذب وتعيين موظفين جدد ودعم الموظفين الحاليين مجلس الإدارة: تنمية الشركة وزيادة الربحية 2. الاهتمام بمؤشرات الأداء الرئيسية KPIs قبل البدء في إنشاء خطة قياس، لا بد من الحرص على الفهم الجيد للأهداف الأساسية للعمل ومؤشرات الأداء الرئيسية KPIs التي سنستخدمها لقياس تقدمنا، وسيساعدنا في ذلك وجود مجموعة محددة من الأهداف على اتخاذ قرارات مستنيرة وتحسين كفاءة العمل. فعلى سبيل المثال، إذا كنا نرغب في تنمية قاعدة عملائنا وزيادة الإيرادات، فيجب أن تكون لدينا خطة تتماشى مع هذه الأهداف، وقد يشمل ذلك عدد عمليات البيع ومتوسط قيمة الطلب وعدد التجارب المجانية ومعدل التحويل، أي يمكن القول بإن الفهم الواضح للأهداف سيساعد على اتخاذ قرارات جيدة وتحسين فعالية العمل. 3. ربط الموقع مع مقاييس تحليلات الويب لا بد من مواءمة أهداف العمل مع مقاييس تحليلات الويب، فبمجرد أن تكون لدينا مجموعة من الأهداف ومؤشرات الأداء الرئيسية KPIs التي نريد تنفيذها، فقد حان الوقت لبدء ترجمتها إلى مقاييس، وهناك مجموعة متنوعة من المقاييس التي يمكننا استخدامها لقياس هذه الأهداف، وهذا يتعلق بأداة تحليلات الويب التي نستخدمها. على سبيل المثال، قد يحتاج موقع لديه عدد زيارات كبير إلى قدرات تتبع عالية، وبالتالي تكون لديه أداة أخرى غير تحليلات جوجل Google Analytics، مثل أداة Finteza التي تُعَد خيارًا أفضل لمثل هذه المواقع التي تحظى بزيارات كثيرة. أداة Finteza هي أداة لتحليل المواقع الإلكترونية، تساعد المسوقين على زيادة معدل التحويل إلى الحد الأقصى، وذلك من خلال تحليل الجوانب المختلفة للموقع والمستخدمين فيه، بما في ذلك جودة الزيارات وسلوك المستخدمين، وكذلك المحتوى منخفض الأداء على الموقع. يساعد تقرير Lighthouse من Finteza أصحاب المواقع الإلكترونية على متابعة مشاريعهم وتحسين ترتيب موقعهم في نتائج محركات البحث، كما يساعدهم على إزالة نقاط الضعف وتهيئة صفحات الويب لتتوافق مع توصيات جوجل. يعمل تقرير Lighthouse على تقسيم موقعك الإلكتروني عن طريق الآتي. الأداء Performance يقيس اختبار السرعة مدى سرعة تحميل صفحات موقعك مقارنةً بسرعة تحميل المواقع الإلكترونية الأخرى. على سبيل المثال، تشير النتيجة 100 إلى أن الموقع أسرع من جميع المواقع تقريبًا، بينما تعني النتيجة 50 أنه يمكن تحميل الموقع بسرعة أكبر من سرعة تحميل 75% تقريبًا من المواقع الأخرى الشمولية Accessibility يركز تقرير Lighthouse على تقييم قابلية الاستخدام الشاملة للموقع، فهو ينظر في عوامل عدة، مثل صحة الشيفرات البرمجية وهيكلة الموقع، إضافةً إلى تصميم الروابط وتباين الخلفية، كما يجري 46 فحصًا آخر في هذا المجال أفضل الممارسات Best Practices يحتوي تقرير Lighthouse على مجموعة متنوعة من النصائح التي تساعد على تحسين المواقع وفقًا لسياسات جوجل. فعلى سبيل المثال، يمكن للتقرير تحليل نسبة العرض إلى الارتفاع في موقعك واكتشاف أخطاء التصميم التي تظهر في المتصفح، وغير ذلك تحسين محركات البحث SEO يسلط التقرير الضوء على العوامل المختلفة التي يمكنها تحسين الترتيب ضمن نتائج البحث، ويتضمن ذلك العنوان وعناصر التعريف Meta Tags ووسم الرابط القانوني Canonical Tag، فضلًا عن ذلك، سيكون بإمكاننا من خلال هذه الأداة تتبع تقدم مشروعنا، إضافةً إلى حماية موقعنا من نقاط الضعف 4. ترجمة مؤشرات الأداء الرئيسية KPIs إلى مقاييس بعد تحديد أهداف موقعك الإلكتروني ومؤشرات الأداء الرئيسية التسويقية التي يجب تتبعها، الآن لا بُدّ من تحديد الإجراءات المطلوبة للوصول إليها، فعادةً ما تكون هناك مقاييس وإجراءات متعددة مرتبطة بمؤشرات الأداء الرئيسية. ومن ضمن ذلك، يجب تحديد الجزء المستهدف الذي سيخضع للقياس، فعلى سبيل المثال، يمكن القول أننا سننظر في كيفية تحقيق مؤشرات الأداء الرئيسية بالنسبة إلى نمو قاعدة بيانات العملاء. سننظر بعد ذلك إلى المقاييس المختلفة المرتبطة بمؤشر الأداء الرئيسي هذا، مثل عدد الجلسات التي يقضيها الزائر في الموقع، والنقرات، وعدد عمليات الشراء حسب كل قناة تسويقية، والمسار الكامل للشراء، والذي يمكن تحديده على أنه الوصول إلى صفحة "شكرًا لك". 5. الاهتمام بالتنفيذ الفني تتضمن الخطوة الأخيرة إعداد وترتيب نتائج تحليلات الويب التي أجريناها، وذلك بهدف تتبع جميع المقاييس الضرورية التي توصلنا إليها استنادًا إلى أهداف عملنا. من المحتمل إشراك مشرف الموقع أو محلل البيانات لدينا في هذه المرحلة لإعداد تدفق البيانات وإجراء التصنيفات وإعداد التقارير بدقة، فقد نرغب مثلًا في تحديد جزء معين من المستخدمين ووضعهم ضمن خانة واحدة، ليشكلوا شريحةً ذات خصائص متشابهة، وسنحتاج لفعل هذا إلى إشراك المعنيين في الختام يقوم التسويق الرقمي على أمرين اثنين، هما القياس والتحليلات، لذا سيساعدنا وجود خطة قياس واضحة لتحليلات الويب على اتخاذ قرارات مستنيرة وتحسين فعالية حملاتنا التسويقية، كما أنها مفيدة جدًا في تحديد المجالات التي تحتاج إلى تحسين ضمن موقعنا الإلكتروني. ترجمة -وبتصرّف- للمقال 4 Steps to Build a Web Analytics Measurement Plan لصاحبه Mikhail Kirilin. اقرأ أيضًا مدخل إلى تحليل الويب وتحسين تحويل العملاء والأدوات اللازمة للقيام به كيفية إنجاز خطة عمل كاملة كيف يعمل Google Analytics
-
سنتحدث في هذا المقال من سلسلة صناعة البودكاست عن مجموعة من النصائح التي من شأنها تعزيز إنشاء بودكاست جيد وكيفية نفله إلى سوق العمل بنجاح وتحقيق عائدات مادية منه. إنشاء هوية بصرية لبرنامج البودكاست وكتابة وصف يُعَد بناء العلامة التجارية لبرنامج البودكاست من الطرق الأساسية لحث الأشخاص على تجربة برنامجك، إذ يمكن للهوية البصرية الجيدة والوصف المقنع أن تحدد ما إذا كان الشخص سيختار الاستماع إلى برنامجك أو سيختار تجاهله، لأن الانطباع الأول لن يكون الأشياء التي يسمعونها، بل التي يرونها. كيفية تصميم شعار أو بناء هوية للبودكاست فيما يلي بعض النصائح المفيدة للمساعدة على بناء هوية بصرية ناجحة: عدم المبالغة في تعقيد الأمر: يجب أن تكون الهوية جذابة بصريًا، لكن ليس من الضروري أن تكون معقدةً للغاية التأكد من اختيار القياسات الصحيحة: توصي معظم المصادر بأن يكون شعار البودكاست بقياس 1400 × 1400 أو 3000 × 3000 اختيار التنسيق الصحيح: يجب أن يكون شعار البودكاست بتنسيق PNG وJPEG وفي مساحات الألوان RGB هل الهوية البصرية أو الشعار يناسب الجمهور؟: من المهم وضع أنفسنا مكان الجمهور والتفكير في الأمور التي قد تدفعهم إلى اختيار البرنامج يمكن استخدام تطبيقات مساعدة: هناك الكثير من التطبيقات التي يمكن استخدامها في تصميم الهوية البصرية، لذا يمكن اختيار الأنسب بينها واعتماده الاعتماد على مصمم محترف: الخيار الأفضل هو الاستعانة بخبير لبناء الهوية البصرية للبرنامج، يمكن تصفح خدمات التصميم على منصة خمسات مثلًا، واختيار المناسب كيفية كتابة وصف بودكاست فيما يلي بعض النصائح المفيدة للمساعدة على كتابة وصف بودكاست ناجح: تقديم فكرة للمستمعين حول البرنامج: من المهم عدم ترك الجمهور المحتمل معلقًا، بل أن نكون واضحين بشأن موضوع البودكاست الذي سنقدمه، وما سنغطيه، ولماذا يجب أن يستمعوا إليه. من المهم إعلامهمم بما سيستفيدون منه بعد الاستماع إلى البرنامج، فهل سيتعلمون من البرنامج؟ أم أنه سيضحكهم؟ هل سنشارك قصصًا رائعةً من التاريخ أو اكتشافات جديدة في العلوم؟ من المهم إعلامهم بالضبط عما سنتحدث عنه في برنامجنا وصف جذاب لجمهورك: تمامًا مثل الهوية البصرية، يجب أن يتطابق الوصف مع الجمهور الذي نرغب في جذبه، من المهم التفكير في الذي يجب أن يتضمنه وصفنا والذي قد يدفعهم للضغط على زر الاستماع إخبارهم بما يجعلنا مميزين: لماذا يجب على الناس الاستماع إلى برنامجنا؟ هل لدينا خبرة موثقةً في مجال تخصصنا؟ هل سيكون لدينا ضيوف استثنائيون؟ يمكننا استخدام الوصف لنُظهر للمستمعين ما سنقدمه إليهم استخدام الكلمات المفتاحية: ليس المقصود أن نلجأ إلى حشو الكلمات المفتاحية في وصفنا، لكن يجب بالتأكيد تضمين بعض الكلمات المفتاحية التي يبحث عنها الجمهور المستهدف تذكُّر أن عدد الكلمات محدود: يختلف عدد الكلمات المسموح به في الوصف بين دليل بودكاست وآخر، لكن بالنسبة إلى iTunes، فالمتاح هو 255 حرفًا فقط. فيما يلي وصف برنامج The Side Hustle Project لتوضيح الصورة: في ما يلي وصف آخر من صحيفة The New York Time’s The Daily: لا يتعين على صحيفة نيويورك تايمز أن تبذل جهدًا إضافيًا لتسويق اسمها المعروف، لكنها ما تزال تحدد ما هو مميز في البودكاست الخاص بها، فقد أوضحوا أنهم سيشاركون قصصًا كبيرة، ولن يستغرق الأمر وقتًا طويلًا للحصول على الأخبار، وسينشرون حلقات برنامجهم في نفس الوقت من كل يوم. كيفية جذب المستمعين إلى برنامج البودكاست تسجيل البودكاست ونشره ما هو إلا مجرد بداية، لكن بعد أن الخروج به إلى العالم، كيف سنتمكّن من جذب المستمعين؟ لعل هذا هو الجزء الأصعب من البودكاست، لكن هناك الكثير من الأشياء التي يمكن القيام بها لتنمية الجمهور، والعديد منها مشابه لعملية جذب الزيارات إلى مدونة. فن ترفيه المستمعين كما هو الحال مع وضع إستراتيجية التدوين، فإن أفضل وأهم طريقة لجذب المستمعين إلى البرنامج هي تقديم محتوى يهتمون بسماعه، إذًا ما الذي يجعل الناس يرغبون في الاستماع إلى برنامج البودكاست الذي تقدمه؟ فيما يلي بعض الصفات التي تجعل الأشخاص يرغبون في الاستماع إلى البرنامج: امتلاك الخبرة في موضوع ما استضافة متحدثين ذوي قيمة إثارة الجدل المزاح الصدق تقديم قصص من واقع الحياة الإلهام خبرة في سرد الأحداث حقائق مثيرة إثارة الفضول محتوى مناسب للأطفال الهدوء والاسترخاء من المهم سؤال أنفسنا عما سيجعل برنامجنا مسليًا. هل ستكون لدينا تحولات مفاجئة في الحبكة وسرد قصص بجودة عالية مثل بودكاست This American Life؟ هل سيكون برنامجنا فكاهيًا مثل بودكاست No Such Thing as a Fish؟ ربما يساعد برنامجنا على النوم مثل بودكاست Get Sleepy. تجربة الضيافة في برامج بودكاست أخرى إحدى الطرق الجيدة للترويج لبرنامج البودكاست الذي نقدمه هي أن نجرب الضيافة لدى برامج بودكاست لأشخاص آخرين، فهذا يزيد من قوة اسم البودكاست الخاص بنا ويمنحنا فرصةً للوصول إلى جماهير جديدة. للحصول على دعوة إلى بودكاست آخر، من المهم البحث أولًا عن أشخاص آخرين في مجال تخصصنا، من المهم البحث عن بودكاست له جمهور أكبر من جمهورنا لجذب الجمهور الذي نعتقد أنه يناسب جمهورنا. الشيء التالي الذي سنفعله هو العرض على مسؤولي هذا البودكاست، بحيث نشرح لهم لماذا سنكون ضيوفًا مميزين على برنامجهم وكيف سنفيد رؤيتهم، وبمجرد دعوتنا للبودكاست، من المهم الاستعداد لمشاركة خبرتنا. سيكون من المهم هنا طلب موجز عن موضوع الحلقة مسبقًا حتى يكون لدينا شيء قيّم لإضافته إلى المحادثة. يجب الاستفسار أيضًا عما إذا كان بإمكاننا الحديث عن برنامج البودكاست الخاص بنا أم لا. الترويج المتبادل هناك طريقة أخرى رائعة للترويج لبرنامج البودكاست، وهي تبادل المقاطع الترويجية مع برامج بودكاست أخرى في نفس المجال الذي نقدمه، ففي هذه الحالة، ينشر كل برنامج بودكاست إعلانًا ترويجيًا لبرنامج البودكاست الآخر. هناك طريقة أخرى مشابهة وأكثر بساطة، وهي الإشارة في برنامجنا الخاص عن برنامج بودكاست آخر، بحيث يفعل البرنامج الآخر ذات الأمر؛ وبنفس الطريقة التي قد نتحدث بها عند الترويج لمنتج أو علامة تجارية. لكي يكون الترويج المتبادل فعالًا، سنحتاج إلى العثور على بودكاست يقارب حجم وشهرة برنامجنا، لكن إذا كان البودكاست جديدًا تمامًا ولديه عدد قليل جدًا من المستمعين، فلن تحقق هذه العملية الكثير؛ وبالمقابل، إذا كان برنامج البودكاست الآخر ضخمًا ومعروفًا، فقد نحتاج إلى الدفع له للترويج لبرنامجنا. استخدام وسائل التواصل الاجتماعي تُعَد وسائل التواصل الاجتماعي مصدرًا رائعًا للترويج لبرامج البودكاست، فكلما رفعنا حلقة بودكاست جديدة، سنتمكن من مشاركتها مع جمهورنا على وسائل التواصل الاجتماعي، وذلك باستخدام قوالب تصميم بسيطة لوسائل التواصل الاجتماعي؛ كما يمكن نشر مقاطع قصيرة من حلقات برنامجنا، والتي قد تحقق انتشارًا واسعًا. يمكن مشاركة مقاطع قصيرة قبل إصدار أي حلقة جديدة، كما يمكن مشاركة صور من الكواليس حتى يتمكن الأشخاص من التعرف على البودكاست ومقدميه بصورة أفضل لبناء علاقة متينة مع الجمهور تحقيق الدخل من البودكاست صحيح أن الحصول على مستمعين أمر رائع، ولكن في حال الرغبة في الاستمرار في تشغيل البرنامج على المدى الطويل، فلا بد من تحقيق الدخل منه. يمكن أن تتزايد تكاليف المعدات والاستضافة بمرور الوقت، كما قد نحتاج إلى الدفع مقابل مزايا وإضافات جديدة، مثل تسجيل مقدمة خاصة بالبرنامج، وهنا لا شك أننا قد نرغب في تحقيق عائد مادي جيد مقابل الوقت الذي سنستثمره في البودكاست. الرعاية والإعلانات من الطرق الشائعة لتحقيق الدخل من البودكاست هي الرعاية، بحيث تدفع الشركات والعلامات التجارية للترويج لها في برامج البودكاست، وعادةً ما يجري ذلك من خلال حديث المستضيف عن منتج أو خدمة الراعي أثناء الحلقة، أو يمكن إدراج إعلان مسجل مسبقًا من الراعي إذا كان هذا ما يفضله. الأمر متروك لصاحب البودكاست طبعًا لتحديد عدد الإعلانات في كل حلقة، لكن من المهم تجنب وضع أكثر من إعلانين في نفس الحلقة قدر الإمكان، لأن ذلك سيكون مبالغةً إلى حد ما، ومن الأوقات التي يمكن فيها تضمين إعلان: قبل الجزء الرئيسي من حلقة البودكاست منتصف حلقة البودكاست نهاية الحلقة، كنوع من الدعوة إلى اتخاذ إجراء CTA عادةً ما تتراوح مدة الإعلانات في بداية الحلقة ما بين 15 إلى 30 ثانية، أما الإعلانات منتصف الحلقة فقد تصل إلى 60 ثانية؛ وهنا يمكن الإعلان عن نفس الراعي مرتين، أو الإعلان لرعاة مختلفين خلال نفس الحلقة. عادةً ما تكون الإعلانات في بداية الحلقة هي الأكثر تكلفةً، إذ تقل احتمالية تخطي المستمعين لهذا المحتوى، بينما تُعَد الإعلانات في نهاية الحلقة هي الأرخص، لأنه من المتوقع أن يتخطاها المستمع أو لا يصل إلى نهاية الحلقة أساسًا. سيدفع بعض الرعاة رسومًا ثابتة لكل حلقة يظهر فيها الترويج لهم، بينما سيدفع آخرون مقابل كل 1000 استماع للحلقة، أو ربما بناءً على عدد المستمعين الذين اتخذوا إجراءً، مثل شراء المنتج. قد تكون عملية العثور على الرعاة أمرًا صعبًا عندما يكون البرنامج جديدًا، لذا يمكن الاستماع إلى برامج البودكاست الأخرى في مجال تخصصنا والتواصل مع الشركات أو العلامات التجارية التي تعرض إعلانات ضمن تلك البرامج، ومع ذلك، سيكون من المهم زيادة عدد متابعي البرنامج قبل جذب الرعاة. التسويق بالعمولة التسويق بالعمولة هو أن نعمل على الترويج لمنتجات أو خدمات الآخرين مقابل عمولة، إذ تُحسب العمولات من خلال روابط خاصة تبين عدد الأشخاص الذين اشتروا المنتج عن الرابط المشارك ببرنامجنا، لذا من المهم استخدام هذه الروابط في وصف الحلقات أو أي نصوص أخرى تابعة للبرنامج. يُعَد التسويق بالعمولة خيارًا رائعًا عندما يكون برنامج البودكاست في بداياته، إذ لا يتطلب توفر جمهور كبير لبدء العمل، كما يُفضل في هذه المرحلة الترويج للمنتجات والخدمات التي التي نستخدمها فعلًا، لأنه سيكون من المضر تقديم توصيات عن غير قصد عن منتج يبدو رائعًا، ثم يتبين أنه ذو جودة رديئة. سنحتاج أيضًا إلى التفكير في أفضل طريقة لدمج التسويق بالعمولة ضمن حلقاتنا، فعلى سبيل المثال، قد نرغب في اختيار المنتجات التي تتعلق بالموضوع الذي نناقشه، أو ربما تكون لدينا "توصية الأسبوع" في بداية أو نهاية كل حلقة. الاستشارات ثمة طريقة أخرى رائعة لكسب المال من برنامج البودكاست وهي تقديم الاستشارات للمتابعين، إذ يمكن تشبيه الأمر ببيع المنتج، لكن على غرار الممنتجات العادية، هذا المنتج لن يحتاج منا إلى إنفاق الكثير من الوقت والمال، إذ يكفي عرض خبراتنا ورأينا للشخص الذي يستشيرنا. يمكن عرض خدمتنا على المتابعين بتقديم المشورات لهم عن طريق تحديد تكلفة استشارة لمدة لمدة ساعة واحدة أو استشارة لمدة نصف يوم. يجب أن يكون موضوع الاستشارة مرتبطًا إلى حد ما بموضوع البودكاست الذي نقدمه، فعلى سبيل المثال، إذا كنا نقدم بودكاست حول العلامات التجارية، فمن المنطقي أن نقدم مشورات للناس حول علاماتهم التجارية. قد يكون من المناسب تقديم بعض الجلسات المجانية للمستمعين حتى التمكن من الحصول على بعض الخبرة والتعليقات وبعض الشهادات الرائعة، والتي ستساعد مستقبلًا على الترويج للخدمات. يتم الإعلان عن الاستشارات تمامًا مثل الإعلان عن أي منتج أو خدمة في البرنامج، لذا سنحتاج إلى التأكد من تضمين المعلومات حول خدمة الاستشارات في وصف الحلقات. بعد إتقان جميع أساسيات البودكاست، يمكن تقديم استشارات للأشخاص الراغبين في دخول عالم البودكاست، إذ يمكن مساعدة مقدمي برامج البودكاست الجدد الذين يحتاجون إلى تعلم كيفية كتابة الحلقات والتسجيل والتحرير وما إلى ذلك. في الختام بهذا نكون انتهينا من سلسلة صناعة البودكاست التي وضحنا فيها كيفية التجهيز للبودكاست وإطلاقه بنجاح. من المهم تذكر أن جميع مقدمي البودكاست بدأوا بـ 0 حلقة و 0 مستمعين وأنك لن تختلف عنهم عندما تبدأ العمل، لذا يمكنك امع ذلك يمكن البدء اليوم بتحديد ما تريد تقديمه، اختر مجالًا محددًا وفكر في جمهورك المستهدف وهدفك الذي تسعى إليه، ويمكنك العودة إلى الخطوتين الأولى والثانية من هذا المقال إذا كنت تريد تذكر أول ما يجب عليك فعله. فيما بعد، ضع خطة لإطلاق برنامجك خطوة بخطوة، ثم قد تفكر غدًا في المعدات التي تحتاجها، ومع حلول نهاية الأسبوع، ستكون قد حاولت تسجيل بعض المقاطع القصيرة وتحريرها للتدرب على استخدام أدوات التسجيل والتحرير. وبعد عام من الآن، قد يكون لديك آلاف المستمعين وبرنامج بودكاست مربح للغاية، ثم قد تعود بذاكرتك إلى هذا اليوم الذي اتخذت فيه تلك الخطوة الأولى. ترجمة -وبتصرّف- للمقال How to Start a Podcast and Make Money لصاحبه Ryan Robinson. اقرأ أيضًا المقال السابق: اختيار الاستضافة المناسبة لصناعة البودكاست صناعة بودكاست ناجح في 9 خطوات مدخل إلى عالم صناعة البودكاست
-
بعد أن تعرفنا على كيفية صناعة بودكاست ناجح في المقال السابق من سلسلة صناعة البودكاست، سنتحدث في هذا المقال عن كيفية رفع حلقات البودكاست على الإنترنت واختيار المكان المناسب لرفعها عليه. لكي يتمكن الأشخاص من سماع البودكاست، سنحتاج إلى اختيار مضيف بودكاست، إذ تُعَد شركات استضافة البودكاست بمثابة الوسيط. يظن الكثير من الأشخاص أنه يمكن رفع التسجيلات الصوتية مباشرةً على iTunes، ولكن هذا ليس صحيحًا، لأنه عادةً ما يكون حجم التسجيلات الصوتية كبيرًا جدًا ويجب تخزينها في مكان ما، وهنا يأتي دور استضافة البودكاست. هناك الكثير من خدمات الاستضافة التي يمكن المفاضلة بينها، يمكن ذكر بعض منها كما يلي: استضافة Buzzsprout تُعَد استضافة Buzzsprout واحدةً من أكثر الأسماء شهرةً وسمعةً في مجال استضافة البودكاست؛ إذ من السهل التنقل في موقعهم الإلكتروني، كما يشاركون فيه الكثير من المعلومات المفيدة فيما يتعلق بالبودكاست، لذا تُعَد استضافة Buzzsprout خيارًا قويًا بالنسبة للمبتدئين. بعض المزايا التي تقدمها استضافة Buzzsprout: الاتصال بأدلة البودكاست المشهورة إحصائيات وتحليلات لبرنامج البودكاست الذي سنقدمه مشغل من Buzzsprout يمكن تحميله على موقعنا الإلكتروني تحسين تلقائي للتسجيلات تفريغ التسجيلات الصوتية لنصوص مكتوبة التسويق بالعمولة للمساعدة في تحقيق الدخل علامات تقسيم بين أجزاء التسجيلات توليد مقاطع فيديو من التسجيلات الصوتية لمنصات التواصل الاجتماعي تقدم استضافة Buzzsprout مجموعةً من الخطط الشهرية، وأرخص خطة لها هي 12 دولارًا شهريًا، والتي تسمح برفع ما يعادل 3 ساعات من التسجيلات الصوتية شهريًا. الخطة الأفضل هي 24 دولارًا شهريًا، والتي تتيح إمكانية رفع 12 ساعة من التسجيلات، إضافةً إلى 2 دولار لكل ساعة إضافية؛ كما يمكن تجربة الاستضافة مجانًا لمدة 90 يومًا برفع ساعتين من التسجيلات. استضافة PodBean استضافة Podbean موجودة منذ عام 2006، فقد استضافت أكثر من 310 آلاف مدونًا صوتيًا، وهي من الاستضافات سهلة الاستخدام أيضًا، ويمكن تجربتها مجانًا من خلال خطتها المحدودة. يتم الحصول على المزايا الآتية عند استخدام استضافة PodBean: واجهة سهلة الاستخدام استضافة غير محدودة (تختلف حسب الخطط) موقع بودكاست مجاني جدولة النشر مشغل يمكن تضمينه في الموقع التكامل مع البريد الإلكتروني مشاركة الحلقات عبر منصات التواصل الاجتماعي مشاركة الحلقات مع أدلة البودكاست الشهيرة إحصائيات وتحليلات متنوعة تتراوح أسعار خطط استضافة Podbean من المجانية إلى 79 دولارًا شهريًا؛ ويتم إصدار الفواتير سنويًا. أما عن الخطة المجانية، فيمكن من خلالها تخزين ما يصل إلى 5 ساعات من التسجيلات. تبلغ تكلفة الاشتراك في الخطة الأفضل 79 دولارًا شهريًا، مع مساحة تخزين وحيز نطاق تراسلي غير محدودين، لكن مع ذلك، قد لا تكون هذه الخطة ضرورية للعديد من مقدمي البودكاست المبتدئين. استضافة Captivate تُعَد استضافة Captivate من أحدث الاستضافات في هذه القائمة؛ إذ ينصب التركيز الأساسي لاستضافة Captivate على مساعدة مقدمي برامج البودكاست على تنمية جمهورهم، وفي الآتي بعض المزايا التي توفرها استضافة Captivate: واجهة سهلة الاستخدام دعم فني على مدار 24 ساعة فواتير شهرية نشر عبر وسائل التواصل الاجتماعي والمواقع الإلكترونية الربط مع جميع أدلة البودكاست الرئيسية التكامل مع إضافات ووردبريس WordPress plugin إحصائيات وتحليلات متنوعة تتراوح أسعار Captivate من 19 دولارًا شهريًا مقابل 30 ألف تحميل شهريًا إلى 99 دولارًا شهريًا مقابل 300 ألف تحميل شهريًا. تقدم استضافة Captivate أيضًا نسخةً تجريبيةً مجانيةً مدتها 7 أيام، لكي تتمكن من اختبار خدماتهم. استضافة Transistor استضافة Transistor هي استضافة بودكاست أُطلقت عام 2018، وهي من أحدث الاستضافات على الساحة حاليًا، وقد أُنشئت على أيدي مقدمي برامج بودكاست؛ إذ تستضيف اليوم أكثر من 4000 بودكاست، بما في ذلك بعض البرامج المشهورة، مثل بودكاست Basecamp وبودكاست VH1 وغيرهم. من مزايا استضافة Transistor ما يلي: ربط مع العديد من أدلة البودكاست تحليلات بودكاست مفصلة إضافة مشغل التسجيلات مباشرةً ضمن موقعنا الإلكتروني عدد غير محدود من الحلقات تقدم استضافة Transistor ثلاث خطط تبدأ من 19 دولارًا شهريًا وحتى 99 دولارًا شهريًا، وتتيح خطة المبتدئ Starter إمكانية الحصول على 20 ألف عملية تحميل شهريًا، بينما تتيح خطة الشركات Business ما يساوي 250 ألف عملية تحميل شهريًا. على الرغم من أن استضافة Transistor لا تقدم أي خطة استضافة مجانية كما تفعل العديد من الشركات الأخرى في هذه الصناعة، لكن خططهم المدفوعة توفر الكثير من الدعم العملي خلال تنمية الجمهور. استضافة Spreaker أُطلقت استضافة Spreaker عام 2010، وتستضيف اليوم آلاف برامج البودكاست مع ملايين المستخدمين النشطين شهريًا. في عام 2018، استحوذت على استضافة Spreaker شركة Voxnest، وهي شركة متخصصة في مجال تقنيات الصوت. من مزايا استضافة Spreaker ما يلي: استضافة برامج بودكاست متعددة نظام إدارة المحتوى لمراجعة كل شيء يتعلق ببرنامج البودكاست الذي سنقدمه الربط مع أدلة البودكاست الرئيسية المساعدة على تحقيق الدخل من برامج البودكاست إحصائيات حول المستمعين الترويج للبودكاست للوصول إلى جمهور أوسع تقدم استضافة Spreaker ثلاث خطط تبدأ من 0 دولارًا شهريًا وحتى 250 دولارًا شهريًا. الخطة المجانية محدودة للغاية ولا تتضمن ميزات متقدمة، مثل موجز RSS القابل للتخصيص أو تحقيق الدخل التلقائي. مع مرور الوقت على استخدام Spreaker، قد تكون هناك حاجة للترقية إلى إحدى خططهم المدفوعة للحصول على الميزات المتقدمة التي تساعد على تقديم بودكاست احترافي أكثر. خاتمة بهذا نكون قد تعرفنا على أبرز الخيارات المتاحة بمجال استضافات البودكاست، وسنتعرف في المقال التالي على نصائح لإنجاح البودكاست والتسويق له وتحقيق مداخيل منه. ترجمة -وبتصرّف- للمقال How to Start a Podcast and Make Money لصاحبه Ryan Robinson. اقرأ أيضًا المقال السابق: صناعة بودكاست ناجح في 9 خطوات مدخل إلى عالم صناعة البودكاست اختيار المعدات المناسبة لصناعة البودكاست
-
يقول رجل الأعمال جيسون لمكين Jason Lemkin أن هناك 4 مراحل للأعمال التجارية: الشريحة الأولى من العملاء: تكون عند إطلاق المنتج ويبدأ بعض العملاء بتجربته، وحينها تحاول استكشاف مدى ملائمة المنتج مع السوق أقل من مليون دولار: عندما لا يكون بإمكاننا إنفاق الكثير من الأموال وتطوير العمل، ولكن هناك إيرادات قادمة أكثر من 2 مليون دولار: عندما نبدأ العجلة في الدوران ويصبح بإمكاننا البدء في الإنفاق أكثر من 10 ملايين دولار: هنا نكون قد رسخنا أنفسنا جيدًا في السوق تبدو الأمور بسيطة، أليس كذلك؟ ربما يكون الأمر بهذه البساطة، لكن بالنسبة إلى معظم رواد الأعمال، لن يكون الأمر بهذه السهولة؛ فالأشخاص الذين ستحتاج إلى التعامل معهم أو البيع لهم مختلفون تمامًا بين هذه المراحل الأربعة. في الواقع، الشريحة الأولى من العملاء غير كافيين للوصول إلى 10 ملايين دولار من الإيرادات السنوية. ولهذا السبب سنشرح بهذا المقال كيف يمكن العثور على العملاء المناسبين والكافين للوصول بأعمالنا التجارية إلى مرحلة "أكثر من 10 ملايين دولار". كيفية تقبل الناس للابتكارات الجديدة حسب منحى روجرز بعد ابتكار أي منتج وطرحه في السوق لأول مرة، سيكون الإقبال عليه ضعيفًا في البداية، وستبدأ فئة قليلة من الأشخاص بتجربته، ثم سيتشجع آخرون ويجربونه، حتى يحظى المنتج المبتكر بالانتشار وتتبناه الأغلبية من العملاء. وصف الباحث إيفرت روجرز Everett Rogers المراحل السابقة لكيفية تقبل الناس للابتكار الجديد في كتابه "انتشار الابتكارات Diffusion of Innovations"، إذ قسم الناس إلى خمس فئات حسب تبنيهم للأفكار والابتكارات الجديدة، وهم: المبتكرون Innovators: هم أول الأفراد الذين يتبنون الابتكار، وهم على استعداد لتحمل المخاطر، وعادةً ما ينتمون إلى الفئات الأصغر سنًا، ويكونون من طبقات اجتماعية عالية، كما يتمتعون بذكاء مالي كبير، وهم ذوو مهارات اجتماعية جيدة المتبنون الأوائل Early Adopters: هم ثاني أسرع فئة من الأفراد الذين يتبنون الابتكار الجديد، إذ يتمتع هؤلاء الأفراد بأعلى درجة من القيادة والحكمة الأغلبية المبكرة Early Majority: يتبنى الأفراد في هذه الفئة الابتكار بعد فترة زمنية لا بأس بها، مقارنةً مع المبتكرين والمتبنين الأوائل؛ إذ يميل أفراد هذه الفئة إلى أن يكونوا أبطأ في عملية التبني، ويتمتعون بمكانة اجتماعية أعلى من المتوسط، ونادرًا ما يشغلون مناصب قيادية عالية الأغلبية المتأخرة Late Majority: هذه الفئة هي من النوع الانقيادي الذي ينتظر الآخرين حتى يتبنوا الابتكار ثم يقدم على تجربته، وهم عادةً ما يتمتعون بمكانة اجتماعية أدنى من المتوسط المتخلفون Laggards: الأفراد في هذه الفئة هم آخر من يتبنى الابتكارات الجديدة. وعلى عكس الفئات السابقة، لا يظهر هؤلاء الأفراد أي نوع من القيادة في الرأي، وعادةً ما يكون لديهم نفور من التغيير، وهم غالبًا من كبار السن الذين يلتزمون بالتقاليد القديمة؛ كما أنه المرجح أن تكون لديهم أدنى مكانة اجتماعية وأقل قدرة مالية توسع جيفري مور Geoffrey Moore في نظرية روجرز، وبنى عليها كتابه "عبور الهوة Crossing the Chasm" الذي نشره عام 1991، الذي شرح فيه كيفية تسويق الابتكارات والتقنيات الجديدة، وكيفية زيادة عدد الأشخاص المتبنين للمنتج أو الابتكار، وهو ما وصفه بمصطلح عبور الهوة Crossing the Chasm. أهمية عبور الهوة في تحليل فئات السوق الفكرة الأساسية من عبور الهوة هي أن العملاء في أي سوق ينتمون إلى واحدة من خمس مجموعات: المبتكرون، والمتبنون الأوائل، والأغلبية المبكرة، والأغلبية المتأخرة، والمتخلفون؛ وأن الطريقة التي تبيع بها لهذه المجموعات من العملاء يجب أن تعكس المرحلة التي وصل إليها الناس في الاعتماد على ابتكارك. يتناول مور في كتابه أهمية العثور على شريحة العملاء الأولى للحصول على موطئ قدم في السوق، وهو أمر ذو أهمية قصوى للشركات الناشئة في المراحل المختلفة من نموها: رواد أعمال لديهم منتج ويبحثون عن شريحة العملاء المناسبة يحدث ذلك عندما يكون لدينا حل ونريد البحث عن المشكلة التي سيعالجها، أو البحث عن الشريحة التي تعاني من أكبر قدر من هذه المشكلة. المهمة صعبة، لكن إذا كانت التقنية التي نريد نشرها ذات قيمة، فسنتمكن من العثور على سوق لها. رواد أعمال لديهم قاعدة عملاء كبيرة ويتطلعون إلى تنمية أعمالهم في هذا الصدد يروي كاتب المقال إتيان جاربوجلي Etienne Garbugli قصته: رواد أعمال يبيعون منتجاتهم إلى المتبنين الأوائل ويتطلعون إلى عبور الهوة هنا أيضًا يروي إتيان جاربوجلي قصته: تحليل فئات السوق في Psykler عندما بدأ إتيان جاربوجلي العمل في Psykler، كان لدى الشركة بالفعل عملاء في مجالات الأدوية والطيران والاستشارات، لكن كان استخدام الأداة منخفضًا، ومن الواضح أنها لم تكن تناسب السوق؛ لذا جلس مع المؤسس وحددا المجالات الأربعة التي شعرا أنه يمكن لأداة Psykler إضافة قيمة حقيقية إليها، وهي الأدوية، وصناعة برمجيات المؤسسات، والاستشارات، والتكامل. فيما بعد، أجريا سلسلةً قصيرةً من المقابلات مع العملاء، فأدركا أن الصناعات بطيئة الحركة مثل الرعاية الصحية والاتصالات والتعليم والدفاع من الصعب جدًا تلاؤمها مع أداة Psykler. لقد أدركا أيضًا أن الشركات التي تبيع الخدمات التقنية مثل ذكاء الأعمال والأمن تضطر إلى البيع بسعر مرتفع للمديرين التقنيين والمديرين التنفيذيين، لذا فإنهم كانوا حريصين على نجاح عملية البيع، فقد كانت هناك خسارة كبيرة إذا لم تسير تلك الاجتماعات على ما يرام. واستنادًا إلى كل عمليات البحث التي أجرياها، أدركا أن Psykler في شكله الحالي هو الأنسب للشركات الاستشارية في المجالات الأمنية. وبعد أن عملا على تحسين العرض التقديمي وفهما القطاع جيدًا، بدأ المنتج بالفعل في جذب المستخدمين الأوائل، ثم تحسين المنتج والتسويق لتلبية احتياجات السوق الجديد. كيفية إجراء تحليل فئات السوق في عملك لتحقيق النجاح في تحليل فئات السوق، لا بد من الخروج من المكتب والتحدث مع العملاء المحتملين والعملاء الحاليين. يمكن البدء بإدراج القطاعات الأربعة أو الخمسة التي نشعر أنه يمكن لشركتنا أو منتجنا تقديم قيمة حقيقية لها، ثم نجري سلسلة سريعة من 3 إلى 5 مقابلات مع العملاء في كل من هذه القطاعات، مع الاستماع إلى الصعوبات التي يمكن لمنتجنا تسهيلها. لا بد من التركيز على الشرائح التي يمكن مساعدتها، مع الاستمرار في إجراء المقابلات مع المؤسسات حتى الوصول إلى أفضل شريحة سوقية للمنتج. ترجمة -وبتصرّف- للمقال How to Find Your Best Customers with a Market Segmentation Analysis لصاحبه Etienne Garbugli. اقرأ أيضًا البحث في السوق والتعرف على فرصة السوق والسوق المستهدف 15 طريقة لإيجاد الزبائن الذين سيشترون منتجك حتى قبل أن تشرع في بنائه ما هي شخصيات المشتري وكيف تساعدك على فهم عملائك وتطوير نشاطك التجاري كيفية إجراء بحث السوق
-
انتشرت في الآونة الأخيرة عدة مقالات ومنشورات عبر الإنترنت لأشخاص مهتمين بمجال تحسين محركات البحث SEO، أبدَو فيها غضبهم الشديد من التدقيق المتزايد الذي تمارسه جوجل على ترتيب نتائج البحث، وعندما ننظر إلى التعليقات، سنرى الكثير من الأشخاص يتحدثون عن انتهاء عصر تحسين محركات البحث SEO، وأنها لم تَعُد مناسبةً لتسويق المحتوى؛ لكن هل هذه الادعاءات صحيحة؟ هل يمكننا الاعتماد على استراتيجيات تحسين محركات البحث SEO في الجهود التسويقية بعد الآن؟ في الواقع، تتعرض العديد من المواقع الإلكترونية إلى تخفيض ترتيبها في نتائج البحث بعد ظهور خوارزمية جوجل التي تُطلَق عليها تسمية تحديث المحتوى المفيد Helpful Content Update. بالمقابل، تمكنت بعض المواقع القليلة من تجاوز هذه الخوارزمية بنجاح دون أن يتأثر ترتيب ظهورها، لكن ما الذي كانت تفعله بالضبط هذه المواقع حتى استطاعت تجاوز هذه الخوارزمية؟ تعالج جوجل أكثر من 3.5 مليار عملية بحث يوميًا، لذا فهي تعمل باستمرار على تصنيف صفحات الويب وأرشفتها، مع ذلك لا داعي للقلق، إذ ما يزال بالإمكان الحصول على عشرات الآلاف من الزيارات اليومية لمنشورات المدونات. الاختلاف هنا هو أن خوازرميات واستراتيجيات تحسين محركات البحث SEO التي كنا نعرفها سابقًا قد تغيرت، لذا فإننا بحاجة إلى التطور معها. لقد اختفت في الآونة الأخيرة العديد من المواقع التي كانت تحصل سابقًا على تصنيف جيد في صفحات نتائج البحث على جوجل. هذا التراجع وصل إلى انخفاض الزيارات بنسبة 95% أو أكثر، لكن هذا لا يعني أن إستراتيجيات تحسين محركات البحث SEO السابقة قد انتهت، إنما قد تطورت وتغيرت، وهنا يجب علينا أن ننظر إلى العلامات التجارية التي ما زالت تحتل نتائج البحث الأولى، ونحلل ما الذي فعلته بالتحديد لتحافظ على مكانتها. بداية الضجة التي تتحدث عن احتمال انقراض تحسين محركات البحث SEO في أغسطس من عام 2022، أصدر جوجل تحديثًا جديدًا لخوارزميات تحسين محركات البحث باسم تحديث المحتوى المفيد Helpful Content Update، قدم فيه تصنيف لمستوى المواقع حسب الفائدة التي تقدمها، وهو ما يؤثر بطبيعة الحال على ظهور صفحات المواقع في نتائج بحث جوجل. تعمل هذه الخوارزمية على مراقبة المحتوى الجديد والحالي باستمرار، بحيث إذا استمر المحتوى غير المفيد في صفته غير المفيدة، فسيضع المصنف علامةً على الصفحات لتخفيض ترتيبها في نتائج البحث. مع ذلك هذا لا يعني أنها نهاية تلك المواقع، إذ ما يزال بإمكان أصحاب هذه المواقع إحياء مواقعهم وتحسين ظهورها في نتائج البحث إذا حدثوا محتوى الصفحات إلى محتوى يهتم بتقديم الفائدة، ويضع الزوار في المقام الأول. كيفية تطوير إستراتيجية تحسين محركات البحث SEO تؤكد الشكاوى الكثيرة في المنتديات ووسائل التواصل الاجتماعي على هذا التأثير، لكن هذا التحول لا يعني أن تحسين محركات البحث SEO قد انقرض، بل أن هناك بعض الأمور التي يجب أخذها بالحسبان لتطوير إستراتيجية تحسين محركات البحث SEO، مثل: 1. نشر المحتوى الذي يهتم بمشكلات القراء ويوفر حلول عملية لهم يريد محرك البحث جوجل التأكد من كتاب الموقع لديهم الخبرة الكافية في المجال الذي يكتبون فيه، لذلك قبل نشر أي مقالة، لا بد من الحرص على احتواء إستراتيجية المحتوى على خارطة طريق أو جدولة محتوى لنشر المقالات المفيدة باستمرار؛ كما لا بد من نشر المقالات التي تعكس فهم احتياجات القراء المحتملين وتقدم حلول لمشكلاتهم فقط. لا بد من رسم خطة لكيفية استخدام الروابط الداخلية بين المقالات خلال مرحلة تخطيط المحتوى، وعندما يحين وقت الكتابة، يجب أن يكون نص الرابط Anchor Text ذا صلة بالرابط الذي ستضيفه؛ كما يجب أن تأخذ الروابط الداخلية القراء إلى صفحات ذات صلة بالموضوع ومفيدة لهم. لفعل ذلك، يمكن توفير ملخص سريع عن كل مقال أو موضوع سنكتب عنه ضمن إستراتيجية المحتوى التي سنضعها، وقبل كتابة أي مقال مخطط له، يجب إعادة استثمار الوقت في البحث عن: لمن نكتب: لا بد من رسم شخصية الجمهور المستهدف المثالي، مع الأخذ في الحسبان التركيبة السكانية لهم، مثل العمر والجنس والموقع الجغرافي ومستوى الخبرة، للتمكن من تحديد ما إذا كنا سنكتب للمبتدئين أو الخبراء في موضوع معين المعضلة التي تواجه القراء: يجب تحديد مستوى التفاصيل التي يجب التعمق بها لمعالجة مشكلاتهم بفعالية. لا بد من تجنب الطريقة التي تكتفي بتلخيص وجهات نظر الآخرين، أو إنتاج كمية كبيرة من المحتوى حول عدة مواضيع متنوعة، بل يجب أن تكون وفقًا لاستراتيجية محتوى واضحة ودقيقة. فعلى سبيل المثال، إذا كنا ندير متجرًا إلكترونيًا يبيع ألعاب الدمى للأطفال بأسعار مقبولة، فيمكنننا التخطيط لكتابة محتوى حول كيفية صناعة ألعاب الدمى بأنفسنا لتوفير المال. في هذه الحالة، نكون قد قدمنا محتوى مفيد وفعال للأشخاص الذين يريدون الحصول على ألعاب دمى لكنهم يبحثون عنها بتكلفة منخفضة. 2. وضع إستراتيجية محتوى فعالة أثناء البحث عن العملاء، يمكن الاستفادة من أدوات البحث عن المواضيع والكلمات المفتاحية، مثل أداة SEMrush وأداة BuzzSumo؛ إذ يمكن لهذه الأدوات توفير المساعدة اللازمة على إنشاء خطة محتوى. ومن الأمثلة الجيدة على إستراتيجيات المحتوى الفعالة التي يمكنها اتباعها، هي إستراتيجية المحتوى العنقودي Cluster Content. إستراتيجية المحتوى العنقودي Cluster Content هي خطة محتوى تعتمد على نشر مجموعة من المقالات المرتبطة ببعضها البعض، والتي تتناول موضوعات متشابهة، وغالبًا ما يكون هناك مقال أساسي يتفرع منه مجموعة من المقالات الأخرى. فعلى سبيل المثال، يمكن نشر مقال عن التسويق الإلكتروني، بحيث يكون هذا المقال بمثابة المقال الرئيسي الذي سيتفرع عنه مجموعة من المقالات التي سنتحدث فيها عن التسويق بالمحتوى والتسويق عبر وسائل التواصل الاجتماعي والتسويق عبر المؤثرين، وكذلك مقالات تتحدث عن مفاهيم أساسية في التسويق الإلكتروني، مثل الوصول إلى العملاء المحتملين والبحث عن الكلمات المفتاحية وغير ذلك. 3. الابتعاد عن الحشو اعتاد الكتاب فيما مضى على تكرار ذكر الكلمة المفتاحية في المقال وتوزيعها بطريقة جيدة على أجزائه، وقد كانوا يحصلون بهذه الطريقة على ترتيب جيد ضمن نتائج البحث عن هذه الكلمة المفتاحية؛ لكن في الوقت الحالي، لم تَعُد طريقة حشو الكلمات المفتاحية فعالة؛ مع ذلك هذا لا يعني تجاهل الكلمة المفتاحية بالمطلق، بل استخدامها بحكمة وعند الحاجة، ويجب أيضًا استخدامها ضمن عنوان المقال وضمن عنوان URL، وفي المقدمة والصور ومقاطع الفيديو وبعض العناوين الفرعية. كذلك الأمر فيما يتعلق بطول المقال، فبدلًا من التركيز على عدد كلمات محددة، علينا ترك مادة البحث الخاصة بموضوعنا هي التي تحدد طول المحتوى الذي نحتاجه، فعندما تكون 500 كلمة كافية لتغطي المعلومات التي تريد تقديمها، لا داعي لأن نكتب 1000 كلمة للوصول إلى عدد الكلمات الذي فرضناه على أنفسنا مثلًا. في بعض الأحيان، يتناول مقال موجز مكون من 500 كلمة موضوعًا أفضل من مقال مكون من 2000 كلمة مليئة بالحشو والإطناب والتكرار الذي لا فائدة منه. لذا من المهم منح الأولوية دائمًا لتقديم قيمة حقيقية للقارئ وتلبية احتياجاته، بدلًا من الوصول إلى عدد عشوائي من الكلمات أو حشو الكلمات المفتاحية ضمن المقال. 4. إبداء الخبرة وعمق المعرفة ستساعد إضافة التجارب الشخصية أو الأمثلة المحددة على بناء الثقة أمام محرك البحث جوجل وستظهر فهمنا العميق للموضوع، فإذا كننا نكتب حول إستراتيجيات تحسين محركات البحث SEO مثلًا، فسيكون من الأفضل كتابة قصص نتحدث فيها عن الدروس التي تعلمناها من تجاربنا الشخصية أو تجارب زملائنا. بهذه الحالة، سيتفاعل القراء مع قصتنا وسيقدرونها، لأنهم سيدركون أن النصيحة جاءت من شخص واجه نفس التحديات التي يواجهونها. يمكن أيضًا توظيف كتاب متخصصين خاضوا تلك التحديات أو يمكن إجراء مقابلات مع أشخاص رائدين في الصناعة التي نكتب عنها، مع ذكر كيفية تغلبهم على التحديات. 5. التأكد من وجود هدف رئيسي للموقع الإلكتروني يجب أن يُظهر الموقع الإلكتروني هدفًا واضحًا للعلامة التجارية، بحيث يوجه جهودنا في إنشاء المحتوى؛ إذ يساعد وجود هدف أساسي على التوافق مع خوارزميات جوجل، بعض النظر عما إذا كان الهدف للتثقيف أو البيع أو الترفيه أو الإعلام. فعلى سبيل المثال، إذا كان موقعنا مخصصًا لمساعدة الشركات الصغيرة على النمو، فيجب أن نقدم في المحتوى قصص نجاح فريدة لعلامات تجارية نجحت في تحقيق أساليب نمو مختلفة. 6. المحافظة على تحديث المحتوى تحديث المحتوى باستمرار يدل على مصداقية الموقع ويزيد من مكانته، لذا لا بد من العمل على مراجعة محتوى الموقع وتحديثه بانتظام ليحتوي على أحدث المعلومات والتوجهات، لأن المحتوى القديم والمعلومات التي لم تَعُد صالحة قد تؤدي إلى تضليل القراء والإضرار بسمعة العلامة التجارية عند محركات البحث، وكذلك القراء المستهدفين. في الختام كشفت شركة جوجل Google ذات مرة في إحدى منشوراتها عن معلومات مهمة: إذا تعرض الموقع الإلكتروني لانخفاض في الظهور في صفحات نتائج البحث نتيجة خوارزمية تحديث المحتوى المفيد من جوجل، أو في حال القلق حول احتمالية التعرض لهذا مستقبلًا، فلا بد من البدء في مراجعة استراتيجية المحتوى على الموقع الإلكتروني، واتباع النصائح التي ذكرناها في الأعلى. ترجمة -وبتصرّف- للمقال ?Why SEO is Not Dying Sooner? and How to Stay Ahead of The Curve لصاحبه Victor Oluponmile Godwin. اقرأ أيضًا الأخطاء الشائعة في تصميم المواقع الإلكترونية والتي تضر بتحسين محركات البحث كيفية الحصول على الروابط الخلفية لتحسين محركات البحث تقنيات تحسين محركات البحث السيئة والقديمة التي يجب تجنبها أدوات مجانية لتحسين محركات البحث
-
بعد أن تعرفنا بالمقالات السابقة من سلسلة صناعة البودكاست على ما هو أنواع البودكاست والمعدات اللازمة للانطلاق في صناعة البودكاست، سنتحدث الآن عن الخطوات العملية لصناعة بودكاست؛ وفيما يلي 9 خطوات مهمة لصناعة بودكاست ناجح مثل المحترفين. 1. تطوير مفهوم خاص حول محتوى البودكاست المراد تقديمه يمكن تشبيه عملية بناء المفهوم الخاص حول البودكاست باختيار المجال المراد التدوين فيه، لذا لا بد من الإجابة عن الأسئلة التالية: ما المجالات التي أنا شغوف بها للغاية؟ ما هي المجالات الأخرى التي أهتم بها؟ هل أنا قادر على التحدث عن هذه المجالات لعدة أشهر أو حتى سنوات؟ اختيار مجال محتوى البودكاست يمكن البدء بتقديم بودكاست دون اختيار مجال محدد، لكن من الصعب جدًا تنمية جمهور مرتبط بهذا البودكاست دون أن يعرفوا نوعية المحتوى الذي سيستمعون إليه؛ كما أنه من الصعب أيضًا تسويق ومشاركة البودكاست دون وجود استهداف واضح. إن اختيار مجال متخصص لا يعني إلزامية اختيار موضوع ضيق للغاية، فكما ذكرنا سابقًا، من الممكن اختيار مجال ضيق أو واسع جدًا، لكن الأمر الرئيسي الذي يجب الحرص عليه -بغض النظر عن مجال التخصص- هو التأكد من تقديم قيمة حقيقة للمستمع، ويجب هنا التفكير في الكيفية التي سيبدو عليها البرنامج بالمقارنة مع برامج البودكاست الأخرى التي تتناول أفكار مماثلة. التفكير في اللجمهور المستهدف عندما الرغبة في إطلاق برنامج بودكاست، ثمة جانب مهم يجب أخذه في الحسبان، وهو الجمهور المستهدف لهذا البودكاست، فعند اختيار مجال محتوى البودكاست، لا بد من تخيل المستمع المثالي لهذا المحتوى. يجب التفكير في: هل سيشارك الجمهور المستهدف نفس اهتماماتنا؟ هل يوجد بالفعل مجتمع من الأشخاص الذين يبحثون عن المحتوى الذي نريد تقديمه؟ لا بد لنا هنا من تذكر أن محتوى البودكاست يجب أن يدور حول ما نريد التحدث عنه من ناحية، وما يهتم جمهورنا بالاستماع إليه من ناحية أخرى. ما الهدف من البودكاست الذي نريد إطلاقه؟ هذه أيضًا من الأمور التي يجب أن نفكر بها في هذه المرحلة، فهل هو بودكاست نريد تقديمه لعدد قليل من الأصدقاء، أم أننا نأمل في الوصول إلى جمهور أكبر؟ وهل نسعى إلى تقديم المتعة؟ أم أن هدف البودكاست تعليمي أكثر؟ إن التفكير في هذه الأسئلة مبكرًا سيساعدنا على تجنب الانحراف عن المسار في المستقبل. 2. تسمية البودكاست تُعَد عملية تسمية البودكاست صعبةً نسبيًا. ورغم أن هذا الجانب قد لا يكون مهمًا للغاية في مرحلة ما، لكنه مع ذلك يبقى ذا أهمية نسبية. لكن مع ناحية أخرى، يُعَد تغيير اسمه أسهل قليلًا مقارنةً مع المدونة، فعند اختيار اسم المدونة، فمن المرجح اختيار اسم نطاق Domain مشابه لهذا الاسم، لذا يقتضي تغيير الاسم تغيير عنوان الموقع الإلكتروني، وبالتالي فإن المشكلة ستكون أكبر بكثير. على الجانب الآخر، يُعدّ تغيير اسم البودكاست أسهل قليلًا؛ إذ من الممكن تغيير اسم البودكاست من خلال تعديل خلاصة الموقع RSS، وبالتالي لن تخاطر بفقدان الجمهور الحالي لبرنامجك. وعلى الرغم من أنه يمكن تغيير اسم البودكاست لاحقًا، إلا أنه من الأفضل البدء باسم مناسب يمكن الاستمرار معه حتى النهاية، وفي ما يلي بعض النصائح المفيدة للمساعدة على تسمية البودكاست: التأكد من أن الاسم حصري تمامًا مثل استخدام البحث عن اسم النطاق عند إطلاق مدونة، يجب أيضًا تجربة البحث عن اسم البودكاست الذي نريد اختياره، للتأكد من أن الاسم حصري وغير مستهلك من قبل. كخطوة أولى، لا بد من البحث في تطبيق البودكاست لمعرفة ما إذا كان الاسم مأخوذًا أم لا، وأنه لا يوجد اسم مشابه له للغاية. إذا لم يظهر الاسم في البحث، فمن الأفضل التحقق مرةً أخرى من خلال البحث على جوجل من خلال إدخال الاسم الذي تريد البحث عنه + "بودكاست". إذا كنا نريد إطلاق مدونة وبودكاست معًا، فلا بد من التأكد من توفر النطاق domain أيضًا. قد يكون من المفيد التحقق مما إذا كان الاسم متاحًا لحسابات منصات التواصل الاجتماعي المفضلة لدينا، لأننا قد نستخدم وسائل التواصل الاجتماعي لتسويق للبرنامج مستقبلًا. في بعض الحالات، قد نجد أن شخصًا ما قد استخدم الاسم الذي اخترناه، لكنه لم ينشر شيئًا منذ سنوات عديدة، هنا يمكننا المفاضلة بين استخدامه أو لا، لكن يُفضل اختيار اسم جديد لمنع ارتباك المستمعين في المستقبل، كما قد تكون عرضةً لخطر انتهاك حقوق الملكية. تحديد طول اسم البودكاست قد يصل اسم البودكاست إلى 255 حرفًا، لكن ليس من الجيد أن يكون الاسم طويلًا للغاية، وذلك لتفادي قص اسم البودكاست على بعض الأجهزة مثل الهواتف المحمولة، إلى جانب تسهيل تذكر الاسم على الناس. فكلما زاد طول الاسم، أصبح من الصعب حفظه؛ وسيكون من الأسهل انتشار الاسم القصير وحصوله على اهتمام أكبر، إذ يمكن للناس تذكره وتداوله بسهولة. تشير إحدى الدراسات إلى أن 75% من أسماء البودكاست تتكون من 29 حرفًا أو أقل، كما أن معظم أسماء برامج البودكاست المشهورة تتكون من 20 حرفًا أو أقل. تجنب حشو الكلمات المفتاحية حشو الكلمات المفتاحية هو عملية اختيار الكلمات التي يبحث عنها الأشخاص ووضعها في عناوين البودكاست وأوصاف الحلقات والمحتويات الأخرى بهدف زيادة انتشار المحتوى. صحيح أن الاستخدام الحكيم للكلمات المفتاحية في وصف البودكاست هو أمر مفيد، لكن حشو الكلمات المبالغ فيه في العناوين والأوصاف إلى الحد الذي لم يَعُد بالإمكان قراءتها سيعرضنا لخطر الإزالة من بعض منصات البودكاست، مثل منصة iTunes. على سبيل المثال، إذا كان لدينا بودكاست يتحدث عن التسويق وريادة الأعمال، فقد نفكر في إضافة كلمات مفتاحية مثل: ريادة الأعمال | مشاريع جانبية | أصحاب المشاريع الصغيرة | الدخل السلبي | تسويق المحتوى | التسويق الإلكتروني | تطوير الأعمال | صحيح أنه سيتم تغطية كل هذه المواضيع في البودكاست الذي نقدمه، لكن هذا النوع من حشو الكلمات المفتاحية غير محبذ وغير مسموح به على iTunes. وكذلك الأمر بالنسبة لشركة آبل Apple، فإذا راجعنا صفحة المساعدة الخاصة بالبودكاست فسنرى أنها تنص بوضوح على ما يلي: من المقبول تمامًا اختيار عنوان يتيح للأشخاص معرفة موضوع البودكاست الذي تقدمه، وهو ما توصي به شركة آبل: يمكن اختصار الأمر بأنه يجب استخدام الكلمات المفتاحية، لكن بحكمة ومنطق دون حشو الكلمات والإكثار منها. 7. تسجيل حلقة البودكاست الأولى والآن، وبعد تحديد الشكل الذي نريد أن يبدو عليه برنامجنا، وبعد امتلاكنا للأجهزة والبرامج التي نحتاجها، حان الوقت لتسجيل الحلقة الأولى من البرنامج، وهو أمر رائع للغاية، لذا سنذكر في ما يلي بعض الأشياء التي يجب أخذها في الحسبان: لا داعي للقلق في حال عدم تلبية التوقعات العالية يتشابه البدء في تسجيل برنامج بودكاست مع عملية البدء في كتابة أول كتاب، أي أن أول شيء نكتبه قد لا يكون أفضل أعمالنا، لكنه أفضل من عدم كتابة أي شيء. على سبيل المثال، قد لا تحظى حلقتنا الأولى بأفضل جودة صوت، لكن لا داعي لترك الأمر يمنعنا من البدء. وكما هو الحال مع أي نوع من أنواع تسويق المحتوى، مثل التدوين والنشر على يوتيوب، ستتحسن الأمور تدريجيًا وسيزداد عدد المتابعين شيئًا فشيئًا، لذا لا داعي للقلق إذا لم تحقق الحلقات الأولى نتائج مزلزلة؛ إذ ستتحسن الأمور مع الوقت، وسيأتي يوم نعود فيه إلى حلقاتنا الأولى لإدراك مدى تحسننا. تحديد المحاور الرئيسية للحلقة إذا لم نكن نُعِد حلقةً مكتوبةً بالكامل، فيجب أن يكون لدينا شيء أشبه بالخطوط العريضة أو المحاور الرئيسية للحلقة، بحيث تساعدنا على تجنب التشتت عند نفاد الأشياء التي نريد قولها، كما أنها مهمة لكي لا يتجاوز طول الحلقة المتوقع. يمكننا جعل الأمر بسيطًا أو معقدًا كما نريد، ولكن من المهم أن يكون لدينا مخطط واضح لكل حلقة بودكاست، بما في ذلك الموضوعات المحتملة التي نرغب في تغطيتها؛ فإذا كنا نجري مقابلة مع شخص ما مثلًا، فلا بد من وضع قائمة بالأسئلة التي نرغب في طرحها. صحيح أننا قد لا نتمكن من طرح كل هذه الأسئلة، لكن وجود قائمة طويلة سيجنب المقابلة حالة الركود أو التشتت. إعداد مكان التسجيل لا بد من اختيار مكان جيد للتسجيل. يلجأ الكثير من الأشخاص إلى تسجيل حلقات البودكاست في المنزل، وليس هناك مشكلة في ذلك، لكن من الجيد أن يكون لدينا مكان مخصص للتسجيل ضمن المنزل. قد يكون من المناسب عزل الصوت قدر الإمكان لتجنب الضوضاء في الخلفية، وسيكون هذا مفيدًا على وجه الخصوص في المنازل التي يوجد فيها أطفال أو عدد كبير من الأفراد. يستخدم بعض مقدمي البودكاست خزانة ملابس كبيرة للتسجيل بها، كونها تحفظ الصوت وتحتوي على الكثير من المواد الناعمة التي تمتص الصوت من حولها. 8. تحرير الحلقة يُعًد تحرير حلقات البودكاست من أكثر الأجزاء استهلاكًا للوقت، لكنه في ذات الوقت مهم للغاية ويمكن أن يحدث فرقًا كبيرًا، إذ يمكن في هذه المرحلة إضافة مقدمة وخاتمة، وإصلاح الأخطاء الصوتية، وإزالة لحظات الصمت والأقسام المملة من التسجيل؛ أي أنه يمكن تحويل التسجيل متوسط الجودة إلى تسجيل أفضل بكثير عند امتلاك مهارات التحرير الجيدة. لن نتحدث هنا عن كيفية تحرير الملفات الصوتية، لأن استخدام كل برنامج يختلف عن الآخر، لكن بغض النظر عن البرنامج الذي سنختاره، من المهم أن تكون تسجيلاتنا ممتعة وخالية من لحظات الصمت الطويلة أو الفواصل بين الكلام، وهي من أفضل الممارسات التي ستبقي المستمعين أكثر تفاعلًا، ومن المرجح أن يبقوا متواجدين طوال الحلقة. 9. وضع خطة نشر بعد تسجيل الحلقة الأولى من برنامج البودكاست وتحريرها، لا بد من القيام ببعض الأشياء قبل نشرها للعالم. تسجيل حلقات إضافية عوضًا عن تسجيل حلقة بودكاست واحدة ورفعها بسرعة على منصة استضافة، يُفضل تسجيل بعض الحلقات وتحريرها، ومن ثم مباشرة رفع الحلقات وفق خطة نشر. السبب في ذلك أنه من السهل التخلف عن مواعيد النشر عندما يتعلق الأمر بأي نوع من أنواع إنشاء المحتوى. فلنفترض أننا نريد مثلًا نشر حلقة بودكاست جديدة أسبوعيًا أو مرتين في الأسبوع أو حتى شهريًا؛ من المهم في هذه الحالة أن تكون لدينا هنا بعض الحلقات الجاهزة والمجدولة للنشر لضمان الالتزام بالمواعيد حتى في الحالات الطارئة، أو في حال استغرق تسجيل الحلقة وقتًا أطول من المتوقع. إذا كنا نجري مقابلات مع الضيوف في برنامجنا، فقد نجد أن الأمر يستغرق وقتًا إضافيًا لتحديد مواعيد لقاء مع الأشخاص المناسبين، وإذا كان برنامجنا يتطلب الكثير من الكتابة والبحث، فقد نجد أن بعض الحلقات تحتاج إلى المزيد من العمل قبل أن تصبح جاهزة، لذا من المهم التأكد من توفير حلقات إضافية لضمان استمرار الإنتاج وبالجودة اللازمة. تحديد معدل نشر الحلقات فيما يتعلق بمعدل نشر الحلقات، يمكن القول بأن الأمر هو إلى حد ما مسألة رأي، لكن هناك بعض العوامل التي يجب أخذها في الحسبان: ما مقدار الوقت الذي سنكرّسه لبرنامجنا؟ ما هو طول حلقة البودكاست في برنامجنا؟ ما مقدار الوقت الذي نريد قضاءه في التسجيل؟ ما الهدف من البرنامج؟ هل نسعى إلى تحقيق الأرباح من البرنامج؟ ستساعدنا الإجابة عن الأسئلة السابقة في تكوين فكرة واقعية عن معدل تسجيل ورفع حلقات جديدة من برنامجنا، لكن بكل الأحوال، عندما نكون في البداية لا داعي للمبالغة في طموحاتنا، فقد تكون مرة واحدة في الشهر كافية، ومع نمو البرنامج والبدء في جني الأموال منه، يمكن التفكير في زيادة معدل التسجيل. خلاصة القول هي أن نكون متسقين ونلتزم بتسجيل ورفع حلقات جديدة بانتظام، كما يجب اختيار يوم محدد ووقت ثابت لنشر الحلقات، بحيث يتوقع جمهورنا متى سننشر حلقتنا التالية. خاتمة بهذا نكون قد وضحنا كيفية صناعة بودكاست وتحضيره للنشر وترتيب آلية نشره، وسنتحدث في المقال التالي عن كيفية انتقاء الاستضافة الأنسب لصناعة البودكاست. اقرأ أيضًا المقال السابق: اختيار المعدات المناسبة لصناعة البودكاست أنواع البودكاست مدخل إلى عالم صناعة البودكاست إنشاء المحتوى وصناعة الآراء: التدوين والبودكاست
-
بعد أن بنينا مفهومنا حول البودكاست في المقالات السابقة من هذه السلسلة وعرفنا دوافع إطلاق برنامج بودكاست، حان الوقت لتحديد المعدات الأساسية التي سنحتاجها لإطلاق برنامجنا، وهي موضوعنا بهذا المقال. قد يكون من الممكن تسجيل وتحرير تسجيلات البودكاست مباشرةً من الهاتف المحمول، لكن للحصول على جودة صوت أفضل وتحرير أسهل، لا بُد من الاستثمار في بعض المعدات الإضافية. وبطبيعة الحال، هناك بعض الأجهزة والمعدات التي يُوصى بأن تكون لدينا قبل البدء في تسجيل حلقات البودكاست، إذ ستسهل علينا عملية التسجيل وسترفع من جودة عملنا، ولن تضع على كاهلنا أعباء مادية كبيرة. حاسوب محمول أو ثابت يُعد الحاسوب جهازًا أساسيًا لتسجيل وتحرير ملفات الصوت MP3، أما نوع العلامة التجارية التي يجب اختيارها فهي مسألة تتعلق بتفضيلاتنا الشخصية، وكذلك الحال بالنسبة للجهاز الذي أن يكون من النوع الثابت أو المحمول؛ إذ يعتمد الأمر على ميزانيتنا وما نرغب في استخدامه. لاقط الصوت أو الميكروفون Microphone يُعَد الميكروفون أو لاقط الصوت من المعدات الضرورية لمقدمي برامج البودكاست، وهناك الكثير من الأنواع المتاحة التي يمكننا الاختيار من بينها، فهناك الميكروفونات رخيصة الثمن (أقل من 100 دولار) وبعضها ذات جودة مقبولة ويُنصح بالبدء بها؛ وهناك الميكروفونات الأكثر احترافية، والتي قد تكون خيارًا مناسبًا للمستقبل. عند البدء في البحث عن الميكروفونات، سيتعين علينا الإجابة على عدة أسئلة، أحدها هو ما إذا كنا نريد ميكروفونًا مكثفًا Condenser أم ديناميكيًا Dynamic، وهناك عدد لا بأس به من الاختلافات بين الاثنين، لذا فإن الأمر يستحق التفكير والمقارنة لاختيار الأنسب. الميكروفون المكثف Condenser من المعروف أن الميكروفون المكثف حساس جدًا للضوضاء، فهو يلتقط حتى الأصوات الضعيفة، لكن ما يميزه أنه يعطينا صوتًا أقرب للطبيعي مقارنةً مع الميكروفون الديناميكي. وبطبيعة الحال، يمكن أن تكون هذه الحساسية جانبًا سلبيًا إذا كانت لدينا الكثير من الضوضاء في مكان التسجيل، فإذا كنا نعيش مثلًا مع شركاء في السكن أو كان لدينا أطفال صغار، فقد يكون التسجيل محبطًا باستخدام الميكروفون المكثف، لذلك إذا قررنا اختيار الميكروفون المكثف، فعلينا التفكير أيضًا في عزل الصوت في مكان التسجيل لتجنب مشكلة الضوضاء. يجب الانتباه هنا إلى أنه حتى الغرفة التي نظن أنها هادئة نسبيًا قد تصدر بعض الأصوات التي يلتقطها الميكروفون، مثل صوت المروحة أو مكيف الهواء أو نظام التدفئة أو غير ذلك. وصحيح هنا أنه يمكنك تحرير هذه الأصوات وحذفها بعد جلسة التسجيل، لكن من الأفضل تقليل أكبر قدر ممكن من التلوث الضوضائي من البداية، حتى تحصل على أفضل جودة صوت ممكنة بعد التحرير والمونتاج. من الخيارات المتاحة لتقليل التلوث الضوضائي، نذكر إضافة حاجب الرياح Windscreen، وهو عبارة عن نوع من القماش المثقب الذي يوضع فوق الميكروفون للمساعدة في منع التقاط الضوضاء وأصوات النفس. صحيح أنه لن يلغي جميع الضوضاء الخارجية، لكنه مفيد ويساعد على تخفيفها. من الأمور التي يجب أخذها في الحسبان هنا هي أن الميكروفونات المكثفة غير متينة، وهذا لا يعني أن الميكروفون لن يدوم لفترة طويلة، لكن إذا كنا نخطط للسفر أو تحريك الميكروفون كثيرًا مثلًا، فسنحتاج إلى التعامل معه بعناية شديدة. الميكروفون الديناميكي Dynamic قد يكون هذا النوع مناسبًا أكثر إذا كنا نخطط للتنقل كثيرًا، فهو أكثر متانة، كما أنه لا يلتقط الكثير من الضوضاء الخارجية، فعلى سبيل المثال، إذا كنا نخطط لإجراء مقابلات مع الأشخاص في شوارع المدينة، فسيكون الميكروفون الديناميكي هو النوع المناسب، نظرًا لأننا لن نضطر إلى تعديل وحذف الكثير من الضوضاء في الخلفية؛ لكن من ناحية أخرى، تمتلك الميكروفونات الديناميكية معدل تردد أقل، وقد تجعل من الصوت مختلفًا قليلًا عن الحالة الطبيعية ليصبح مشابهًا لصوت الراديو، لذا فإن الطريقة التي نريد أن يبدو عليها البودكاست لها علاقة كبيرة باختيار نوع الميكروفون. إذا كنا نريد أن نبدو مثل مذيع الراديو التقليدي، فيمكن للميكروفون الديناميكي أن ينتج هذا الصوت، بينما للحصول على صوت أقرب للطبيعي، يُفضل اختيار الميكروفون المكثف؛ أما من ناحية السعر، يتمتع الميكروفون الديناميكي بسعر أقل عمومًا. ميكروفون USB أم ميكروفون XLR هناك أمر آخر قد يهمنا عند اختيار الميكروفون، وهو اختيار ميكروفون بمخرج USB أو بمخرج XLR، والفرق بين الاثنين بسيط إلى حد ما، إذ أن لكل منهما مخرج اتصال مختلف، مع ذلك يمكن توصيل الميكروفون من نوع مخرج USB مباشرةً بجهاز الحاسوب، في حين يجب توصيل الميكروفون من نوع مخرج XLR أولًا بجهاز وسيط، مثل وحدة الخلط أو ميكسر الصوت Mixer قبل توصيله بالحاسوب. يُعَد ميكروفون USB مناسبًا في عدة حالات لأننا لن تحتاج إلى أي معدات إضافية من أجل استخدامه، فكل ما سنحتاج إليه هو سلك USB وميكروفون وجهاز حاسوب؛ مع ذلك يرى محبو ميكروفونات XLR أن هذه الأخيرة ذات جودة أعلى وتنتج تسجيلات صوتية أفضل. وبالعموم، يمكن القول أنه إذا كنا نبحث عن الإعداد السهل والتكلفة المنخفضة، فإن ميكروفون USB هو الخيار الأنسب، بينما إذا كنا نتطلع إلى تقديم بودكاست احترافي، فقد يكون من الأفضل الاعتماد على ميكروفون XLR مع وحدة الخلط (الميكسر)، كونها تتيح مزيدًا من التحكم في التسجيلات. قدرات التقاط الصوت من الاتجاهات ثمة أمر آخر يجب أخذه في الحسبان عند شراء ميكروفون، وهو قدرته على التقاط الصوت من الاتجاهات المختلفة. في الواقع، هناك خمسة أنواع رئيسية من الميكروفونات يمكن تصنيفها حسب قدرتها على التقاط الصوت؛ إذ يلتقط كل منها الصوت بطريقة مختلفة، وفيما يلي شرح عن الأنواع الخمسة حتى تتمكن من اختيار النوع الذي يناسب احتياجاتك: الميكروفونات من النوع القلبي Cardioid microphones: يتميز هذا النوع من الميكروفونات بنمط الالتقاط الأمامي، فهي تلتقط الصوت الذي يقع أمام الميكروفون، كما قد تلتقط بعض الأصوات من الجانب، لكن معظم الأصوات الملتقطة تكون أمام الميكروفون. الميكروفونات متعددة الاتجاهات Omnidirectional microphones: تلتقط الميكروفونات من هذا النوع الصوت من كل الاتجاهات بالتساوي، لذا قد يستخدم مقدمو البودكاست هذا النوع إذا كانوا يحتاجون إلى إنشاء تسجيلات صوتية من عدة زوايا مختلفة، لكن عادةً ما لا يكون هذا هو الخيار الأفضل لبرامج البودكاست، لأنه من المحتمل أن يلتقط الكثير من الضوضاء في الخلفية. الميكروفونات ذات الشكل 8 أو الميكروفونات ثنائية الاتجاه: وهي الميكروفونات التي تلتقط الأصوات من الجانبين. إذا كنت مهتمًا بإجراء بودكاست بأسلوب المقابلة، فقد تكون مهتمًا بهذا النوع، فهو يعمل على التقاط الأصوات من الجزء الأمامي والخلفي من الميكروفون فقط، دون التقاط الأصوات من الجوانب. فهي ميكروفونات Shotgun: يتشابه هذا النوع من الميكروفونات إلى حد كبير مع الميكروفونات القلبية، لكن ما يميزها أن التقاط الصوت فيها أكثر اتجاهًا، لذا سيلتقط هذا النوع من الميكروفونات الصوت الموجود أمامه مباشرةً، وسيحجب جميع الضوضاء المحيطة الأخرى. الميكروفونات متعددة الأنماط Multi Pattern أو الميكروفونات القابلة للتبديل Switchable: يتيح هذا النوع من الميكروفونات القدرة على التبديل بين الاتجاهات للتمكن من استخدام الميكروفون في المواقف المختلفة. حامل الميكروفون قد يكون الميكروفون مزودًا بحامل، ولكن إذا لم يكن كذلك، فلابد من شراء شيء ما لإبقائه ثابتًا، ولهذا الغرض، يُعَد الحامل من النوع Stand أقل تكلفةً، لكنه عبارة عن ذراع مستقيمة غير قابلة للانحناء، في حين يوفر الحامل من نوع Boom Arm خصائص أفضل تسهل التحكم أكثر بوضعية الميكروفون، إذ به ثلاث أذرع مربوطة بمفاصل. حامل الصدمات Shock Mount حامل الصدمات هو أي جهاز أو عتاد من الممكن استخدامه لتقليل الضوضاء، وهو شيء يستحق الاستثمار فيه فعلًا، إذ يمتص حامل الصدمات أي حركة تحدث حول الميكروفون، فلو حصل اصطدام بالطاولة مثلًا عن طريق الخطأ أثناء التسجيل، فسوف يمتص حامل الصدمات هذه الحركة. يؤدي حامل الصدمات Shock Mount دوره جيدًا على نحو خاص إذا كنت تستخدم حامل ميكروفون من النوع Boom Arm، ولكنه مفيد أيضًا إذا كنت تستخدم حاملًا من النوع stand. مرشح البوب Pop Filter مرشح البوب Pop Filter هو أشبه بقطعة قماش مثقبة تصفي الأصوات الانفجارية التي تخرج أثناء الكلام، مثل حرف الباء المشدد، بحيث إذا كان المتحدث قريبًا جدًا من الميكروفون ولم يكن مرشح البوب متاحًا، فقد يصدر صوتًا مرتفعًا ومزعجًا من شأنه تشتيت انتباه المستمع ويزعجه أذنه، ولهذا السبب يُفضِّل العديد من الأشخاص استخدام مرشح البوب على ميكروفوناتهم. سلك USB يُعد سلك USB من العتاد الأساسي، سواءً اخترنا استخدام ميكروفون ذي مخرج USB أو ميكروفون ذي مخرج XLR، ففي حال استخدمنا ميكروفون USB، فسنحتاج إلى سلك USB لنصل به الميكروفون بالحاسوب مباشرة؛ أما في حال استخدام ميكروفون XLR، فسنحتاج إلى سلك USB لتوصيل موحد مستوى الصوت مع الحاسوب. موحد مستوى الصوت Mixer موحد مستوى الصوت Mixer هو جهاز يُستخدم لجمع الأصوات من عدة إشارات وأجهزة استقبال الصوت، بحيث في حال كنا نجري مقابلة مع أكثر من ضيف، فالطبيعي أن يتحدث أحدهما بصوت عالٍ، بينما قد يمتلك الآخر صوتًا أخفض، وهنا لتوحيد مستوى الصوت وعدم إرهاق المستمع بهذا التباين، يمكن استخدام موحد مستوى الصوت للتحكم في مستوى صوت التسجيلات لكل الضيوف، عن طريق تضخيم الصوت الهادئ وتخفيف صوت الضيف الأكثر قوةً. وللتنويه، تجدر الإشارة هنا إلى أنه إذا كنا نعتمد على ميكروفون ذي مخرج XLR، فسنحتاج بالتأكيد إلى استخدام موحد مستوى الصوت، في حين أن ذلك لن يكون ضروريًا إذا كنا نستخدم ميكروفون ذي مخرج USB؛ مع ذلك يبقى موحد مستوى الصوت مفيدًا لتحسين جودة الصوت في البرنامج، لأنه يمنح المزيد من التحكم في التسجيلات الصوتية؛ إذ يشتمل جهاز موحد مستوى الصوت على مزايا أخرى، مثل تحسين الصوت المدمج، والنسخ الاحتياطي للتسجيلات الصوتية، وكذلك القدرة على الإنتاج المباشر للصوت وإضافة مؤثرات صوتية على التسجيلات. 4. اختيار برنامج التسجيل والتحرير يُعَد تسجيل الصوت وتحريره من الأمور الأساسية لأي برنامج بودكاست، وقد يكون تحرير الصوت وتعديله من المهام التي تستغرق وقتًا طويلًا للغاية، لذا يجب الحرص على اختيار برنامج سهل الاستخدام مع امتلاكه الإمكانيات التي تغطي احتياجاتنا، وفيما يلي قائمة ببعض برامج التسجيل والتحرير الجيدة: برنامج GarageBand Garageband هو برنامج تحرير مجاني متاح حصرًا على نظام Mac، يوفر إمكانية استخدام محرر صوت متعدد المسالك، ويُعد سهل الاستخدام ومناسب للمبتدئين في مجال البودكاست. وكما هو الحال في ووردبريس WordPress، هناك أيضًا مكونات إضافية متاحة لبرنامج Garageband والتي توفر المزيد من الخيارات المتقدمة. فيما يلي قائمة ببعض المزايا الأخرى لبرنامج Garageband: مكتبة صوتية كاملة إضافة مؤثرات صوتية ضغط الملفات ميزة المكون الإضافي Visual EQ لتحسين الصوت مع ذلك قد يكون البرنامج مناسبًا أكثر للأعمال المنتشرة، لكن للأعمال الاحترافية للغاية والمتقدمة جدًا، يفضل البحث في خيارات أفضل. برنامج Audacity برنامج Audacity هو محرر صوت مجاني ومفتوح المصدر، يعمل مع أجهزة Mac، والأجهزة التي تعمل بأنظمة التشغيل Windows و Linux و GNU، مما يعني أنه يمكن للمستخدمين تطويره. بالمقارنة مع برنامج Garageband، يمكن القول بأن برنامج Audacity يحتاج إلى تدريب أكثر، فهو صعب الاستخدام، كما أن واجهته ليست جذابة، لكن على الرغم من ذلك، يقدم برنامج Audacity العديد من الميزات التي قد تحتاجها للتسجيل والتحرير، بما في ذلك: مقياس لشدة الصوت Level meters تسجيل متعدد المسالك Multi-track recordings ضغط الملفات إزالة الضجيج من التسجيلات القدرة على تسجيل الصوت مباشرةً المؤثرات الصوتية مثل تغيير السرعة أو درجة الصوت يمكن إضافة أي تأثيرات تريدها عن طريق المكونات الإضافية تحرير ملفات الصوت بتنسيقات WAV أو AIFF أو FLAC أو MP2 أو MP3 أو Ogg Vorbis الآن، وبعد أن تحدثنا عن البرامج المجانية، دعونا نلقي نظرةً على بعض البرامج المدفوعة. برنامج هيندنبورغ Hindenburg تقدم شركة Hindenburg Systems العديد من برامج تحرير الملفات الصوتية، وكل من هذه البرامج مزود بمجموعة من الميزات؛ والخيار الأقل كلفةً بين هذه البرامج هو برنامج Hindenburg Journalist الذي يشتمل على الميزات التالية: القدرة على العمل على جميع أنظمة التشغيل المختلفة التحرير غير المدمر Non-destructive editing، والمقصود بها القدرة على التحرير التجريبي دون تخريب ملف الصوت الأصلي إضافة المؤثرات الصوتية حافظة للتخزين المؤقت تسجيل متعدد المسالك Multi-track recordings ربط المسارات تحرير ملفات صوتية بتنسيقات WAV أو MP3 أو M4a أو AIFF صحيح أن برنامج Hindenburg ليس الخيار الأرخص بين البرامج المدفوعة، لكن ما يميزه هو أنه يستهدف على وجه الخصوص الأشخاص العاملين في مجال الراديو والبودكاست. برنامج Apple Logic Pro X برنامج Apple Logic Pro X هو عبارة عن محطة رقمية احترافية لتحرير الملفات الصوتية، وهو قد يناسب الأشخاص الذين لديهم معرفة ببرنامج Garageband ويبحثون عن برنامج ذات ميزات أعلى للارتقاء بعملهم، كما يمكن نقل الملفات بين البرنامجين بسهولة. من المهم الإشارة هنا إلى أن برنامج Logic Pro X احترافي جدًا، وهو موجه بالأساس للموسيقيين، لكنه يأتي مع عدد كبير من المزايا التي تفيد مقدمي البودكاست أيضًا، وفيما يلي بعض المزايا التي ستحصل عليها مع برنامج Logic Pro X: الإيقاع الذكي Smart Tempo توفر المكونات الإضافية يمكننا استخدامه كموحد لمستوى الصوت في حال أردنا العمل عليه انطلاقًا من هاتف بنظام iOS مؤثرات صوتية وآلات موسيقية تعديل سرعة الصوت أدوات لترميم الملفات الصوتية وإصلاحها أدوات تحرير متقدمة يعمل برنامج Apple Logic Pro X فقط على أجهزة Mac، لذا لن يكون البرنامج مفيدًا للأشخاص الذين يستخدمون أنظمة تشغيل أخرى. برنامج أدوبي أوديشن Adobe Audition برنامج أدوبي أوديشن Adobe Audition هو برنامج تحرير صوتيات احترافي بنظام اشتراك شهري، وهو يلبي الكثير من احتياجات العاملين في مجال الموسيقى، إضافةً إلى مقدمي برامج البودكاست، وفيما يلي أهم المزايا التي يحتويها: إمكانية ضبط مستويات الصوت مكتبة تحتوي على العديد من المؤثرات الصوتية دون حقوق ملكية تسجيل متعدد المسالك مصادر تعليمية ونصائح فيما يخص البودكاست التقليل من الضوضاء في التسجيلات إمكانية تعديل جهارة الصوت أدوات لترميم الملفات الصوتية وإصلاحها إمكانية تصدير الملفات الصوتية بتنسيقات متعددة السلبية الأكبر في برنامج أدوبي أوديشن هو أنه لا يمكنك دفع الرسوم لمرة واحدة وامتلاك حقوق استخدام البرنامج للأبد، بل يجب أن تدفع شهريًا، وهو ما يمكن أن يكون مقلقًا لمقدمي البودكاست، خاصةً المبتدئين منهم. الأمر الإيجابي هو أنه يمكن دفع اشتراك شهري لجميع تطبيقات أدوبي، والذي قد يوفر بعض التكاليف في حال الحاجة لاستخدام برامج أدوبي أخرى، مثل برنامج أدوبي فوتوشوب Adobe Photoshop أو أدوبي إليستريتور Adobe Illustrator وغيرها من تطبيقات أدوبي. برنامج ديسكريبت Descript برنامج ديسكريبت Descript هو برنامج تسجيل صوت مختص بتسجيلات البودكاست ويتطلب دفع اشتراك شهري أيضًا، فعلى مدار السنوات العديدة الماضية، عملت الشركة المبرمجة على الكثير من الأشياء الجديدة والرائعة لمقدمي برامج البودكاست. في البداية، سيتلقى البرنامج الملفات الصوتية ويحولها إلى ملفات نصية قابلة للتحرير، بحيث إذا كنا نريد اقتطاع جزء من الصوت، فيمكننا القيام بذلك بنفس السهولة التي نحرر بها مستند مكتوب. ميزة رائعة أخرى في برنامج ديسكريبت وهي أنه يمكننا إضافة كلمات جديدة إلى تسجيلاتنا، بحيث إذا أردنا تغيير كلمة ما، فيمكننا فعل ذلك بسهولة باستخدام خاصية Overdub، التي يمكن استعمالها حصرًا بصوت مستخدم البرنامج وليس بأصوات الآخرين. فيما يلي ملخص لبعض المزايا الإضافية التي يتمتع بها برنامج ديسكريبت، مع العلم أن بعض هذه المزايا خاص في خطط الاشتراك المتقدمة: التعاون على تحرير الملفات ضمن فريق عمل ميزة Overdub التي تتيح إمكانية إضافة كلمات جديدة إلى التسجيل تحويل الصوت إلى نصوص مكتوبة كشف المتحدث التحرير متعددة المسارات دمج الأصوات بخاصية Crossfades تتبع مسارات الصوت تصدير الملف بتنسيقات متنوعة برنامج زنكاستر Zencastr يتشابه برنامج زنكاستر Zencastr مع برنامج Hindenburg في كونه يستهدف مقدمي برامج البودكاست، لذا فهو خيار مناسب آخر، وفيما يلي بعض المزايا المميزة التي يقدمها برنامج زنكاستر: مسارات منفصلة لكل ضيف لوحة صوت Soundboard من أجل التحرير المباشر Live على البثوث الصوتية التكامل مع التخزين السحابي تقنية VoIP مدمجة، لذا لن نضطر إلى استخدام خدمات جهة خارجية التسجيل بتنسيق WAV يمكنه العمل على أنظمة تشغيل متعددة ومع ذلك، لدى زنكاستر بعض السلبيات، منها أنه ليس من السهل تحميل الملف الصوتي إلى مضيف بودكاست، مثل آبل Apple أو جوجل بودكاستس Google Podcasts، وسنحتاج لذلك إلى خدمة خارجية مثل Anchor؛ إلى جانب كون تكلفته عالية بعض الشيء؛ إذ صحيح أن البرنامج يتيح إصدارًا مجانيًا محدودًا، لكن هناك رسوم شهرية للإصدار المتقدم وتكلفتها ليست بالقليلة، خاصةً وأنه قد اشتكى بعض المستخدمين من أن الخدمة قد لا تكون جيدةً في بعض الأحيان. كما أن واحدة من الميزات الرئيسية المفترضة لهذا المنتج هي قدرته على تسجيل أصوات الضيوف من موقع آخر، لكن في الواقع، أبلغ بعض المستخدمين أن الضيوف لم يكونوا قادرين على الاتصال، كما فُقدت الملفات الصوتية بعد التسجيل في بعض الأحيان. برنامج بودكاسل Podcastle برنامج بودكاسل Podcastle هو عبارة عن منصة توليد صوت تعاونية مدعومة بالذكاء الاصطناعي تساعد المبتدئين والمحترفين على إنشاء ملفات بودكاست ذات جودة احترافية بسهولة. أفضل ما في برنامج بودكاسل هو أنه يحتوي على واجهة سهلة الاستخدام، مما يجعل العملية سهلة وممتعة للغاية. إضافةً إلى ذلك، يُعَد برنامج بودكاسل مفيدًا للغاية لمسجلي الكتب الصوتية وللمعلمين ولكل من يعمل في مجال الصوتيات، وفي ما يلي بعض الميزات الرئيسية لهذا البرنامج: تسجيل صوت بدقة عالية HD مقابلة عن بعد متعددة المسارات إزالة الضوضاء في الخلفية محرر صوت مدعوم بالذكاء الاصطناعي تحويل النص إلى كلام مكتبة واسعة من المؤثرات الصوتية تصدير الملفات بتنسيقات متعددة إزالة لحظات الصمت في الملفات الصوتية كما هو الحال في برنامج Descript، من الممكن تحرير الملف الصوتي عن طريق تحويله إلى نص وإزالة جميع الأجزاء غير الضرورية مباشرةً من محرر النصوص، كما يمكن استخدام محول الصوت إلى نص للحصول على نسخ مكتوبة من البودكاست الخاص بنا، والتي يمكنك نشرها لاحقًا على موقعك الإلكتروني، أو استخدامها في تحسين محركات البحث SEO لبرنامجنا. هناك ثلاثة خيارات اشتراك متاحة في برنامج بودكاسل، إذ يمكن البدء بالحزمة المجانية التي تحتوي على كل ما نحتاجه لبدء رحلتنا في عالم البودكاست، وإذا قررنا لاحقًا زيادة مستوى الاحترافية، فيمكننا تجربة الحزم المتقدمة، مثل حزمة Storyteller والتي تأتي بسعر 11.99 دولارًا شهريًا، أو حزمة Podcastle Pro التي تكلف 23.99 دولارًا شهريًا. وبالنسبة للمؤسسات الكبيرة، يقدم البرنامج حزمة الفريق التي يتم تخصيصها وفقًا لاحتياجات شركتك. تسجيل المقابلات عن بعد في حال كنا نخطط لإجراء مقابلات مع بعض الضيوف، فقد نجد أن بعض ضيوفنا بعيدون عن منطقتنا، لذا عوضًا عن استقبالهم في المنزل، يمكن ببساطة استخدام برامج التسجيل التي تتيح لنا إمكانية التسجيل عن بُعد، فبالإضافة إلى برنامج زنكاستر Zencastr، هناك بعض البرامج الأخرى المتاحة، أهمها: برنامج سكوادكاست Squadcast برنامج سكوادكاست Squadcast هو برنامج تسجيل رائع لا يتطلب التثبيت على الجهاز أو استخدام أي مكونات إضافية، فقد لا يكون الشخص الذي نريد إجراء المقابلة معه مهتمًا بتنزيل البرنامج على حاسوبه؛ لذا يُعَد هذا البرنامج خيارًا مناسبًا لإجراء مقابلات لمرة واحدة. باستخدام برنامج سكوادكاست، سيكون بإمكاننا جدولة المقابلات وتسجيل الصوت في ملفات بصيغة WAV منفصلة وتنظيمها ضمن مكتبة، كما يتم حفظ التسجيلات في نسخ احتياطية سحابية. باختصار، البرنامج سهل الاستخدام وكل ما على الطرفين فعله هو استخدام متصفح عادي لتشغيله. برنامج سكايب Skype يُعَد سكايب Skype من الخيارات المتاحة لإجراء مقابلات بودكاست عن بُعد، لكن قد لا يكون الخيار الأفضل لعدة أسباب، منها أن الصوت المسجل منخفض الجودة ولا يمكنك تنزيله إلا بصيغة ملف فيديو MP4، كما أن هناك مشكلات أخرى تتعلق بالاتصال وتقطيع الصوت، مع ذلك أدرجناه ضمن هذه القائمة لأن الكثير من مقدمي البودكاست يستخدمونه كبرنامج لإجراء المقابلات عن بُعد وتسجيل المقابلات عليه، لكن في الواقع هو ليس بالخيار الذي يُوصى به. برنامج زووم Zoom في حال البحث عن خيار مجاني، فقد يكون برنامج زووم Zoom هو الخيار الأنسب، ورغم أنه يحتوي على إصدارات متقدمة، لكن بالنسبة للاجتماعات الشخصية مثل تلك التي تُعقد في مقابلة البودكاست، فإن الإصدار المجاني كاف وجيد. صحيح أن برنامج زووم لا يقدم العديد من الميزات التي تقدمها البرامج الأخرى مثل سكوادكاست Squadcast، لكنه يسجل ملفات صوتية بجودة عالية ويحفظ صوت كل متحدث في مسار مختلف. 5. حفظ حقوق الملكية وتسجيل العلامة التجارية لبرنامجك قد لا تكون حقوق الملكية للبرنامج أول ما يخطر بالبال في بداية الأمر، لكنها من الأمور التي يجب أن توليها اهتمامًا جديًا عند اتخاذ قرار شق الطريق في عالم البودكاست. لنكن واضحين، لن نؤدي في هذا المقال دور المحامي ونشرح الأمور القانونية، لكن من المهم الأخذ في الحسبان أنه من المهم جدًا حفظ حقوق الملكية للبرنامج وتسجيل العلامة التجارية لضمان حمايتها مستقبلًا، وللحصول على فهم واضح للأمور والممارسات القانونية، يكفي التواصل مع محام متخصص للمساعدة على تسجيل البرنامج قانونيًا. يمكن البحث عن استشارة قانونية أونلاين، عبر زيارة منصة مستقل الذي يحتوي على أفضل المستقلين من كل المجالات، يمكننا البحث ضمن قائمة المحامين في قسم الاستشارات القانونية واختيار المحامي الذي نشعر أنه قد يلبي احتياجاتنا. خاتمة بهذا نكون قد تعرفنا في هذا المقال على المعدات التي يمكن استخدامها للخروج ببودكاست احترافي، وسنتعرف في المقال التالي من هذه السلسلة على كيفية صناعة البودكاست. ترجمة -وبتصرّف- للمقال How to Start a Podcast and Make Money لصاحبه Ryan Robinson. اقرأ أيضًا المقال السابق: أنواع البودكاست مدخل إلى عالم صناعة البودكاست إنشاء المحتوى وصناعة الآراء: التدوين والبودكاست
-
لدى كل بودكاست طبيعة ونوع محتوى مختلف عن الآخر، فبعض مقدمي البودكاست يجهزون النصوص قبل تقديمها، وبعضهم يقدم محتوى ارتجالي مباشر؛ لذا يجب أن تحدد طبيعة المحتوى الذي تريد تقديمه وتنسيقه، وسنناقش فيما يلي بعض أشكال البودكاست المختلفة مع دعم كل شكل بأمثلة حقيقية: الشكل الأول: بودكاست المقابلات لعل أكثر أساليب البودكاست شيوعًا هو أسلوب المقابلة، وعادةً ما يشتمل هذا الأسلوب على مضيف واحد أو اثنين ومتحدث ضيف لكل حلقة، بحيث يكمن دور المحاور المضيف في طرح الأسئلة والأفكار، في حين يسترسل الضيف في الحديث عن تلك الأفكار، كما قد يشارك الجمهور بعض التجارب الواقعية التي مر بها. من الأمثلة الرائعة على بودكاست المقابلات: بودكاست بلا فشل Without Fail يستكشف برنامج بلا فشل الذي يقدمه أليكس بلومبرج Alex Blumberg فكرة الفشل، وضيوف هذا البرنامج ليسوا جميعًا مشهورين، لكن النقطة المشتركة فيما بينهم هي تجارب الفشل التي مروا بها. بودكاست كيف حققت هذا مع جاي راز Guy Raz هو عبارة عن بودكاست مقابلات مع رواد الأعمال وأصحاب المشاريع التجارية الذين يتحدثون عن قصص نجاحهم، ومن بين الأشخاص الذين استُضيفوا في هذا البرنامج جيمي ويلز Jimmy Wales مؤسس موقع ويكيبيديا، وكاترينا ليك Katrina Lake من شركة Stitch Fix. بودكاست نيرديت Nerdette بودكاست نيرديت Nerdette هو بودكاست تستضيفه غريتا جونسن Greta Johnsen وتناقش فيه مجموعة من المواضيع المتعلقة بالأفلام والكتب والموسيقى، وغير ذلك من أشكال الترفيه؛ كما تغطي أي شيء تجده مثيرًا للاهتمام، بما في ذلك الجواسيس في الحروب والبرمجة والنساء في رحلات الفضاء. استضافت غريتا جونسن العديد من المشاهير، مثل توم هانكس Tom Hanks وستيفن كينغ Stephen King ومارجريت أتوود Margaret Atwood وتيا تايلور Tia Taylor وجورج مارتن George Martin وغيرهم. بودكاست فنجان لعل أشهر برنامج بودكاست عربي هو بودكاست "فنجان"، الذي يستضيف فيه عبد الرحمن أبو مالح مجموعة من الضيوف الذين يتخصص كل منهم في مجال معين؛ ويصف عبد الرحمن أبو مالح برنامجه بجملة "لا معايير ولا مواضيع محددة، لكن الأكيد أن هناك متعة وفائدة". استضاف عبد الرحمن على مدار السنوات الطويلة مجموعةً كبيرةً من الخبراء العرب، من بينهم ياسر الحزيمي المتخصص في تطوير الذات وعلم النفس البشريّة، وقد وصلت حلقته التي حملت عنوان "كيف تنجح العلاقات مع ياسر الحزيمي" إلى أكثر من 100 مليون مشاهدة على يوتيوب، لتحظى بذلك على الرقم القياسي من غينيس كأكثر حلقة بودكاست استماعًا في العالم. الشكل الثاني: البودكاست الفردي شكل آخر شائع للبودكاست، وهو البودكاست الفردي الذي يتحدث فيه شخص واحد طوال الوقت؛ وقد يكون هذا الشكل الأسهل من ناحية التحرير والمونتاج، لكن تقديم محتوى مقنع وذي قيمة للمستمع قد يكون أمرًا صعبًا في البودكاست الفردي. ومن أمثلة قنوات البودكاستات الفردية الناجحة، نذكر: قرية العجائب من الأمثلة العربية التي يمكننا طرحها بهذا الخصوص، قناة قرية العجائب على اليوتيوب، والتي يقدم حلقاتها بدر العلوي؛ إذ تُعَد قناته من أنجح القنوات التي تتحدث عن قصص الغموض والجرائم، فما من حلقة تقرييًا إلا وتجاوزت المليوني مستمع. يتبع بدر العلوي طريقة السرد الهادئ للقصص، مع التلاعب بنبرات صوته التي تضيف الحماسة إلى المستمع؛ فيسرد قصص الهروب من السجون، أو قصص سرقات البنوك، وكذلك قصص النجاة من الحوادث الصعبة ونحو ذلك من القصص التي تشد انتباه الكثير من المستمعين من كل الفئات العمرية. الشكل الثالث: مضيف أو عدة مضيفون ومجموعة من الضيوف إذا كنت تبحث عن نوع مختلف من البودكاست بأسلوب المقابلة، فيمكنك أيضًا تجربة وجود مضيف مع مجموعة من الأشخاص الضيوف، وعادةً ما يبدو هذا النوع من برامج البودكاست وكأنك تستمع إلى محادثة مشوقة. من عيوب هذا الأسلوب أنه قد يكون من الصعب العثور على عدة ضيوف لكل حلقة، لكن قد يكون المردود العالي دافعًا لتحمل هذا العناء؛ لذا خذ في الحسبان أنه يمكن أن يكون تنظيمًا صعبًا، لا سيّما إذا كنت من مقدمي البودكاست الجدد. ومن الأمثلة على برامج البودكاست من هذا النوع: بودكاست Go Time بودكاست Go Time هو بودكاست تقني يجمع لجنة من الخبراء الذين يناقشون الأخبار والمعلومات التقنية المستقبلية. يضم هذا البودكاست نفس مجموعة الأشخاص كل أسبوع، لكن في بعض الأحيان يستضيفون أشخاصًا مميزين آخرين، وعادةً ما يغطون موضوعات تخص المبرمجين وتصميم التطبيقات وغير ذلك. الشكل الرابع: البودكاست الثنائي قد يكون البودكاست الثنائي أحد أسهل أشكال البودكاست التي يمكن تقديمها، فهو لا يحتاج سوى شخصين يتبادلون الحديث فيما بينهما، فليس هناك ضيف ومحاور، بل هم نفس الشخصين يتقاسمون الوقت للحديث عن موضوعات مختلفة. من مزايا هذا الشكل هو أنه لا يوجد شخص واحد سيتحدث طوال الوقت، كما أنك لن تحتاج إلى البحث عن الضيوف واستدعائهم إلى برنامجك في كل مرة؛ لكن الجانب السلبي هو أنه يتعين على هذين الشخصين تقديم كل المحتوى، ولا يمكنهما استخلاص أي محتوى إبداعي من الضيوف. ومن الأمثلة على برامج البودكاست الثنائي: بودكاست That’s Weird بثت قناة That's Weird آخر حلقة لها في يناير 2020، وقد كان برنامج بودكاست ثنائي يتناول الكثير من الموضوعات المتنوعة، فقد تحدث مقدما البرنامج آشلي وكريستي عن نظريات المؤامرة والتاريخ والأحداث الغريبة التي حدثت حول العالم. ومن المواضيع التي تناولها البرنامج كانت وفاة جيفري ابشتاين Jeffrey Epstein، وكارثة تشيرنوبيل Chernobyl، وقضية القاتل المتسلسل تيد بندي Ted Bundy. الشكل الخامس: بودكاست لقصص حقيقية بمحتوى مكتوب Scripted تعتمد الكثير من برامج البودكاست على إبداع الضيوف والمحاورين، دون أن يكون هناك أي تحضير مسبق للنصوص التي ستُقدم في البرنامج، لكن هناك الشكل الآخر الذي يعتمد على سكريبت أو نصوص مكتوبة مسبقًا، وأول شكل من هذا النوع ستتحدث عنه هي القصص الحقيقية. في الواقع، يُعد برنامج Hardcore History الذي ذكرناه في الأعلى مثالًا على كل من البودكاست الفردي والبودكاست الذي يقدم قصصًا حقيقيةً بمحتوى تمت كتابته والبحث فيه مسبقًا. الشكل السادس: بودكاست لقصص خيالية بمحتوى مكتوب Scripted الشكل الآخر من برامج البودكاست ذات المحتوى المكتوب مسبقًا هي البرامج التي تقدم قصص خيالية، والتي تُسمى أيضًا برامج البودكاست الدرامية؛ وغالبًا ما تكون القصص التي تُقدم متسلسلة، بحيث تكون عبارة عن حلقات مترابطة يمكن للجمهور الاستماع إليها أسبوعيًا أو كل أسبوعين لمعرفة الأحداث الجديدة من القصة. يمكن أن تكون هذه النوعية من القصص فعالةً جدًا في كسب شغف الجمهور والحفاظ على اهتمامهم، لكن هذا النوع من المحتوى يتطلب قدرًا كبيرًا من العمل في كتابة وتسجيل الحلقات، خاصةً إذا كان يتضمن ممثلين صوتيين متنوعين. ومن الأمثلة على هذا الشكل من برامج البودكاست: بودكاست مغامرات فين كاسبين Finn Caspian الغريبة مغامرات فين كاسبين الغريبة هي قصة خيالية للأطفال؛ إذ يروي جوناثان ميسينجر Jonathan Messinger القصة بأكملها، لذا لم يكن هناك حاجة إلى وجود الكثير من الممثلين الصوتيين الآخرين. يصف ميسينجر البودكاست بأنه عبارة عن قصة تضم مجموعة من الألغاز؛ إذ ينشر حلقةً جديدةً أسبوعيًا يروي فيها قصة صبي يبلغ من العمر 8 سنوات وأصدقاؤه يتنقلون في الفضاء ويحلون الألغاز. الشكل السابع: مزيج مما سبق إذا دمجنا كل الأنواع السابقة معًا، فسنحصل على شكل جديد من أشكال البودكاست، بحيث يمكن أن يضم هذا البودكاست مجموعةً من الضيوف في بعض الأحيان، كما يمكن أن يقتصر في أحيان أخرى على ضيف واحد. ويمكن أيضًا إعداد محتوى سابق لحلقات معينة، أو ترك الأمر لإبداع الضيوف في حلقات أخرى. علاوةً على ذلك، قد يحتوي البودكاست على عدة عناصر مختلفة في حلقة واحدة، فقد تبدأ الحلقة بمحاور منفرد يتحدث لفترة معينة، ثم يستقبل مجموعة من الضيوف الذين يكملون الحلقة. هذا النوع من البودكاست المختلط هو مزيج حر يمكن تشكيله على حسب احتياجات مقدم البودكاست. بمعنى آخر، يتيح لك هذا النوع اختيار ما تريد فعله بين أسبوع وآخر. فيما يلي مثال على البودكاست المختلط: بودكاست جوكو Jocko Podcast يعتمد بودكاست جوكو على تنسيق مميز، ففي بداية الحلقة، يقوم جندي البحرية السابق جوكو ويلينك Jocko Willink بمراجعة كتاب يتعلق بالجيش؛ إذ تتمحور الحلقة حول القيادة والجيش واللياقة البدنية والصحة العامة. في الجزء الأخير من الحلقة، يجيب جوكو ويلينك Jocko Willink والمحاور الآخر معه في الحلقة إيكو تشارلز Echo Charles على أسئلة المستمعين، كما قد يستقبل ويلينك ضيوفًا آخرين في بعض الحلقات. خاتمة بهذا نكون قد ذكرنا أنواع البودكاست المتاحة بعالم البودكاست، وسنتعابع في المقال التالي من هذا الدليل شرح كيفية اختيار الأدوات المناسبة لصناعة بودكاست. ترجمة -وبتصرّف- للمقال How to Start a Podcast and Make Money لصاحبه Ryan Robinson. اقرأ أيضًا المقال السابق: مدخل إلى عالم صناعة البودكاست إنشاء المحتوى وصناعة الآراء: التدوين والبودكاست الكلمات المفتاحية وأنواع مطابقتها دليل البحث عن الكلمات المفتاحية للمسوق بالمحتوى
-
منذ صياغة مصطلح شبكة الويب العالمية World Wide Web عام 1990، تحولت مواقع الويب من مجرد صفحات HTML ثابتة إلى تطبيقات متقدمة تؤدي وظائف فعالة ومعقدة للغاية. يتوفر بين أيدينا اليوم آلاف الموارد الرقمية والمطبوعة التي تشرح لنا بالتفصيل كيفية تطوير أنواع مختلفة من تطبيقات الويب. كما أن بيئات التطوير ذكية إلى الحد الذي يمكّنها من اكتشاف وإصلاح العديد من الأخطاء التي عانى المطورون فيما مضى كثيرًا لإصلاحها. علاوةً على ذلك، هناك الكثير من منصات التطوير المختلفة التي تحوّل بسهولة صفحات الويب الثابتة البسيطة إلى تطبيقات تفاعلية. تشترك جميع أنماط وممارسات ومنصات التطوير هذه في عوامل مشتركة، وجميعها معرضة لأخطاء متشابهة ناجمة عن طبيعة تطبيقات الويب. الهدف من نصائح تطوير الويب التي نستعرضها في هذا المقال هو تسليط الضوء على أهم الأخطاء الشائعة التي يقع بها مطورو الويب في مراحل مختلفة من العمل، لذا فإن فهمك الجيد لهذه الأخطاء سيجنّبك الوقوع بها، ويساعدك لتصبح مطورًا أفضل. يتناول هذا المقال بعض المواضيع العامة المشتركة بين جميع مطوري الويب، مثل التحقق Validation والأمان Security وقابلية التوسع Scalability وتحسين محركات البحث SEO. وبالتأكيد فإنك لست مضطرًا إلى التقيد بالأمثلة الواردة في هذا المقال، فالهدف منها تقديم فكرة عن المشكلات المحتملة التي قد يواجهها مطورو الويب والانتباه لها عند تطوير موقعك. الخطأ الأول: عدم التحقق من صحة المدخلات Validation إن التحقق من صحة المدخلات من جانبي العميل والخادم أمر ضروري لا غنى عنه، وجميعنا سمع بالنصيحة الذهبية «لا تثق أبدًا في البيانات التي يدخلها المستخدم» ومع ذلك، فإن الأخطاء الناجمة عن التحقق من صحة المدخلات هي أخطاء متكررة الحدوث. من العواقب الشائعة لهذا الخطأ هو حقن إس كيو إل SQL Injection، إذ يتواجد هذا الخطأ سنويًا في قائمة أواسب OWASP التي تحتوي على أهم 10 مخاطر في أمن تطبيقات الويب. لذا توفر معظم أطر عمل تطوير الواجهات الأمامية قواعد تحقق مميزة وسهلة الاستخدام، كما تستخدم معظم أطر عمل تطوير الواجهات الخلفية تعليقات توضيحية بسيطة لضمان التزام البيانات المقدمة بالقواعد المتوقعة. قد تستغرق عملية التحقق وقتًا طويلًا، ولكن مع ذلك، يجب أن يأخذ التحقق من صحة الإدخال حقه من الشيفرات البرمجية لتطبيقك، ويحب ألا تتجاهل ذلك أبدًا لتحقيق أمان مواقع الويب. الخطأ الثاني: الاستيثاق Authentication دون الحصول على تصريح Authorization قبل أن نخوض عميقًا في شرح هذا الخطأ، لا بُدّ من شرح المصطلحين السابقين وتوضيح كل منهما: الاستيثاق Authentication: يُقصد به التحقق من أن الشخص الذي يدخل البيانات هو مستخدم محدد، من خلال تقديم بيانات الأمان الخاصة به على النحو الصحيح، مثل كلمة المرور، والإجابة على أسئلة الأمان، ومسح بصمات الأصابع، ونحو ذلك. التصريح Authorization: هو التأكد من أن مستخدمًا معينًا لديه حق الوصول إلى مورد محدد، أو أن لديه التصريح لتنفيذ إجراء ما. ويمكن اختصار الأمر بأن الاستيثاق هو التحقق من شخصية الكائن، بينما التصريح هو تحديد ما يمكن لهذا الكائن فعله. أما لتوضيح الخطأ الذي يحدث هنا، فدعونا نأخذ المثال التالي: ضع في الحسبان أن متصفحك يحتفظ بمعلومات المستخدم المسجلة حاليًا كما يلي: { username:'elvis', role:'singer', token:'123456789' } عند تغيير كلمة المرور، يجري تطبيقك طلب من النوع POST كما يلي: POST /changepassword/:username/:newpassword في التابع /changepassword، يمكنك التحقق من تسجيل دخول المستخدم وعدم انتهاء صلاحية المفتاح token، ومن ثم يمكنك إيجاد ملف تعريف المستخدم بناءً على المعامل :username ومن ثم تغير كلمة مرور المستخدم. لقد تحققت من أن المستخدم سجل دخوله بطريقة صحيحة، ومن ثم عملت على تنفيذ طلبه بتغيير كلمة المرور الخاصة به. إلى هنا تبدو الأمور وكأنها على ما يُرام، أليس كذلك؟ للأسف الجواب هو لا، وإليك التوضيح. في هذه المرحلة، من المهم التحقق من أن المستخدم الذي ينفذ الإجراء والمستخدم الذي تغيرت كلمة مرور حسابه هو الشخص نفسه، إذ يمكن التلاعب بالمعلومات الموجودة في المتصفح، ويمكن لأي مستخدم ذي خبرة تحديث اسم المستخدم username:'elvis' بسهولة إلى اسم المستخدم username:'Administrator' باستخدام أدوات المتصفح المضمّنة فيه. لذا فإننا في هذه الحالة ركزنا فقط على الاستيثاق Authentication معتمدين على أن المستخدم قد قدم اعتماديات الأمان. يمكننا أيضًا إضافة التحقق من أنه لا يمكن تنفيذ تابع /changepassword إلا من قِبل المستخدمين الذين تجاوزوا عملية الاستيثاق Authentication. ومع ذلك، ما تزال الخطوات غير كافية لحماية المستخدمين من محاولات الاختراق الضارة. يجب أن تحرص على أن تتحقق من الهوية الفعلية للشخص الذي يقدم الطلب، وكذلك محتوى الطلب ضمن تابع /changepassword إضافةً إلى حصول المستخدم على التصريح Authorization المناسب للطلب، مع التأكد من أن المستخدم لا يمكنه تغيير سوى بياناته. الاستيثاق Authentication والتصريح Authorization هما وجهان لعملة واحدة، لذا لا تعاملهما على نحو منفصل أبدًا. الخطأ الثالث: عدم الجاهزية للتوسع في ظل عالمنا اليوم الذي يتسم بالتطور السريع، ومسرعات الأعمال startup accelerators والوصول العالمي السريع للأفكار المميزة، تسعى العديد من الشركات إلى طرح الحد الأدنى من منتجاتها MVP في السوق في أقرب وقت ممكن، لذا فإن ضغط الوقت المستمر هذا يدفع حتى فرق تطوير الويب الجيدة إلى تجاهل بعض المشكلات أحيانًا. يُعَد التوسع من الأهداف الأساسية للكثير من فرق العمل، وهنا تبرز فكرة مفهوم الحد الأدنى من المنتج MVP، لكن إذا بالغت في إطلاق أقل حد ممكن من منتجك، فإنك ستقع ضحيةً للعديد من المشكلات الخطيرة. لسوء الحظ، لا يكفي اختيار قاعدة بيانات وخادم ويب قابليْن للتطوير، أو فصل مكونات التطبيق على خوادم مستقلة، فهناك الكثير من التفاصيل الأخرى التي يجب أن تهتم بها لكي تتجنب إعادة بناء أجزاء مهمة من تطبيقك فيما بعد، وهو ما يصبح مشكلةً كبيرةً في تطوير الويب. لنفترض مثلًا أنك اخترت تخزين صور الملفات الشخصية لمستخدمي تطبيقك مباشرةً على خادم الويب، والذي يُعد حلًا جيدًا للغاية، إذ يمكن للتطبيق الوصول إلى الملفات بسرعة، مع توفر طرق لمعالجة الملفات في كل منصة تطوير، كما يمكنك تقديم هذه الصور كمحتوى ثابت، مما يؤدي إلى الحد الأدنى من التحميل على تطبيقك. ولكن ما الذي سيحدث عندما ينمو تطبيقك وتضطر حينها إلى استخدام عدد من خوادم الويب من خلال موزع الأحمال Load balancer، حينها ستفشل عملية التوسع لسبب بسيط مثل صور الملف الشخصي، على الرغم من التوسيع الجيد الذي أجريته على مساحة تخزين قاعدة البيانات وخوادم حالة الجلسة وخوادم الويب. ستضطر في الحالة السابقة إلى تنفيذ نوع ما من خدمة مزامنة الملفات، والتي ستؤدي إلى تأخير في التحميل، ناهيك عن أخطاء 404 التي ستتسبب بها، أو قد تجد حلًا آخر لتوزيع الملفات على خوادم الويب لديك. لقد كان بالإمكان تجاوز كل المشكلات السابقة من خلال استخدام موقع تخزين ملفات مشترك أو قاعدة بيانات أو أي حل آخر للتخزين السحابي. ربما كان بإمكانك تنفيذ كل ذلك خلال بضعة ساعات عمل إضافية، والأمر يستحق ذلك المجهود. الخطأ الرابع: عدم تحسين محركات البحث SEO بطريقة صحيحة أحد أهم الأسباب وراء فشل تحسين صفحات الويب وملاءمتها مع سياسات تحسين محركات البحث SEO هو التضليل الذي يمارسه بعض الأشخاص الذين ينتحلون صفة خبراء تحسين محركات البحث. يظن الكثير من مطوري الويب أن لديهم المعرفة الكافية عن مجال تحسين محركات البحث SEO، وأن الأمر ليس معقدًا ولا يحتاج إلى خبرات متخصصة، ولكن هذا ليس صحيحًا، إذ يتطلب إتقان تحسين محركات البحث قضاء وقت طويل في البحث عن أفضل الممارسات والقواعد المتغيرة باستمرار حول كيفية فهرسة صفحات الويب في محركات البحث جوجل Google وبينغ Bing وياهو Yahoo. إذا لم تجرب بنفسك باستمرار وتعمل على تتبع النتائج وتحليلها بدقة، فكن على يقين بأنك لست خبيرًا في تحسين محركات البحث SEO، ويجب ألا تدّعي أنك متخصص في هذا المجال. تحسين محركات البحث ليس مجرد إعداد محتوى جيد، وإضافة الوسوم tags والكلمات المفتاحية والبيانات الوصفية meta-data، ونصوص بديلة عن الصور، وإعداد خريطة الموقع ونحو ذلك. بل يشمل أيضًا التخلص من المحتوى المتكرر، والحصول على بنية موقع يمكن لمحركات البحث الزحف بداخلها لفهرستها، مع زيادة سرعة تحميل صفحات الموقع، وتربيط داخلي جيد. كما هو الحال مع قابلية التوسع، يجب أن تفكر في تحسين محركات البحث منذ اللحظة التي تبدأ فيها بإنشاء تطبيقك على الويب، لأنك إن أجلت الأمر إلى أوقات متأخرة، فقد تجد أن الأمر يتطلب إعادة برمجة تطبيقك بالكامل. الخطأ الخامس: التأخر في معالجة الطلبات أحد أفضل الأمثلة على هذا الخطأ هو إرسال بريد إلكتروني بناءً على إجراء يقوم به المستخدم، إذ يعتقد الكثير من المطورين أن الحل الأمثل هو الاتصال عبر بروتوكول SMTP. وبروتوكول SMTP هو اختصار لنقل البريد البسيط الآمن، وهو بروتوكول اتصال يُستخدم لإرسال رسائل بريد إلكتروني من الخوادم إلى العملاء مباشرةً، مع ضمان سلامة البيانات وسريتها. ومع ذلك، هناك بعض المشكلات التي ستواجهها مع هذه الطريقة، فعلى سبيل المثال، لنفترض أنك أنشأت متجرًا لبيع الكتب عبر الإنترنت، وتتوقع أن تبدأ مشروعك بتلقي بضعة مئات الطلبات يوميًا، لذا يمكنك إرسال رسائل تأكيد للمستخدمين عبر البريد الإلكتروني في كل مرة يقوم فيها المستخدم بإرسال طلب لشراء كتاب. قد تكون هذه الطريقة مجدية في البداية، لكن ما الذي سيحدث عندما يتسع نشاطك التجاري، وتتلقى فجأةً آلاف الطلبات التي سيؤدي كل منها إلى إرسال رسائل تأكيد عبر البريد الإلكتروني؟ سيؤدي حينها إلى تأخر عمليات تأكيد الطلبات، أو سيتراجع وقت استجابة تطبيقك إلى حد كبير، لأنه سيتعامل مع رسائل البريد الإلكتروني عوضًا عن المستخدمين. يجب التعامل مع أي إجراء يستهلك الوقت أو يضيف عبئًا على المعالج من خلال العمليات خارج تطبيقك، بينما يعمل تطبيقك على إصدار طلبات HTTP في أقرب وقت. في هذه الحالة، يجب أن يكون لديك خدمة بريد خارجية تستلم الطلبات وترسل الإشعارات إلى المستخدمين. الخطأ السادس: عدم تحسين استخدام حيز النطاق التراسلي Bandwidth تجري معظم عمليات التطوير والاختبار في بيئة تجريبية على شبكة محلية، لذلك عندما تعمل على تنزيل 5 صور خلفية يبلغ حجم كل منها 3 ميجابايت عبر شبكتك المحلية السريعة، فقد لا تكتشف أي مشكلة تتعلق بسرعة التحميل، ولكن عندما يبدأ المستخدمون بتحميل صفحة رئيسية بحجم 15 ميجابايت عبر شبكة 3G على هواتفهم الذكية، ستبدأ حينها بتلقي العديد من شكاوى العملاء. سيساعدك تحسين استخدام حيز النطاق التراسلي Bandwidth على تعزيز أداء تطبيقك بدرجة كبيرة، ولكي تتمكن من الحصول على هذا التعزيز، ستحتاج إلى إجراء بعض الحيل التي يستخدمها العديد من مطوري الويب الخبراء، ومن الأمثلة على هذه الحيل: تصغير minification كامل نصوص جافا سكريبت. تصغير كامل نصوص CSS. ضغط compression نصوص HTTP من الخادم. تحسين حجم الصور ودقتها. الخطأ السابع: عدم تهيئة التطبيق لأحجام شاشات مختلفة لقد كان التصميم المتجاوب Responsive design مع أحجام شاشات مختلفة موضوعًا مهمًا في السنوات الأخيرة، إذ أدى ازدياد استخدام الهواتف الذكية ذات الأحجام المختلفة إلى ظهور العديد من الطرق الجديدة للوصول إلى المحتوى عبر الإنترنت، وقد رافقت هذه الطرق الجديدة مجموعة من مشكلات تطوير الويب. يتزايد يوميًا عدد زيارات المواقع الإلكترونية التي تأتي من الهواتف الذكية والأجهزة اللوحية، لذا من أجل ضمان التنقل السلس في صفحات موقعك الإلكتروني، والوصول إلى كامل المحتوى، يجب أن تتيح للمستخدمين الوصول إلى موقعك من جميع أنواع الأجهزة. هناك العديد من الأنماط والممارسات التي يمكن اتباعها لبناء تطبيقات ويب متجاوبة مع مختلف أنواع الأجهزة. الأكثر شهرة بين أطر العمل هذه هو إطار العمل بوتستراب Bootstrap، وهو إطار عمل مجاني ومفتوح المصدر مُعتمَد من كل منصة تطوير رئيسية، لذا كل ما عليك فعله هو الالتزام بأنماط وممارسات Bootstrap عند إنشاء تطبيقك، وستحصل على تطبيق ويب متجاوب دون أي مشكلة. لاستخدام إطار العمل بوتستراب Bootstrap بكفاءة عالية، يُفضَّل أن يكون لديك خبرة جيدة في كيفية التعامل مع لغات تطوير الويب الأساسية، مثل HTML و CSS و JavaScript، إضافةً إلى إدراك جيد لمفهوم التصميم المتجاوب. إذا لم يكن لديك معرفة كافية بها، فيمكنك التعرف عليها في المسار الأول من دورة تطوير واجهات المستخدم التي تقدمها أكاديمية حسوب. دورة تطوير واجهات المستخدم ابدأ عملك الحر بتطوير واجهات المواقع والمتاجر الإلكترونية فور انتهائك من الدورة اشترك الآن الخطأ الثامن: عدم التوافق بين المتصفحات تخضع عملية التطوير في كثير من الحالات إلى جدول زمني ضيق، إذ يسعى المطورون إلى إصدار التطبيقات في أسرع وقت ممكن، وحتى مطورو الويب الجيدون غالبًا ما يركزون على تقديم الوظائف أكثر مما يركزون على التصميم، صحيح أن معظم المطورين لديهم عدد من المتصفحات المثبتة على أجهزتهم، مثل المتصفح كروم Chrome وفايرفوكس Firefox وغيرها.. لكنهم في معظم الحالات يستخدمون برنامجًا واحدًا فقط من هذه البرامج. من الممارسات الشائعة بين المطورين هي استخدام متصفح واحد أثناء التطوير، وعندما يقترب التطبيق من الاكتمال، يبدأ المطورون في اختباره على متصفحات أخرى، وهو أمر منطقي تمامًا، على افتراض أن لديك ما يكفي من الوقت لاختبار وإصلاح المشكلات التي تظهر في هذه المرحلة. ومع ذلك، هناك بعض النصائح التي يمكنك اتباعها في تطوير الويب، والتي يمكن أن توفر لك وقتًا كبيرًا عندما يصل تطبيقك إلى مرحلة الاختبار على المتصفحات، وهي: صحيح أنك لست بحاجة إلى اختبار التطبيق على جميع المتصفحات في أثناء عملية التطوير، إذ يستغرق الأمر وقتًا طويلاً ولن يكون فعالًا، لكن لا يعني ذلك أنه لا يمكن تبديل المتصفحات بين حين وآخر، إذ يمكنك استخدام متصفحًا مختلفًا كل يومين، وستتعرف على الأقل على المشكلات الرئيسية في وقت مبكر من مرحلة التطوير. كن حذرًا عند إلغاء دعم تشغيل تطبيقك على النسخ القديمة من المتصفحات، فهناك العديد من المنظمات التي قد تكون بطيئة في اعتماد البرامج الجديدة، إذ يمكن لهذه المنظمات أن تضم آلاف المستخدمين الذين يعملون هناك والذين يحتاجون إلى الوصول إلى تطبيقك، ولا يمكنهم تثبيت أحدث متصفح مجاني لأسباب الأمن الداخلي وسياسات العمل في المنظمة. تجنب التعليمات البرمجية التي تكون خاصة بمتصفح واحد، بل ابحث عن حلول متوافقة مع جميع المتصفحات. الخطأ التاسع: عدم التخطيط لقابلية النقل Portability الافتراضات العشوائية هي رأس كل المشكلات، وعند الحديث عن قابلية النقل Portability، فإن ذلك ينطبق عليها أكثر من أي شيء آخر. والمقصود بقابلية النقل هو القدرة على تشغيل التطبيق على أي بيئة أو عتاد أو نظام تشغيل. لعلك صادفت الكثير من المشكلات في تطوير الويب، مثل تحديد مسارات الملفات أو قيم أخرى مثل السلاسل النصية المخصصة للاتصال بقاعدة البيانات بشكل ثابت داخل الشيفرة البرمجية، أو افتراض أن مكتبة معينة ستكون متاحة على الخادم الذي سيتضيف التطبيق، وغير ذلك من المشكلات. من الخطأ افتراض أن بيئة تطوير التطبيق (خلال مرحلة برمجته) ستتوافق مع بيئة الإنتاج (بعد الانتهاء منه ونشره للمستخدمين)، والتطبيق المثالي هو التطبيق الذي يحتاج الحد الأدنى من الصيانة والإصلاح maintenance-free، لذلك: تأكد من إمكانية توسيع نطاق تطبيقك وتشغيله على بيئة خوادم متعددة عبر توزيع الأحمال. توفير ملفات إعداد configuration file بسيطة وواضحة، وربما في ملف إعداد واحد. تعامل مع الحالات الاستثنائية عندما لا تكون إعدادات خادم الويب كما يجب. الخطأ العاشر: استخدامات غير فعالة لواجهة RESTful API قد يستخدم المطورون حلولًا غير مجدية لا تهدف إلى تحقيق أي فائدة ويظنون أنها ستعمل بشكل جيد، لكنها تنتهي بوقوع مشكلات أكبر، على سبيل المثال احتلت واجهات برمجة التطبيقات المعتمدة على فلسفة RESTful APIs مكانة عالية في تطوير الويب، حتى أن كل تطبيق ويب تقريبًا يعتمد على إحدى أنواع خدمات REST، سواءً للاستخدام الداخلي أو بالتكامل مع النظام الخارجي، لكن ما يزال هناك الكثير من أنماط وخدمات RESTful معطلة ولا تلتزم بالممارسات المتوقعة. لكن ثمة خطآن شائعان عند كتابة RESTful API، هما: استخدام أفعال أو توابع HTTP Verbs خاطئة: كما هو الحال مثلًا عند استخدام طريقة الطلب GET لكتابة البيانات، إذ أن طريقة الطلب GET في بروتوكول HTTP تُستخدم فقط لجلب البيانات وليس للتعديل عليها، وهي مصممة لتكون ثابتة وآمنة، لذا فإنه بغض النظر عن عدد المرات التي تُستخدم فيها طريقة GET لاستدعاء البيانات من نفس المورد، فإن الاستجابة ستكون دائمًا هي نفسها، ويجب ألا يحدث أي تغيير في حالة التطبيق. عدم إرسال رموز حالة status codes صحيحة: ومن أفضل الأمثلة على هذا الخطأ الشائع هو إرسال رسائل خطأ مع رمز إجابة 200، إذ يشير هذا الرمز في الأساس إلى أن كل شيء على ما يُرام. HTTP 200 OK { message:'there was an error' } يجب إرسال الرمز HTTP 200 OK عندما لا ينتج عن الطلب أي خطأ، أما في حالة وجود خطأ ما، فيجب إرسال الرموز 400، 401، 500 أو أي رمز حالة آخر مناسب للخطأ الذي حدث. في الختام يُعد تطوير الويب مصطلحًا واسعًا يمكن أن يشمل الكثير من المجالات، مثل تطوير المواقع الإلكترونية، أو خدمات الويب، أو تطبيقات الويب المعقدة. الهدف الرئيسي من هذا المقال هو تذكيرك بأنه يجب دائمًا الانتباه إلى الاستيثاق Authentication والتصريح Authorization، والتخطيط لإمكانية التوسع، وعدم افتراض الأشياء بسرعة، إضافةً إلى تكون على استعداد دائم للتعامل مع قائمة طويلة من مشكلات تطوير الويب التي يمكن أن تواجهها. ترجمة -وبتصرّف- للمقال The 10 Most Common Mistakes Web Developers Make: A Tutorial for Developers لصاحبه Demir Selmanovic. اقرأ أيضًا مدخل إلى OAuth 2 ما أنواع الأخطاء التي تظهر على موقع إلكتروني، وكيف نتعامل معها؟ الأخطاء الشائعة في تصميم المواقع الإلكترونية والتي تضر بتحسين محركات البحث الأخطاء القاتلة الواجب على مصممي مواقع الإنترنت تجنبها الاستيثاق عبر token authentication في تطبيق Node.js و React
-
عبدالرحيم صبري بدأ بمتابعة محمد ناولو2
-
والآن بعد أن تعرفنا على كيفية استرجاع البيانات باستخدام الاستعلامات queries وكيفية إرسال البيانات باستخدام الطفرات mutations، أصبح بإمكاننا تجربة شيء أكثر صعوبة. سنتعلم في هذا المقال كيفية إنشاء نظام لإضافة التعليقات comments والإعجابات likes. إنشاء تطبيق حديث باستخدام جانغو Django وفيو Vue - الجزء الأول إنشاء تطبيق حديث باستخدام جانغو Django وفيو Vue - الجزء الثاني إنشاء تطبيق حديث باستخدام جانغو Django وفيو Vue - الجزء الثالث إنشاء نظام التعليقات Comments لنبدأ بقسم التعليقات، لكن قبل الخوض عميقًا في الشيفرات البرمجية، هناك بعض الأشياء التي يجب تذكرها. أولًا، ولأسباب الحماية، يمكن فقط للمستخدمين الذين سجلوا دخولهم إضافة التعليقات. الأمر الثاني، يمكن لكل مستخدم ترك تعليقات متعددة، لكن كل تعليق لا يمكن أن يتبع إلا لمستخدم واحد، أي يمكن أن نجد تعليقات كثيرة لمستخدم واحد، لكن لا يمكن أن نجد تعليق يتبع لعدد من المستخدمين. أمر آخر يمكن تجدر الإشارة له وهي أن كل مقال يمكن أن يحتوي عدة تعليقات، لكن كل تعليق يتبع لمقال واحد فقط. وأخيرًا، يجب أن يوافق المشرف على التعليق قبل ظهوره على صفحة المقال. ما الذي يظهر للمستخدم في حال عدم تسجيل الدخول: والآن بعد تسجيل الدخول: إعداد الواجهة الخلفية مع أخذ الملاحظات السابقة في الحسبان، لنبدأ بإنشاء نموذج للتعليقات. يُفترض أن تكون الشيفرات البرمجية التالية واضحةً بالنسبة لك إذا كان لديك معرفة جيدة بكيفية العمل مع إطار العمل جانغو. # Comment model class Comment(models.Model): content = models.TextField(max_length=1000) created_at = models.DateField(auto_now_add=True) is_approved = models.BooleanField(default=False) # Each comment belongs to one user and one post user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True) post = models.ForeignKey(Post, on_delete=models.SET_NULL, null=True) والآن تابع وطبِّق التغييرات التي أجريتها على النماذج. انتقل إلى الطرفية terminal وفعِّل الأوامر التالية: python manage.py makemigrations python manage.py migrate ستحتاج أيضًا إلى إعداد GraphQL في الواجهة الخلفية. يمكنك إضافة نمط بيانات جديد يسمى CommentType لتمثيل التعليقات والتعامل معها ضمن واجهة GraphQL على النحو التالي: class CommentType(DjangoObjectType): class Meta: model = models.Comment الآن بالنسبة للطفرة mutation، لاحظ أن هناك ثلاثة أشياء يحتاج جانغو إلى معرفتها لإضافة تعليق، وهي محتوى التعليق، والمستخدم الذي يريد إضافة هذا التعليق، والمقال الذي يريد ترك التعليق عليه. سنكتب الكود التالي لإضافة تعليق جديد باستخدام GraphQL: class CreateComment(graphene.Mutation): comment = graphene.Field(types.CommentType) class Arguments: content = graphene.String(required=True) user_id = graphene.ID(required=True) post_id = graphene.ID(required=True) def mutate(self, info, content, user_id, post_id): comment = models.Comment( content=content, user_id=user_id, post_id=post_id, ) comment.save() return CreateComment(comment=comment) class Mutation(graphene.ObjectType): . . . create_comment = CreateComment.Field() تذكر إضافة صنف CreateComment داخل صنف Mutation. إعداد الواجهة الأمامية لإعداد الواجهة الأمامية، لننتقل إلى الملف Post.vue حيث المكان الذي تظهر فيه التعليقات. يُرجى ملاحظة أن هناك بعض التعليمات البرمجية محذوفة في الأمثلة التالية، بهدف ألا تكون الشيفرات طويلة جدًا، لكن إذا كنت تريد الحصول على التعليمات البرمجية الكاملة، فيمكنك تنزيل التعليمات المصدرية من هنا. <script> import { POST_BY_SLUG } from "@/queries"; import CommentSectionComponent from "@/components/CommentSection.vue"; export default { name: "PostView", components: { CommentSectionComponent }, data() { return { postBySlug: null, comments: null, userID: null, }; }, computed: { // Filters out the unapproved comments approvedComments() { return this.comments.filter((comment) => comment.isApproved); }, }, async created() { // Get the post before the instance is mounted const post = await this.$apollo.query({ query: POST_BY_SLUG, variables: { slug: this.$route.params.slug, }, }); this.postBySlug = post.data.postBySlug; this.comments = post.data.postBySlug.commentSet; }, }; </script> الملف query.js: export const POST_BY_SLUG = gql` query ($slug: String!) { postBySlug(slug: $slug) { . . . commentSet { id content createdAt isApproved user { username avatar } numberOfLikes likes { id } } } } `; بدايةً، يمكنك في الخطاف create() استرجاع المقال المطلوب، إضافةً إلى التعليقات باستخدام الاستعلام POST_BY_SLUG الذي يظهر في الأعلى. ستحتاج بعد ذلك في خاصية computed إلى تصفية التعليقات التي لم يوافق عليها المشرف. وأخيرًا، ستعمل على تمرير التعليق ومعرف المنشور post ID ومعرف المستخدم user ID إلى CommentSectionComponent. الملف CommentSectionComponent.vue: <template> <div class="home"> . . . <!-- Comment Section --> <!-- Pass the approved comments, the user id and the post id to the comment section component --> <comment-section-component v-if="this.approvedComments" :comments="this.approvedComments" :postID="this.postBySlug.id" :userID="this.userID" ></comment-section-component> </div> </template> لنلقِ الآن نظرة عميقة على مكون قسم التعليقات. يحتوي هذا المكون على قسمين، القسم الأول هو نموذج يسمح للمستخدم بترك التعليقات، والذي يظهر فقط عندما يسجل المستخدم دخوله، والقسم الثاني هو قائمة بالتعليقات الموجودة. الملف CommentSection.vue <script> import { SUBMIT_COMMENT } from "@/mutations"; import CommentSingle from "@/components/CommentSingle.vue"; import { useUserStore } from "@/stores/user"; export default { components: { CommentSingle }, name: "CommentSectionComponent", setup() { const userStore = useUserStore(); return { userStore }; }, data() { return { commentContent: "", commentSubmitSuccess: false, user: { isAuthenticated: false, token: this.userStore.getToken || "", info: this.userStore.getUser || {}, }, }; }, props: { comments: { type: Array, required: true, }, postID: { type: String, required: true, }, userID: { type: String, required: true, }, }, async created() { if (this.user.token) { this.user.isAuthenticated = true; } }, methods: { submitComment() { if (this.commentContent !== "") { this.$apollo .mutate({ mutation: SUBMIT_COMMENT, variables: { content: this.commentContent, userID: this.userID, postID: this.postID, }, }) .then(() => (this.commentSubmitSuccess = true)); } }, }, }; </script> من المُفترض أنك على معرفة جيدة بكيفية استخدام الوحدة Pinia التي ثبتناها في المقال السابق للتحقق مما إذا كان المستخدم قد سجل دخوله، وكيفية استخدام props لتمرير المعلومات بين المكونات المختلفة، لذلك سنتخطى هذه الأمور وسنركز على تابع SubmitComment(). عند استدعاء هذا التابع، فإنها ستختبر ما إذا كان التعليق فارغًا، وإذا لم يكن كذلك، فسوف تستخدم طفرة SUBMIT_COMMENT لإنشاء تعليق جديد. تُعرّف طفرة SUBMIT_COMMENT كالتالي: الملف mutations.js: export const SUBMIT_COMMENT = gql` mutation ($content: String!, $userID: ID!, $postID: ID!) { createComment(content: $content, userId: $userID, postId: $postID) { comment { content } } } `; الشيفرة التالية هي كود HTML ضمن ملف CommentSection.vue وهي المسؤولة عن عرض قسم التعليقات في واجهة المستخدم. لاحظ أننا استخدمنا مكونًا آخر في نهاية الشيفرة وهو CommentSingle.vue وذلك لعرض تعليق واحد. قسم HTML من ملف CommentSection.vue <template> <div class=". . ."> <p class="font-bold text-2xl">Comments:</p> <!-- If the user is not authenticated --> <div v-if="!this.user.isAuthenticated"> You need to <router-link to="/account">sign in</router-link> before you can leave your comment. </div> <!-- If the user is authenticated --> <div v-else> <div v-if="this.commentSubmitSuccess" class=""> Your comment will show up here after is has been approved. </div> <form action="POST" @submit.prevent="submitComment"> <textarea type="text" class=". . ." rows="5" v-model="commentContent" /> <button class=". . .">Submit Comment</button> </form> </div> <!-- List all comments --> <comment-single v-for="comment in comments" :key="comment.id" :comment="comment" :userID="this.userID" > </comment-single> </div> </template> والآن دعونا نلقي نظرة عميقة على الملف CommentSingle.vue قسم HTML من ملف CommentSingle.vue: <template> <div class="border-2 p-4"> <div class="flex flex-row justify-start content-center items-center space-x-2 mb-2" > <img :src="`http://127.0.0.1:8000/media/${this.comment.user.avatar}`" alt="" class="w-10" /> <p class="text-lg font-sans font-bold"> {{ this.comment.user.username }} </p> </div> <p> {{ this.comment.content }} </p> </div> </template> قسم جافا سكريبت من ملف CommentSingle.vue: <script> export default { name: "CommentSingleComponent", data() { return { . . . }; }, props: { comment: { type: Object, required: true, }, userID: { type: String, required: true, }, }, }; </script> إنشاء نظام التفاعل بالإعجاب Like فيما يتعلق بنظام الإعجاب Like، فهناك أيضًا بعض الأمور التي يجب أخذها في الحسبان. بدايةً، يجب على المستخدم تسجيل الدخول للتفاعل والإعجاب بالتعليق، كما هو الحال مع كتابة التعليقات، لكن يمكن لأي مستخدم رؤية عدد الإعجابات حتى وإن لم يكن مسجلًا. الأمر الثاني هو أنه يمكن لكل مستخدم وضع إعجاب واحد فقط لكل مقال، وسيؤدي النقر فوق زر "أعجبني" مرةً أخرى إلى إزالة الإعجاب الأول. وأخيرًا، يمكن للمقال الواحد الحصول على إعجابات عديدة من مستخدمين مختلفين. إعداد الواجهة الخلفية لنبدأ مرة أخرى بالنماذج models. بما أنه يمكن لكل مقال الحصول على العديد من الإعجابات من عدة مستخدمين، ويمكن لكل مستخدم إضافة العديد من الإعجابات للعديد من المقالات، فإن هذه تُعَد علاقة متعدد إلى متعدد بين المنشور post والمستخدم user. لاحظ أيضًا أننا في هذه المرة أنشأنا دالة get_number_of_likes() لتحصيل إجمالي عدد الإعجابات. تذكر تطبيق هذه التغييرات على قاعدة البيانات باستخدام الأوامر التي تحدثنا عنها سابقًا. # Post model class Post(models.Model): . . . # Each post can receive likes from multiple users, and each user can like multiple posts likes = models.ManyToManyField(User, related_name='post_like') . . . def get_number_of_likes(self): return self.likes.count() ومن ثم نضيف الأنواع types والطفرات mutations. class PostType(DjangoObjectType): class Meta: model = models.Post number_of_likes = graphene.String() def resolve_number_of_likes(self, info): return self.get_number_of_likes() لاحظ التعليمة self.get_number_of_likes() في السطر 8 التي تستدعي الدالة get_number_of_likes() التي عرّفتها في النموذج. ولإضافة إعجاب إلى منشور، يجب عليك معرفة كل من معرّف id المقال، ومعرّف id المستخدم الذي يريد التفاعل بإعجاب مع هذا المقال. لاحظ الكود المكتوب من السطر 11 إلى السطر 14، إذا كان المنشور يحتوي على إعجاب من المستخدم الحالي، فسيؤدي الضغط على زر الإعجاب إلى إزالة الإعجاب السابق، وإذا لم يكن كذلك، سيُضاف إعجاب إلى المقال. إعداد الواجهة الأمامية سنحتاج الآن إلى إضافة زر الإعجاب إلى صفحة النشر، لذا ارجع إلى Post.vue. قسم HTML من Post.vue. <template> <div class="home"> . . . <!-- Like, Comment and Share --> <div class=". . ."> <div v-if="this.liked === true" @click="this.updateLike()"> <i class="fa-solid fa-thumbs-up"> <span class="font-sans font-semibold ml-1">{{ this.numberOfLikes }}</span> </i> </div> <div v-else @click="this.updateLike()"> <i class="fa-regular fa-thumbs-up"> <span class="font-sans font-semibold ml-1">{{ this.numberOfLikes }}</span> </i> </div> . . . </div> . . . </div> </template> قسم جافا سكريبت من Post.vue <script> import { POST_BY_SLUG } from "@/queries"; import { UPDATE_POST_LIKE } from "@/mutations"; . . . export default { . . . async created() { . . . // Find if the current user has liked the post let likedUsers = this.postBySlug.likes; for (let likedUser in likedUsers) { if (likedUsers[likedUser].id === this.userID) { this.liked = true; } } // Get the number of likes this.numberOfLikes = parseInt(this.postBySlug.numberOfLikes); }, methods: { updateLike() { if (this.liked === true) { this.numberOfLikes = this.numberOfLikes - 1; } else { this.numberOfLikes = this.numberOfLikes + 1; } this.liked = !this.liked; this.$apollo.mutate({ mutation: UPDATE_POST_LIKE, variables: { postID: this.postBySlug.id, userID: this.userID, }, }); }, }, }; </script> لاحظ أننا حذفنا بعض التعليمات البرمجية في المثال السابق كي لا تكون طويلةً جدًا، ولكن ما تزال هناك أربعة أمور نحتاج إلى التحدث عنها في هذا المثال. أولاً، فيما يتعلق بالاستعلام POST_BY_SLUG الذي تستخدمه لاسترجاع المقال، يجب التأكد من أنه يجلب عدد الإعجابات والمستخدمين الذين تفاعلوا مع المقال. الملف query.js: export const POST_BY_SLUG = gql` query ($slug: String!) { postBySlug(slug: $slug) { . . . numberOfLikes likes { id } . . . } } `; الخطوة التالية، في الخطاف created()، وبعد أن تسترجع المنشور، يجب عليك تحديد ما إذا كان المستخدم الحالي موجودًا في قائمة المستخدمين الذين تفاعلوا مع المنشور. فيما بعد، عند استدعاء الدالة updateLike()، ستعمل هذه الدالة على تغيير عدد الإعجابات وذلك في حال تفاعل المستخدم مع بالمنشور أو لم يتفاعل. وأخيرًا، ستعمل الدالة updateLike()،على تحديث عدد إعجابات المنشور في الواجهة الخلفية باستخدام طفرة UPDATE_POST_LIKE. الملف mutations.js: export const UPDATE_POST_LIKE = gql` mutation ($postID: ID!, $userID: ID!) { updatePostLike(postId: $postID, userId: $userID) { post { id title likes { id } } } } `; تحدي برمجي والآن بعد أن تعلمنا كيفية إنشاء نظام التعليقات ونظام التفاعل بالإعجاب، دعنا نفكر في تحدٍّ أكبر، فماذا لو أردنا إنشاء نظام تعليق متداخل، بحيث نتيح للمستخدمين إمكانية التعليق على تعليق آخر؟ إذًا كيف يمكننا تغيير الشيفرات البرمجية السابقة لجعل ذلك ممكنًا؟ جرب العمل على ذلك وفكر وكيف يمكننا إنشاء نظام للتفاعل بإعجاب على التعليقات. يمكنك الاطلاع على كامل الكود المصدري الذي يحتوي على التطبيق العملي للوظائف التي مرت معنا في سلسلة المقالات هذه. الخلاصة بهذا نكون قد تعرفنا على طريقة إضافة التعليقات والإعجابات على المقالات ووصلنا لنهاية هذه السلسلة من المقالات التي شرحنا من خلالها كيفية إنشاء تطبيق ويب حديث من صفحة واحدة باستخدام إطارالعمل جانغو Django كواجهة خلفية، وإطار العمل فيو Vue كواجهة أمامية، مع استخدام GraphQL كلغة للتفاعل مع واجهة برمجة التطبيقات API التي تربط بينهما. ترجمة -وبتصرّف- للمقال Create a Modern Application with Django and Vue #3. اقرأ أيضًا المقال السابق: إنشاء تطبيق حديث باستخدام Django و Vue | الجزء الثاني: ربط الواجهة الخلفية والأمامية مدخل إلى المكتبة GraphQL واستعمالاتها في بناء تطبيقات الويب الحديثة بناء تطبيق ويب لإدارة معلومات العملاء باستخدام جانغو Django وريآكت React إنشاء نماذج جانغو Django Models وربطها بقاعدة البيانات تعرف على أمان تطبيقات جانغو
-
لا يمكن أن تخفى على أحد الشعبية الكبيرة التي تحظى بها المدونات الصوتية، أو ما تُعرف بمصطلح البودكاست Podcast في يومنا هذا، فهي وسيلة رائعة لجذب الجمهور والتفاعل معهم بطرق لا يمكن للمحتوى المكتوب تحقيقها. ونتيجةً لهذه الشعبية المتزايدة للبودكاست، يتطلع الكثير من الأشخاص إلى إطلاق بودكاست جديد خاص بهم، ويتساءلون عن الطريقة الأفضل لبدء هذا العمل، لذلك ترجمنا هذا الدليل الشامل الذي نضع فيه خبرات متراكمة في صناعة البودكاست وجني الأرباح منه؛ فسواءً كنت ترغب في إطلاق بودكاست مستقل، أو دمجه مع مدونتك العادية، فإن الدخول إلى عالم البودكاست خطوة صائبة ومهمة في هذا الوقت. هذا المقال هو المقال الأول من سلسلة صناعة البودكاست، التي سنتناول فيها تاريخ البودكاست وأنواعه، والمعدات التي يمكن العمل بها؛ إلى جانب تقديم نصائح حول كيفية إنجاح هذا المجال. تاريخ البودكاست Podcast قبل أن نتطرق إلى كيفية إطلاق البودكاست، دعونا نرجع خطوةً إلى الوراء ونتحدث عن بدايات البودكاست تاريخيًا. في الواقع، بدأ البودكاست لأول مرة عام 2004 عندما تعاون أحد منتجي فيديو MTV مع مطور البرامج ديف وينر Dave Winer لإنشاء شيء جديد أطلقوا عليه اسم iPodder. أتاح هذا البرنامج الجديد إمكانية تنزيل بث الراديو عبر الإنترنت على جهاز iPod، كما أنشأ مطور البرامج وينر خدمة Real Simple Syndication Feed والتي تُعرف اختصارًا بـ RSS، وهي مكون رئيسي في البث الصوتي. بعد إنشاء جهاز iPodder، عمل المطورون الآخرون على تطوير وتحسين الفكرة الأصلية، وفي ذاك الوقت، لم يكن للبودكاست أو البث الصوتي أي اسم خاص به، وبقي على هذا الحال حتى أواخر عام 2004، حين صيغت كلمة Podcasting لأول مرة من قِبل الكاتب بن هامرسلي Ben Hammersley في مقال له نُشر في صحيفة الغارديان؛ فقد كتب هامرسلي حينها: كان كريستوفر ليندون Christopher Lyndon الصحفي السابق في مجلة نيويورك تايمز والإذاعة الوطنية العامة من أوائل رواد التدوين الصوتي Podcasting؛ فقد كان أول من سجل صوته على على ملف MP3 ونُشر عبر خدمة RSS. وفي ذات المقال السابق الذي نُشر على صحيفة الجارديان، نُقل عن ليندون قوله: كما هو الحال مع التدوين الكتابي، قدم البودكاست فرصةً للشخص العادي ليوصل صوته إلى الناس، فأنت لا تحتاج إلى الاستثمار في معدات باهظة الثمن أو التسجيل في إستوديو احترافي لإصدار التسجيلات الصوتية للمستمعين. ومع مرور الوقت، ازدادت شعبية البودكاست وأضحى مجالًا متناميًا؛ إذ يستمع المزيد من الأشخاص إلى برامج البودكاست ويسجل آخرون لجماهيرهم. وإن كنت تسأل عن سبب قبول الناس لهذا المحتوى وتعلقهم به، فإليك السبب. ما الأمر الجذاب في البودكاست؟ إذا كنت ما تزال متشككًا حول مدى نجاح البودكاست، فإليك بعض الأسباب المشجعة على دخول عالم البودكاست. المحتوى الصوتي مناسب للكثيرين فكر في الأمر على هذا النحو: يقضي الكثير من الأشخاص وقتًا لا بأس فيه في التنقل بين المنزل ومكان العمل، لذا يمكنهم الاستماع إلى الراديو أو الموسيقى أو البودكاست خلال ذلك؛ فوفقا لصحيفة نيويورك بوست، يقضي الأمريكيون ما معدله 35 دقيقة يوميًا في التنقل، أو بعبارة أخرى، 19 يوم عمل كامل في كل عام، وبالنسبة لبعض الأشخاص الآخرين، فإن المدة قد تكون أطول من ذلك؛ وبما أنهم لا يستطيعون القراءة بأمان خلال القيادة، فإن خيار الاستماع مناسب جدًا لهم. علاوةً على ذلك، لا ينحصر الأمر على استماع الأشخاص للملفات الصوتية أثناء تنقلاتهم اليومية، بل قد يشمل أوقات إعداد وجبة الإفطار في الصباح، أو خلال تنظيف المنزل وطي الغسيل والاعتناء بحديقة المنزل، أو خلال الاعتناء بالأطفال ونحو ذلك. الشعبية المتزايدة للبودكاست من الأسباب المهمة أيضًا للانضمام إلى مجتمع البودكاست، هي الشعبية الهائلة للبودكاست؛ فعلى الرغم من أنك قد اعتقدت ذات مرة أن شعبية البودكاست مجرد موضة مؤقتة وستنتهي، إلا أن الإحصائيات تثبت عكس ذلك؛ فوفقًا لتقارير أبحاث أجرتها شركة Statista، كان 22% فقط من السكان البالغين في الولايات المتحدة يعرفون معنى كلمة البودكاست عام 2006؛ بينما في عام 2022 ارتفع هذا الرقم ليصل إلى 79%، ومن المتوقع أن يصل عدد المستمعين إلى البودكاست إلى أكثر من 100 مليون مستمع بحلول نهاية عام 2024 في الولايات المتحدة الأمريكية. تحسن إمكانية البحث لعل أحد العيوب الرئيسية للبودكاست في بداياته هو ضعف إمكانية البحث والاستكشاف، فقد كان من الصعب البحث عن ملفات البودكاست والوصول إليها، مما اضطر عدد كبير من صناع محتوى البودكاست إلى تسجيل محتوى مع عدم القدرة إلى إيصاله إلى عدد كبير من المستمعين. لكن مع تزايد شعبية البودكاست، تكافح الكثير من الشركات ذات الأسماء الكبيرة، مثل سبوتيفاي Spotify، وجوجل Google، لحل هذه المشكلة. وبدءًا من عام 2021، عملت جوجل على فهرسة ملفات البودكاست، بحيث يمكن البحث عنها عبر محرك البحث الخاص بها، والاستماع إليها مباشرةً على صفحة البحث. نشرت مجلة فوربس مؤخرًا مقالًا تناولت فيه هذه المشكلة، وقد أوضح رواد الأعمال سيرجي ريفزين Sergei Revzin وفاديم ريفزين Vadim Revzin المشكلة بقولهم: وأضاف سيرجي ريفزين Sergei Revzin وفاديم ريفزين Vadim Revzin: عملت سبوتيفاي أيضًا مع صناع البودكاست لتعزيز وصول محتواهم إلى المهتمين به؛ ففي فبراير من عام 2020، قال المؤسس والرئيس التنفيذي لشركة سبوتيفاي في بيان صحفي: كانت الأخبار السابقة نبأً رائعًا لصناع محتوى البودكاست، وواعدةً للأشخاص الذين يحاولون تنمية جمهورهم. البودكاست وسيلة رائعة لتقديم محتوى ممتع لقد تحدثنا عن الكثير من الأسباب المشجعة على الدخول إلى عالم صناعة محتوى البودكاست، لكن لا يمكن لهذه الفقرة أن تنتهي دون أن نتطرق إلى سبب مهم للغاية، وهو أنه يمكنك إنشاء محتوى بودكاست ترفيهي أو مسلٍ للمستمعين. على الرغم من أن صناعة البودكاست موجودة منذ عام 2004، لكن ما تزال الفرص متاحةً أمامك للإبداع؛ إذ يمكنك تقديم بودكاست حول أي شيء يهمك. يمكن أن يكون مجال تخصصك ضيقًا، مثل الحديث عن لعبة معينة، كما يمكن أن يكون واسعًا وتتحدث فيه عن مجال عام، مثل الحديث عن الرياضة عمومًا، أو الحديث عن تطوير الذات، وسنناقش هذه الجزئية بتوسع في الأجزاء القادمة من المقال، لكن ما يجب أن تعرفه الآن هو أن لديك خيارات عديدة لمحتوى البودكاست. يمكنك إجراء مقابلات مع الضيوف، بحيث يتحدث كل ضيف في المجال الذي يتقنه، أو يمكنك تقديم محتوى قصص خيالية كانت أو واقعية؛ وفي كلتا الحالتين، يجب أن تتقن عناصر سرد القصص؛ إذ يبدو الأمر كما لو أننا عدنا بالزمن إلى منتصف القرن الماضي، حين كانت تجتمع العائلة حول الراديو لسماع الأخبار، أين كان الأمر ممتعًا جدًا آنذاك. خاتمة بهذا نكون قد وصلنا إلى نهاية هذا المقال، وسنتحدث في المقال القادم حول أنواع البودكاست. ترجمة -وبتصرّف- للمقال How to Start a Podcast and Make Money لصاحبه Ryan Robinson. اقرأ أيضًا إنشاء المحتوى وصناعة الآراء: التدوين والبودكاست الكلمات المفتاحية وأنواع مطابقتها دليل البحث عن الكلمات المفتاحية للمسوق بالمحتوى
-
سنوضح في مقال اليوم الخطوات اللازمة لربط الواجهة الخلفية backend مع الواجهة الأمامية frontend من سلسلة مقالات تطوير تطبيق مدونة حديث باستخدام جانغو وفيو. هذا المقال هو جزء من سلسلة مقالات تتحدث حول كيفية إنشاء تطبيق حديث باستخدام جانغو Django وفيو Vue: إنشاء تطبيق حديث باستخدام جانغو Django وفيو Vue - الجزء الأول. إنشاء تطبيق حديث باستخدام جانغو Django وفيو Vue - الجزء الثاني. إنشاء تطبيق حديث باستخدام جانغو Django وفيو Vue - الجزء الثالث. إن الشائع حاليًا في ربط الواجهتين الأمامية والخلفية لتطبيق ما هو استخدام تقنية تسمى REST API. ومصطلح API هو اختصار للواجهة البرمجية للتطبيقات Application Programming Interface، وهي تشير إلى الاتصال بين تطبيقين برمجيين، أما REST فهو اختصار لنقل الحالة التمثيلية Representational State Transfer، وهو يشير إلى بنية محددة يتبعها هذا النوع من الاتصال. يتكون طلب REST API عادةً من نقطة وصول endpoint تتصل مع الخادم، إضافةً إلى طريقة HTTP وترويسة Head وجسم Body. تحتوي الترويسة على عناصر التعريف meta، مثل التخبئة caching واستيثاق المستخدم user authentication واختبار AB، بينما يحتوي الجسم على البيانات التي يريد العميل إرسالها إلى الخادم. ومع ذلك، فإنه ثمة خلل بسيط في REST API، وهو أنه من المستحيل تصميم واجهات برمجية تجلب البيانات التي يحتاجها العميل بالضبط، إذ من الشائع أن تجلب REST API بيانات زائدة أو ناقصة. ولذلك، طُوّرت لغة الاستعلام غراف كيو إل GraphQL بهدف حل هذه المشكلة، إذ تستخدم المخططات schemas للتأكد من جلب البيانات المحددة فقط لكل طلب، وسنرى كيف يحدث ذلك لاحقًا. إعداد غراف كيو إل GraphQL باستخدام جانغو Django لنبدأ بإعداد غراف كيو إل GraphQL في الواجهة الخلفية، ستحتاج إلى تثبيت حزمة جديدة تسمى graphene-django وهي حزمة توفر مجموعة من الأدوات والميزات التي تسهل عملية تطوير واجهات GraphQL داخل تطبيقات Django عبر تفعيل الأمر التالي: pip install graphene-django انتقل بعد ذلك إلى مجلد settings.py وابحث عن المتغير INSTALLED_APPS. يجب عليك إضافة graphene-django داخل المجلد لكي يتمكن جانغو من العثور على هذه الحزمة. INSTALLED_APPS = [ . . . "blog", "graphene_django", ] إعداد graphene-django ما زال هناك بعض المهام التي يجب عليك إنجازها قبل أن تتمكن من استخدام GraphQL. أولاً، ستحتاج إلى إعداد نمط الرابط URL pattern لخدمة الواجهات البرمجية للتطبيقات APIs في GraphQL، والذي يحدد كيفية تطابق عناوين URL مع عرض معين في تطبيق Django ويستخدم لتحويل طلبات المستخدم إلى العرض المناسب لمعالجتها. للقيام بذلك انتقل إلى الملف urls.py وأضف الشيفرة التالية: from django.views.decorators.csrf import csrf_exempt from graphene_django.views import GraphQLView urlpatterns = [ . . . path("graphql", csrf_exempt(GraphQLView.as_view(graphiql=True))), ] وبعد ذلك، أنشئ المخططات schemas وحدد لجانغو مكان العثور عليها في مجلد settings.py. تتبع مخططات GraphQL نمطًا يسمح لجانغو بترجمة نماذج قاعدة البيانات database إلى GraphQL وبالعكس، ولنأخذ فيما يلي نموذج الموقع Site model كمثال: class Site(models.Model): name = models.CharField(max_length=200) description = models.TextField() logo = models.ImageField(upload_to='site/logo/') class Meta: verbose_name = 'site' verbose_name_plural = '1. Site' def __str__(self): return self.name أنشئ ملف schema.py داخل مجلد المدونة blog. import graphene from graphene_django import DjangoObjectType from blog import models # Define type class SiteType(DjangoObjectType): class Meta: model = models.Site # The Query class class Query(graphene.ObjectType): site = graphene.Field(types.SiteType) def resolve_site(root, info): return ( models.Site.objects.first() ) كما هو واضح، يُقسم هذا الملف إلى ثلاثة أجزاء. أولًا، يجب عليك استيراد الحزم والنماذج اللازمة. ثم يُصرّح عن صنف SiteType ويُربط مع نموذج الموقع. وأخيرًا، يستخدم الصنف Query الذي يسمح لك باسترداد المعلومات عبر GraphQL API. أما لإنشاء معلومات أو تحديثها، فستحتاج إلى استخدام صنف آخر يُدعى Mutation والذي سنتحدث عنه بالتفصيل في المقال الثالث من السلسلة. توجد الدالة Resolve_site داخل الصنف Query وهي تعمل على استرجاع السجل الأول من النموذج Site model (أي تعيد الكائن الأول الموجود في قاعدة البيانات المرتبطة بهذا النموذج). ترتبط هذه الدالة تلقائيًا مع متغير يحمل نفس الاسم site، هذا يعني أنه عند استدعاء الدالة، ستكون النتيجة متاحة مباشرةً من خلال المتغير site دون الحاجة إلى تحديد اسم جديد له، إذ يعمل هذا الجزء تمامًا مثل Django QuerySet لاسترجاع البيانات من قاعدة البيانات. إذَا عندما تستدعي الدالة Resolve_site فإنها سترجع لك السجل الأول من نموذج Site ووتخزنها في المتغير site تلقائيًا، مما يسهل الوصول إلى هذه البيانات لاحقًا. إنشاء المخططات Schemas يمكنك الآن تكرار نفس الطريقة لجميع النماذج، ولكي تتجنب الحجم الكبير لملف المخطط، يمكنك فصله إلى ثلاثة ملفات، وهي: schema.py types.py queries.py ملف schema.py import graphene from blog import queries schema = graphene.Schema(query=queries.Query) ملف types.py import graphene from graphene_django import DjangoObjectType from blog import models class SiteType(DjangoObjectType): class Meta: model = models.Site class UserType(DjangoObjectType): class Meta: model = models.User class CategoryType(DjangoObjectType): class Meta: model = models.Category class TagType(DjangoObjectType): class Meta: model = models.Tag class PostType(DjangoObjectType): class Meta: model = models.Post queries.py import graphene from blog import models from blog import types # The Query class class Query(graphene.ObjectType): site = graphene.Field(types.SiteType) all_posts = graphene.List(types.PostType) all_categories = graphene.List(types.CategoryType) all_tags = graphene.List(types.TagType) posts_by_category = graphene.List(types.PostType, category=graphene.String()) posts_by_tag = graphene.List(types.PostType, tag=graphene.String()) post_by_slug = graphene.Field(types.PostType, slug=graphene.String()) def resolve_site(root, info): return ( models.Site.objects.first() ) def resolve_all_posts(root, info): return ( models.Post.objects.all() ) def resolve_all_categories(root, info): return ( models.Category.objects.all() ) def resolve_all_tags(root, info): return ( models.Tag.objects.all() ) def resolve_posts_by_category(root, info, category): return ( models.Post.objects.filter(category__slug__iexact=category) ) def resolve_posts_by_tag(root, info, tag): return ( models.Post.objects.filter(tag__slug__iexact=tag) ) def resolve_post_by_slug(root, info, slug): return ( models.Post.objects.get(slug__iexact=slug) ) والآن، يجب عليك إخبار جانغو بمكان العثور على ملف المخطط، لذا انتقل إلى settings.py وأضف الشيفرة التالية: # Configure GraphQL GRAPHENE = { "SCHEMA": "blog.schema.schema", } ولكي تتأكد من عمل المخططات على النحو الصحيح، افتح المتصفح وانتقل إلى http://127.0.0.1:8000/graphql، يجب أن تشاهد واجهة GraphiQL على النحو التالي: لاحظ كيف نسترجع المعلومات في هذا المثال، هذه لغة GraphQL، وهذه هي الطريقة التي سنسترجع بها البيانات في الواجهة الأمامية، والتي سنشرحها لاحقًا. إعداد CORS قبل أن ننتقل إلى الواجهة الأمامية، ثمة شيء يجب الاهتمام به. افتراضيًا، لا يمكن نقل البيانات إلا داخل التطبيق نفسه لأسباب الحماية، ولكننا نحتاج إلى تدفق البيانات بين تطبيقين مختلفين، ولمعالجة هذه المشكلة، يجب تمكين وظيفة CORS، وهي اختصار لـ Cross Origin Resource Sharing والتي تعني مشاركة الموارد ذات الأصول المختلفة. أولاً، ثبِّت حزمة Django-cors-headers. ومن داخل تطبيق الواجهة الخلفية، فعِّل الأمر التالي: pip install django-cors-headers أضف "corsheaders" إلى المتغير INSTALLED_APPS: INSTALLED_APPS = [ . . . "corsheaders", ] ثم أضف "corsheaders.middleware.CorsMiddleware" إلى المتغير MIDDLEWARE لتمكين دعم CORS في تطبيق جانغو: MIDDLEWARE = [ "corsheaders.middleware.CorsMiddleware", . . . ] وأخيرًا، أضف الشيفرة التالية إلى settings.py: CORS_ORIGIN_ALLOW_ALL = False CORS_ORIGIN_WHITELIST = ("http://localhost:8080",) # Matches the port that Vue.js is using إعداد Apollo باستخدام Vue.js والآن، حان الوقت للانتقال إلى الواجهة الأمامية. أولًا، يجب تثبيت مكتبة Apollo، إذ تتيح لك استخدام GraphQL في تطبيق Vue. ويمكنك تثبيتها من خلال تفعيل الأمر التالي: npm install --save graphql graphql-tag @apollo/client ضمن مجلد src، أنشئ ملف جديد باسم apollo-config.js وأضف له الشيفرة التالية: import { ApolloClient, createHttpLink, InMemoryCache, } from "@apollo/client/core"; // HTTP connection to the API const httpLink = createHttpLink({ uri: "http://127.0.0.1:8000/graphql", // Matches the url and port that Django is using }); // Cache implementation const cache = new InMemoryCache(); // Create the apollo client const apolloClient = new ApolloClient({ link: httpLink, cache, }); ثم انتقل إلى main.js واستورد apolloClient كي تتيح لتطبيقك القدرة على التفاعل مع واجهات GraphQL واسترجاع البيانات بشكل ديناميكي: import { apolloClient } from "@/apollo-config"; createApp(App).use(router).use(apolloClient).mount("#app"); أصبح بإمكانك الآن استخدام لغة GraphQL لاسترجاع البيانات من الواجهة الخلفية، ولتطبيق مثال عملي على ذلك، سننتقل إلى App.vue وهناك سنستعيد اسم موقعنا بكتابة الكود التالي: <template> <div class="container mx-auto max-w-3xl px-4 sm:px-6 xl:max-w-5xl xl:px-0"> <div class="flex flex-col justify-between h-screen"> <header class="flex flex-row items-center justify-between py-10"> <div class="nav-logo text-2xl font-bold"> <router-link to="/" v-if="mySite">{{ mySite.name }}</router-link> </div> . . . </header> . . . </div> </div> </template> <script> import gql from "graphql-tag"; export default { data() { return { mySite: null, }; }, async created() { const siteInfo = await this.$apollo.query({ query: gql` query { site { name } } `, }); this.mySite = siteInfo.data.site; }, }; </script> يُفضِّل البعض إنشاء ملف منفصل لجميع الاستعلامات queries، ومن ثم استيراده إلى ملف فيو كما في الكود التالي: ملف src/queries.js import gql from "graphql-tag"; export const SITE_INFO = gql` query { site { name } } `; ملف App.vue . . . <script> import { SITE_INFO } from "@/queries"; export default { data() { return { mySite: null, }; }, async created() { const siteInfo = await this.$apollo.query({ query: SITE_INFO, }); this.mySite = siteInfo.data.site; }, }; </script> صفحة الصنف Category تبقى لدينا الآن مشكلة من المقال السابق، عندما نستدعي موجه router، فكيف لهذا الموجه أن يعرف الصفحة التي يجب إعادتها؟ فعلى سبيل المثال، عندما نضغط على رابط Category One يجب إرجاع قائمة المنشورات التي تنتمي إلى الصنف الأول Category One، ولكن كيف يمكن للموجه القيام بذلك؟ دعونا نرى مثالًا. أولًا، في ملف router/index.js الذي عرفنا فيه جميع الوجهات لدينا، يجب علينا تعيين جزء من نمط الرابط URL pattern كمتغير. ففي المثال التالي، سيتم تعيين الكلمة بعد /category/ كمتغير Category. وسيكون بالإمكان الوصول إلى هذا المتغير في مكون CategoryView. import { createRouter, createWebHistory } from "vue-router"; . . . const routes = [ { path: "/", name: "Home", component: HomeView, }, { path: "/category/:category", name: "Category", component: CategoryView, }, . . . ]; const router = createRouter({ history: createWebHistory(process.env.BASE_URL), routes, }); export default router; وبعد ذلك، في عرض AllCategories (الذي سيُظهر قائمة بجميع التصنيفات)، سنعمل على تمرير بعض المعلومات إلى المتغير Category. <template> <div class="flex flex-col place-content-center place-items-center"> <div class="py-8 border-b-2"> <h1 class="text-5xl font-extrabold">All Categories</h1> </div> <div class="flex flex-wrap py-8"> <router-link v-for="category in this.allCategories" :key="category.name" class=". . ." :to="`/category/${category.slug}`" >{{ category.name }}</router-link > </div> </div> </template> وفي عرض Category يمكننا الوصول إلى المتغير Category باستخدام الخاصية this.$route. <script> // @ is an alias to /src import PostList from "@/components/PostList.vue"; import { POSTS_BY_CATEGORY } from "@/queries"; export default { components: { PostList }, name: "CategoryView", data() { return { postsByCategory: null, }; }, async created() { const posts = await this.$apollo.query({ query: POSTS_BY_CATEGORY, variables: { category: this.$route.params.category, }, }); this.postsByCategory = posts.data.postsByCategory; }, }; </script> وأخيرًا، يمكن استرجاع المنشورات باستخدام الاستعلام POSTS_BY_CATEGORY. export const POSTS_BY_CATEGORY = gql` query ($category: String!) { postsByCategory(category: $category) { title slug content isPublished isFeatured createdAt } } `; ومع هذا المثال، من المفترض أن تكون قادرًا الآن على إنشاء صفحتي المنشور post التي تعرض محتوى منشو أو مقالة معينة، وصفحة الوسم tag التي تظهر قائمة بالمنشورات المرتبطة بوسم معين. إنشاء وتحديث المعلومات باستخدام الطفرات Mutations ذكرنا في المقال السابق من هذه السلسلة أنه يمكننا استخدام الاستعلامات queries لاسترجاع المعلومات من الواجهة الخلفية وإرسالها إلى الواجهة الأمامية. ومع ذلك، من الشائع في تطبيقات الويب الحديثة أن ترسل المعلومات من الواجهة الأمامية إلى الواجهة الخلفية. وللقيام بذلك، لا بُدّ من الحديث عن مفهوم جديد في GraphQL يُسمى الطفرة mutation. ملاحظة: تُستخدم الطفرات mutations لتغيير البيانات في الخادم. فإذا أراد المستخدم مثلًا إضافة أو تحديث أو حذف بيانات عليه أن يستخدم mutation لإرسال طلب بالتعديل المطلوب والخادم يقوم بتحديث البيانات وإرجاع النتيجة. نعود إلى الواجهة الخلفية وننتقل إلى ملف cd في مجلد blog وننشئ ملف باسم Mutations.py. سنكتشف في المثال التالي كيفية نقل البيانات إلى الواجهة الخلفية لإنشاء مستخدم جديد. import graphene from blog import models, types # Mutation sends data to the database class CreateUser(graphene.Mutation): user = graphene.Field(types.UserType) class Arguments: username = graphene.String(required=True) password = graphene.String(required=True) email = graphene.String(required=True) def mutate(self, info, username, password, email): user = models.User( username=username, email=email, ) user.set_password(password) user.save() return CreateUser(user=user) لاحظ في السطر 7 من الكود أعلاه أن UserType مرتبط بنموذج المستخدم User model. أما في الأسطر من 9 إلى 12، فلاحظ أنه لإنشاء مستخدم جديد، يجب إضافة ثلاث عناصر هي اسم المستخدم وكلمة المرور والبريد الإلكتروني. أما الأسطر من 15 إلى 18، فيجب أن تكون واضحة لك، فهي ذات الطريقة التي تنشئ من خلالها عنصرًا جديدًا باستخدام Django QuerySet. السطر 19 مسؤول عن تعيين كلمة المرور، ولأسباب تتعلق الحماية لا يمكنك حفظ كلمة المرور الأصلية للمستخدم في قاعدة البيانات لديك، ويمكن تشفيرها من خلال التابع set_password(). والآن، يجب عليك تضمين ملف Mutation.py في مخطط GraphQL، لذا انتقل إلى schema.py: import graphene from blog import queries, mutations schema = graphene.Schema(query=queries.Query, mutation=mutations.Mutation) ولتتأكد من أنه يعمل على النحو الصحيح، افتح المتصفح وانتقل إلى http://127.0.0.1:8000/graphql للوصول إلى واجهة GraphiQL. mutation { createUser( username: "testuser2022" email: "testuser2022@test.com" password: "testuser2022" ) { user { id username } } } من المفترض أنك تعرف كيفية استخدام ذلك في الواجهة الأمامية. على سبيل المثال: <script> import { USER_SIGNUP } from "@/mutations"; export default { name: "SignUpView", data() {. . .}, methods: { async userSignUp() { // Register user const user = await this.$apollo.mutate({ mutation: USER_SIGNUP, variables: { username: this.signUpDetails.username, email: this.signUpDetails.email, password: this.signUpDetails.password, }, }); // Do something with the variable user . . . }, }, }; </script> src/mutations.js import gql from "graphql-tag"; export const USER_SIGNUP = gql` mutation ($username: String!, $email: String!, $password: String!) { createUser(username: $username, email: $email, password: $password) { user { id username } } } `; استيثاق المستخدم User authentication والآن بعد أن تعرفت على كيفية إرسال البيانات إلى الواجهة الخلفية، لن تواجه صعوبةً كبيرةً في استيثاق المستخدم User authentication. في البداية، ستطلب من المستخدم إدخال اسم المستخدم وكلمة المرور الخاصين به وإرسال تلك المعلومات إلى الواجهة الخلفية، ثم في الواجهة الخلفية، سيعثر جانغو على المستخدم بناءً على الاسم، وسيحاول مقارنة كلمة المرور المُدخلة مع كلمة المرور المخزنة في قاعدة البيانات، وإذا تطابقت الكلمتان، سيكون بإمكان المستخدم تسجيل الدخول. ومع ذلك، قد تواجه هذه العملية بعض العقبات في الممارسة العملية. فبدايةً، تُعد عملية إرسال كلمة مرور المستخدم ذهابًا وإيابًا عملية غير آمنة تمامًا. لذا ستحتاج إلى طريقة ما لتشفير البيانات. الطريقة الأكثر استخدامًا هي تقنية JWT وهي اختصار لـ JSON Web Token. إذ تعمل هذه الطريقة على تشفير بيانات بصيغة JSON إلى ترميز بصيغة token. يمكنك رؤية مثال عليها من هنا. سيُحتفظ بهذا الترميز ضمن التخزين المحلي للمتصفح، وطالما بقي هذا الترميز ضمن ذاكرة المتصفح، سيبقى تسجيل الدخول قائمًا. المشكلة الثانية سببها نظام مكونات فيو Vue. فكما تعلم كل مكون مستقل بذاته فإذا تغير أحد المكونات، فإنه لا يؤثر على المكونات الأخرى. لكننا في هذه الحالة نريد أن تشترك جميع المكونات في نفس الوضعية، فإذا سجل المستخدم دخوله، نريد أن تتعرف جميع المكونات الأخرى على حالة المستخدم أثناء تسجيل الدخول. لذلك ستحتاج إلى مكان مركزي لتخزين هذه المعلومات حين يقوم المستخدم بتسجيل الدخول، ويجب أن تكون جميع المكونات قادرة على قراءة البيانات من ذلك المكان. ولتحقيق بذلك، ستحتاج إلى استخدام Pinia، وهي مكتبة Vue جديدة أُنشئت من خلال Vuex. دمج JWT في الواجهة الخلفية في البداية، سندمج JWT مع الواجهة الخلفية لجانغو، لذلك ستحتاج إلى تثبيت حزمة أخرى باسم django-graphql-jwt: pip install django-graphql-jwt انتقل الآن إلى ملف settings.py وأضف برنامجًا وسيطًا، وكذلك الاستيثاق في الواجهة الخلفية. ستحل هذه الإعدادات مكان الإعدادات الافتراضية لجانغو، وهو ما يتيح استخدام JWT. MIDDLEWARE = [ "django.contrib.auth.middleware.AuthenticationMiddleware", ] # Configure GraphQL GRAPHENE = { "SCHEMA": "blog.schema.schema", 'MIDDLEWARE': [ 'graphql_jwt.middleware.JSONWebTokenMiddleware', ], } # Auth Backends AUTHENTICATION_BACKENDS = [ 'graphql_jwt.backends.JSONWebTokenBackend', 'django.contrib.auth.backends.ModelBackend', ] لاستخدام هذه الحزمة، انتقل إلى موقع muts.py وأضف الشيفرة التالية: import graphql_jwt class Mutation(graphene.ObjectType): token_auth = graphql_jwt.ObtainJSONWebToken.Field() verify_token = graphql_jwt.Verify.Field() refresh_token = graphql_jwt.Refresh.Field() يمكننا الآن اختباره في واجهة GraphiQL: في حال كلمة مرور خاطئة في حال مستخدم موثوق كما هو واضح، فإن متطلبات تسجيل الدخول هي اسم المستخدم وكلمة المرور، وإذا تم التحقق من وثوقية هذا المستخدم بنجاح (أي أدخل اسم مستخدم وكلمة مرور صحيحة) سيُرسل من الواجهة الخلفية ترميز مشفر token. ويمكن حفظ هذا الترميز في ذاكرة المتصفح. يمكنك أيضًا تخصيص سلوك ObtainJSONWebToken من خلال العودة إلى Mutions.py: # Customize the ObtainJSONWebToken behavior to include the user info class ObtainJSONWebToken(graphql_jwt.JSONWebTokenMutation): user = graphene.Field(types.UserType) @classmethod def resolve(cls, root, info, **kwargs): return cls(user=info.context.user) class Mutation(graphene.ObjectType): token_auth = ObtainJSONWebToken.Field() لاحظ أن ObtainJSONWebToken يتوسع إلى JSONWebTokenMutation الافتراضي، ومن ثم في صنف Mutation، ويمكنك استخدام ObtainJSONWebToken عوضًا عن ذلك. يمكن الآن الحصول على مزيد من المعلومات حول المستخدم عبر GraphQL. استخدام حزمة بينيا Pinia في الواجهة الأمامية حان الوقت الآن لحل المشكلة الثانية في الواجهة الأمامية. والخطوة الأولى هي تثبيت بينيا Pinia. npm install pinia اذهب الآن إلى main.js وتأكد من أن تطبيقك يستخدم بينيا Pinia. import { createPinia } from "pinia"; createApp(App).use(createPinia()).use(router).use(apolloProvider).mount("#app"); ارجع الآن إلى مجلد src وأنشئ مجلد باسم stores، وهو المجلد الذي سنخزن فيه جميع بيانات التطبيق. في الوقت الحالي، كل ما تحتاج إليه هو تخزين القيم الخاصة بالمستخدم (بيانات تسجيل الدخول) وسنحافظ على المعلومات فيه حتى بعد تحديث الصفحة، لذا أنشئ ملف باسم user.js من أجل التعامل مع التخزين كما يلي: import { defineStore } from "pinia"; export const useUserStore = defineStore({ id: "user", state: () => ({ token: localStorage.getItem("token") || null, user: localStorage.getItem("user") || null, }), getters: { getToken: (state) => state.token, getUser: (state) => JSON.parse(state.user), }, actions: { setToken(token) { this.token = token; // Save token to local storage localStorage.setItem("token", this.token); }, removeToken() { this.token = null; // Delete token from local storage localStorage.removeItem("token"); }, setUser(user) { this.user = JSON.stringify(user); // Save user to local storage localStorage.setItem("user", this.user); }, removeUser() { this.user = null; // Delete user from local storage localStorage.removeItem("user"); }, }, }); لاحظ أن هذا مخزن البيانات يتكون من ثلاثة أقسام، وهم state و getters و actions. تساعد هذه الأقسام الثلاثة في إدارة حالة التطبيق بطريقة منظمة وسهلة وإذا كنت على معرفة جيدة بكيفية إنشاء تطبيق فيو Vue فيُفترض أن يكون ذلك مفهومًا بالنسبة لك. تشبه state في Pinia الدالة data() في مكون فيو Vue، إذ تعمل على تحديد المتغيرات، باستثناء أن يمكن لجميع المكونات الوصول إلى هذه المتغيرات. في مثالنا، سيحاول فيو Vue الحصول على الترميز المشفر في ذاكرة المتصفح، فإذا لم يكن موجودًا، سيأخذ المتغير قيمة null. أما getters فهي توازي المتغيرات computed، إذ تنفذ إجراءات بسيطة، وعادةً ما يقتصر عملها على إرجاع قيمة state فحسب. وهنا أيضًا يمكن لجميع المكونات والصفحات الوصول إلى المتغيرات. وأخيرًا، يمكن تشبيه actions بـ methods الموجودة في مكون فيو Vue. كما أنها تؤدي بعض الإجراءات باستخدام الحالات states. وفي هذه الحالة، أنت تعمل على حفظ أو إزالة الترميز المشفر للمستخدم ومعلوماته. ثمة شيء آخر عليك ملاحظته، وهو أنه لا يمكنك حفظ الكائنات objects في الذاكرة المحلية، وإنما يمكنك حفظ السلاسل النصية strings فقط. لذا يجب عليك استخدام stringify() و parse() لتحويل البيانات إلى سلسلة، ومن ثم إعادتها إلى كائن. ستحتاج بعد ذلك إلى استخدام هذا المخزن عند تسجيل دخول المستخدم، وقد أنشأنا ملف SignIn.vue مثل هذا: <script> import { useUserStore } from "@/stores/user"; import { USER_SIGNIN } from "@/mutations"; export default { name: "SignInView", setup() { const userStore = useUserStore(); return { userStore }; }, data() { return { signInDetails: { username: "", password: "", }, }; }, methods: { async userSignIn() { const user = await this.$apollo.mutate({ mutation: USER_SIGNIN, variables: { username: this.signInDetails.username, password: this.signInDetails.password, }, }); this.userStore.setToken(user.data.tokenAuth.token); this.userStore.setUser(user.data.tokenAuth.user); }, }, }; </script> نلاحظ في السطر 2 استيراد مخزن المستخدم User store الذي أنشأته. في السطور 9-12، استدعاء مخزن المستخدم User store في الخطاف setup، وهو ما يجعل التعامل مع بينيا Pinia أسهل دون أي وظائف خريطة إضافية. في السطرين 32-33، استدعاء الإجراءين setToken() و setUser() اللذيْن أنشأناهما منذ قليل، وهو ما سيحفظ المعلومات داخل الذاكرة المحلية. هذه هي الطريقة التي يمكنك من خلالها تسجيل دخول المستخدم، ولكن ماذا لو كان المستخدم قد سجل دخوله أساسًا، لنلقي نظرة على هذا المثال: <script> import { SITE_INFO } from "@/queries"; import { useUserStore } from "@/stores/user"; export default { setup() { const userStore = useUserStore(); return { userStore }; }, data() { return { menuOpen: false, mySite: null, user: { isAuthenticated: false, token: this.userStore.getToken || "", info: this.userStore.getUser || {}, }, dataLoaded: false, }; }, async created() { const siteInfo = await this.$apollo.query({ query: SITE_INFO, }); this.mySite = siteInfo.data.site; if (this.user.token) { this.user.isAuthenticated = true; } }, methods: { userSignOut() { this.userStore.removeToken(); this.userStore.removeUser(); }, }, }; </script> نحاول في السطرين 18- 19 الحصول على الترميز المشفر token ومعلومات المستخدم user info من المخزن Store. في السطور 31-33، إذا كان الترميز المشفر token موجودًا، فسيُعد المستخدم مستوثقًا authentication . في السطور 38-41، ستعمل الطريقة userSignOut() على تسجيل خروج المستخدم عند استدعائها. بعد أن تعرفنا على كيفية استرجاع البيانات باستخدام الاستعلامات queries ووضحنا كيفية إرسال البيانات باستخدام الطفرات mutations، سنشرح في المقال التالي طريقة إنشاء نظام تعليقات وتفاعلات إعجاب لتطبيق المدونة الخاص بنا. ترجمة -وبتصرّف- للمقال Create a Modern Application with Django and Vue #2. اقرأ أيضًا المقال السابق: إنشاء تطبيق حديث باستخدام Django و Vue | الجزء الأول: الأساسيات تطوير الواجهة الأمامية لمواقع الويب Frontend Web Development تطوير الواجهة الخلفية لمواقع الويب Backend Web Development مقارنة بين أطر الواجهات الأمامية: Angular و React و Vue
-
يعد إطار العمل جانغو Django إطار ويب كامل full-stack يمكننا من خلاله إنشاء كل من الواجهة الأمامية frontend والواجهة الخلفية backend معًا وهو قائم على لغة بايثون Python، ويتبع نمط تصميم MTV وهو اختصار للنمط البنائي للبرمجيات نموذج Model قالب Template عرض View. لكن في جانغو، عندما يطلب المستخدم النهائي صفحة ويب، يجب تصيير rendering الصفحة أولًا في الواجهة الخلفية، ومن ثم تُرسل صفحة HTML الناتجة إلى المستخدم. وفي هذه الحالة، عندما يكون لديك عدد كبير من المستخدمين، سيضع ذلك ضغطًا كبيرًا على خادمك. لحل هذه المشكلة، يقسم المطورون التطبيق إلى قسمين هما الواجهة الخلفية والواجهة الأمامية وعندما يطلب المستخدم صفحة ويب، لن تصيّر الواجهة الخلفية لصفحة الويب، بل يكفي أن تجمع البيانات الضرورية فقط وتنقل إلى الواجهة الأمامية. وهنا يأتي دور العميل ليستخدم هذه البيانات ويعرض صفحة الويب داخل المتصفح مباشرة، وبالتالي يخفف الضغط على الخادم. سنتحدث في سلسلة المقالات هذه حول كيفية إنشاء تطبيق حديث من صفحة واحدة باستخدام جانغو Django كواجهة خلفية، وفيو Vue كواجهة أمامية، وغراف كيو إل GraphQL كلغة لمعالجة API تربطهما معًا. هذا المقال هو جزء من سلسلة مقالات تتحدث حول كيفية إنشاء تطبيق حديث باستخدام جانغو Django وفيو Vue: إنشاء تطبيق حديث باستخدام جانغو Django وفيو Vue - الجزء الأول. إنشاء تطبيق حديث باستخدام جانغو Django وفيو Vue - الجزء الثاني. إنشاء تطبيق حديث باستخدام جانغو Django وفيو Vue - الجزء الثالث. مراجعة سريعة عن جانغو لنبدأ بمراجعة سريعة حول إطار عمل جانغو Django، جانغو هو إطار عمل ويب يعتمد على لغة بايثون ويتبع النمط البنائي MTV، الذي هو اختصار لثلاث كلمات: النموذج Model: عبارة عن واجهة تتيح لنا التفاعل مع قاعدة البيانات، مثل استرجاع السجلات أو إنشائها أو تحديثها أو حذفها. القالب Template: يمثل الواجهة الأمامية من إطار العمل، وهو الجزء الذي سيراه المستخدمون النهائيون. العرض View: يمثل الواجهة الخلفية للتطبيق، إذ يستخدم النموذج Model للتفاعل مع قاعدة البيانات، مثل استرجاع البيانات التي يطلبها المستخدم، ثم يعمل العرض View على معالجة هذه البيانات بطريقة ما، وتظهر النتيجة للمستخدم عبر القالب Template الذي عادةً ما يكون مخصصًا. في سلسلة المقالات الحالية؛ سنستخدم جانغو للواجهة الخلفية فقط، أي لن نستخدم القوالب والعروض في جانغو، ونستستخدم عوضًا عن ذلك Vue.js لبناء الواجهة الأمامية و GraphQL كطريقة للتواصل بين الواجهة الأمامية والخلفية. إنشاء مشروع جانغو جديد الطريقة التي سنعتمد عليها هي فصل مجلد الواجهة الخلفية عن مجلد الواجهة الأمامية، لذا فإن أول خطوة هي إنشاء هيكل المشروع بالطريقة التالية: blog ├── backend └── frontend انتقل إلى مجلد backend، وأنشئ بيئة بايثون افتراضية جديدة. وبيئة بايثون الافتراضية هي بيئة معزولة لكل تثبيت بايثون جديد، لذا عندما تعمل على تثبيت حزم داخل هذه البيئة الافتراضية لن يؤثر ذلك على بيئة بايثون الخاصة بنظامك، وهو أمر بالغ الأهمية لاسيما إذا كنت تستخدم نظام تشغيل لينكس Linux أو ماك أو إس macOS، ولا تريد التأثير على ملفاتهما الأساسية. cd backend python3 -m venv env سيؤدي الأمر السابق إلى إنشاء مجلد جديد يُدعى env مع إنشاء البيئة الافتراضية بداخله. ولتنشيط هذه البيئة الافتراضية، استخدم الأمر التالي: source env/bin/activate إذا كنت تستخدم نظام تشغيل ويندوز Windows، فاستخدم الأمر التالي عوضًا عن السابق، كما يُنصح بتثبيت WSL: env/Scripts/activate بعد تنشيط البيئة الافتراضية، ستبدو الطرفية Terminal كما في الشكل أدناه. لاحظ وجود (env) أمام اسم المستخدم، منا يدل على أنك تعمل حاليًا في البيئة الافتراضية. يمكنك الآن إنشاء مشروع جانغو جديد. python -m pip install Django django-admin startproject backend بعدها يمكنك إنشاء تطبيق جديد باسم blog: python manage.py startapp blog في النهاية، يجب أن يكون هيكل المشروع كما يلي: . ├── backend │ ├── backend │ ├── blog │ ├── manage.py │ └── requirements.txt └── frontend إنشاء النماذج Models تذكر أن النماذج هي عبارة عن واجهة يمكننا استخدامها للتفاعل مع قاعدة البيانات، وواحدة من المزايا الرائعة في جانغو هي أنه يمكنك تلقائيًا معرفة التغييرات التي أجريتها على النماذج، وتوليد ملفات التهجير migration files المقابلة، والتي يمكن استخدامها لإجراء تغييرات على قاعدة البيانات. نموذج الموقع Site Model لنبدأ بالنموذج Site الذي يخزن المعلومات الأساسية لموقعك على الويب. class Site(models.Model): name = models.CharField(max_length=200) description = models.TextField() logo = models.ImageField(upload_to='site/logo/') class Meta: verbose_name = 'site' verbose_name_plural = '1. Site' def __str__(self): return self.name نلاحظ في السطر الرابع الأمر ImageField الذي يخبر جانغو بتحميل الصورة إلى مجلد 'site/logo/' ولتحقيق ذلك، عليك القيام بشيئين اثنين. أولاً، يجب عليك تثبيت حزمة Pillow، إذ يحتاجها جانغو لمعالجة الصور. python -m pip install Pillow ثانيًا، ستحتاج إلى إعداد توجيه جديد لمكان التخزين في settings.py إذ يجب أن تخبر جانغو بالمكان الذي ستخزن فيه هذه الوسائط، وما هي عناوين URL التي ستستخدمها للوصول إلى هذه الملفات. import os # Media Files MEDIA_ROOT = os.path.join(BASE_DIR, 'mediafiles') MEDIA_URL = '/media/' تشير الإعدادات السابقة إلى أن ملفات الوسائط ستُخزن داخل ملف /mediafiles وسنحتاج إلى استخدام البادئة /media/ قبل عنوان URL للوصول إلى الملفات. فعلى سبيل المثال، سيؤدي عنوان URL التالي http://localhost:3000/media/example.png إلى استرجاع الصورة /mediafiles/example.png. نموذج المستخدم User Model النموذج التالي هو نموذج المستخدم User model، ولحسن الحظ، فإن جانغو يأتي مزودًا بنموذج مستخدم مدمج، والذي يوفر الوظائف الأساسية المتعلقة بالأذونات permission والتراخيص authorization. ومع ذلك، سنجرب في مشروعنا هذا شيئًا أكثر تعقيدًا، مثل إضافة صور أفاتار avatar للملف الشخصي وإضافة سيرة ذاتية وبعض المعلومات الأخرى، ولتحقيق ذلك، ستحتاج إلى إنشاء نماذج مستخدم جديدة، والتي نوسع فيها الصنف AbstractUser، ومعنى نوسعه extends أي نرث منه صنف جديد لنخصصه وفق حاجتنا أو نضيف له المزيد من الميزات. from django.contrib.auth.models import AbstractUser # New user model class User(AbstractUser): avatar = models.ImageField( upload_to='users/avatars/%Y/%m/%d/', default='users/avatars/default.jpg' ) bio = models.TextField(max_length=500, null=True) location = models.CharField(max_length=30, null=True) website = models.CharField(max_length=100, null=True) joined_date = models.DateField(auto_now_add=True) class Meta: verbose_name = 'user' verbose_name_plural = '2. Users' def __str__(self): return self.username هكذا يبدو صنف AbstractUser في جانغو: from django.contrib.auth.models import AbstractUser # New user model class User(AbstractUser): avatar = models.ImageField( upload_to='users/avatars/%Y/%m/%d/', default='users/avatars/default.jpg' ) bio = models.TextField(max_length=500, null=True) location = models.CharField(max_length=30, null=True) website = models.CharField(max_length=100, null=True) joined_date = models.DateField(auto_now_add=True) class Meta: verbose_name = 'user' verbose_name_plural = '2. Users' def __str__(self): return self.username كما هو واضح، يوفر هذا النموذج بعض الحقول الأساسية، مثل الاسم الأول واسم العائلة ونحو ذلك. ستحتاج بعد ذلك إلى التأكد من أن جانغو يستخدم نموذج المستخدم الجديد كنموذج مستخدم افتراضي، لذلك انتقل إلى ملف إعدادات التطبيق settings.py وأضف له التوجيه directive التالي: # Change Default User Model AUTH_USER_MODEL = 'blog.User' نماذج الفئة Category والوسم Tag والمنشور Post class Category(models.Model): name = models.CharField(max_length=200) slug = models.SlugField() description = models.TextField() class Meta: verbose_name = 'category' verbose_name_plural = '3. Categories' def __str__(self): return self.name class Tag(models.Model): name = models.CharField(max_length=200) slug = models.SlugField() description = models.TextField() class Meta: verbose_name = 'tag' verbose_name_plural = '4. Tags' def __str__(self): return self.name class Post(models.Model): title = models.CharField(max_length=200) slug = models.SlugField() content = RichTextField() featured_image = models.ImageField( upload_to='posts/featured_images/%Y/%m/%d/') is_published = models.BooleanField(default=False) is_featured = models.BooleanField(default=False) created_at = models.DateField(auto_now_add=True) modified_at = models.DateField(auto_now=True) # Each post can receive likes from multiple users, and each user can like multiple posts likes = models.ManyToManyField(User, related_name='post_like') # Each post belong to one user and one category. # Each post has many tags, and each tag has many posts. category = models.ForeignKey( Category, on_delete=models.SET_NULL, null=True) tag = models.ManyToManyField(Tag) user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True) class Meta: verbose_name = 'post' verbose_name_plural = '5. Posts' def __str__(self): return self.title def get_number_of_likes(self): return self.likes.count() لاحظ كيف تنفذ ميزة الإعجاب بالمنشورات (Like system) في السطر 13، وهو لا يعتمد على النوع البسيط IntegerField (وهو حقل لتخزين القيم الصحيحة) ولكنه يعمل تمامًا مثل الوسوم Tags. ويمكنك استخدام الدالة get_number_of_likes() لتحصل على عدد الإعجابات لكل منشور. نموذج التعليقات Comment model والآن دعونا نخطو خطوةً نحو الأمام، وننشئ قسمًا مخصصًا للتعليقات لهذا التطبيق: class Comment(models.Model): content = models.TextField(max_length=1000) created_at = models.DateField(auto_now_add=True) is_approved = models.BooleanField(default=False) # Each comment can receive likes from multiple users, and each user can like multiple comments likes = models.ManyToManyField(User, related_name='comment_like') # Each comment belongs to one user and one post user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True) post = models.ForeignKey(Post, on_delete=models.SET_NULL, null=True) class Meta: verbose_name = 'comment' verbose_name_plural = '6. Comments' def __str__(self): if len(self.content) > 50: comment = self.content[:50] + '...' else: comment = self.content return comment def get_number_of_likes(self): return self.likes.count() إعداد لوحة التحكم في جانغو والآن حان الوقت لإعداد لوحة التحكم أو لوحة الإدارة في جانغو، لذا افتح ملف admin.py واكتب فيه التالي: from django.contrib import admin from .models import * # Register your models here. class UserAdmin(admin.ModelAdmin): list_display = ('username', 'first_name', 'last_name', 'email', 'date_joined') class CategoryAdmin(admin.ModelAdmin): prepopulated_fields = {'slug': ('name',)} class TagAdmin(admin.ModelAdmin): prepopulated_fields = {'slug': ('name',)} class PostAdmin(admin.ModelAdmin): prepopulated_fields = {'slug': ('title',)} list_display = ('title', 'is_published', 'is_featured', 'created_at') class CommentAdmin(admin.ModelAdmin): list_display = ('__str__', 'is_approved', 'created_at') admin.site.register(Site) admin.site.register(User, UserAdmin) admin.site.register(Category, CategoryAdmin) admin.site.register(Tag, TagAdmin) admin.site.register(Post, PostAdmin) admin.site.register(Comment, CommentAdmin) فيما يتعلق بـ CommentAdmin، فإن __str__ تشير إلى الدالة __str__() في نموذج التعليق. والتي ستعيد أول 50 حرفًا في السلسلة وتدمجها مع السلسلة .... والآن، فعِّل خادم التطوير وتأكد ما إذا كانت كل وظيفة تعمل على النحو الصحيح: python manage.py runserver وقبل الانتقال إلى الخطوة التالية، لا تنسَ إضافة بعض المعلومات الجانبية إلى مدونتك. مراجعة سريعة حول فيو جي إس Vue.js والآن بعد أن انتهينا من إعداد الواجهة الخلفية، حان الوقت للانتقال إلى الواجهة الأمامية، وبذلك الانتقال سنبدأ باستخدام فيو جي إس Vue.js في الجزء الثاني من مقالنا هذا لإعداد الواجهة الأمامية في تطبيقنا. قبل الخوض عميقًا، سنبدأ بمراجعة سريعة حول فيو جي إس Vue.js في حال لم تستخدمه من قبل، فيو جي إس Vue.js هو أحد أطر عمل جافا سكريبت JavaScript المخصصة لبناء الواجهات الأمامية، إذ يوفر لك نظامًا بسيطًا معتمدًا على المكونات، ما يسمح لك بإنشاء واجهات مستخدم تفاعلية. المقصود بـ "معتمدًا على المكونات" يعني أن المكون الجذري App.vue بإمكانه استيراد مكونات أخرى، وهي الملفات ذات الامتداد .vue، ويمكن لهذه المكونات استيراد المزيد من المكونات الأخرى، ما يسمح لك بإنشاء أنظمة معقدة ومتطورة للغاية. يحتوي الملف النموذجي ذو الامتداد .vue على ثلاثة أقسام، القسم الأول هو <template> يتضمن شيفرات بلغة HTML أما القسم الثاني فهو <script> ويتضمن شيفرات بلغة JavaScript، والقسم الأخير <style> يتضمن شيفرات بلغة CSS. يمكنك في قسم <script> التصريح عن ارتباطات bindings جديدة داخل التابع data() ، ويمكنك بعد ذلك عرض هذه الارتباطات داخل قسم <template> باستخدام الأقواس المزدوجة المتعرجة {{Binding}}. ستُغطى هذه الارتباطات المُصرَّح عنها في التابع data() تلقائيًا داخل نظام تفاعل فيو Vue، وهذا يعني أنه عندما تتغير قيمة الارتباط Binding، سيتغير المكون المقابل تلقائيًا، دون الحاجة إلى تحديث الصفحة. يمكن أن يحتوي القسم <script> أيضًا على توابع أخرى غير data() ، مثل computed وprops. كما يتيح لنا <template> ربط البيانات باستخدام توجيهات مثل v-bind و v-on و v-model. إنشاء مشروع Vue.js جديد يمكن تثبيت وإنشاء تطبيق Vue باستخدام أداة سطر الأوامر Vue، لكننا في هذه المرة سنتبع طريقة مختلفة إذ سنستخدم أداة إنشاء واجهات أمامية تسمى Vite، مع ملاحظة أن الكلمة تُنطق veet وتعني سريع باللغة الفرنسية، والتي أنشأها ذات الشخص الذي أنشأ Vue.js. انتقل الآن إلى مجلد frontend ونفذ الأمر التالي: npm init vue@latest سيُطلب منك العديد من الخيارات، ولهذا المشروع، كل ما عليك فعله إضافة Vue Router: ✔ Project name: … <your_project_name> ✔ Add TypeScript? … No / Yes ✔ Add JSX Support? … No / Yes ✔ Add Vue Router for Single Page Application development? … No / Yes ✔ Add Pinia for state management? … No / Yes ✔ Add Vitest for Unit testing? … No / Yes ✔ Add Cypress for both Unit and End-to-End testing? … No / Yes ✔ Add ESLint for code quality? … No / Yes ✔ Add Prettier for code formating? … No / Yes Scaffolding project in ./<your_project_name>. . . Done. إذا كنت ترتاح أكثر مع لغة برمجة جيدة، فيمكنك اختيار تثبيت TypeScript وإن كنت تحتاج إلى التصحيح التلقائي والتنسيق التلقائي للتعليمات البرمجية التي تكتبها، فيمكنك تثبيت ESlint وPrettier، ستؤدي عملية التثبيت هذه إلى إنشاء ملف package.json في دليل مشروعك، والذي يقوم بتخزين الحزم المطلوبة وإصداراتها. ستحتاج بعد ذلك إلى تثبيت هذه الحزم داخل مشروعك. cd <your_project_name> npm install npm run dev ثمة شيء أخير قبل البدء في إنشاء الواجهة الأمامية للتطبيق، نحن نستخدم في مشروعنا هذا إطار عمل بلغة CSS يُدعى TailwindCSS، لذا لتثبيته، نفذ الأمر التالي: npm install -D tailwindcss postcss autoprefixer npx tailwindcss init -p سيؤدي ذلك إلى إنشاء ملفين، الأول هو tailwind.config.js والثاني postcss.config.js، وإذا كنت تريد معرفة المزيد عن Tailwind فيمكنك الاطلاع على مقال مقارنة بين Bootstrap و Tailwind CSS، كما يمكنك الاطلاع على الدليل الرسمي لـ Tailwind. انتقل إلى tailwind.config.js وأضف المسار إلى جميع ملفات قالبك: module.exports = { content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"], theme: { extend: {}, }, plugins: [], }; أنشئ ملف ./src/index.css وأضف توجيهات @tailwind لكل طبقة من طبقات Tailwind’s layers. @tailwind base; @tailwind components; @tailwind utilities; والآن، استورد الملف الذي أنشأته حديثًا ./src/index.css إلى ملف ./src/main.js import { createApp } from "vue"; import App from "./App.vue"; import router from "./router"; import "./index.css"; const app = createApp(App); app.use(router); app.mount("#app"); والآن، من المفترض أن تكون قادرًا على استخدام Tailwind داخل ملفات .vue، وللتأكد، دعنا نختبر ذلك. <template> <header> . . . <div class="wrapper"> <HelloWorld msg="You did it!" /> <h1 class="text-3xl font-bold underline">Hello world!</h1> . . . </div> </header> . . . </template> لاحظ أننا أضفنا عنوان <h1> بعد <HelloWorld>، إذ يستخدم العنوان أصناف Tailwind. مكتبة Vue Router لاحظ أن مجلد مشروعك مختلف قليلًا في هذه المرة: يوجد داخل المجلد الرئيسي src مجلد router ومجلد views، إذ يحتوي مجلد router على ملف index.js، والذي يمكنك من خلاله تحديد وجهات مختلفة، بحيث تشير كل وجهة route إلى مكون view موجود داخل مجلد views، ويمكن أن يوسع كل view بعد ذلك إلى مكونات أخرى داخل مجلد المكونات Components. تزودنا Vue بمثال على ذلك في ملف index.js: import { createRouter, createWebHistory } from "vue-router"; import HomeView from "../views/HomeView.vue"; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: "/", name: "home", component: HomeView, }, { path: "/about", name: "about", // route level code-splitting // this generates a separate chunk (About.[hash].js) for this route // which is lazy-loaded when the route is visited. component: () => import("../views/AboutView.vue"), }, ], }); export default router; لاستدعاء موجه router ما، انظر في داخل ملف App.vue، وعوضًا عن الوسم <a>، يُستخدم الوسم <RouterLink> المستورد من حزمة vue-router لإدارة التنقل بين الصفحات في تطبيق Vue.js. <script setup> import { RouterLink, RouterView } from "vue-router"; . . . </script> <template> <header> . . . <div class="wrapper"> . . . <nav> <RouterLink to="/">Home</RouterLink> <RouterLink to="/about">About</RouterLink> </nav> </div> </header> <RouterView /> </template> عند إخراج الصفحة، سيُستبدل الوسم <RouterView/> بالعرض المطابق، وإذا لم تكن ترغب في استيراد هذه المكونات، فكل ما عليك هو استخدام الوسم router-link to="">> و <router-view> عوضًا عن ذلك. إنشاء وجهات routes باستخدام Vue router سنحتاج في مدونة تطبيقنا إلى إنشاء ست صفحات على الأقل، سنحتاج إلى صفحة رئيسية والتي تعرض قائمة بأحدث الصفحات في المدونة، كما سنحتاج إلى صفحة الأقسام والتي تعرض جميع الأقسام أو الوسوم في المدونة، وصفحة أخرى لتعرض قائمة بالمقالات التي تنتمي إلى الأقسام أو الوسوم، وأخيرًا صفحة المقال التي تعرض محتوى المقال إضافةً إلى التعليقات. فيما يلي الموجهات التي أنشأناها، إذ يوجه الوسم @ نحو مجلد src. import { createRouter, createWebHistory } from "vue-router"; import HomeView from "@/views/main/Home.vue"; import PostView from "@/views/main/Post.vue"; import CategoryView from "@/views/main/Category.vue"; import TagView from "@/views/main/Tag.vue"; import AllCategoriesView from "@/views/main/AllCategories.vue"; import AllTagsView from "@/views/main/AllTags.vue"; const routes = [ { path: "/", name: "Home", component: HomeView, }, { path: "/category", name: "Category", component: CategoryView, }, { path: "/tag", name: "Tag", component: TagView, }, { path: "/post", name: "Post", component: PostView, }, { path: "/categories", name: "Categories", component: AllCategoriesView, }, { path: "/tags", name: "Tags", component: AllTagsView, }, ]; const router = createRouter({ history: createWebHistory(process.env.BASE_URL), routes, }); export default router; لاحظ أننا نعمل في هذا المقال على إنشاء الواجهة الأمامية فقط، ولم نصل إلى مرحلة نقل البيانات حتى الآن، لذا لا تقلق حول كيفية العثور على المنشورات أو الأقسام أو الوسوم في الوقت الحالي. إنشاء العروض والصفحات والمكونات توضح الصور التالية واجهة المستخدم الأمامية التي أنشأناها لهذا المشروع، ويمكنك إنشاؤها لديك إما باعتماد الشيفرات البرمجية في هذا المقال، أو كتابة الشيفرات البرمجية الخاصة الخاص بك كما يمكنك العثور على الكود البرمجي الكامل من هنا. الصفحة الرئيسية Home Page جميع التصنيفات All Categories جميع الوسوم All Tags صفحة تسجيل الدخول Sign In صفحة إنشاء حساب Sign Up صفحة المنشور المفرد Post قسم التعليقات على المنشور Comments صفحة الملف الشخصي للمستخدم Profile قسم تعليقات المستخدمين User Comments ترجمة -وبتصرّف- للمقال Create a Modern Application with Django and Vue #1 اقرأ أيضًا تطبيق عملي لتعلم إطار عمل جانغو - الجزء الأول: إنشاء موقع ويب هيكلي لمكتبة محلية معالجة طلبات الويب عبر العروض views في تطبيق جانغو بناء تطبيق ويب لإدارة معلومات العملاء باستخدام جانغو Django وريآكت React إنشاء تطبيق بسيط من خلال Vue.js إنشاء تطبيق جانغو وتوصيله بقاعدة بيانات
-
سنقدم في هذا الدليل 10 نصائح تساعدك على كتابة محتوى بطريقة أسرع، والتغلب على مشكلة قفلة الكاتب writer’s block التي تصيب بعض الكتاب؛ ليس بسبب نقص المهارة، إنما نتيجة عوامل نفسية؛ كما يشرح المقال كيفية بناء عادة منتظمة تساعدك على نشر محتوى قيّم وإيجابي للقراء. لا شك أن تعلم الكتابة السريعة يُعَد أمرًا ضروريًا لتصبح مدونًا ناجحًا، لأنك تحتاج إلى نشر محتوى ثابت بانتظام لجذب الجمهور والمحافظة عليهم؛ أما أن تنشر بعض المقالات من حين إلى آخر وتنتظر لحظات الإلهام لتأتيك، فهو أمر لا ينفع مع من يسعى إلى بناء مدونة ناجحة، إذ لا بُدّ من اتباع إيقاع نشر منتظم، حتى يستمر القراء بزيارتك مدونتك وقراءة المزيد من مقالاتك. قد تبدو الكلمات السابقة رائعةً من الناحية النظرية، وربما أعطتك دفعةً من الحماسة، لكن كيف يبدو الأمر من الناحية الواقعية؟ عندما تفتح مستندًا فارغًا لكتابة محتوى جديد، قد تجد نفسك محدقًا فيه لفترة طويلة دون كتابة أي شيء، ومن ثم تعلن استسلامك. في ذات الصدد، قد تتمكن من كتابة شيء ما، ولكنك تشعر أنك تكتب بعشوائية دون اتباع منهج واضح، أو أنها مجرد جمل إنشائية لا تقدم للقارئ أي قيمة حقيقية؛ كما قد تنتهي من كتابة منشوراتك، ثم تشعر أنها متخبطة تأخذ القارئ في متاهة من المعلومات المتداخلة، فينتهي به المطاف دون تحقيق أي فائدة. قد تظن في قرارة نفسك أنك غير مؤهل لتكون كاتبًا ناجحًا وسريعًا، لكن كن على ثقة بأنه يمكنك تحقيق هدفك إذا فهمت النصائح التالية وبذلت جهدك في تطبيقها. 1. اكتب كل يوم إن أمكن ذلك إذا سألت الكتاب الناجحين من كل المجالات -وليس المدونات فقط- عن سر نجاحهم، فسيخبرك الكثير منهم عن أهمية الكتابة اليومية؛ وهو ما يمكنك تطبيقه عمليًا من خلال منح الكتابة جزءًا أساسيًا من برنامجك اليومي، وقد تستمر في ذلك حتى في أيام العطل والأعياد، أو يمكنك الاقتصار على أيام العمل. الجميل في الانتظام اليومي للكتابة هو أنك ستصل إلى نتائج رائعة بعد فترة دون أن تشعر أنك قد بذلت وقتًا طويلًا في الكتابة. فعلى سبيل المثال، إذا كتبت 500 كلمة فقط يوميًا، ستصل في نهاية العام إلى أكثر من 100 ألف كلمة، حتى وإن لم تكن تكتب في عطلات نهاية الأسبوع وأخذت إجازة لبضعة أسابيع. مع العلم أنك عندما تصبح سريعًا في الكتابة، لن تستغرق في كتابة 500 كلمة ٱكثر من 30 دقيقة. من المهم أن تجد وقتًا من برنامجك اليومي تركز فيه جيدًا على الكتابة، وقد يكون ذلك في الصباح الباكر، أو خلال استراحة الغداء، أو ربما في المساء المتأخر بعد أن ينام أطفالك، أو أيًا كان الوقت الذي يناسبك. إذا لم تكن الكتابة اليومية مناسبةً لطبيعة حياتك، أو إذا كنت تفضل جلسات كتابة بعدد أقل ولمدة أطول، فاحرص على أن تكتب مرتين على الأقل أسبوعيًا. 2. ابدأ بكتابة الخطوط العريضة لهيكلة منشورك الخطوة الأولى لكتابة أي محتوى هي وضع حجر الأساس له، وهذا من خلال تحديد الٱفكار الرئيسية التي سيتناولها منشورك، فهي أشبه بالهيكل العظمي الذي من خلالها ستتمكن من معرفة ما يجب كتابته في بداية المنشور وفي منتصفه وفي نهايته، وستكون أمامك بعض الأفكار الأساسية التي يمكن أن تشكل العناوين الفرعية لمنشورك. إذا كنت تهدف إلى أن كتابة منشورك بسرعة، فقد تظن أن وضع مخطط المنشور ما هو إلا مضيعة للوقت، لكن الحقيقة أن البدء بمخطط المنشور سيساعدك على أن تنجز عملك بسرعة أكبر. سيساعدك مخطط المنشور في البقاء على المسار الصحيح، حتى لا ينتهي بك الأمر في التخبط بين الأفكار والتنقل العشوائي بين المواضيع. علاوةً على ذلك، يمكن لمخطط المنشور أن يبقيك متحفزًا حتى النهاية، كونه يتيح لك معرفة المقدار الذي أنجزته من منشورك، والمقدار المتبقي الذي ما يزال عليك كتابته. 3. اكتب مسودتك الأولى على شكل نقاط في البداية، لن تحتاج إلى كتابة فقرات كاملة أو حتى جمل كاملة، لأنك بالتأكيد ستراجع ما كتبت وترتبه ضمن جمل وفقرات متناسقة؛ لذلك ابدأ عملك بكتابة بعض الأفكار والإلهامات التي تدور في رأسك، واترك ترتيب هذه الأفكار إلى المرحلة التالية. أمور مثل العناوين والاقتباسات والصور وأي محتوى داعم آخر يمكنك تأجيله حتى الانتهاء من كتابة المسودة، لكن الأمر المهم في الوقت الحالي أن تدون أهم الأفكار لديك على الصفحة. وأخيرًا، احرص على تدوين أفكارك على شكل نقاط بسيطة، ولا تشغل نفسك كثيرًا بأمور التنسيق التي غالبًا ما تشتت انتباه الكتاب وتمنعهم من الوصول إلى أفضل مستوياتهم في الكتابة. 4. اكتب بالترتيب الذي تريده ليس من الضروري أن تبدأ عملك بكتابة المقدمة ومن ثم إكمال المقال بالترتيب حتى كتابة الخاتمة، بل يمكنك أن تبدأ بكتابة القسم الذي يجذبك أكثر؛ فإذا كنت تكتب مقالًا من النوع "10 نصائح …" لتعلم القارئ كيفية القيام بشيء ما، فيمكنك أن تبدأ بكتابة النصيحة 3، ثم النصيحة 7، ومن ثم تعود إلى كتابة باقي النصائح. إن وجود المخطط الأولي لمنشورك سيسهل عليك مهمة التنقل كثيرًا، وهي إحدى الأسباب الرئيسية التي يجب أن تدفعك إلى كتابة المخطط الأولي في البداية، فقد ترغب في كتابة الأقسام الأصعب أولًا، وبالتالي تتشجع لإنهاء القسم السهل المتبقي، أو قد ترغب في البدء في الأقسام السهلة كنوع من الإحماء قبل الانتقال إلى الأجزاء الأكثر تعقيدًا في منشورك. 5. اكتب تحت الضغط من خلال تحديد موعد نهائي ثابت من الجيد أن تحدد لنفسك تاريخًا ووقتًا معينًا يجب أن تنشر فيه مقالتك، وعند حلول ذلك الوقت، يجب أن تنشر كل ما كتبته. ولا تقلق حول ما إذا كان المحتوى مثاليًا أو أنه ليس كذلك، إذ يمكنك العودة إليه وتحديثه في اليوم التالي أو الأسبوع التالي أو حتى الشهر المقبل. يكتشف العديد من الكتاب قدرتهم على الكتابة السريعة عندما يواجهون موعدًا نهائيًا عليهم الالتزام به. وبصفتك مدونًا، ليس من المُتوقع أن يكون لديك محررًا أو مديرًا ينتظر عملك، وهذا صحيح، لكن تذكر أن لديك قراءً وجمهورًا ينتظرون منشوراتك. ولكي تزيد حماستك في الكتابة، يمكنك إخبار القراء بأنك ستنشر منشورًا جديدًا كل يوم جمعة مثلًا على مدونتك، مما يمنحك موعدًا نهائيًا محددًا عليك الالتزام به؛ أو في حال كنت تنشر على وسائل التواصل الاجتماعي، فيمكنك إخبار أصدقائك والمتابعين بأنك ستنشر منشورًا جديدًا بحلول الساعة السادسة مساءً كل يوم، أو في أي وقت آخر قد تختاره. يمكن أن يكون الشعور بالمسؤولية العلنية دافعًا قويًا للغاية، ومن المرجح أن تنجز كتابتك بسرعة ٱكبر بكثير، لأنك تتسابق مع الزمن لتوفي بالموعد الذي قدمته لجمهورك، كما قد تجد في الموعد الثابت للنشر عاملًا يساعدك على زيادة التركيز. سيساعدك الموعد الثابت أيضًا على استغلال الوقت بالطريقة المثالية، فعلى سبيل المثال، قد تكتب لمدة ساعة قبل أن تذهب لاصطحاب أطفالك من المدرسة، أو ربما تكتب لمدة 30 دقيقة قبل بداية مباراة كرة القدم التي ترغب في مشاهدتها. 6. إضافة مؤقت للمحافظة على تركيزك في الكتابة السريعة إذا كنت عاجزًا عن الالتزام بموعد نهائي ثابت، فيمكنك تجربة استخدام مؤقت، والذي قد يساعدك على زيادة تركيزك أثناء الكتابة. الطريقة الأكثر شيوعًا لاستخدام مؤقت هي تقنية الطماطم أو تقنية البومودورو Pomodoro Technique، والتي تشير إلى العمل لمدة 25 دقيقة، مقابل استراحة لمدة 5 دقائق؛ إذ يمكنك تكرار ذلك 3 مرات قبل أخذ استراحة لمدة أطول (20-30 دقيقة). ومع ذلك، ليس من الضروري ٱن تتقيد بالأرقام السابقة، إذ يمكنك ضبط مؤقتك بالمدة الزمنية التي تناسبك، كما يمكنك التنويع ما بين المهام التي تحتاج إلى تركيز عالٍ والمهام التي تحتاج إلى تركيز أقل. على سبيل المثال، يمكنك كتابة مقال لمدة 20 دقيقة، ثم الرد على رسائل البريد الإلكتروني لمدة 20 دقيقة أخرى، ومن ثم العودة مجانًا إلى الكتابة لمدة 20 دقيقة أخرى. تُعَد عملية ضبط المؤقت بمثابة التزام تجاه نفسك، وكأنك تقدم لنفسك وعدًا بأنك ستكتب ولن تتشتت بشيء آخر لمدة 25 دقيقة. إذا كنت ما تزال تواجه صعوبةً في المحافظة على تركيزك، فيمكنك تجربة مكون إضافي للمتصفح مثل Strict Workflow لحظر مواقع الويب التي تشتت انتباهك أثناء فترات العمل؛ وإذا لم يكن لديك تطبيق مؤقت، فيمكنك ببساطة البحث على جوجل "المؤقت" ومن ثم اختيار المدة التي تريدها والضغط على زر التشغيل. 7. وضع هدف محدد لرفع الإنتاجية علاوةً على ضبط مؤقت، قد تجد أن من المفيد لك تحديد هدف واضح لنفسك حول عدد الكلمات التي تريد كتابتها، فقد تضع على سبيل المثال هدفًا يوميًا من الكلمات يجب إنجازه، أو قد تحدد مدة معينة لإنجاز ما تبقى من مقالك. ستساعدك الأهداف الذكية على تحسين تركيزك وزيادة سرعة عملك، فإذا كنت تعمل على مشروع طويل، مثل كتابة كتاب إلكتروني، فإن تعيين هدف لعدد الكلمات قد يكون أسلوبًا فعالًا للبقاء على المسار الصحيح. وهنا قد يتبادر إلى ذهنك سؤال "ما هو الهدف الجيد لعدد الكلمات؟" الإجابة في الواقع تختلف من شخص إلى آخر بناءً على سرعة الكتابة ومقدار الوقت المتاح لديك. واحدة من الطرق التي يمكنك اتباعها هي كتابة مقال بطول ألف كلمة، وحساب المدة المستغرقة لكتابته، ومن ثم وضع هدف لإكمال الألف كلمة التالية بمدة زمنية أقل من المدة المستغرقة في المرة الأولى. إذا كنت تعاني من نقص التحفيز، فحاول تحديد هدفين مختلفين لعدد الكلمات، هدف الحد الأدنى وهدف مثالي. فعلى سبيل المثال، يمكنك تعيين 100 كلمة يوميًا كحد أدنى لعدد الكلمات المنجزة، وتحديد 500 كلمة يوميًا كهدف مثالي تسعى إلى تحقيقه، ففي الأيام الصعبة والمشغولة، قد تكتفي بكتابة 100 كلمة ويكون ذلك بمثابة نجاح لك؛ ولكن عندما تكون كل الأمور على ما يُرام ولديك متسع من الوقت، فقد تسعى إلى الوصول إلى 500 كلمة كاملة. 8. بناء عادات كتابة خاصة بك لدى العديد من المدونين عادات خاصة لبدء يومهم، ويمكن أن يكون ذلك أمرًا بسيطًا، مثل قراءة أهدافهم، وفتح مستنداتهم التي يعملون عليها وتدوين 3-5 أفكار رئيسية يخططون لتغطيتها خلال اليوم. يحب بعض الأشخاص إضافة عناصر حسية إلى طقوس الكتابة، مثل إضاءة شمعة أو شرب فنجان من القهوة المفضلة، كما قد يبدأ آخرون بوقت قصير من التأمل أو قراءة بعض الاقتباسات الملهمة. مع ذلك، لا تجعل طقوس كتابتك طويلة جدًا أو معقدة، لأن ذلك لن يخدمك في تعلم الكتابة السريعة، بل الأفضل أن تختار أشياء تستغرق بضعة دقائق فقط؛ كذلك، يجب أن تكون مرنًا ولا تتشبث بعاداتك دائمًا، لا سيما إذا كنت تكتب في أكثر من مكان مختلف، فليس من المناسب مثلًا أن تضيء شمعتك إذا كنت تعمل في مكتبة عامة. قد يكون من المناسب لك أيضًا أن تبني عادات فائقة السرعة لاستخدامها في الأوقات التي تكون فيها بحاجة إلى إعادة التركيز أثناء جلسة الكتابة، فقد تقاطعك مكالمة هاتفية، ثم تتشتت على منصات التواصل الاجتماعي مثلًا؛ حينها، يمكنك إعادة التركيز عن طريق إغلاق التطبيقات وعلامات التبويب غير المهمة على متصفحك قبل أخذ بعض الأنفاس العميقة. 9. لا تحرر أثناء الكتابة إحدى الأخطاء المؤكدة التي تؤدي إلى إبطاء وتيرة عملك هي التحرير أثناء الكتابة، إذ لا يمكن القيام بالأمرين معًا في آن واحد؛ فإذا كتبت جملةً ثم حذفتها، ثم كتبت جملة أخرى وحذفت نصفها، ثم كتبت أكثر قليلًا، ثم رجعت وأصلحت بعض الأخطاء المطبعية أو عدلت عنوان منشورك، فمن الصعب حقًا إحراز أي تقدم بهذه الطريقة. حاول قدر الإمكان أن تكتب منشورًا كاملًا قبل البدء بتحريره، لأنك عندما تدخل في عملية الكتابة، سيكون من السهل الاستمرار فيها، وبمجرد حصولك على مسودة كاملة، يمكنك مراجعة منشورك بالكامل ومعرفة ما يجب تغييره، وقد تكون التعديلات أقل مما تظن. إضافةً إلى عدم التحرير أثناء الكتابة، حاول ألا تتوقف ٱثناء الكتابة وتتشتت في البحث عن الأشياء، وإذا كنت بحاجة إلى التحقق من معلومة معينة أو إضافة رابط ما، فما عليك سوى إضافة تعليق على المستند أو تمييز النص بلون مختلف حتى تتمكن من العودة إليه لاحقًا. صحيح أن الأمر قد يستغرق 30 ثانيةً فقط للتحقق من معلومة ما، ولكنه سيعرقل تقدمك، وقد ينتهي بك الأمر في حلقة تشتت الانتباه؛ إذ يؤدي التحقق من رابط في مدونة صديقك إلى قراءة أحدث مقالاته، والنقر على رابط آخر، والتمرير عبر منصات التواصل الاجتماعي، وما إلى ذلك. 10. استخدم أداة تعديل النصوص Text Expander للعبارات الشائعة هل تجد نفسك تستخدم ذات العبارات في عدد كبير من منشورات مدونتك؟ هل تفكر أحيانًا في الإشارة إلى مدونة أخرى باسم طويل وترى أن ذلك يستغرق وقتًا في الكتابة؟ أو هل ترغب في تدوين الاسم الكامل للمنتج بسرعة؟ يمكنك الحصول على كل المزايا السابقة باستخدام أداة تعديل النصوص text expander، والتي تتيح لك استبدال الاختصار أو الرمز القصير بالاسم الكامل تلقائيًا. على سبيل المثال، يمكنك تحويل الاختصار "SME" تلقائيًا إلى الاسم الكامل "Social Media Examiner". يمكنك أيضًا استخدام أداة تعديل النصوص لتصحيح الأخطاء الإملائية، أو لتعديل الأحرف الكبيرة والصغيرة في بداية الكلمات، بحيث إذا كتبت كلمة ووردبريس باللغة بالإنجليزية بهذه الطريقة "Wordpress" مثلًا، فستعمل الأداة على تصحيحها تلقائيًا إلى الشكل "WordPress". هناك الكثير من أدوات تعديل النصوص المختلفة، يمكنك استخدام أداة Text Expander التي تحتوي على نسخة تجريبية مجانية لمدة 30 يومًا، وكذلك أداة Beeftext التي تُعَد خيارًا مجانيًا جيدًا لنظام التشغيل Windows. يمكنك أيضًا استخدام أدوات تعديل النصوص لأغراض أخرى، مثل الردود التلقائية على رسائل البريد الإلكتروني الشائعة التي تتلقاها من القراء. يجب أن تلاحظ أن هذه الٱدوات لا تساعدك على تسريع كتابتك فوريًا، لكنك مع الوقت ستلاحظ نتائجها الرائعة وقدرتها على توفير الوقت الذي تقضيه في الكتابة. في الختام مهما كانت سرعة كتابتك الحالية، كن على يقين بأنك قادر على تحسينها، وقد عايش الكثير من المدونين التطورات الهائلة التي طرأت على مستوياتهم في الكتابة مع استمرارهم الدؤوب في العمل بانتظام ومحاولة تطوير أنفسهم وزيادة سرعتهم في الكتابة. قد تجد أن بعض هذه النصائح لا تتماشى مع طبيعة عملك أو أنها لا تساعدك على تسريع كتابتك، كما قد تجد أنك ملتزم فعلًا ببعض منها، مثل الكتابة اليومية؛ أو ربما تشعر أن بعض هذه النصائح تزيد الضغط عليك، مثل استخدام المؤقت، لذا اختر النصائح التي تشعر أنها تناسبك، فليس من الضروري أن تطبقها كلها. ومع ذلك، حاول تجربة كل النصائح الواردة في هذا المقال، حتى وإن كنت قد جربت شيئًا من قبل وفشلت في تنفيذه بالكامل، فقد تتمكن من الاستفادة منه في هذه المرة وتكتشف كيفية الكتابة بطريقة أسرع. في هذا الأسبوع، يمكن أن تركز على نصيحة واحدة أو نصيحتين، وسترى خلال وقت قصير الفرق الذي طرأ على كتابتك، ولا تيأس إذا لم تتحسن سرعة كتابتك من يوم إلى آخر، فمجرد تحسنك بنسبة 10% كل أسبوع يعني مضاعفة سرعة كتابتك بعد 9 أسابيع. ترجمة -وبتصرّف- للمقال How to Write Faster Blog Content لصاحبه Ryan Robinson. اقرأ أيضًا كيف تنظم جدول أعمالك ككاتب حر بدوام كامل؟ 9 خطوات لكتابة مقالات بشكل أسرع وزيادة أرباحك كمُستقل مدخل إلى التدوين ونشر المدونات وما يتعلق بها عبر منصة ووردبريس