Бързо въведение… Работя професионален разработчик на софтуер от малко под 50 години. Това е първата от поредица статии, които първоначално бяха озаглавени „Моето пътуване без код“. Доста куц, амирит?

Както писах в „Моето така наречено пенсиониране“ бях заинтригуван от появата на технология без код/ниско кодиране. Твърди се, че тези инструменти сигнализират за зората на епохата на „гражданските разработчици“, обикновени хора, които са били надарени със силата да създават приложения, без да зависят от помазаните (по-конкретно, нас, прокодерите).

Не ме разбирайте погрешно Напълно съм на борда. Заглавието ми може да предполага високомерно отхвърляне на концепцията, но това не е така. Има нещо фундаментално погрешно в практиката за разработка на софтуер. Нашият код има грешки. Нашите програми се развалят. Нашите потребители са разочаровани.

Но аз се отклоних. Много умни хора са посветили много цикли на wetware, обмисляйки причините за лошия софтуер. Аз не съм от тях.

Нито едно пътуване не трябва да започва без карта. С малко помощ от моя приятел г-н Google, съставих списък с продукти без код/с нисък код, които да разгледам. Досега съм намерил тридесет и две. И тук реших, че полето „модерен стек от данни“ е претъпкано. Никога няма да премина през всичките. Най-доброто, което мога да направя, е да изпробвам толкова, колкото е необходимо, за да намеря набор от инструменти, от който съм доволен.

За да оценя тези инструменти, пиша приложение, което бих искал да съществува. Това приложение ми позволява да управлявам списък с филми, които искам да гледам, както и моя списък с абонаменти за услуги за стрийминг. Веднъж седмично ще получавам имейл с информация кои филми са налични и къде се предават.

Осъзнавам, че съществуват услуги, които са близки до това, което търся. Това е без значение. Въпросът е да имам проект, който да ме държи ангажиран, докато газя през океана от продукти в моя списък.

Тривиално архитектурата изглежда така...

Frontend ‹-› Backend ‹-› Streaming Availability Service

Ще трябва да разбера как да използвам тези инструменти, за да изпълнявам няколко основни неща.

  • UI дизайн и изграждане
  • Дизайн и използване на бази данни
  • Комуникация с услуги на трети страни
  • Приложна и бизнес логика
  • Удостоверяване и оторизация

Първата спирка от моето пътуване е Back4App. Back4App се представя като „Backend като услуга“ (известен още като BaaS, един от многото …aaS акроними, които се разпространяват навсякъде). Защо този избор? Тъй като това е решение само за бекенд, съм принуден да го интегрирам с решение за предния край. Обвинявайте решението си за аналогизирането на екосистемата с аудио домейна, където компонентните стерео системи се считат за по-добри от устройствата „всичко в едно“.

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

Задача номер 1. — Попълнете базата данни с филми

За това изследване избрах Watchmode.com като моя услуга за наличност на стрийминг. Той отговаря на изискванията на приложението и има ясен REST API. Като страничен ефект този избор изключва всякаква фантазия, която бих могъл да развия за пускане на приложението като продукт. Търговските услуги на Watchmode са достатъчно стръмни, за да принудят човек да има солиден бизнес план, преди да поеме ангажимент. (Не обвинявам компанията. В края на краищата тя отговаря на нужда от ниша.)

Title API на Watchmode, по неизненадващ REST начин, използва вътрешни идентификатори за търсене. Следвайки „предложението на WatchMode“, че приложенията използват съпоставяне на заглавия на филми с вътрешни идентификатори, се опитах да импортирам предоставения от тях набор от данни.

Тук се натъкнах на първото си препятствие. Back4App ви позволява да качвате CSV файлове в таблица с база данни. Всичко е наред, освен когато се опитах да кача, нищо не се случи. Не се появиха данни. Не бяха показани съобщения. Не са изпратени имейли. Нада. С малко експерименти открих, че чрез разделянето на CSV файла на части импортирането в повечето случаи работи. Само четири от петте парчета успяха. Добре. Това е подходящо за целта.

Бърз тест на сървъра с помощта на REST клиент потвърди, че качването е успешно.

Задача номер 2. — Дефиниране на функция за извличане на информация за поточно предаване

Кодът рядко просто работи. Предвиждайки необходимостта от отстраняване на грешки, създадох локална версия на сървъра за анализ, както е указано на страницата „Местно развитие“.

Имаше няколко проблеми...

Таблото за управление на сървъра Parse не е същото като таблото за управление в Back4App.

Глоба. разбирам го Back4App не е Parse сървър. Те подобриха основната му функционалност. Все пак, като изненада, това не направи добро впечатление.

Инструкциите за използване на MongoDB пропуснаха важна подробност

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

След като локалният ми сървър заработи, беше доста лесно да накарам Parse да извлича данни от Watchmode. Въпреки че бях изкушен, не прибягнах до инсталиране на HTTP клиентски пакет. API за анализ за изпълнение на HTTP заявки е подходящ за целта.

Бързо настрана, браво на TypeScript! Проверката на типа ми попречи да се опитам да стартирам JavaScript, което не можеше да работи. (Пълна прозрачност… Имам малко опит с кодирането на езици от семейството на JavaScript. Реших да изпробвам TypeScript, защото неговата система от типове звучеше страхотно.) Не отне почти никакво време, за да накарам кода да заработи.

Въпреки разочарованията, Back4App в истинския смисъл на думата „просто проработи“™. Настроих таблица, попълних я и след това я манипулирах чрез ясен REST API. Дори имах достъп до услуга на трета страна. Уау!

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

До следващия път!

О да. Относно заглавието.

Ако дефинирате програмист единствено като обект, който съставя инструкции за компютър, използвайки текстово базиран формален език, тогава със сигурност без код означава без програмист. Досега фактите на място предполагат, че са необходими набори от умения, за да се практикува тази форма на развитие. Конкретният набор от умения зависи както от сложността на изгражданото приложение, така и от възможностите на набора от инструменти.

Повече за това по-късно.