August 5, 2023

Learning IT.

Lang - Rus.

Часть 1.

Введение.

Если вы решили почувствовать себя настоящим разработчиком и хотите пустить свои силы в это дело, то придется разобраться с основными аспектами этого занятия. А конкретнее - разработки модулей для Hikka userbot.

Для начала нужно понять схему создания и основную работу модулей.

В течение всего обучения мы будем вместе создавать модуль Test.

Итак, поехали.

1. Логирование и что это такое. Логи модуля.

В большинстве своём многие модули начинают жизнь свою с команды логирования.

Логированием называют запись логов. Оно позволяет ответить на вопросы, что происходило, когда и при каких обстоятельствах. Без логов сложно понять, из-за чего появляется ошибка, если она возникает периодически и только при определенных условиях.

При тестировании модуля за счет логирования любому разработчику, будь то новичок или уже опытный в IT-индустрии старпёр, может изучить свои ошибки или недочеты и устранить их. Вот пример создания логирования, которой я очень часто встречаю и использую сам:

#Name: Test
#импортируем библиотеку логов
import logging
#создание логирования для вашего модуля
logger = logging.getLogger(__name__) 

В дальнейшем логи будут помогать и пользователям вашего модуля, так как, если они где-то накосячили, логи незамедлительно им об этом сообщат. Например, выставили некорректное значение в кастомной настройке модуля, но об этом мы поговорим попозже.

2. Импорты библиотек.

Сначала немного формального пояснения:

Импорт данных в компьютерной терминологии — добавление данных, вставка данных из внешних источников в текущий файл/документ/базу данных.

А также:

Библиотека — это готовый набор функций и объектов для какого-либо языка программирования. Обычно такие наборы объединены назначением или сферой использования, например математические библиотеки или веб-библиотеки. Программисты пользуются ими, чтобы ускорять и упрощать свою работу.

Итак.

Ни один модуль не проходит без хотя бы одного импорта из той или иной библиотеки. Для примера, без импорта загрузчика Hikka не будет "кушать" ваш модуль. Рассмотрим 3 известные библиотеки:

  1. telethon
  2. aiogram
  3. ..

Первые 2 содержат большое количество функций для разнообразных аспектов работы модулей.

Библиотека .. в основе своей содержит функцию загрузки вашего модуля и создания utils.

Давайте сделаем пример кода, объединяя то, что нам уже известно. Далее мы будем лишь дополнять этот код. Начнем:

#Name: Test
#импортируем библиотеки
import logging
#из .. импортируем загрузчик и функцию создание утилит
from .. import loader, utils
#логирование
logger = logging.getLogger(__name__)

3. Создание класса.

Ни для кого не секрет, что прежде, чем что-то начать, у этого "что-то" должно появиться своё название, под которым уже будет плясать всё остальное. Этим названием в IT является класс. Под классом вы можете указать основное описание вашего модуля, которое после будет указано под названием. Для этого нужно заключить описание в тройные ковычки так: """Описание."""

В качестве аргумента класса мы вводим значение: loader.Module, которое будет отвечать за функциональность strings, которые будут характеризовать строковые данные нашего модуля.

#Name: Test
#импортируем библиотеки
import logging
#из .. импортируем загрузчик и функцию создание утилит
from .. import loader, utils
#логирование
logger = logging.getLogger(__name__)
@loader.tds
class Test(loader.Module):
"""Учиться - это весело! Тестовый модуль."""

4. Strings. Строки.

Строки — это набор алфавитов, слов или других символов. Это одна из примитивных структур данных и строительные блоки для манипулирования данными. Python имеет встроенный строковый класс с именем str. Строки Python являются «неизменяемыми», что означает, что их нельзя изменить после создания.

Строки во многом упрощают дальнейшее программирование тем, что дают возможность сделать краткие команды с описаниями. Поэтому далее, вместо долгих прописей команд из раза в раз, strings позволят 1 раз указать пояснения за весь код.

К тому же strings дают нам такую возможность, как адаптация языка модуля относительно пользователя.

Строковые данные указываются в таком формате:

strings = {}

Указать можно такие данные, как:

  1. название
  2. автор
  3. коды команд и их описания \ действия
Вышеперечисленный список является лишь небольшим примером ваших возможностей.

И так, давайте посмотрим, как это выглядит.

#Name: Test
#Description: Module for learning
#импортируем библиотеки
import logging
#из .. импортируем загрузчик и функцию создание утилит
from .. import loader, utils
#логирование
logger = logging.getLogger(__name__)
@loader.tds
class Test(loader.Module):
    """Учиться - это весело! Тестовый модуль."""
    #создаем str со значениями
    strings = {
      "name": "Test",
      "dev": "I'm a developer!"}
    #сделаем str на русском
    strings_ru = {
      "dev": "Я - разработчик!"}
      
    

Для изменения языковой категории strings, нужно после strings указывать аббревиатуру языка, как показано в коде выше. Не забывайте, что, если вы решили перевести strings на несколько языков, вам нужно все введеные вами данные основных strings переводить , относительно выбранного вами языка.

На этом 1 часть блога о программировании заканчивается. Если вам понравится эта идея, в ближайшее время выйдет продолжение, где мы будем ещё глубже погружаться в эту интересную сферу разработки. Статью для вас подготовил Кай. До скорой встречи и удачи.