Теория разработки программ. Создание телеграм бота на Kotlin

разработки программ. Создание телеграм бота - Android [Kotlin] для начинающих

Теория по разработке ПО

Поговорим об общей теории разработки программного обеспечения. Урок предназначен для тех, кто дошел до стадии разработки финального проекта в рамках практического спринта по Kotlin. Но также будет полезно и всем начинающим разработчикам.

Статья будет разделена на 2 части.

  1. Публичная. Теория о подходе к разработке программ.
  2. Подробности нашего технического задания. Что нужно описывать в ТЗ (или что треобовать от заказчика). И другие подробности составления этапов разработки, которые непосредственно касаются проекта телеграм-бота. Эта часть будет доступна только участникам спринта.

экрана 2023 07 18 в 13.40.15 - Android [Kotlin] для начинающих

Разработка мобильного приложения

Итак, начинаем разрабатывать полноценное приложение. Полезный телеграм-бот, который будет помогать учить английские слова. Да и не только английские, в пару действий можно будет загрузить фразы и их перевод на любом языке и поведать его всем, до кого вы сможете дотянуться в Telegram.

Скорее всего это ваше первое приложение, разрабатываемое с нуля. Чтобы слепо не писать алгоритм, не понимая зачем это нужно, давайте немного поговорим о подходе к разработке программ в целом. В университетах есть целый курс с названием “Проектирование информационных систем”. Там объясняется что из себя представляет информационная система (приложение), какие есть инструменты и этапы проектирования, а также варианты реализации. Вот об этом пойдет речь в упрощенном виде в рамках ознакомления.

Что такое программа?

2 слайд - Android [Kotlin] для начинающих

Начнем с двух простых понятий.

Программа – комбинация инструкций и данных, позволяющая решать задачи пользователя. Надо понимать, что телеграм-бот – это программа. Скрипт – это программа. Прошивка – это программа.

Интерфейс – способ управлять ходом выполнения программы и получения результатов ее работы. Интерфейс может быть как консольный (или терминальный), так и графический. Или, например, голосовой. Как у умной колонки “Алиса” – и это все программируется.

Примеры

3 слайд - Android [Kotlin] для начинающих

Скрипт для уменьшения размера фоток тоже программа. У нее есть входные параметры из консоли, сами фотки. А выход из программы (результат ее работы) уже сжатые фотографии. Сайт – по сути тоже программа, которая отображает пользователю данные.

Этапы разработки

4 слайд - Android [Kotlin] для начинающих

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

Сбор требований и формулирование задачи – когда мы у менеджера или у заказчика (или у себя) составляем список того, что программа должна (или не должна) делать.

Проектирование – когда мы уже на уровне технического языка описываем как работает наша система. Какие есть механизмы для храннения, какие используются фреймворки/библиотеки, какой язык программирования и т.д. Все это как правило называют общим словом стэк технологий.

Программирование – собственно само написание, реализация описанного кодом. Если проект хорошо спроектирован, его легко запрограммировать.

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

В завершении этап внедрения и эксплуатации.

Зачем так усложнять? Почему бы не сразу начать писать готовый код. Дело в том, что есть такое понятие “цена ошибки”.

Цена ошибки

5 слайд - Android [Kotlin] для начинающих

В данном случае относительная цена ошибки. Если найден баг у пользователя, то цена ошибки довольно высокая. Чтобы исправить баг, нужно сначала его воспроизвести, найти место, где он произошел. А если этот баг затрагивает еще и уровни формулирования задачи (например, отсутствует кнопка удаления чего-либо), то вообще может быть придется переделывать бОльшую часть проекта. Поэтому на этапе эксплуатации условная цена 100.

Если это баг на этапе проектирования. Например, мы заметили, что храним какую-то информацию в оперативной памяти. А по требованиям нужно, чтобы после выключения программы данные сохранялись (например, прогресс изучения иностранных слов). То в данном случае просто вносим в проектировние правки о том, что вместо хранения в оперативной памяти, нужно хранить информацию на жестком диске, в файле. Тем самым исправляем ошибку. И цена ошибки на этом этапе гораздо ниже. Условно несколько часов. Для такой оптимизации все этапы выше и предусмотрены.

Характеристики программ

6 слайд - Android [Kotlin] для начинающих

Вообще “ошибка” – это нарушение стабильности. Стабильность сама по себе это характеристика программы. Одна из самых важных. Если ваша программа не работает, она скорее всего не очень будет нужна пользователю. Случаи бывают разные, иногда просто нет альтернатив. Но как правило надежность это ключевая характеристика.

Помимо этого есть другие характеристики, такие как безопасность, скорость работы, функционал, сложность поддержки.. Вы как разработчик смотрите что вы разрабатываете. Для банковского приложения важна безопасность, для игры нужна скорость работы. Условно пусть в игре долго выполняется покупка вещи (происходит транзакция), но fps во время игры не должен проседать.

Размер исполняемого файла тоже характеристика. Для android приложений .apk файл должен весить мало. Иначе пользователи будут меньше его качать (есть исследования).

Популярность стека – тоже характеристика. В последнее время была популярная история, что у тебя проект написан на старых технологиях и разработчики просто не хотят идти туда работать. И это важная характеристика. Нужно поддерживать приложение, выкатывать фичи и так далее.

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

План курсовой

7 слайд - Android [Kotlin] для начинающих

И в связи с этим, чтобы нам погрузиться в прекрасный мир программирования и ощутить на себе как вообще разрабатываются приложения – нужно пройти такой план.

Первое. Формулируем требования для консольного тренажера. Здесь прошу обратить внимание “консольного тренажера”. Дело в том, что первую версию я предлагаю сделать именно в терминале. Чтобы сконцентрироваться на коде Kotlin. И получить какой-то рабочий промежуточный результат. При этом мы сформулируем требования, разберемся как работать с файлами и текстом.

Можете считать, что это этап проектирования. Где мы выбираем технологии, смотрим как работать с файлами и текстом. Этап проектирования важен, чтобы давать более точные оценки. Менеджеры или заказчики хотят знать, когда будет готов их продукт. Иногда необходимо провести небольшое исследование, чтобы более четко прописать “как его делать”. Ну мы определили, что хранить информацию будем в файлах. Но дополнительно разберемся в нюансах, чтобы вы или вспомнили, или получили этот важный в обучении навык.

Далее будет этап программирования. Мы напишем консольную версию этого тренажера. Разработка будет разделена на этапы с подробным описанием каждого. Что за чем следует и почему. Этапы подразумевают самостоятельное написание кода, чтобы из кирпичиков в виде задач, которые вы делали на практике, уже собирать полноценную программу для продакшена.

Конечно, тут не будет ситуации из мема “как нарисовать сову”. Этапы комфортно декомпозированы. Описание логики разработки и грамотное ТЗ интуитивно подталкивает на мысли о том, какой код писать дальше. Все этапы протестированы на начинающих учениках и такое структурированное описание было удобным для всех учатников фокус-группы при финальной прогонке проекта. Этап внедрения для консольного тренажера мы опустим, но самостоятельно можно будет потестировать.

И затем перейдем к следующей итерации – формирование требований для телеграм-бота. То есть какой интерфейс должен иметь, как должен работать.

Далее в качестве подготовки в основному этапу разработки, мы погрузимся в нюансы работы с сетью. Я выдам весь необходимый материал участникам. Сначала вы научитесь отправлять простые запросы, принимать их и парсить. Далее я расскажу про API в целом и вы научитесь работать с API Telegram. Читать официальную документацию, формировать токены, создавать собственные запросы. Что позволит в будущем, самостоятельно кастомизировать и усложнять бот на свой вкус.

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

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

И это конец вводной части. Ребятам с открытым финальным проектом уже доступны все остальные рабочие материалы. Для тех, кто тоже хочет попробовать себя в реальной разработке, заходите в бот и ждите ближайшего донабора в рабочую группу.

Для тех, кто собрался стать Android-разработчиком

Пошаговаясхема
Пошаговая
схема

Описание процесса обучения от основ Kotlin до Android-разработчика

Бесплатныеуроки
Бесплатные
уроки

Авторский бесплатный курс по основам языка программирования Kotlin

Обучающийбот
Обучающий
бот

Тренажер и самоучитель по Котлин – бесплатные тесты и практика

Поделиться уроком

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *