Краткое введение… Я профессионально занимаюсь разработкой программного обеспечения чуть менее 50 лет. Это первая из серии статей, которая изначально называлась «Мое путешествие без кода». Довольно глупо, амирит?

Как я писал в Моем так называемом уходе на пенсию, я был заинтригован появлением технологии без кода/с низким кодом. Утверждается, что эти инструменты сигнализируют о наступлении эпохи гражданских разработчиков, обычных людей, которым была дарована возможность создавать приложения без зависимости от помазанников (точнее, от нас, про-кодеров).

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

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

Ни одно путешествие не должно начинаться без карты. С небольшой помощью моего друга г-на Google я составил список продуктов без кода / с низким кодом для изучения. На данный момент я нашел тридцать два. И тут я подумал, что поле «современный стек данных» переполнено. Я никогда не осилю их всех. Лучшее, что я могу сделать, это попробовать столько, сколько потребуется, чтобы найти набор инструментов, которым я доволен.

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

Я понимаю, что существуют услуги, близкие к тому, что я ищу. Это не имеет значения. Суть в том, чтобы иметь проект, который будет держать меня в напряжении, пока я пробираюсь через океан продуктов в моем списке.

Тривиально архитектура выглядит так…

Внешний интерфейс ‹-› Серверная часть ‹-› Служба доступности потокового вещания

Мне нужно выяснить, как использовать эти инструменты, чтобы выполнить несколько основных действий.

  • Дизайн и конструкция пользовательского интерфейса
  • Дизайн и использование базы данных
  • Связь со сторонними сервисами
  • Приложение и бизнес-логика
  • Аутентификация и авторизация

Первая остановка в моем путешествии — Back4App. Back4App позиционирует себя как Бэкэнд как услуга (также известная как BaaS, одна из многих аббревиатур …aaS, которые использовались во всем мире). Почему этот выбор? Поскольку это решение только для серверной части, я вынужден интегрировать его с решением для внешнего интерфейса. Вините мое решение в том, что я сравнил экосистему со звуковой сферой, где компонентные стереосистемы считаются лучше, чем устройства все в одном.

Back4App расширяет Parse Platform, стек приложений с открытым исходным кодом, который Facebook приобрел и отказался. Back4App предлагает неплохой бесплатный план.

Задание №1. — Заполнить базу фильмов

Для этого исследования я выбрал Watchmode.com в качестве службы доступности потокового вещания. Он соответствует требованиям приложения и имеет простой REST API. Как побочный эффект, этот выбор исключает любую фантазию, которую я мог бы развить для выпуска приложения как продукта. Коммерческие услуги Watchmode достаточно круты, чтобы заставить человека иметь надежный бизнес-план, прежде чем брать на себя обязательства. (Я не виню компанию. В конце концов, она удовлетворяет потребности ниши.)

Title API Watchmode в неудивительной манере REST использует внутренние идентификаторы для поиска. Следуя предложению WatchMode о том, что приложения используют сопоставление названий фильмов с внутренними идентификаторами, я попытался импортировать предоставленный ими набор данных.

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

Быстрая проверка сервера с использованием REST-клиента подтвердила, что загрузка прошла успешно.

Задание №2. — Определить функцию для получения информации о потоковой передаче

Код редко просто работает. Предвидя необходимость отладки, я настроил локальную версию сервера Parse, как указано на странице Локальная разработка.

Было несколько ошибок…

Панель мониторинга сервера Parse отличается от панели управления в Back4App.

Отлично. Я понимаю. Back4App не является сервером Parse. Они улучшили его основные функции. Тем не менее, будучи неожиданностью, это не произвело хорошего впечатления.

В инструкциях по использованию MongoDB упущена важная деталь

Автор забыл сообщить нам, что предложенная им команда для запуска MongoDB (mongodb-runner start) затирает базы данных. Я не ценил потерю времени на выяснение того, почему это происходит.

Как только мой локальный сервер был запущен и запущен, было довольно легко заставить Parse получать данные из Watchmode. Хотя у меня был соблазн, я не прибегал к установке пакета HTTP-клиента. Parse API для выполнения HTTP-запросов подходит для этой цели.

Небольшое отступление: слава TypeScript! Проверка типов предотвратила попытку запустить JavaScript, который не мог работать. (Полная прозрачность… У меня мало опыта программирования на языках семейства JavaScript. Я решил попробовать TypeScript, потому что его система типов звучала круто.) На то, чтобы код заработал, почти не потребовалось времени.

Несмотря на разочарования, Back4App в прямом смысле «просто работал»™. Я настроил таблицу, заполнил ее, а затем манипулировал ею через простой REST API. Я даже обращался к стороннему сервису. Уот!

На следующем этапе моего пути я создаю интерфейс и подключаю его к своему серверу Back4App. (Спойлер, это bubble.io).

До следующего раза!

Ах, да. О названии.

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

Подробнее об этом позже.