بدأت الغوص في عالم تكنولوجيا المعلومات قبل ثلاثة أسابيع فقط. على محمل الجد ، قبل ثلاثة أسابيع لم أفهم حتى بناء جملة HTML ، وانتهت معرفتي بلغات البرمجة بمنهج دراسي مدته 10 سنوات من Pascal. ومع ذلك ، قررت أن أذهب إلى معسكر تكنولوجيا المعلومات ، الذي سيكون من الجميل أن يصنع روبوتاً لأطفاله. قررت أنه كان بالكاد صعبة للغاية.
بدأت هذه رحلة طويلة ، من خلالها:
- نشر خادم سحابة مع أوبونتو ،
- مسجلة على جيثب
- تعلمت بناء جملة جافا سكريبت الأساسي
- قراءة طن من المقالات باللغة الإنجليزية والروسية ،
- قدم أخيرا الروبوت
- كتب هذا المقال في النهاية.
كانت النتيجة النهائية تبدو مثل هذا:

سأقول على الفور ، هذا مقال للمبتدئين - فقط لفهم كيفية القيام بالأشياء الأساسية من نقطة الصفر.
وكذلك - للمبرمجين المتقدمين - فقط لجعلهم يضحكون قليلاً.
1. كيفية كتابة التعليمات البرمجية في JS؟أدركت أن الأمر يستحق البدء على الأقل بفهم بناء جملة اللغة. وقع الاختيار على JavaScript ، وذلك ببساطة لأن الخطوة التالية بالنسبة لي هي إنشاء تطبيق على ReactNative. لقد بدأت مع
دورة في Codecademy وكنت مسروراً. أول 7 أيام مجانية. مشاريع حقيقية. أنا أوصي به. استغرق الأمر حوالي 25 ساعة. في الواقع ، بعيدا عن كل ذلك جاء في متناول اليدين. هذا هو ما يبدو عليه هيكل الدورة التدريبية والكتلة الأولى بالتفصيل.
2. كيفية تسجيل الروبوت؟في البداية ، ساعدني
هذا المقال من مدونة Archakov معينة. يمضغ البداية. ولكن الشيء الرئيسي هو أن هناك تعليمات لتسجيل الروبوت. لن أكتب بشكل أفضل ، ولأن هذا هو الجزء الأسهل ، فسأكتب فقط الجوهر. تحتاج إلى إنشاء روبوت والحصول على API الخاص به. يتم ذلك من خلال روبوت آخر - @ بوتفثير. ابحث عنها في البرق ، واكتبها ، واذهب إلى مسار بسيط واحصل على (حفظ!) مفتاح API (هذه مجموعة من الأرقام والحروف). جاء مفيد في وقت لاحق.
3. كيف يبدو رمز الروبوت؟
بعد دراسة طويلة للمقالات ، أدركت أنه من المفيد استخدام نوع من المكتبات (رمز الجهة الخارجية بتنسيق الوحدة النمطية) حتى لا تهتم بتعلم واجهة برمجة تطبيقات telegram وإنشاء أجزاء كبيرة من التعليمات البرمجية من نقطة الصفر. لقد وجدت إطار telegraf الذي يحتاج إلى أن يكون متصلاً بطريقة ما بشيء يستخدم npm أو الغزل. هكذا فهمت ثم ماذا يتكون نشر الروبوت. اضحك هنا. لن أكون مضطربًا. ساعدتني الأمثلة التالية لأسفل الصفحة في المقام الأول أثناء إنشاء الروبوت التالي:

3. كيفية إنشاء خادم سحابة الخاصة بك لمدة 100 روبل
بعد بحث طويل ، أدركت أن الأمر "npm" من الصورة أعلاه يشير إلى سطر الأوامر. سطر الأوامر موجود في كل مكان ، ولكن لتنفيذه ، تحتاج إلى تثبيت NodePackageManager. كانت المشكلة أنني كنت أبرمج على PixelBook مع ChromeOS. سوف أتخطى كتلة كبيرة هنا حول كيفية تعلُّم نظام Linux - بالنسبة لمعظم الناس ، هذا فارغ وغير ضروري. إذا كان لديك Windows أو MacBook ، فلديك بالفعل وحدة تحكم.
باختصار ، قمت بتثبيت نظام Linux من خلال Crostini.
ومع ذلك ، في هذه العملية ، أدركت أن الروبوت يعمل باستمرار (وليس فقط عند تشغيل جهاز الكمبيوتر الخاص بي) أحتاج إلى خادم سحابة. اخترت vscale.io رميت 100 روبل ، واشترى أرخص خادم أوبونتو ( انظر الصورة ).

4. كيفية إعداد خادم لإطلاق الروبوت
بعد ذلك ، أدركت أنني بحاجة إلى إنشاء نوع من المجلد على الخادم ، حيث سأضع الملف بنص الكود. للقيام بذلك ، في وحدة التحكم (تشغيل مباشرة على الموقع من خلال زر "فتح وحدة التحكم") اضطررت
mkdir bot
بوت - أصبح هذا اسم المجلد الخاص بي. بعد ذلك ، قمت بتثبيت npm و Node.js ، مما سيسمح لي بعد ذلك بتشغيل التعليمات البرمجية من الملفات بإذن * .js
sudo apt update sudo apt install nodejs sudo apt install npm
أوصي بشدة في هذه المرحلة بتكوين الاتصال بالخادم من خلال وحدة التحكم الخاصة بك. إليك التعليمات ، حيث سيتيح لك ذلك العمل مع الخادم مباشرةً من خلال وحدة التحكم في الكمبيوتر.
5. كيفية كتابة رمز أول روبوت.
والآن هو مجرد اكتشاف بالنسبة لي. أي برنامج هو مجرد خطوط النص. يمكن أن تكون مدفوعة في أي مكان ، حفظ مع التمديد المطلوب وجميع. انت جميل كنت أتوم ، ولكن في الحقيقة ، يمكنك ببساطة الكتابة في المفكرة القياسية. الشيء الرئيسي هو حفظ الملف في الملحق المطلوب لاحقًا. هذه هي كيفية كتابة النص في Word وحفظه.
قمت بإنشاء ملف جديد ، حيث قمت بإدخال الرمز من المثال على صفحة telegraf وحفظته في ملف index.js (ليس من الضروري تسمية الملف بهذه الطريقة ، لكن تم قبوله). هام - بدلاً من BOT_TOKEN ، أدخل مفتاح API الخاص بك من الفقرة الثانية.
const Telegraf = require('telegraf') const bot = new Telegraf(process.env.BOT_TOKEN) bot.start((ctx) => ctx.reply('Welcome!')) bot.help((ctx) => ctx.reply('Send me a sticker')) bot.on('sticker', (ctx) => ctx.reply('')) bot.hears('hi', (ctx) => ctx.reply('Hey there')) bot.launch()
6. كيفية تحميل رمز إلى الخادم عبر جيثب
الآن كنت بحاجة إلى تحميل هذا الرمز بطريقة أو بأخرى على الخادم وتشغيله. بالنسبة لي أصبح تحديا. نتيجة لذلك ، بعد محنة طويلة ، أدركت أنه سيكون من الأسهل إنشاء ملف على github ، والذي يدعو إلى تحديث الكود باستخدام الأمر الموجود في وحدة التحكم. لقد سجلت حسابًا على جيثب وقمت بإنشاء مشروع جديد ، حيث قمت بتحميل الملف. بعد ذلك كنت بحاجة لفهم كيفية تكوين تحميل الملفات من حسابي (فتح!) إلى الخادم في مجلد bot (إذا تركته فجأة ، فاكتب cd bot).
7. كيفية تحميل الملفات على الخادم من خلال جيثب الجزء 2
كنت بحاجة لوضع برنامج على الخادم يقوم بتنزيل الملفات من بوابة. أنا وضعت بوابة على الخادم ، والقيادة إلى وحدة التحكم
apt-get install git
بعد ذلك كنت بحاجة لتكوين تحميل الملف. للقيام بذلك ، وصلت إلى سطر الأوامر
git clone git://github.com/b0tank/bot.git bot
نتيجة لذلك ، تم تحميل كل شيء من المشروع إلى الخادم. كان الخطأ في هذه المرحلة هو أنني قمت بشكل أساسي بإنشاء مجلد ثانٍ داخل مجلد الروبوت الموجود بالفعل. بدا العنوان قبل الملف مثل * / bot / bot / index.js
قررت أن أهمل هذه المشكلة.
ولتحميل مكتبة telegraf ، التي نطلبها في السطر الأول من التعليمات البرمجية ، قم بقيادة أمر في وحدة التحكم.
npm install telegraf
8. كيفية بدء الروبوت
للقيام بذلك ، أثناء وجوده في المجلد الذي يحتوي على الملف (للتبديل من مجلد إلى مجلد من خلال وحدة التحكم - قم بتشغيل الأمر بتنسيق cd bot
للتأكد من أنك تحتاج إلى قيادة أمر يعرض جميع الملفات والمجلدات الموجودة في وحدة التحكم ls -a
لتشغيل ، دخلت وحدة التحكم
node index.js
إذا لم يكن هناك خطأ - كل شيء على ما يرام ، فإن الروبوت يعمل. ابحث عنه في البرقية. إذا كان هناك خطأ - تطبيق علمك من 1 نقطة.
9. كيفية بدء روبوت في الخلفية
بسرعة كافية ، ستدرك أن الروبوت يعمل فقط عندما تكون جالسًا في وحدة التحكم. لحل هذه المشكلة اعتدت الأمر
screen
بعد ذلك ، ستظهر شاشة بها بعض النصوص. هذا يعني أن كل شيء على ما يرام. أنت على خادم ظاهري على خادم سحابي. لفهم كيف يعمل كل هذا بشكل أفضل ، إليك مقالة . فقط انتقل إلى المجلد الخاص بك وقيادة الأمر لبدء الروبوت
node index.js
10. كيف يعمل الروبوت وكيفية توسيع وظائفه
ماذا يمكن أن الروبوت لدينا من المثال تفعل؟ هو يستطيع
bot.start((ctx) => ctx.reply('Welcome!'))
قل "مرحبا!" في وقت البدء (حاول تغيير النص)
bot.help((ctx) => ctx.reply('Send me a sticker'))
ردًا على الأمر / المساعدة القياسية ، أرسل رسالة "أرسل لي ملصقًا"
bot.on('sticker', (ctx) => ctx.reply(''))
ردا على الملصق إرسال الموافقة
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
أجب "يا هناك" إذا قالوا "مرحبًا"
bot.launch ()

إذا نظرت إلى الكود الموجود على جيثب ، ستدرك بسرعة أنني لم أذهب بعيدًا عن هذه الوظيفة. ما يتم استخدامه بنشاط هو وظيفة ctx.replyWithPhoto
حيث تتيح لك إرسال صورة أو صورة بتنسيق GIF استجابةً لنص معين.
كتب جزء كبير من الكود من قبل الأطفال الذين تتراوح أعمارهم بين 11 و 13 عامًا ، والذين سمحت لهم بالوصول إلى الروبوت. وقدموا حالة المستخدم الخاصة بهم. أعتقد أنه من السهل تحديد الجزء الذي قاموا به.
على سبيل المثال ، تأتي الرسالة "jake" مع صورة شخصية مشهورة من فيلم Adventure Time.

لتطوير الروبوت أكثر ، لتوصيل لوحة المفاتيح تحتاج إلى إلقاء نظرة على أمثلة ، على سبيل المثال ، من هنا
11. كيفية تحديث الرمز وإعادة تشغيل الروبوت
لا تنس أنك بحاجة إلى تحديث الرمز ليس فقط على جيثب ، ولكن أيضًا على الخادم. للقيام بذلك أمر بسيط - أوقف الروبوت (اضغط على ctrl + c) ،
- أدخل في وحدة التحكم ، ويجري في المجلد الهدف ، git pull
- قم بتشغيل الروبوت مرة أخرى باستخدام node index.js
END
العديد من الأشياء الموضحة في هذا الملف ستكون فائقة الوضوح للمبرمجين المتقدمين. ومع ذلك ، عندما حاولت بنفسي في ضربة واحدة القفز فوق الهاوية إلى عالم الروبوتات ، فاتني مثل هذا الدليل. دليل لا يتم تجاهله الأشياء الواضحة والبسيطة لأي متخصص في تكنولوجيا المعلومات.
في المستقبل ، أخطط منشورًا حول كيفية تقديم أول تطبيق ReactNative الخاص بي بنفس الأسلوب ، اشترك!