Галоўная / Артыкулы / Power Apps протык React: параболіка дуггэтнага коста і архітектуры

Power Apps протык React: параболіка дуггэтнага коста і архітектуры

У этай стацыі раскрываюцца скрытыя вартасці ліцэнзавання, архітектурныя компромісы і рэаліі каральнага рэгулювання, якія вялікай меры вплываюць на тое, чы рэальна Power Apps чы React є дешавейшым выборам у масштабных проектах.

1649 слоў

У Microsoft є добра падчыраная праспектацыя продукту Power Apps: ствараць програмна аплярацыю быстра за дапамою інструментаў з нізкім колькасцю коду, дазволіць аднародным разработчыкам працаваць над застаўшыміся завданнямі, і спазірваць, як скорачаецца чакальныя лісты ў вашам аддзеле IT. На протывагу гэтаму React знаходзіцца на іншай стороне — ён являе сабою бібліятэку на JavaScript з адкрытым кодам, якаю падтрымае Meta і ўласная вялічызная спальніца разработчыкаў, і выступае асоціябельным з традыцыйным падходам да стварання програмнае аплярацыяў, калі праця пачынаецца з коду.

Для керуючих працавікаў, які шукают спосабы заощаджэння коштаў, Power Apps можа здавацца чымсь на кшталт чароднай рашэння. Для інжынераў, якія фактычна должны ствараць та падтрымваць прылады, гэта можа здавацца скорей затоечным тылом. Тады якая ж ёсць рэальная картіна, калі перастаўшы слухаць маркетынгавыя презентаціі? Дзе почынаюцца проблемы з тэхнологіяй low-code, і калі ручна напісаны React насправдэ ж стае безпечнейшым та дешавейшым выборам у далекай перспективе? У гэтым артыкуле расследуўаюцься архітектурныя компромісы, неспадзяванні ў ліцэнсаванні, меры выдатковасці та расчэты аб загальных витоках, якія рэдка калі прабываюць у презентацыях Microsoft.

1. Міраж загальных витакоў

Найбольшы міф, які ціркулюе аб Power Apps, — гэта тое, што ён за сваёю сутнасцю дешавейшы, чым стварэнне власнага додатку на React. Так, з Power Apps можна быстрэй выпусціць першую версію. Але траекторыя витакоў з часам зовсім не падобаецца той, якую можна было бы спакаваць ад коду з відкрытым распаўненням.

Пастка ліцэнзавання

Сам React не купуецца — ён распространяецца пад ліцэнзай MIT. Вашы рэальныя витраты стосуюцца аплатаў разработчыкам за стварэнне та адтрыманне дапынкі, а таксама послуг хостынгу ў хмаре, якія є дашчавымі та шырока доступнымі.

Power Apps, з іншай боку, працюе пад форматам абонентскага платнення за кожного корыстувальця ў месцачнай базе. Базовыя дапынкі, якія прыходзяць у комплектацыі з Microsoft 365, на першы погляд выглядаюць безкоштовнымі, але будзь-якая серйозная корпоратыўная дапынка практычна завжды выклікае потрэбу ў Premium Connectors — элементах, якія дазволяюць ёй вярбавацца з SQL Server, Salesforce, AWS або вашымі сабственнымі API — або выклікае потрэбу ў Dataverse. Калі вы пераходзите на прэміум-уровень, вашы рачунак зрастае прычынна пры чысла вашых спаведамальнікаў.

Тыя моменты, калі масштаб разбивае логіку

Уявіце внутрэшній інструмент, створаны для команды з 100 чалавек. У гэтым случае Power Apps легка праграматычна перамагае. Тепер уявіце, што гэты інструмент набирае популярнасць і становіцца доступным для 5 000 спавяльнікаў, або ж ўжо распространяецца на зовнішніх партнероў і кліентаў.

Працуючы у такых масштабах, косты ліцэнзавання Power Apps можу падскочыць да шасці-семі цифр на годзіну. React жа прадстаўляе іншую сцэнарыю: запуск той самай працоўнік для адпаведнага кола корыстувальнікаў на платформах уродзе Azure App Services або AWS Amplify можа залицца ў межах кальколька сотак долераў на месцы. Але Microsoft не адзначае, што працуючы пасля певнага колькіства корыстувальнікаў, косты ліцэнзавання Power Apps перавышаюць суму заробкіў спецыяльнай команды, якая працуе з React.

2. Свабода архітектуры проты затыканага вольера

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

Залежнасць ад Power Platform і Dataverse

Створыўшы додатак на React, вы контролюеце кожную лінію коду. Яго можна розмістіць на Azure, AWS, Google Cloud чыра на вашых сэрверах — выбір за вамі. Хочаце перанесці вашу базу дадзеных з PostgreSQL у MongoDB? Вы можете перапісаць шар дадзеных і так зробіць.

Power Apps моцна прыўязвае вас да екосістэмы Microsoft. Додаткі на Canvas зберагаюцца у прыватным формате, які важка адгледзець чыра зменіць параду за межамі самага студія Power Platform. Вашы дадзеныя сильна спрываюцца да зберагання ў Dataverse. Dataverse — це моцны реляцыйны двайнік, але выкарыстоўваць дадзеныя з яго пазней — гэта справжня складная і дорогая процедура выкарыстоўвання.

Дзе перасягаюць экасістэмы

Компанія Microsoft прасавляе Power Apps Component Framework, або PCF, як спосаб прыемліць самасталую логіку — гэта дазволяе разработчыкам ствараць самасталыя компоненты, выкарыстоўваючы, як не дзівно, React.

Гэта значны факт: калі у Power Apps заканчываюцца можлівасці, выход — ствараць прыемпл на React. Але стварэнне прыемпла на React у межах PCF ўскладненая задача, так как трэба прымусова дзеяць за правіламі фрэймворку, яго правіламі прыўязкі дадзеных і меры безпекі.

3. Дзе паўтарыцца прыгожасць

Паўтарыцца прыгожасць — гэта не толькі косметычны аспект; яна безпасэродзейна вялічыць продуктыўнасць людзей. Медленны внутрашні інструмент таямна спалюе тыячы гадзін працы ў всій організацыі.

Размер пакета дадзеных і час запуску

Добрая, оптымаізаваная React-аплікацыя можа быць стиснутая да калькольвіх соткаў кілабайтаў і завантажвацца практычна мгновенна, нават на слабкай мобільной супакоўцы. У вас ёсць паўны контроль над раздзеленнем коду, атрыбутам «lazy loading» і оптымаізацыяй ресурсаў.

Power Apps, у чым спецыяльна Canvas Apps, маюць значна большую вагу. Адкрыванне Power App не толькі завантажвае логіку вашай аплікацыі — яно таксама завантажвае весь рунтайм-плеер Power Apps.

  • Задзейсненне пачатковых заданняў: не ёсць рэдкасцю, калі пад час першага запуску аплікацыі спостерагаецца экран завантажэння, які трывае ад трох да семі секундаў.
  • Ліміты делегавання дадзейна: Power Apps абмежвае можлівасць перадачы запитоў да источніка дадзейна („ліміт делегавання“, як правило, становіць або 2 000 записаў). Кожны запит, які не можа быць делегаваны, перадаецца цэлкам у памяць браузера аб прыстрою для локальной обработкі. Працаваўшы з вялікіми набрамі дадзейна, гэта можа спрычыніць серйозныя затрывы аб нават перашкоды ў роботе.
  • Точнасць інтэрфейсу і ступень налашоўкі

    React дае вам контроль над інтэрфейсам на рывень пікселіў. Незалежна ад таго, чы вы выберазеце Tailwind CSS, Material UI чы спецыяльны CSS-in-JS, вы можетэ точна падпараджыцца будзь-якім правілам брэнда чы складным процесам роботы.

    Power Apps Canvas Studio, у прытарошчыне, работае за дапамою абсалютнага пазырання і размешчэння праграматы праз ператасовванне — гэта больш сэродніца стварэнню слайду у PowerPoint, чым веб-дзеяла. Такім спосабам можна практычна стварыць прыемныя макеты, але для таго, каб яны належна прыстосаваліся да розных размераў экрана, патрэбна напісання клопачлівых формул для значэнняў X, Y, Шырыны і Высоты кожнага элемента керування. Складныя анімазыі, індывідуальныя графікі і плавныя взаімадзеі ў гэтым сервісе єць або чыраз клопачлівыя, або проста не можлівыя без дадатковых зусиль.

    4. ALM, DevOps і повсякдзенны досвід разработчыка

    Корпаратыўныя програмы выклікаюць патрэбу ў строгай адзыначэнні правілаў: кантроле версій, перагляд коду, аўтоматызаваныя тэсты і пайплайны CI/CD. Адносна гэтага і существуе тое, што называецца каліранням жыццёвага циклу прыкладнення, або ALM.

    Traditional React Flow:
    [Code] ──> [Git Branch] ──> [Pull Request / Peer Review] ──> [Automated CI/CD] ──> [Deploy]
    
    Power Apps Native Flow (Historically):
    [Studio Edit] ──> [Save & Publish] ──> [Export Solution Zip] ──> [Import to Production]
    

    Рэальнасц кантролю версій

    React адаптуецца да стандартным процесам працы разработчыкаў. Код являецца звычайным текстам, Git легка им керуе, а запросы на падключэнне дапамагаюць адбавляць пераказы рэгулярна, лінія за лініяй.

    Power Apps історычна мела слабыя стосункі з кантролем варыянтаў коду. Microsoft частаючы некалькі з гэтых проблем, дадала інтеграцыю з Git і адкрыла можлівасць распакаваць рашэнні ў формате YAML за дапамогою Power Platform CLI. Тым не менш, канфлікты пад час з’еднання ў Power App застаюцца дыявольска складнымі для рашэння. Калі два разработчыкі адночасна рэдагуюць той самы экран у Canvas Studio, пасля з’еднання ў git часта ствараюцца паскладзеныя файлы. У результате багато команд вынушаныя прыменяць правіло аднае аплявацыя на разам з адним разработчыкам, што сэрьозна обмежвае працэздатнасць команды над большымі проектамі.

    Тэставанне і накопленне тэхнічнага боргу

    Стварэнне аўтаматызаваных тестаў «з канца ў канец» для React — гэта вялікай часткай рашаная проблема, завдак ужо развітых інструментоў такіх як Playwright, Cypress і Jest.

    Power Apps пропонуе рэшэнне пад назвай Power Apps Test Studio, але яно нестабільна і працюе толькі з аплікацыямі на базе canvas. Адтак, осколькі падход «нізькага коду» спрыяе шыранню швайнарскіх патчаў, аплікацыі часта накаплююць складную логіку, зробленую з густых формул у стыле Excel — Power Fx — якія розташоўваюцца ў сотнях атрыбутаў OnSelect кнопак. Без строгай дисцыпліны аплікацыі, створаныя з падходам «нізькага коду», накаплююць тэхнічны борг быстрей, чым аплікацыі, напісаныя вручную.

    5. Аповесць пра громадзянскіх разработчыкаў проты рэальнасці керавання

    Мабыць, найпраўяквечным аспектам маркетынгавай аповесці є обява пра дэмакратызацыю разработкі — ператварэнне бізнес-аналітыкаў, спецялаў па кадрах і бухгалтераў у «громадзянскіх разработчыкаў».

    Калі «ценавыя» IT-тэхналогіі захопляюць контроль

    Калі спецыялісты, якія не ўмеюць працаваць з тэхналогіямі, пачынаюць ствараць прылады, якія адносуюцца да чутлівых дадзэйнаў компаніі, пачыняюць выкліквацца прывядомыя проблемы:

    1. Прасоцінення ў абароне: самастоятельныя разработчыкі зазвычай не ведаюць многа пра маскаванне дадзэйнаў, прыступ з мінімальнымі правамі чы прыемы атак па типу інжэкцыі.
    2. Занедбаныя прылады: аднасцяванный спаведамлівы сотраднік стварае ўльотную для свайго калектыў прыладу, а потым пакідае компанію. Ніхто іншы не разумее, як яна працуе; змяны ў API разбиваюць яе функціонал, і аддзел IT вынушаны спешна яе вярнуць у працездатны стан.

    Адаптаваннем Microsoft да гэтаму ёсць Center of Excellence Starter Kit, які продаецца для манітарыння та керавання платформай. Што не ўсвіядомляецца з самага пачатку, так гэта тое, што правильная робота з этим наборам таксама ёсць постоянным завадзем, які выкарыстоўвае кваліфікованых адміністратараў платформы. Грошы, якія вы заэканомілі, не выкарыстоўваючы професійных разработнікаў, часта пайшлі на прыемку людзей для керавання платформай.

    6. Тады каторы варта выкарыстоўваць?

    Гэта не столькі пытанне пра тое, каторая платформа об’ектыўна лепшая — гэта пра тое, каторы інструмент падходзіць да конкрэтных абмежэнняў вашага проекту.

    Выберыце Power Apps, калі:

    • Ваша аудыторыя ў малых чы розміру середніх — толькі внутршнія спецыялісты, пры чым вартасць ліцэнзый застаецца прыемлівай.
  • Вашы даны ўжо знаходзяцца ў Microsoft 365 або Dataverse, напрыклад, у спісах SharePoint, Dynamics 365 чы Excel.
  • Для простага внутрашняга рабочага процесу, системы стежэння за заявкамі чы процесу апраўлення важлівей за ўсё іншае быстрая выпускнае на рынак.
  • Вашы патрабаванія да інтэрфейсу ўзвычайныя і не выклікаюць патрэбы ў індывідуальным брендіранні чы незвычных інтэрактыўных элементах.
  • Выбірайте React, калі:

    • Програма адкрываецца для широкай публікі чы будзе викорыстоўвана тысячамі внутршнях корыстувачаў, дзе ліцензіяванне па аднаму месца ўстаёт недоступным.
    • Прыдатнасць і падтрымка па з’ўязку без інтернету є абавяжальнымі — думаце пра інструменты для выездных служб, якія працуюць пад слабым мобільным сигналам.
    • Вы спакоюецеся, што продукт будзе існаваць тры чы больш гадоў, і вам патрэбны справжнія процесы CI/CD, саўместная праца калькі развіццялероў і рэгулярныя автаматызаваныя тэсты.
    • Вам патрэбна цалкowая архітектурная контрольна можаць — свабода размешчання на будзь-якій пазухе, адказа на прыгнечэнне ад паводарчаго постачальніка і можласць змены тэхналогічных стакоў па меры змян у патрэбнах.

    Спадневаная літэратура