Привет! 👋

Самым сложным в любом деле часто бывает начать его. И похоже, что вам это удалось. Поздравляю!

Начав отсюда нам предстоит пройти большой путь по изучению программирования в целом и No-Code (возможности создавать программы без изучения сложных языков программирования) в частности. Но прежде всего стоит немного разобраться с основными терминами.

Если вы уже профессионал в ИТ - можете смело пропустить этот вступительный модуль. Тут будем разбираться с самыми базовыми понятиями. Приложение, фронтэнд, база данных, протокол HTTP и т.д.

Готовы? Поехали!


Общая теория

Основы программирования

Компьютеры, хоть и могут казаться очень умными, изначально не способны к каким-то самостоятельным действиям. Им нужны четкие указания. Есть даже такая старая шутка - “Компьютер делает не то, что вы хотите, а то, что вы ему приказали”.

Получается “программирование” в широком смысле - это и есть создание четких и понятных инструкций (команд) для компьютера. А сами инструкции на понятном для компьютера языке - это “программа”.

И вот тут стоит отдельно выделить фразу “понятном для компьютера языке”. Действительно, мы говорим на одном языке, а компьютер на другом. Он не понимает человеческую речь (по крайней мере до тех пор, пока не получит программу, которая научит эту речь понимать). Точно так же как и мы без специальной подготовки не понимаем машинный язык (или машинный код), который можно представить, как последовательность 1 и 0.

10110100 00111010

Совершенно непонятно, не так ли?

Для обеспечения коммуникации и были созданы (и постоянно создаются новые) языки программирования.

Есть языки, которые называются “Низкоуровневыми”. Они очень близки к машинным кодам, но при этом команды записываются в более понятной человеку форме. Наиболее известным представителем таких языков является “Ассемблер”.

Следующий этап - “Высокоуровневые” языки программирования. Большинство современных языков программирования относится именно к ним: Java, C++, Python, Go и многие другие. Они разработаны для быстроты и удобства использования программистом. При этом отдельная команда на таком языке может быть переведена в очень сложный и длинный набор команд на машинном коде.

А вот и новый термин - “Транслятор”. Это именно тот инструмент, который переводит (или компилирует) текст, написанный на языке высокого уровня в набор машинных команд. При этом мы можем не переживать (или переживать гораздо меньше) о том, что все компьютеры разные, в них работают разные процессоры и эти процессоры используют разные наборы команд. Транслятор сделает эту работу за нас.

Платформа AppMaster относится к No-Code платформам. Ее смело можно назвать следующим этапом развития. С ней стало возможным создавать приложения корпоративного уровня вообще без изучения каких либо языков программирования, без написания сложного кода. Именно этим мы и займемся на данном курсе. Фактически, с использованием понятных визуальных блоков, мы просто описываем, что требуется сделать. А дальше уже включаются технологии AppMaster.io и сами с огромной скоростью пишут код.

Кстати, код этот пишется на языке Go (также известен, как GoLang). И, с одной стороны, это очень важно. Ведь мы уверены, что используется современный язык, специально разработанный компанией Google для создания высокоэффективных программ. А с другой стороны, это не имеет значения. Ведь можно вообще не задумываться о том, какой язык там используется (его даже могут заменить на другой, если будет найдено более эффективное решение), сконцентрироваться на создании приложения, а не на тонкостях его технической реализации.

Перед тем, как двигаться дальше, давайте внесем ясность. В тексте выше используются разные термины - “Программы”, “Приложения”. Это синонимы, которые означают одно и то же.

Сюда же можно добавить и “Программное обеспечение (ПО)”, но в русском языке его значение несколько шире, обычно этим термином обозначают совокупность программ (приложений). Например - программное обеспечение установленное на вашем компьютере. Синонимом можно считать и слово “Софт”, которое является калькой английского “Software”.

Виды приложений

Какие же бывают приложения? Постараемся немного упорядочить и структурировать.

  1. Консольные.
    Их также можно назвать приложениями с текстовым интерфейсом или интерфейсом командной строки.
    Как и следует из названия - у таких приложений отсутствует привычный графический интерфейс (при этом его можно реализовать с помощью символов псевдографики, и даже добавить интерактивные элементы), а управление осуществляется путем ввода текстовых команд в консоль.
    Может показаться, что такой вид приложений давно устарел. Но на самом деле, благодаря меньшим требованиям к аппаратным ресурсам, они не теряют своей актуальности и по сей день. При этом, во многих отраслях, использование командной строки даже обладает определенными преимуществами в простоте и удобстве использования.

  2. Desktop-приложения
    Приложения, которые устанавливаются и работают на компьютерах.
    Например, офисные приложения от Microsoft: Word, Excel, PowerPoint и т.д.
    Или браузер, благодаря которому вы открываете сайты в Интернете и, вероятно, даже читаете данный текст.
    Кстати, сам терминал для работы с командной строкой тоже часто является именно Desktop-приложением.

  3. Мобильные
    Наверняка у вас есть смартфон. При этом неважно какая операционная система в нем используется: Android, iOS или какая-то более редкая. В любом случае приложения, которые вы используете на смартфоне - это именно мобильные приложения.
    В качестве примеров можно назвать тот же браузер, мессенджеры, игры или приложения для соцсетей.

  4. Встроенные (embedded)
    Это приложения (хотя в данном случае как раз правильно использовать термин ПО) сложнее заметить, но именно они используются для управления различными устройствами и оборудованием.
    Благодаря встроенному ПО принтер обрабатывает задания на печать, роутер раздает Интернет и обеспечивается работа самого разнообразного оборудования.

  5. Web-приложения
    Приложения, взаимодействие с которыми осуществляется в браузере и работающие с использованием сети Интернет.
    Именно они являются самым распространенным видом приложений в данный момент и их созданию мы уделим пристальное внимание в данном курсе.

Видов web-приложений также огромное множество. Давайте назовем основные:

  • Лендинги. Небольшие информационные страницы, на которых можно заполнить форму или оставить какую-то заявку.
  • Информационные порталы. К их числу можно отнести новостные сайты (например, Яндекс) или спортивные (Чемпионат).
  • Интернет-магазины. От небольших локальных магазинов до больших международных маркетплейсов.
  • Соцсети. Одноклассники, Фейсбук и многие другие.
  • Игры. От простых текстовых до самых продвинутых 3d-игр.
  • LMS (Learning Management System). Системы управления обучением.
  • CMS (Content Management System). Системы управления контентом. Благодаря им можно легко управлять содержимым сайта, добавлять новые статьи.
  • CRM-системы (Customer Relationship Management). Системы для автоматизации взаимоотношений с клиентами.
  • Онлайн-сервисы. Их разнообразие достойно отдельной классификации. В их числе и сервисы прогноза погоды, и поисковые сервисы, и банковские сервисы и многое-многое другое.

Хорошо, с приложениями разобрались, базовую классификацию сделали, виды web-приложений разобрали. Но как же это все-таки работает?

И тут мы добрались до очень важных терминов.

Фронтенд и бэкенд

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

Примерно так же, все организовано и в web-приложениях.

Есть слой, который мы видим. Страница, которая отображается, когда мы открываем какой-то сайт.  На этой странице вероятно, есть какая-то анимация и даже есть кнопки, которые можно нажимать.

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

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

Мы сделали запрос на отображение сайта и получили ответ. Какие в нем есть блоки, где они расположены, как выглядят, какие шрифты используются. Нажали на кнопку и на сервер ушла команда рассчитать какую-то информацию, выдать ответ, предоставить решение задачи. Эта система запросов и ответов, Request-Response, и является краеугольным камнем работы всех Web-приложений.

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

Сам протокол передачи данных называется HTTP - HyperText Transfer Protocol (протокол передачи гипертекста). Вы можете видеть эти 4 буквы в начале адресной строки браузера. Это информирует о том, что взаимодействие будет осуществляться именно по протоколу HTTP. Можно сказать, что стороны договорились на каком языке они будут общаться.

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

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

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

Для этой цели работают “Базы данных” (БД). Там хранятся данные в структурированном виде. А еще есть системы, которые этими данными управляют - СУБД (Система Управления Базами Данных). Они позволяют записывать новые данные в БД, получать данные оттуда, изменять их, удалять (Все это вместе обозначается аббревиатурой CRUD - Create, Read, Update, Delete). Это все мы тоже обязательно изучим подробно в дальнейших модулях. Разберемся, какие вообще бывают базы данных, как организована их работа и как легко можно управлять ими в AppMaster.

Как насчет того, чтобы испытать это на практике? Пришло время выполнить первое…


Домашнее задание

Вам необходимо включить терминал для работы с командной строкой. В Windows нужное приложение называется CMD, в MacOS - Terminal.

Используйте консольное приложение curl (если оно не установлено на вашем компьютере - исправьте это). Оно создано специально для отправки запроса на определенный сервис и получения оттуда ответа.

В качестве примера отправьте HTTP-запрос на сервис BoredAPI. Это служба, которая может подобрать активность на все случаи жизни.

Для этого введите в терминале следующую команду:

curl "http://www.boredapi.com/api/activity?type=diy".

Обратите внимание, что адрес можно условно разделить на две части - до и после знака вопроса.

Первая часть - это сам адрес запроса. В данном примере - "http://www.boredapi.com/api/activity".

Вторая часть - это параметры запроса. В примере - "type=diy". То есть параметром запроса является "type" со значением "diy". Таким образом, мы указали, что хотим получить такое занятие, которое можно сделать самостоятельно (diy - Do It Yourself).

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

Посмотрите документацию по сервису (http://www.boredapi.com/documentation) и самостоятельно сделайте более сложный запрос с разными параметрами. Например, выясните, какой вид деятельности подходит для компании, в которой работает более 5, но менее 10 человек.

Для закрепления материала попробуйте освоить более сложную услугу. Например - https://www.alphavantage.co/.

Прочитайте документацию, узнайте курс валют или котировки акций из базы данных.

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