Microsoft Power Fxi ülevaade

Power Fx on madala koodiga keel, mida Microsoft Power Platform kasutab. See on üldotstarbeline, tugevalt tipitud, deklaratiivne ja funktsionaalne programmeerimiskeel.

Power Fx on väljendatud inimsõbralikus tekstis. See on madala koodiga keel, millega tegijad saavad töötada otse Exceli-sarnase valemiriba või Visual Studio Code'i tekstiaknas. Madala koodiga "madal" tuleneb keele kompaktsest ja lihtsast olemusest, mis muudab levinud programmeerimisülesanded nii loojate kui ka arendajate jaoks lihtsaks. See võimaldab koodita arendada täielikku spektrit neile, kes pole kunagi programmeeritud "pro-code" maitsestatud professionaal, ilma et nad ei õpiks ega kirjutaks kaljusid vahepeal ümber. Mitmekesised töörühmad saavad teha koostööd ning säästa aega ja kulusid.

Märkus.

  • Microsoft Power Fx on Power Apps lõuendirakenduste valemikeele uus nimi. See ülevaade ja seostuvad artiklid on pooleli, kuna Microsoft ekstraktib keele lõuendirakendustest, integreerib selle teiste Microsoft Power Platform toodetega ja teeb selle kättesaadavaks open source. Lisateavet selle keele kohta leiate teemast Valemite kasutamisega alustamine rakenduse Power Apps lõuendis ja tasuta Power Apps prooviversiooni kasutamine.
  • Selles artiklis viitavad loojad kasutajatele, kes võivad kasutada funktsiooni programmeerimisoskuste spektri mõlemas otsas. Arendajad viitavad kasutajatele, kui funktsioon on arenenum ja on tõenäoliselt tavalisest Excel kasutajast ulatuslikum.

Power Fx seob objektid kokku deklaratiivsete arvutustabelilaadsete valemitega. Näiteks mõelge Nähtavast kui kasutajaliidese juhtelemendi atribuutist Exceli töölehe lahtrina, kus on seostatud valem, mis arvutab oma väärtuse muude juhtelementideatribuutide põhjal. Valemiloogika arvutab väärtuse ümber automaatselt, sarnaselt arvutustabeli tööga, mis mõjutab juhtelemendi nähtavust.

Samuti pakub Power Fx vajaduse korral imperatiivset loogikat. Tavaliselt pole töölehel nuppe, mis võivad andmebaasi muudatusi edastada, kuid rakendused teevad seda sageli. Sama avaldisekeelt kasutatakse nii deklaratiivse kui ka imperatiivse loogika korral.

Microsoft teeb Power Fx kättesaadavaks avatud lähtekoodiga tarkvarana. See on praegu integreeritud lõuendirakendustesse ja Microsoft ekstraktib seda Power Apps kasutamiseks muudes Microsoft Power Platform toodetes ja open source. Lisateave: Microsoft Power Fx GitHub

See artikkel on ülevaade keelest ja selle kujunduspõhimõtetest. Lisateavet Power Fx kohta leiate järgmistest artiklitest:

Arvutustabel

Mis siis, kui saaksite luua rakenduse nii lihtsalt, kui Exceli töölehte koostada?

Mis siis, kui saaksite kasutada olemasolevaid arvutustabelite andmeid?

Need küsimused inspireerisid Power Apps ja Power Fx-i loomist. Sajad miljonid inimesed loovad iga päev Excel töölehti. Toome neile rakenduse loomise, mis on lihtne ja kasutab Excel kontseptsioone, mida nad juba teavad. Power Fx rakendusest Power Apps, välja murdmisega vastame neile küsimustele automatiseerimise või virtual agent või muude domeenide jaoks.

Kõigil programmeerimiskeeltel, sealhulgas Power Fx, on avaldised: viis kuidas kujutada arvude, stringide või muude andmetüüpide arvutusi. Näiteks mass * acceleration tähistab enamikes keeltes väärtuste mass ja acceleration korrutamist. Avaldise tulemi saate paigutada muutujasse, kasutada seda toimingu argumendina või pesastada suuremasse avaldisse.

Power Fx viib selle sammu edasi. Avaldis ise ei ütle midagi selle kohta, mida see arvutab. Tootja peab selle muutujasse paigutama või funktsioonile edastama. Power Fx rakenduses võite ainult ilma mingi kindla tähendusega avaldise kirjutamise asemel kirjutada valemi mis seob avaldise identifikaatoriga. Kirjutate force = mass * acceleration selleks, et arvutada force valemina. Uue mass väärtuse automaatne värskendamine või acceleration muutmine force . Avaldis kirjeldas arvutust, valemit, mis arvutas nime ja kasutas seda sisestatud avaldisena. Seetõttu viitame Power Fx rakendusele kui valemikeelele.

Näiteks see valem Stack Overflow`st otsib stringi vastupidises järjestuses. Excelis näeb see välja järgmise pildina.

Pöördotsing

Exceli valemiriba kuvatõmmis valemiga: =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) Lahter A1 sisaldab teksti "Tere, Maailm! On suurepärane teiega tuttavaks saada!" Lahter A2 sisaldab teksti "you!"

Power Fx töötab koos sama valemiga, mille lahtri viited on asendatud juhtelemendi atribuudi viidetega:

Power Fx tagurpidi otsing.

Power Fx kuvatõmmis Power Apps valemiribalt. Valem on =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) Sisestage väljale valemi all tekst "Tere, Maailm! Teiega on hea tuttavaks saada!", ilmub kiri tähega. Samal ajal kuvatakse sildiväljal viimase sõna tähed. Täisteksti kuvamisel sisestusväljale kuvatakse sõna "you!"

Juhtelemendi väärtuse muutumisel InputLabel arvutab juhtelement valemi automaatselt ümber ja kuvab uue väärtuse. Siin pole sündmuseohjureid OnChange nagu on teistes keeltes.

Teises näites kasutatakse ekraani värvi jaoks Fill valemit. Punase, rohelise ja sinise juhtimisega liugurite puhul muutub taustavärv ümberarvutamisel automaatselt.

Värvi liugur.

Liugurite juhtelementide jaoks pole sündmusi OnChange, mis on olemas muudes keeltes. Atribuudi Fill väärtust ei saa eraldi määrata. Kui värv ei tööta oodatud viisil, peate vaatama seda ühte valemit, et mõista, miks see ei tööta. Te ei pea rakenduse kaudu otsima koodi, mis määrab atribuudi ootamatul ajal; ajaelementi pole. Õigeid valemväärtusi hallatakse alati.

Kui liugurid on seatud tumedale värvile, muutuvad punase, rohelise ja sinise sildid valgeks kompenseerimise eesmärgil. See muudatus toimub iga sildi juhtelemendi atribuudi lihtsa valemi Color abil.

Power Fx värvi liugurid.

Selle valemi juures on hea, et see on eraldatud värvi poolest toimuvast Fill : need on kaks täiesti erinevat arvutust. Suurte monoliitide protseduuride asemel koosneb Power Fx tavaliselt paljudest väiksematest sõltumatutest valemitest. See struktuur hõlbustab nende mõistmist ja võimaldab täiustusi ilma olemasolevat loogikat segamata.

Power Fx on deklaratiivne keel, just nagu Excel. Tegija määratleb, millist käitumist nad soovivad, kuid süsteemi ülesanne on määratleda ja optimeerida, kuidas ja millal seda saavutada. Selleks tehakse enamik töid läbi puhaste funktsioonide, et kõrvalmõjusid ei ilmneks, muutes Power Fx ka funktsionaalseks keeleks (jällegi, nagu seda on ka Excel).

Alati värskendatud

Töölehtede puhul on määravaks, et need on alati reaalajas ja muudatused kajastuvad koheselt. Töölehel pole kompileerimist ega käitusrežiimi. Kui muudate valemit või sisestate väärtuse, arvutatakse tööleht muudatuste kajastamiseks kohe ümber. Tuvastatud vead ilmnevad kohe ja need ei sega ülejäänud töölehte.

Power Fx juurutab sama asja. See kasutab astmelist kompilaatorit, et hoida programmi pidevalt sünkroonis andmetega, milles programm töötab. Muudatused levitatakse automaatselt programmi graafiku kaudu, mõjutades sõltuvate arvutuste tulemusi. Need arvutused võivad juhtida juhtelementide (nt värv või asukoht) atribuute. Inkrementkompilaator pakub ka rikkalikke valemite redigeerimise võimalusi IntelliSense'i, soovituste, automaatteksti ja tüübi kontrollimisega.

Järgmises animatsioonis kuvatakse järjekorranumber sildi juhtelemendis, mis sõltub liuguri juhtelemendist, kuigi selle all olevatel siltidel on kaks tõrget. Rakendus on värskendatud ja interaktiivne. Esimene katse valemit parandada, sisestades .InvalidName annab kohe punase joone ja tõrke nagu peaks, kuid rakendus töötab edasi.

Elage alati.

Sisestamisel .EmployeeData lisab paan tabeli Töötajad, toob selle tabeli metaandmed ja pakub kohe veergude soovitusi. Kõndisite just üle seose ühest tabelist teise ja süsteem tegi rakenduse viidetes vajalikud muudatused. Sama asi juhtub ka siis, kui lisate .Customer.

Pärast iga muudatust säilitab liugur oma viimase väärtuse ja kõik muutujad säilitavad oma väärtuse. Kogu tellimuse number kuvatakse ülemisel sildil samamoodi nagu peaks. Rakendus on reaalajas, töötleb tegelikke andmeid kogu aeg. Saate selle salvestada, ära kõndida ning teised saavad seda avada ja kasutada samamoodi nagu Excel. Pole järguetappi ega kompileerimist. Avaldamistoimingu abil saate kindlaks teha, milline rakenduseversioon on kasutajate jaoks valmis.

Vähe koodi

Power Fx kirjeldab äriloogikat kompaktsete, kuid võimsate valemitega. Enamik loogikast vähendab ühe jooneni, kus on palju väljendusvõimet ja kontrolli keerukamate vajaduste rahuldamiseks. Eesmärk on hoida mõistete arv, millest koostaja peab aru saama, miinimumi lähedal- ideaalis ei tohiks neid olla rohkem, kui Exceli kasutajale vajalik.

Näiteks selleks, et otsida eesnime tellimuse jaoks, võite kirjutada rakenduse Power Fx nagu on näidatud järgmises animatsioonis. Peale Exceli mõistete on siin kasutatud ainult punkti "." andmestruktuuri süvitsimineku kohta .Employee.'First Name'. Animatsioon näitab vastendust Power Fx valemi osade ja mõistete vahel, mis tuleb selgesõnaliselt kodeerida samaväärsesse rakendusse JavaScript.

Vähese koodiga JavaScript.

Vaatame põhjalikumalt kõiki asju, mida Power Fx meile teeb, ja vabadusest, mida see peab optimeerima, kuna valem on deklaratiivne:

  • Asünkroonne: kõik andmetoimingud Power Fx on asünkroonsed. Tegija ei pea seda määrama, samuti ei pea tegija sünkroonima toiminguid pärast kõne läbimist. Koostaja ei pea sellest kontseptsioonist üldse teadlik olema, ta ei pea teadma, mis on lubadus või lambda funktsioon.

  • Kohalik ja kaug: Power Fx kasutab sama süntaksit ja funktsioone andmete jaoks, mis on kohalikus mälus ja ühendavad andmebaasi või teenuse eemalt. Kasutaja ei pea sellele mõtlema. Power Fx delegeerib ülesanded automaatselt serverile, et seal filtreid töödelda ja täpsemalt sorteerida.

  • Relatsiooniandmed: Tellimused ja Kliendid on kaks erinevat tabelit, millel on mitu-ühele seos. OData päring nõuab atribuuti „$expand”, millel on teadmised võõrvõtmest, mis sarnaneb SQL-is liitumisega. Valemil pole seda; tegelikult on andmebaasivõtmed veel üks mõiste, millest koostajal pole vaja teada. Tegija saab kasutada lihtsat punktiesitust, et pääseda juurde kogu kirje seoste graafikule.

  • Projektsioon: Päringu kirjutamisel kirjutavad select * from table paljud arendajad, mis toob tagasi kõik andmeveerud. Power Fx analüüsib kõiki veerge, mida kasutatakse kogu rakenduses, isegi valemisõltuvuste korral. Projektsioon optimeeritakse automaatselt ja taas ei pea tegija teadma, mida projektsioon tähendab.

  • Tooge ainult see, mis on vajalik: selles näites viitab funktsioon sellele, LookUp et tuua tuleks ainult üks kirje ja see on kõik, mis tagastatakse. Kui rohkem kirjeid on taotletud kasutades Filter funktsiooni-mille jaoks tuhanded kirjed võivad tingimustele vastata-tagastatakse korraga ainult üks andmeleht, järjekorras 100 kirjet lehel. Kui kasutaja soovib näha rohkem andmeid, peab kasutaja galeriis või andmetabelis žesti lisama ja lisama sinna automaatselt rohkem andmeid. Tootja saab arutleda suurte andmekomplektide üle, ilma et oleks vaja mõelda hallatavate andmetaotluste piiramisele.

  • Käivitub ainult vajaduse korral: sildi juhtelemendi atribuudi jaoks Text tuleb määratleda valem. Kui valitud muutuja muutub, arvutatakse atribuut LookUp automaatselt uuesti ja silti värskendatakse. Tegija ei pea kirjutama valikute jaoks OnChange`i ohjurit ja ei pea meeles pidama, et see silt sõltub sellest. See on deklaratiivne programmeerimine, nagu juba varem mainisime, sest koostaja täpsustas, mida soovib sildil näha, mitte kuidas või millal tuleks seda hankida. Kui see silt pole nähtav, kuna see on kuval, mis pole nähtav või selle Visible atribuut on väär, saate arvutust edasi lükata, kuni silt on nähtav ja eemaldab selle tõhusalt, kui see juhtub harva.

  • Excel süntaksi tõlge: paljud kasutajad teavad, et stringi ühendamiseks kasutatakse Excel&-s märku (&). JavaScript kasutab plussmärki (+) ja muud keeled kasutavad punkti (.).

  • Kuvatavad nimed ja lokaliseerimine: First Name kasutatakse Power Fx valemis, samas kui nwind_firstname seda kasutatakse JavaScripti ekvivalendis. Rakenduses Microsoft Dataverse ja SharePoint on tabelites lisaks kordumatule loogikanimele ka veergude ja tabelite kuvatav nimi. Kuvatavad nimed on sageli palju kasutajasõbralikum, nagu see on käesolevas juhtumis, kuid neil on veel üks oluline omadus, et neid saaks lokaliseerida. Kui teil on mitmekeelne meeskond, näeb iga meeskonna liige tabeli- ja väljanimesid oma keeles. Kõigil kasutusjuhtumitel tagab Power Fx et andmebaasi saadetakse automaatselt õige loogiline nimi.

Ilma koodita

Loogika avaldamiseks pole vaja Power Fx-i lugeda ega kirjutada. Lihtsate lülitite ja kasutajaliidese koosturite abil saate väljendada palju kohandusi ja loogikat. Need koodita tööriistad on loodud Power Fx-i lugemiseks ja kirjutamiseks, nii et keegi peab seda rohkem vastu võtma. Koodita tööriistad ei paku aga kunagi kogu keele väljendusvõimet. Isegi kui kasutate koodita koostureid, on valemiriba Power Apps ees ja keskel, et harida tegijat selle kohta, mida nende nimel tehakse, et nad saaksid asuda power Fx-i tundma õppima.

Vaatame näiteid. Rakenduses Power Apps pakub atribuudipaneel juhtelementide atribuutidele jaoks koodita lüliteid ja nuppe. Praktikas on enamik atribuutide väärtusi staatilised. Värvide koostaja abil saate muuta Gallery taustavärvi. Pange tähele, et valemiriba kajastab seda muudatust, värskendades valemit teisele RGBA kõnele. Saate igal ajal minna valemiribale ja teha seda muudatust veelgi - selles näites värvi kohandamise abil ColorFade . Värviatribuudid kuvatakse ikkagi atribuutide paneelil, kuid kursorile ilmub fx ikoon ja teid suunatakse valemiribale. See toimib täielikult kahel viisil: ColorFade kõne eemaldamine tagastab värvi millekski, mida atribuudipaneel saab mõista, ning saate seda uuesti kasutada värvi komplekti avamiseks.

Koodita värv.

Siin on üks keerulisem näide. Galeriis kuvatakse töötajate loend asukohast Dataverse. Dataverse pakub tabeliandmete vaateid. Saate valida ühe neist vaadetest ja valem muutub, et kasutada Filter funktsiooni selle vaate nimega. Saate kasutada kahte rippmenüüd õigesse tabelisse helistamiseks ja kuvamiseks ilma valemiriba puudutamata. Aga oletame, et soovite minna edasi ja lisada sordi. Selle funktsiooni saate lisada valemiribale ja atribuudipaanil kuvatakse uuesti fx-ikoon ja see suunab muudatused valemiribale. Ja kui lihtsustate valemit millegini, mida atribuudipaan saab lugeda ja kirjutada, saab seda kasutada.

Koodita sorteerimine.

Need näited on lihtsad. Power Fx on suurepärane keel koodivabade interaktsioonide kirjeldamiseks. See on lühike, võimas ja kergesti sõelutav. See pakub peatuba, mida on nii sageli vaja koos madala koodiga "kaljudeta".

Tipptasemel kood

Madala koodiga loojad loovad mõnikord lahendusi, mis nõuavad eksperdi abi või mille professionaalne arendaja võtab üle, et neid hallata ja täiustada. Spetsialistid hindavad ka seda, et vähese koodiga arendus võib olla lihtsam, kiirem ja vähem kulukas kui professionaalse tööriista ehitamine. Mitte iga ülesanne ei nõua Visual Studio täielikke võimalusi.

Spetsialistid soovivad kasutada professionaalseid tööriistu, et tagada maksimaalne tööviljakus. Power Fx-i valemeid saate talletada YAML-lähtefailides, mida on lihtne redigeerida, kasutades Visual Studio Code, Visual Studio või mõnda muud tekstiredaktorit. Valemite talletamine YAML-failides võimaldab Power Fx-i viia lähtekontrolli alla, kasutades GitHub, Azure DevOps või mõnda muud lähtekoodi kontrollisüsteemi.

Pro koodi Visual Studio kood.

Pro kood GitHub.

Power Fx toetab valemipõhiseid komponente ühiskasutuseks ja taaskasutamiseks. See toetab komponendiatribuutide parameetreid, mis võimaldavad luua kasutaja määratletud puhtaid funktsioone koos täiendavate täiustustega.

Samuti on Power Fx suurepärane spetsialistide loodud komponentide ja teenuste sidumisel. Valmiskonnektorid võimaldavad juurdepääsu sadadele andmeallikatele ja veebiteenustele. Kohandatud konnektorid lubavad Power Fx-il rääkida mis tahes REST-i veebiteenusega. Koodikomponendid võimaldavad Power Fx-il suhelda ekraanil ja lehel täielikult kohandatud JavaScriptiga.

Kujunduse põhimõtted

Lihtne

Power Fx on mõeldud sihtrühmale, kelle liikmeid pole arendajatena koolitatud. Võimaluse korral kasutab keel teadmisi, mida see sihtrühm juba teab või saab kiiresti jätkata. Edukaks toimimiseks vajalike mõistete arv on minimaalne.

Lihtsad võimalused on meelt mööda ka arendajatele. Arendajate jaoks on Power Fx-i eesmärk olla madala koodiga keel, mis lühendab lahenduse koostamiseks kuluvat aega.

Ühtsus Exceliga

Microsoft Power Fx-i keel laenab palju Exceli valemikeelest. See kasutab ära Excel paljude tegijate teadmisi ja kogemusi, kes kasutavad ka Excel. Tüübid, tehtemärgid ja funktsioonid sarnanevad võimalikult palju Exceli omadega.

Kui Excel vastust ei ole, otsib Power Fx järgmisena SQL-i. Pärast Excelit on SQL järgmine kõige sagedamini kasutatav deklareeritav keel ning võib pakkuda juhiseid andmetoimingute ja teksti sisestamise kohta, mida Excel ei kasuta.

Deklaratiivne

Tegija kirjeldab mida nad soovivad oma loogikaga teha, mitte täpselt kuidas või millal teha. Selline lähenemine võimaldab kompilaatoril optimeerida toiminguid paralleelselt, lükata tööd vajaduseni edasi ning kasutada vahemällu talletatud andmeid ja neid uuesti kasutada.

Näiteks Excel töölehel määratleb autor lahtritevahelised seosed, kuid Excel otsustab, millal ja millises järjestuses valemeid hinnata. Samamoodi võite rakenduse valemeid pidada kasutajatoimingute, andmebaasimuudatuste või ajastisündmuste põhjal vajaduse korral ümberarvutamiseks.

Funktsioonid

Kasutage puhtaid funktsioone, millel pole kõrvalmõjusid. Selline lähenemine annab tulemuseks loogika, mida on hõlpsam mõista ja mis annab kompilaatorile optimeerimiseks kõige rohkem vabadust.

Erinevalt Excel, vaigistavad rakendused oma olemuselt olekut. Näiteks rakendustel on nupud, mis salvestavad andmebaasi kirje muudatused. Seetõttu on mõnedel funktsioonidel kõrvaltoimed, kuigi need kõrvaltoimed on piiratud nii palju kui on praktilised.

Sisu

Võimaluse korral lisage funktsionaalsus, mis koosneks hästi olemasolevatest funktsioonidest. Võimsad funktsioonid saate laguneda väiksemateks osadeks, mida on lihtsam iseseisvalt kasutada.

Näiteks pole Galerii juhtelemendil eraldi Sort ja Filter atribuute. Selle asemel koostate Sort funktsioonid ja Filter funktsioonid üheks Items atribuudiks. Sort Selle atribuudi kahesuunalise redaktori abil saate kuvada kasutajaliidese atribuudi peal Items avaldamiseks ja Filter käitumiseks.

Tugev tüüpimine

Kõigi väärtuste tüübid on kompileerimise ajal teada. Selline lähenemine võimaldab autorlusoleku ajal vigu ja rikkalikke soovitusi varakult tuvastada.

Polümorfsed tüübid on toetatud, kuid enne nende kasutamist peate kinnitama nende tüübi staatilisele tüübile ja see tüüp peab olema kompileerimise ajal teada. Funktsioonid IsType ja AsType on saadaval testimise ja edastamise tüüpide jaoks.

Tüübid

Tüübid tuletatakse nende kasutamisest ilma deklareerimata. Näiteks muutuja määramine arvule toob kaasa muutuja tüübi loomisena arvuna.

Vastuoluline tüübikasutus põhjustab kompileerimisaja tõrke.

Lokaaditundlikud kümnendkohtade eraldajad

Mõnes maailma piirkonnas kasutatakse punkti (.) kümnendkoha eraldajana, samas kui teistes (,). Excel järgib seda piirkondlikku konventsiooni. Muud programmeerimiskeeled kasutavad üldiselt kanoonilist punkti (.) kümnendkoha eraldajana kõigi kasutajate jaoks kogu maailmas. Selleks, et tegijad kasutaks seda kõigi tasemete puhul võimalikult ligipääsetavalt, on oluline, et see oleks kümnendkoht inimese jaoks Prantsusmaal, kes on kasutanud seda kogu oma elu 3,14 süntaksi jaoks.

Kümnendkoha eraldaja valikul on kumulatiivne mõju loendi eraldajale, mida kasutatakse funktsiooni kutse argumentidena ja aheldamisoperaatorile.

Autori keele kümnendkoha eraldaja Power Fxi kümnendkoha eraldaja Power Fxi loendi eraldaja Power Fxi ahela tehtemärk
. (punkt) . (punkt) , (koma) ;(semikoolon)
, (koma) , (koma) ;(semikoolon) ;; (kahekordne semikoolon)

Lisateave: Globaalne tugi

Pole objektile keskenduv

Excel pole objektile suunatud ja samuti pole Power Fx. Näiteks mõnes keeles väljendatakse stringi pikkust stringi atribuudina nagu näiteks "Hello World".length JavaScriptis. Excel ja Power Fx väljendavad seda funktsioonina nagu Len( "Hello World" ).

Atribuutide ja meetoditega komponendid on objektile keskendunud ja Power Fx töötab nendega hõlpsasti. Kuid võimaluse korral eelistage funktsionaalset lähenemist.

Laiendatav

Tegijad saavad luua oma komponente ja funktsioone, kasutades Power Fx rakendust ennast. Arendajad saavad oma komponente ja funktsioone luua JavaScripti keele abil.

Arendajasõbralik

Kuigi põhieesmärk on valmistajad, proovige võimaluse korral olla arendajasõbralik. Kui see ei ole vastuolus eelnevalt kirjeldatud kujunduspõhimõtetega, tehke asju nii, nagu arendaja seda hindab. Näiteks Excel ei saa kommentaare lisada, seega kasutage C-laadseid rea- ja tekstisiseseid kommentaare.

Keeleline areng

Programmeerimiskeelte arenemine on nii vajalik kui keeruline. Kõigil on-õigustatult-mure selle pärast, et muudatus, ükskõik kui heataheline see ka ei oleks, võib olemasoleva koodi rikkuda ja nõuab kasutajatelt uue mustri õppimist. Power Fx võtab tagasiühilduvuse tõsiselt, kuid Power Fx meeskond usub samuti kindlalt, et nad ei saa seda esimesel korral alati õigeks ja et kogukond saab ühiselt teada, mis on parim. Programmeerimiskeel peab arenema ja Power Fx on loodud toetama keele arengut algusest peale.

Iga salvestatud Power Fx-dokument sisaldab keeleversiooni templit. Kui Power Fx-i meeskond soovib teha ühildumatuid muudatusi, kirjutavad nad järgmisel redigeerimiskorral valemit automaatselt ümber kirjutava "tagasiühildumismuunduri" nime. Kui muudatus on midagi olulist, mille kohta meeskond peab kasutajat harima, kuvab rakendus dokumendi lingiga sõnumi. Selle rajatise abil saab Power Fx endiselt laadida rakendusi, mis on loodud Power Apps eelvaateversioonidega palju aastaid tagasi, hoolimata kõigist sellest ajast tehtud muudatustest.

Näiteks tutvustas ShowError Power Fx meeskond seda funktsiooni, et kuvada punase taustaga veariba.

Kuva viga.

Kasutajatele meeldis see, kuid soovisid ka võimalust näidata eduriba (roheline taust) või teaberiba (sinine taust). Niisiis, meeskond koostas üldisema Notify funktsiooni, mis võtab teatise jaoks teise argumendi. Meeskond oleks võinud lihtsalt lisada Notify ja hoida ShowError nii, nagu see oli, kuid selle asemel asendasid ShowErrorNotifynad . Nad eemaldasid varem tootmises olnud funktsiooni ja asendasid selle millegi muuga. Kuna sama asja tegemiseks oleks olnud kaks võimalust, oleks see muudatus tekitanud segadust – eriti uute kasutajate jaoks – ja mis kõige tähtsam, oleks see lisanud keerukuse. Keegi ei kurtnud, kõigile meeldis muudatus ja hakkasid kasutama oma Notify funktsiooni.

Nii näeb sama rakendus välja siis, kui seda kasutatakse Power Appsi uusima versiooniga. Kasutaja ei vajanud selle teisenduse jaoks toimingut, see ilmnes rakenduse avamisel automaatselt.

Funktsioon Notify asendab funktsiooni ShowError.

Selle rajatise abil saab Power Fx areneda kiiremini ja agressiivsemalt kui enamik programmeerimiskeeli.

Määratlemata väärtust pole

Mõnes keeles nagu näiteks JavaScriptis, kasutatakse lähtestamata muutujate või puuduvate atribuutide puhul määratud väärtuse mõistet. Lihtsuse huvides väldib Power Fx seda mõistet. Eksemplare, mis tuleks teistes keeltes määrata, käsitletakse tõrke või tühja väärtusena. Näiteks kõik lähtestamata muutujad algavad tühja väärtusega. Kõik andmetüübid saavad olla tühja väärtusega.

Andmetüübid
Operaatorid ja identifikaatorid
Tabelid
Muutujad
Imperatiivne loogika
Ülemaailmne toetus
Avaldise grammatika
YAML-i valemi grammatika
Valemid lõuendirakendustes