Bendrinti naudojant


„Microsoft Power Fx“ apžvalga

Power Fx yra mažai kodų naudojanti kalba, kuri bus naudojama visoje Microsoft Power Platform. Tai yra bendro tikslo, griežtai įvesta, deklaratyvi ir funkcionali programavimo kalba.

Power Fx yra išreikšta žmonėms draugišku tekstu. Tai yra mažai kodų naudojanti kalba, su kuria formuotojai gali dirbti tiesiogiai į „Excel” panašioje formulių juostoje arba „Visual Studio Code” teksto lange. „Mažai” sąvokoje „mažai kodų” yra dėl glaustos ir paprastos kalbos prigimties, darančios įprastas programavimo užduotys lengvomis tiek formuotojams, tiek kūrėjams. Tai įgalina pilną kūrimo spektrą nuo „jokio kodo”, skirto niekada anksčiau neprogramavusiems, iki „pro kodo”, skirto patyrusiems profesionalams, kuriems nebereikia mokytis ar perrašinėti kodo, tad skirtingos komandos įgalinamos bendradarbiavimui ir sutaupomas laikas ir išlaidos.

Pastaba.

  • Microsoft Power Fx yra naujas formulių kalbos, skirtos drobės programoms, pavadinimas Power Apps. Ši apžvalga ir susiję straipsniai yra vis papildomi, mums ištraukiant kalbą iš drobės programų, integruojant ją su kitais „Microsoft Power Platform” produktais ir padarant ją pasiekiamą kaip atvirąjį kodą. Norėdami sužinoti daugiau ir įgyti patirties su šiandienine kalba, pradėkite su Pradėti su formulėmis drobės programose dokumentuose Power Apps ir nemokamai prisijungti prie Power Apps bandomosios versijos.
  • Šiame straipsnyje mes minime formuotojus, kai aprašome funkciją, kuri gali būti naudojama bet kuriame programavimo įgūdžių spektro gale. Vartotoją vadiname kūrėju, jeigu funkcija yra labiau išplėsta ir, tikėtina, pernelyg sudėtinga tipiniam „Excel” vartotojui.

Power Fx susieja objektus kartu su deklaratyviomis į skaičiuokles panašiomis formulėmis. Pavyzdžiui, laikykime UI valdiklio ypatybę Matoma kaip „Excel” darbalapio langelį su susijusia formule, kuri suskaičiuoja jo reikšmę, remdamasi kitų valdiklių ypatybėmis. Formulės logika perskaičiuoja reikšmę automatiškai, panašiai kaip ir skaičiuoklė, o tai turi įtakos valdiklio matomumui.

Taip pat, Power Fx pasiūlo imperatyvo logiką, kai tai reikalinga. Darbalapiuose įprastai nėra mygtukų, kuriuos naudojant galima pateikti keitimus duomenų bazei, tačiau programose tokie mygtukai yra. Ta pati išraiškos kalba naudojama tiek deklaratyviai, tiek imperatyvo logikai.

Power Fx bus prieinama kaip atvirojo kodo programa. Šiuo metu integruota į drobės programas ir mes ištraukiame procesą iš Power Apps naudoti kituose Microsoft Power Platform produktuose kaip atvirąjį kodą. Daugiau informacijos: „Microsoft Power Fx” naudojimas „GitHub”

Šiame straipsnyje apžvelgiama kalba ir jos kūrimo principai. Norėdami sužinoti daugiau apie Power Fx, perskaitykite šiuos straipsnius:

Pasvarstymai apie skaičiuoklę

O kas jeigu galėtumėte sukurti programą taip pat lengvai, kaip ir „Excel” darbalapį?

O kas jeigu galėtumėte pasinaudoti jau turimomis skaičiuoklės žiniomis?

Tai buvo klausimai, įkvėpę Power Apps ir Power Fx sukūrimą. Šimtai milijonai žmonių kuria darbalapius su „Excel” kiekvieną dieną; suteikime jiems galimybę lengvai sukurti programą ir naudoti jiems jau žinomas „Excel” sąvokas. Atskyrę Power Fx iš Power Apps, mes atsakyme į šiuos klausimus apie kūrimo automatizavimą arba „Virtual Agent” ar kitus domenus.

Visos programavimo kalbos, įskaitant Power Fx, turi išraiškas: būdą skaičiavimą atspindėti skaičiais, eilutėmis arba kitų tipų duomenimis. Pavyzdžiui, mass * acceleration daugelyje kalbų išreiškia mass ir acceleration sudauginimą. Išraiškos rezultatą galima išreikšti kintamuoju, naudojamu kaip procedūros argumentas, arba įdėti į didesnę išraišką.

Power Fx žengia žingsniu toliau. Išraiška savaime nesako nieko apie tai, ką ji apskaičiuoja. Nuo formuotojo priklauso, ar ji bus įdėta į kintamąjį ar perkelta į funkciją. Programojė Power Fx, užuot rašę tik konkrečios reikšmės neturinčią išraišką formulę kuri susieja išraišką su indentifikatoriumi. Jūs rašote force = mass * acceleration kaip force apskaičiavimo formulę. Pasikeitus mass arba acceleration, force automatiškai atnaujinama į naują reikšmę. Išraiška apibūdino skaičiavimą, o formulė suteikė tam skaičiavimui pavadinimą ir panaudojo jį kaip receptą. Štai todėl Power Fx kaip formulių kalba.

Pavyzdžiui, ši formulė iš Rietuvės perpildos ieško eilutės atvirkštine tvarka. „Excel” programoje tai atrodo kaip šis vaizdas.

Atvirkštinė ieška

„Excel” formulių juostos su formule =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) ekrano kopija Langelyje A1 yra tekstas „Labas, pasauli! Su jumis puikiai susipažinti!" Langelyje A2 yra tekstas "jūs!"

Power Fx dirba su ta pačia formule, o langelio nuorodos pakeistos valdiklio ypatybės nuorodomis:

Power Fx atvirkštinė paieška.

Formulės juostos Power Fx momentinė ekrano nuotrauka Power Apps. Žemiau =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) formulės esančiame įvesties lauke yra tekstas „Labas, pasauli! Labai su jumis susipažinkite!", – laišką su laišku. Tuo pačiu metu Žymos lauke pasirodo paskutinio žodžio raidės. Kai Įvesties lauke pasirodo pilnas tekstas, žodis „jumis!” pasirodo Žymos laukelyje.

Pakeitus Input valdiklio reikšmę, valdiklis Label automatiškai perskaičiuoja formulę ir parodo naują reikšmę. Čia nėra OnChange įvykio apdorojimo programų, kaip įprasta kitose kalbose.

Dar vienas pavyzdys, kuriame naudojama ekrano Fill spalvos formulė. Pasikeitus slankikliams, valdantiems raudoną, žalią ir mėlyną spalvas, perskaičiuojama fono spalva pasikeičia automatiškai.

Spalvų slankiklis.

Nėra slankiklio valdiklių OnChange įvykių, kaip įprasta kitose kalbose. Nėra jokio būdo tiesiogiai nustatyti Fill ypatybės reikšmę. Jei spalva neveikia taip, kaip tikėjotės, turite peržiūrėti šią vieną formulę, kad suprastumėte, kodėl ji neveikia. Jums nereikia ieškoti visoje programoje, kad surastumėte kodo dalį, nustatančią ypatybę netikėtu laiku; nėra laiko elemento. Visada išlaikomos teisingos formulės reikšmės.

Kai slankikliai nustatomi į tamsią spalvą, raudonos, žalios ir mėlynos spalvų žymos pasikeičia į baltą spalvą. Tai atliekama naudojant paprastą formulę Color ypatybėje, kiekvienam žymos valdikliui.

Power Fx spalvų slankikliai.

Puiku yra tai, kad tai yra izoliuota nuo to, kas vyksta su Fill spalva: tai yra du visiškai skirtingi skaičiavimai. Vietoj didelių monolitinių procedūrų, Power Fx logika įprastai susideda iš daugybės savarankiškų mažesnių formulių. Dėl to tai yra lengviau suprantama ir įjungiami patobulinimai, netrukdant esamai logikai.

Power Fx yra deklaratyvi kalba, kaip ir „Excel”. Formuotojas apibūdina, kokio elgesio nori, tačiau sistema nustato ir optimizuoja, kaip ir kada tai pasiekti. Kalbant praktiškai, didelė dalis darbo padaroma grynomis funkcijomis be šalutinio įsikišimo, o tai daro Power Fx funkcine kalba (vėl, kaip ir „Excel”).

Visada dinamiškai

Apibrėžiantis darbalapių aspektas yra tas, kad jie visada yra dinamiški, o pakeitimai atspindimi iškart. Darbalapyje nėra kompiliavimo ar vykdymo režimo. Modifikavus formulę arba įvedus reikšmę, darbalapis yra nedelsiant perskaičiuojamas, kad atspindėtų pakeitimus. Visos aptiktos klaidos nedelsiant iškyla į paviršių ir nekliudo likusiai darbalapio daliai.

Toks pat dalykas atliekamas ir su Power Fx. Didėjantis kompiliatorius yra naudojamas nuolatos palaikyti programos sinchronizavimą su duomenimis, su kuriais ji veikia. Pakeitimai yra automatiškai platinami per programos diagramą, darantys įtaką priklausomų skaičiavimų rezultatams, kurie gali sukelti valdiklių, pavyzdžiui, spalvos ar padėties, ypatybes. Papildantysis kompiliatorius taip pat suteikia turiningą formulės redagavimo patirtį naudojant „IntelliSense”, pasiūlymus, automatinis užbaigimą ir tipo patikrą.

Toliau pateiktoje animacijoje užsakymo numeris rodomas žymos valdiklyje, kuris priklauso nuo slankiklio valdiklio, net jei po juo esančiuose žymose yra dvi klaidos. Programa yra labai dinamiška ir interaktyvi. Pirmasis bandymas išspręsti problemą įvedant .InvalidName lemia iškart rodomą raudoną liniją ir klaidą, kaip ir turėtų būti, tačiau programa tebeveikia.

Visada gyvenk.

Įvestas .Employee sąlygoja Data sritį įtraukti Darbuotojų lentelę, nuskaityti šios lentelės metaduomenis, o pasiūlymai stulpeliams yra iškart pateikiami. Ką tik perėjome per ryšį nuo vienos lentelės prie kitos ir sistema atliko reikiamus programos nuorodų pakeitimus. Taip pats nutinka ir įtraukiant .Customer.

Po kiekvieno pakeitimo slankiklis dirba toliau su savo paskutine reikšme, o visi kintamieji išsaugo savo reikšmę. Užsakymo numeris visą laiką buvo rodomas viršutinėje žymoje, kaip ir turėtų. Programa visą laiką dirbo dinamiškai, apdorodama tiesioginius duomenis. Mes galime juos įrašyti, pasitraukti, o kiti gali juos atidaryti ir naudoti, kaip ir „Excel” programoje. Nėra kūrimo veiksmo, kompiliavimo, yra tik publikavimo veiksmas, skirtas nustatyti, kuri programos versija yra paruošta vartotojams.

Mažai kodų

Power Fx apibūdina veiklos logiką glaustomis, bet galingomis formulėmis. Dauguma logikos galima sumažinti iki vienos eilutės, turinčios daug išraiškingumo ir valdymo sudėtingesniems poreikiams patenkinti. Tikslas yra išlaikyti iki minimumo skaičių sąvoką, kurį turi suvokti formuotojas, skaičių, idealiu atveju ne didesnį nei „Excel” vartotojas jau žinotų.

Pavyzdžiui, jei užsakymui norite peržiūrėti darbuotojo vardą, rašykite Power Fx taip, kaip parodyta tolesnėje animacijoje. Be „Excel” sąvokų, vienintelis įtrauktas čia naudojamas konceptas yra taško „.” notacija, kuri yra skirta detalizuoti duomenų struktūrai, šiuo atveju .Employee.'First Name'. Animacijoje rodomas susiejimas tarp Power Fx formulės dalių ir sąvokų, kurias reikia tiesiogiai koduoti lygiaverčiame „JavaScript”.

Žemo kodo JavaScript.

Pažvelkime nuodugniau į visus dalykus, kuriuos Power Fx daro dėl mūsų ir turimą optimizavimo laisvę, nes formulė buvo deklaratyvi:

  • Asinchroninis: Visi operacijų duomenys Power Fx yra nesinchroniški. Formuotojui nereikia to nurodyti, taip pat jam nereikia ir sinchronizuoti operacijų pasibaigus skambučiui. Formuotojui visai nereikia žinoti apie šią sąvoką, jam nereikia žinoti, kas yra „pažado” ar „lambda” funkcija.

  • Vietinis ir nuotolinis: Power Fx naudoja tą pačią sintaksę ir funkcijas duomenims, kurie yra vietiniai atmintyje ir nuotoliniai duomenų bazėje arba tarnyboje. Vartotojui nereikia galvoti apie šį skirtumą. Power Fx automatiškai perduoda tai, ką gali, į serverį dėl efektyvesnio filtravimų ir rūšiavimų apdorojimo.

  • Sąryšiniai duomenys: Užsakymai ir klientai yra dvi skirtingos lentelės su ryšiu „daugelis su vienu”. „OData” užklausai reikalingas „$expand” su žiniomis apie išorinį raktą, panašiai į funkciją Prisijungti SQL platformoje. Formulėje viso to nėra; tiesą sakant, duomenų bazės raktai yra kita sąvoka, apie kurią formuotojui nėra būtina žinoti. Formuotojas paprasčiausiai gali naudoti taško notaciją pasiekti visam ryšių grafui iš įrašo.

  • Projektavimas: Rašydami užklausą daug kūrėjų rašo select * from table, o tai vėl sukuria visus duomenų stulpelius. Power Fx analizuoja visus stulpelius, naudojamus per visą programą, net ir visose formulės priklausomybėse. Projektavimas yra automatiškai optimizuojamas ir, dar kartą, formuotojui nereikia žinoti, ką reiškia „projektavimas”.

  • Nuskaityti tik tai, ko reikia: Šiame pavyzdyje LookUp funkcija reiškia, kad turi būti nuskaitomas tik vienas įrašas ir jis yra viskas, kas grąžinama. Jeigu užklausiama daugiau įrašų naudojant Filter funkcija—kurią atitikti gali tūkstančiai įrašų vienu metu grąžinamas tik vienas užsakymo duomenų puslapis su 100 įrašų viename puslapyje. Vartotojas turi pereiti per galeriją arba duomenų lentelę, kad pamatytų daugiau duomenų, kurie jam bus automatiškai pateikti. Formuotojas gali pagrįsti didelius duomenų rinkinius ir negalvoti apie duomenų užklausų ribojimą iki valdomų segmentų.

  • Paleidžiama tik tada, kai reikia: Mes apibrėžėme formulę, skirtą žymos valdiklio Text ypatybei. Keičiantis pasirinktam kintamajam, LookUp yra automatiškai perskaičiuojamas, o žyma atnaujinama. Formuotojui neprireikė rašyti „OnChange” apdorojimo programos pasirinkimui, jam taip pat nereikėjo prisiminti, kad nuo to priklauso žyma. Tai yra deklaratyvusis programavimas, aprašytas anksčiau: formuotojas nurodo, ką nori matyti žymoje, bet ne kaip, ar kada ji turi būti iškviesta. Jei ši žyma nematoma, nes rodoma ekrane, kuris nėra matomas arba kurio Visible ypatybė yra klaidinga, šį skaičiavimą galime atidėti iki tol, kol žyma bus matoma ir efektyviai pašalinti ją, jeigu tai nutinka retai.

  • "Excel" sintaksės vertimas: "Excel" naudoja daugelis vartotojų, kurių dauguma žino, kad ampersandas (&) naudojamas eilučių sujungimui. JavaScript naudoja plius prisijungimą (+), ir kitas kalbas kaip tašką (.).

  • Rodomi pavadinimai ir lokalizacija: First Name naudojami Power Fx formulėje kol nwind_firstname yra naudojamas JavaScript kaip ekvivalentas. Be unikalaus loginio pavadinimo, „Microsoft Dataverse” ir „SharePoint” yra stulpelių ir lentelių rodomas pavadinimas. Rodomi pavadinimai dažnai yra daug patogesni vartotojui, kaip šiuo atveju, tačiau jie turi kitą svarbią savybę – juos galima lokalizuoti. Jei turite daugiakalbę komandą, kiekvienas komandos narys gali matyti lentelių ir laukų pavadinimus savo kalba. Visais naudojimo atvejais Power Fx užtikrina, kad teisingas loginis pavadinimas būtų automatiškai nusiunčiamas į duomenų bazę.

Jokio kodo

Jums nebūtina skaityti ir rašyti Power Fx norint pradėti išreikšti logiką. Yra daugybė tinkinimų ir logikos, kurie gali būti išreikšti per paprastus perjungiklius ir vieningosios sąsajos generatorius. Šie „jokio kodo” įrankiai buvo sukurti Power Fx rašymui ir skaitymui, kad būtų užtikrinta, jog yra pakankamai papildomo pajėgumo kažkam tai išplėtoti, kartu pripažįstant, kad „jokio kodo” įrankiai niekada nepasiūlys pilno kalbos išraiškingumo. Netgi naudojant „jokio kodo” darykles, formulių juosta yra svarbiausia Power Apps kad formuotojas būtų supažindintas su tuo, kas daroma jo vardu, kad jis galėtų pradėti mokytis Power Fx.

Pažvelkime į kelius pavyzdžius. „Power Apps” ypatybių skyde pateikiami „jokio kodo” perjungikliai ir mygtukai, skirti valdiklių ypatybėms. Praktiškai, dauguma ypatybių reikšmių yra pastovios. Galite naudoti spalvos daryklę, jei norite pakeisti Gallery fono spalvą. Atkreipkite dėmesį, kad formulių juosta atspindi šį pakeitimą atnaujindama formulę į kitą RGBA skambutį. Bet kuriuo metu galite pereiti į formulių juostą ir žengti žingsniu toliaušiame pavyzdyje naudojant ColorFade spalvai koreguoti. Spalvos ypatybė vis tiek rodoma ypatybių skyde, tačiau užvedus pelės žymeklį pasirodo „fx” piktograma ir esate nukreipiamas į formulių juostą. Tai visiškai veikia dviem būdais: pašalinus ColorFade, skambutis grąžina spalvą į tai, ką gali suprasti ypatybių juosta, o jūs galite tai panaudoti dar kartą spalvai nustatyti.

Be kodo spalva.

Štai sudėtingesnis pavyzdys. Galerijoje rodomas darbuotojų sąrašas iš „Dataverse”. „Dataverse” pateikia rodinius virš lentelės duomenų. Galime pasirinkti vieną iš šių rodinių, o formulė yra pakeičiama naudoti Filter funkciją su šiuo rodinio pavadinimu. Du išplečiamuosius meniu galima panaudoti skambinimui į teisingą lentelę ir peržiūrai neliečiant formulių juostos. Tačiau tarkime, norite eiti toliau ir įtraukti rikiavimą. Tai galime padaryti formulių juostoje ir ypatybių skydas vėl rodys „fx” piktogramą ir nukreips modifikacijas į formulių juostą. Ir vėl, jei supaprastinsime formulę į tai, ką gali skaityti ir rašyti ypatybių skydas, ją vėl bus galima naudoti.

Rūšiuoti be kodo.

Tai buvo paprasti pavyzdžiai. Tikime, kad Power Fx yra puiki kalba apibūdinti „jokio kodo” sąveikoms. Tai glausta, galinga ir lengvai analizuojama kalba, suteikianti reikalingą pajėgumą tiek profesionalams „be klaidų”, tiek mažo kodo programuotojams.

Pro kodas

„Mažai kodų” formuotojai kartais sukuria dalykus, kuriems reikia eksperto pagalbos arba kurie yra perimami profesionalaus programų kūrėjo dėl priežiūros ir tobulinimo. Profesionalai taip pat vertina, kad kūrimas su mažai kodų gali būti lengvesnis, greitesnis ir mažiau kainuojantis nei profesionalaus įrankio kūrimas. Ne kiekvienai situacijai reikalingas pilnas „Visual Studio” pajėgumas.

Profesionalai nori naudoti profesionalius įrankius dėl didžiausio produktyvumo. Power Fx formules galima saugoti YAML šaltinio failai, kuriuos lengva redaguoti naudojant Visual Studio Code, Visual Studio, ar bet kokią kitą teksto rengyklę ir įjungti Power Fx šaltinį kontroliuoti GitHub, Azure DevOps, ar bet kurią kitą šaltinio kodo valdymo sistemą.

Pro kodo Visual Studio kodas.

Pro kodas GitHub.

Power Fx palaiko formule pagrįstus komponentus bendrinimui ir pakartotiniam naudojimui. Mes paskelbėme parametrų palaikymą komponentų ypatybėms, pakeliui įgalinant grynų vartotojo apibrėžtų funkcijų kūrimą su daugiau patobulinimų.

Be to, Power Fx puikiai sujungia į visumą komponentus ir profesionalų sukurtas paslaugas. Visiškai parengtos jungtys teikia prieigą prie šimtų duomenų šaltinių ir žiniatinklio tarnybų, tinkinamos jungtys įgalina Power Fx kalbėtis su bet kuria REST wžiniatinklio tarnyba, o kodo komponentai įgalina Power Fx sąveikauti su visiškai tinkintu „JavaScript” ekrane ir puslapyje.

Kūrimo principai

Paprastumas

Power Fx sukurta tikslinei formuotojų auditorijai, kurios nariai nebuvo apmokyti kaip programų kūrėjai. Kur tik įmanoma, naudojame tokias žinias, kurias ši auditorija jau turėtų arba galėtų greitai įsisavinti. Išlaikomas minimalus skaičius sąvokų, kurios yra būtinos sėkmei.

Paprastumas taip pat yra gerai kūrėjams. Kūrėjų auditorijai siekiame būti mažo kodo kalba, kuri sumažina laiką, reikalingą sprendimo kūrimui.

„Excel” nuoseklumas

„Microsoft Power Fx” kalba daug skolinasi iš „Excel” formulių kalbos. Mes siekiame pasinaudoti daugelio formuotojų, taip pat naudojančių „Excel” programą, „Excel” žiniomis ir patirtimi. Tipai, operatoriai ir funkcijų semantika yra kaip įmanoma artimesni „Excel”.

Jei „Excel” neturi atsakymo, toliau žiūrime į SQL. Po „Excel”, SQL yra antra dažniausiai naudojama deklaratyvi kalba, galinti suteikti pagalbos atlikti duomenų operacijas ir griežtą įvedimą, ko negali „Excel”.

Deklaratyvi

Formuotojas apibūdina tai, jie nori, jog jų logika darytų, bet ne tiksliai kaip ar kada tai daryti. Tai leidžia kompiliatoriui optimizuoti atliekant operacijas lygiagrečiai, atidedant darbą iki tol, kol reikia, ir iš anksto iškviečiant bei pakartotinai naudojant talpykloje saugomus duomenis.

Pavyzdžiui, „Excel” darbalapyje autorius apibrėžia ryšius tarp langelių, tačiau „Excel” nusprendžia, kada ir kokia tvarka formulės bus vertinamos. Panašiai, programos formulės gali būti laikomos „perskaičiavimo” kaip reikalinga, priklausomai nuo vartotojo veiksmų, duomenų bazės pakeitimų ar laikmačio įvykių.

Funkcionalumas

Teikiame pirmenybę grynosioms funkcijoms, neturinčioms šalutinio poveikio. Tai lemia lengviau suprantamą logiką ir suteikia kompiliatoriui daug optimizavimo laisvės.

Skirtingai nei „Excel”, programos pagal savo prigimties būseną yra mutuojančios būsenospavyzdžiui, programos turi mygtukus, išsaugančius pakeitimus į duomenų bazės įrašą. Todėl kai kurios funkcijos turi šalutinį poveikį, nors mes jį apribojame tiek, kiek tai yra tikslinga.

Kūrimas

Įtrauktas funkcionalumas gerai dera su esamomis funkcijomis ten, kur įmanoma. Galingas funkcijas galima išskaidyti į mažesnes dalis, kurias galima lengviau panaudoti atskirai.

Pavyzdžiui, Galerijos valdiklis neturi atskirų Sort ir Filter ypatybių. Vietoj to, Sort ir Filter funkcijos yra sujungiamos į vieną Items ypatybę. UI, skirta reikšti Sort ir Filter veikimą, yra sluoksniuojama viršuje Items ypatybės, naudojant dvikryptę rengyklę šiai ypatybei.

Stiprūs tipai

Visų reikšmių tipai yra žinomi kompiliavimo metu. Tai leidžia ankstyvą klaidų aptikimą ir turiningus pasiūlymus kūrimo metu.

Polimorfiniai tipai yra palaikomi, tačiau prieš pradedant juos naudoti, jų tipą reikia prisegti prie statinio tipo, o tas tipas turi būti žinomas kompiliavimo metu. Funkcijos Ar tipas ir Kaip tipas yra pateikiamos tipų testavimui ir perdavimui.

Tipo išvada

Tipai yra išvedami iš jų naudojimo, jų nepaskelbiant. Pavyzdžiui, kintamojo nustatymas į skaičių lemia kintamojo tipo kaip skaičiaus nustatymą.

Dėl prieštaringų tipo naudojimo rezultatų įvyksta kompiliavimo laiko klaida.

Nuo vietovės priklausantys dešimtainiai skyrikliai

Kai kurie pasaulio regionai naudoja tašką ( „.”) kaip dešimtainį skyriklį, o kiti naudoja kablelį ( „,”). „Excel” irgi taip pat daro. Tai įprastai nėra daroma kitose programavimo kalbose, kurios dažniausiai naudoja kanoninį tašką („.”) kaip dešimtainį skyriklį visiems pasaulio vartotojams. Kad būtų kuo labiau prieinama visų lygių formuotojams, svarbu, kad 3,14 būtų dešimtainis skaičius žmogui Prancūzijoje, naudojusiam tokią sintaksę visą savo gyvenimą.

Dešimtainio skyriklio pasirinkimas turi pakopinį poveikį sąrašo skyrikliui, kuris naudojamas funkcijos iškvietimo argumentams, ir sujungimo į grandinę operatoriui.

Autoriaus kalbos dešimtainis skyriklis "Power Fx" dešimtainis skyriklis "Power Fx" sąrašo skyriklis "Power Fx" susiejamas operatorius
. (taškas) . (taškas) , (kablelis) „;” (kabliataškis)
, (kablelis) , (kablelis) „;” (kabliataškis) „;;” (dvigubas kabliataškis)

Daugiau informacijos: Visuotinis palaikymas

Orientuotas ne į objektą

Excel nėra orientuotas į objektą nei į Power Fx. Pavyzdžiui, kai kuriose kalbose eilutės ilgis yra išreiškiamas kaip eilutės ypatybė, tarkim, "Hello World".length „JavaScript” kalboje. Vietoj to, „Excel” ir „Power Fx” išreiškia ilgį kaip funkciją, pavyzdžiui, Len( "Hello World" ).

Komponentai su ypatybėmis ir metodais yra orientuoti į objektą ir Power Fx lengvai dirba su jais. Tačiau ten, kur įmanoma, teikiame pirmenybę funkciniam traktavimui.

Išplėtimas

Formuotojai gali kurti savo komponentus ir funkcijas naudodami patį Power Fx. Kūrėjai gali kurti savo komponentus ir funkcijas rašydami „JavaScript”.

Patogumas kūrėjams

Nors formuotojai yra mūsų pagrindinis tikslas, stengiamės dėl patogumo kūrėjams, kai tik įmanoma. Jei jis nėra prieštaringas anksčiau aprašytiems kūrimo principais, atliekame veiksmus tokiu būdu, kurį įvertintų kūrėjas. Pavyzdžiui, „Excel” neturi komentarų įtraukimo galimybės, taigi mes naudojame į C panašių eilučių ir įdėtuosius komentarus.

Kalbos evoliucija

Programavimo kalbų vystymasis yra reikalingas ir sudėtingas. Visi, teisingai, yra sunerimę, kad net ir gerų ketinimus turintis pakeitimas gali sulaužyti esamą kodą ir vartotojams reikėtų išmokti naują modelį. Power Fx rimtai žiūri į suderinamumą su ankstesnėmis versijomis, tačiau mes taip pat tvirtai tikime, kad ne visada pavyks iš pirmo karto ir mes kartu sužinosime, kas geriausia kaip bendruomenė. Mes turime tobulėti, o Power Fx nuo pat pradžių yra sukurta taip, kad palaikytų kalbos evoliuciją.

Kalbos versijos žyma yra pridedamas prie kiekvieno išsaugoto Power Fx dokumento. Jeigu norime atlikti nesuderinamą pakeitimą, mes rašysime tai, ką vadiname „suderinamumo su ankstesnėmis versijomis keitikliu”, kuris perrašo formulę automatiškai kitą kartą ją redaguojant. Jei pakeitimas yra didelis ir svarbus, apie kurį turime apšviesti vartotoją, mes taip pat parodysime pranešimą su nuoroda į dokumentus. Naudojant šią galimybę vis dar galima įkelti programas, sukurtas naudojant daugelio metų senumo „Power Apps” peržiūros versijas, nepaisant visų nuo tada įvykusių pakeitimų.

Pavyzdžiui, pristatėme ShowError funkciją, skirtą rodyti klaidų reklaminę juostą raudoname fone.

Rodyti klaidą.

Vartotojams ji labai patiko, tačiau jie taip pat paprašė mūsų būdo parodyti sėkmės reklaminę juostą (žalias fonas) arba informacinę juostą (mėlynas fonas). Todėl sugalvojome bendresnę funkciją Notify, kurių pranešimų tipui imasi antro argumento. Mes galėjome tiesiog įtraukti Notify ir palikti ShowError tokią, kokia ji buvo, tačiau vietoj to, mes pakeitėme ShowError į Notify. Pašalinome funkciją, kuri anksčiau buvo gamyboje ir pakeitėme ją kita. Kadangi būtų du būdai padaryti tą patį dalyką, tai sukeltų painiavąypatingai naujiems vartotojams sukeltas sąmyšis ir, svarbiausia, tai būtų pridėję sudėtingumo. Niekas nesiskundė, visi įvertino pokytį ir tada perėjome prie savo kitos funkcijos Pranešti.

Taip atrodo ta pati programa, įkelta į naujausią „Power Apps” versiją. Vartotojui nereikėjo atlikti jokių veiksmų šiai transformacijai, ji įvyko automatiškai atidarius programą.

Funkcija Pranešti pakeičia ShowError.

Su šia galimybe, Power Fx gali vystytis greičiau ir agresyviau nei dauguma programavimo kalbų.

Jokių neapibrėžtų reikšmių

Kai kurios kalbos, pavyzdžiui, „JavaScript” naudoja neapibrėžtos reikšmės konceptą neinicijuotiems kintamiesiems arba trūkstamoms ypatybėms. Dėl paprastumo mes išvengėme šio koncepto. Atvejai, kurie būtų neapibrėžti kitose kalbose, būtų laikomi klaida arba tuščia reikšme. Pavyzdžiui, visi panaikinto inicijavimo kintamieji prasideda tuščia reikšme. Visų duomenų tipai gali prisiimti tuščią reikšmę.

Duomenų tipai
Operatoriai ir identifikatoriai
Lentelės
Kintamieji
Imperatyvo logika
Visuotinis palaikymas
Išraiškos gramatika
„YAML” formulės gramatika
Formulės drobės programoje