Microsoft Power Fxi ülevaade

Power Fx on madalkoodiga keel, mida kasutatakse üle kogu Microsoft Power Platform rakenduse. See on üldotstarbeline, tugeva sisuga, ülevaatav 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. "Madal" kood on tingitud keele lühikesest ja lihtsast olemusest, mis muudab ühised programmeerimistoimingud nii tegijatele kui ka arendajatele lihtsaks. See pakub mitmekülgseid arendamisvõimalusi, nii „koodita” võimalust nende jaoks, kes ei ole kunagi varem programmeerinud, kui ka tipptasemel võimalusi professionaalile, võimaldades erinevatel meeskondadel teha koostööd ning säästa aega ja vähendada kulusid.

Märkus.

  • Microsoft Power Fx on Power Apps lõuendirakenduste valemikeele uus nimi. Need artiklid on pooleli, kuna ekstraktime keele lõuendirakendustest, integreerime selle teiste Microsoft Power Platform toodetega ja teeme selle kättesaadavaks avatud allikana. Lisateavet selle keele kohta leiate teemast Valemite kasutamisega alustamine rakenduse Power Apps lõuendis ja tasuta Power Apps prooviversiooni kasutamine.
  • Selles artiklis viitame tegijatele kui kirjeldame funktsiooni, mida võiks kasutada programmeerimisoskuse spektri lõpus. Viitame kasutajale arendajana kui see funktsioon on keerukam ja jääb tavalise Exceli kasutaja ulatusest tõenäoliselt väljapoole.

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.

Power Fx tehakse kättesaadavaks avatud lähtetarkvarana. See on praegu integreeritud lõuendirakendustesse ja me eraldame seda rakendusest Power Apps et seda saaks kasutada teistes Microsoft Power Platform toodetes avatud lähtekoodiga. 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 olid küsimused, mis inspireerisid Power Apps ja Power Fx loomist. Sajad miljonid inimesed loovad Iga päev Exceliga töölehti; loogem neile rakenduse, mis on lihtne ja kasutab Exceli mõisteid, 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 saab paigutada muutujasse, seda saab kasutada protseduuri argumendina või pesastada suuremas avaldises.

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. Sellena mass või acceleration muutub, force värskendatakse automaatselt uueks väärtuseks. 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 pöördotsing.

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 Input muutmisel arvutab juhtelement Label valemi automaatselt uuesti ja kuvab uue väärtuse. Siin pole sündmuseohjureid OnChange nagu on teistes keeltes.

Veel üks näide, mis kasutab valemit ekraani värvi atribuudi Fill jaoks. Kui liugureid, mis juhivad punast, rohelist ja sinist, muudetakse, muutub taustavärv muutub automaatselt ümberarvutamise ajal.

Värviline 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. Seda tehakse iga sildi juhtelemendi Color atribuudil lihtsa valemi abil.

Power Fx värvilised liugurid.

Kõige parem on selle juures, et see on eraldatud värvist Fill toimuvast: need on kaks täiesti erinevat arvutust. Suurte monoliitide protseduuride asemel koosneb Power Fx tavaliselt paljudest väiksematest sõltumatutest valemitest. See muudab need paremini mõistetavaks ja võimaldab täiustusi ilma olemasolevat loogikat mõjutamata.

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 ei ole koostaja- ega käitusrežiimi. Kui valem on muudetud või kui sisestatakse väärtus, siis arvutatakse tööleht kohe muudatuste kajastamiseks ümber. Kõik tuvastatud vead ilmuvad koheselt ja need ei sega ülejäänud töölehte.

Sama kehtib ka Power Fx juurutamise kohta. Astmelist koostajat kasutatakse pidevalt, et hoida programm sünkroonis andmetega, mida see töös kasutab. Muudatused levitatakse programmi graafiku kaudu automaatselt, mõjutades sõltuvate arvutuste tulemusi, mis võivad juhtelementide, nagu värv või asukoht, atribuute mõjutada. Inkrementkompilaator pakub ka rikkalikke valemite redigeerimise võimalusi IntelliSense'i, soovituste, automaatteksti ja tüübi kontrollimisega.

Allolevas animatsioonis kuvatakse tellimuse number liuguri juhtelemendist sõltuvas sildi juhtelemendis, kuigi selle all olevatel siltidel on kaks viga. 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.

Ela alati.

Sisestamisel .Employee lisatakse Data paanil töötajate tabel, selle tabeli metaandmed leitakse ja kohe pakutakse veergude soovitusi. Liikusime omavahel seotud tabelite vahel ja süsteem tegi vajalikud muudatused rakenduse viidetesse. 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 see aeg kuvatakse tellimuse number jätkuvalt ülemisel sildil nii nagu vaja. Rakendus on kogu aeg värskendatud ja töötleb reaalseid andmeid. Me saame selle salvestada ja sulgeda ning teised saavad selle avada ja kasutada täpselt nagu Excelit. Ei ole koostamisetappi ega kompileerimist, on ainult avaldamissamm, mis määratleb, milline rakenduse versioon on kasutajatele valmis.

Vähe koodi

Power Fx kirjeldab äriloogikat kompaktsete, kuid võimsate valemitega. Suuremat osa loogikast saab esitada ühel real, mis on piisavalt väljendusrikas ja võimaldab kontrolli keerulisemate vajaduste korral. 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.

Madala koodiga JavaScript.

Vaatame põhjalikumalt kõiki asju, mida Power Fx meie heaks teeb ja vabadust, mida ta peab optimeerima, sest valem oli deklaratiivne:

  • Asünkroonne: Kõik Power Fx andmetoimingud 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ühendus: Power Fx kasutab sama süntaksit ja funktsioone andmete jaoks, mis on kohalikus mälus ja mis ühendavad andmebaasi või teenust. Kasutaja ei pea sellele mõtlema. Power Fx delegeerib ülesanded automaatselt serverile, et seal filtreid töödelda ja täpsemalt sorteerida.

  • Suhtelised andmed: Tellimused ja kliendid on kaks erinevat tabelit, kus 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 paljud arendajad select * from table, 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.

  • Too ainult vajalik teave: Selles näites LookUp funktsioon tähendab, 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. Kasutaja peab rohkem andmeid vaatama galeriis või andmetabelis ning sellele saab automaatselt toetuda. Tootja saab arutleda suurte andmekomplektide üle, ilma et oleks vaja mõelda hallatavate andmetaotluste piiramisele.

  • Käitatakse ainult vajadusel: Määratlesime sildi Text juhtelemendi atribuudi valemi. 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 ei ole nähtav, kuna see on mittenähtaval ekraanil või selle atribuut Visible on väär, võime selle arvutuse edasi lükata seni, kuni silt on nähtav ja tõhusalt kõrvaldatakse.

  • Exceli süntaksi tõlge: Excelit kasutavad paljud kasutajad, kellest enamik teab, et ampersandi (&) kasutatakse stringide ühendamiseks. JavaScript kasutab plussmärki (+) ja muud keeled kasutavad punkti (.).

  • Kuvatavad nimed ja lokaliseerimine: First Name atribuuti kasutatakse Power Fx valemis ning nwind_firstname selle ekvivalenti kasutatakse JavaScriptis. 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 väljendamise alustamiseks ei pea te rakendust Power Fx lugema ega kirjutama. On palju kohandusi ja loogikat, mida saab väljendada lihtsate lülitite ja kasutajaliidese koostajate abil. Need koodita tööriistad on loodud Power Fx lugemiseks ja kirjutamiseks, tagamaks, et keegi võtaks seda edasi, kuigi on kinnitus, et koodita tööriistad ei paku kunagi kogu täielikku keelekasutust. Isegi juhul, kui seda kasutatakse koodita, on valemiriba Power Apps esiküljel ja keskel, et teavitada tegijat sellest, mida nende nimel tehakse, et nad saaksid Power Fx rakendusega tutvuma hakata.

Vaatame järgmisi 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. Võite igal ajal minna valemiribale ja teha sammu edasi-nagu selles näites, kasutades ColorFade värvi kohandamist. 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. Me võime valida ühe nendest vaadetest ja valem on muudetud, et kasutada Filter funktsiooni selle vaate nimega. Kahte ripploendit saab kasutada õiges tabelis ja vaates valimise jaoks ilma valemiriba puudutamata. Aga oletame, et soovite minna edasi ja lisada sordi. Saame seda teha valemiribal ja atribuudipaneelil ja siis kuvatakse uuesti fx-i ikoon, mis suunab muudatused valemiribale. Kui me lihtsustame valemit millekski, mida atribuudipaneel lugeda ja kirjutada oskab, siis saab seda taas kasutada.

Koodita sortimine.

Need on olnud lihtsad näited. Me usume, et Power Fx on suurepärane keel koodita suhtluse kirjeldamiseks. See on kompaktne, võimas ja lihtsasti sõelutav ning pakub valikuvabadust, mida on sageli vaja vähese koodi korral.

Tipptasemel kood

Madalkoodiga tegijad täiustavad mõnikord asju, mis nõuavad asjatundja abi või mida asjatundlik arendaja on üle võtnud, et neid hallata ja laiendada. 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 valemeid saab salvestada YAML lähtefailidesse, mida on lihtne redigeerida Visual Studio Code, Visual Studio või mõne teise Power Fx lähtekoodi koodiga redigeerida, või mõnda muud tekstiredaktorit lubada koos GitHub, Azure DevOps või mõne teise lähtekoodi juhtsüsteemiga.

Pro koodi Visual Studio kood.

Pro kood GitHub.

Power Fx toetab valemipõhiseid komponente ühiskasutuseks ja taaskasutamiseks. Me oleme välja kuulutanud komponentide omaduste parameetrite toetavate, kasutaja määratletud funktsioonide loomise lubamise teel rohkem täiustustega.

Samuti on Power Fx suurepärane spetsialistide loodud komponentide ja teenuste sidumisel. Kasutusvalmis konnektorid pakuvad juurdepääsu sadadele andmeallikatele ja veebiteenustele, kohandatud konnektorid võimaldavad Power Fx rakendusel suhelda mis tahes REST veebiteenusega ning koodikomponendid võimaldavad Power Fx rakendusel suhelda täielikult kohandatud JavaScriptiga ekraanil ja lehel.

Kujunduse põhimõtted

Lihtne

Power Fx on mõeldud tegijate sihtrühmale, kelle liikmeid pole arendajateks koolitatud. Kui vähegi võimalik tugineme teadmistele, mis on sihtrühmal juba olemas või mille omandamine on hõlbus ja kiire. Edukaks toimimiseks vajalike mõistete arv on minimaalne.

Lihtsad võimalused on meelt mööda ka arendajatele. Soovime olla arendajate jaoks vähese koodiga keel, mis lühendab lahenduse loomiseks kuluvat aega.

Ühtsus Exceliga

Microsoft Power Fx-i keel laenab palju Exceli valemikeelest. Püüame ära kasutada Exceli teadmisi ja kogemusi paljudelt Exceli tegijatelt. Tüübid, tehtemärgid ja funktsioonid sarnanevad võimalikult palju Exceli omadega.

Kui Excelis pole vastust, vaatame järgmisena SQL-i järgi. 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. See võimaldab koostajal optimeerida toiminguid paralleelselt, vajadusel töö edasilükkamist ning vahemällu talletatud andmete eeltoomise ja taaskasutamise kaudu.

Näiteks Exceli töölehel määratleb autor seosed lahtrite vahel, kuid Excel otsustab, millal ja millistes järjestuses valemeid hinnata. Sarnaselt võib rakenduse valemeid muuta vastavalt vajadusele ümberarvutamisena, võttes aluseks kasutajatoimingud, andmebaasi muudatused või ajasti sündmused.

Funktsioonid

Me eelistame puhtaid funktsioone, millel pole kõrvalmõju. Selle tulemuseks on loogika, mida on hõlpsam mõista ja mis annab koostajale optimeerimiseks kõige rohkem vaateid.

Erinevalt Excelist on rakendustel oma olemuselt muteerunud oleknäiteks, näiteks-rakendusel salvestavad kirje muudatused andmebaasis. Mõnedel funktsioonidel on siiski seetõttu kõrvalmõjud, kuigi me piirame seda nii palju, kui võimalik.

Sisu

Võimaluse korral lisatud funktsionaalsus sobib olemasolevate funktsioonidega hästi. Võimsaid funktsioone saab jaotada väiksemateks osadeks, mida on kergem iseseisvalt kasutada.

Näiteks pole Galerii juhtelemendil eraldi Sort ja Filter atribuute. Selle asemel on koondatud funktsioonid Sort ja Filter üheks atribuudiks Items. Kasutajaliides Sort ja Filter käitumise kasutajaliides on atribuudi Items peal mitmekihiline, kasutades kahetasandilist redaktorit.

Tugev tüüpimine

Kõigi väärtuste tüübid on teada koostamise ajal. See võimaldab autoriseerimise ajal tõrgete ja rikkalike soovituste varajast tuvastamist.

Toetatakse polümorfseid tüüpe, kuid enne kasutamist tuleb nende tüüp kinnitada staatilisse tüüpi ja see tüüp peab olema teada koostamisel. 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 (,). Seda kasutab ka Excel. Seda ei saa tavaliselt teha muudes programmeerimiskeeltes, kus tavaliselt kasutatakse üldjuhul kanoonilist punkti (.) kümnendkoha eraldajana. 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õimalusel eelistame 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 koostajad on meie esmane sihtrühm, püüame olla igal võimalusel arendajasõbralikud. Kui see ei lähe vastuollu varem kirjeldatud kujunduse põhimõtetega, teeme asju nii, nagu arendaja peaks seda tegema. Näiteks pole Excelil kommentaari lisamiseks võimalust, seega kasutame C-sarnase 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 kasutab tagasiühildumist, kuid oleme veendunud, et esimest korda ei saa me seda alati õigesti teha ja me õpime ühiselt, mis on kogukonnana parim. Me peame arenema ja Power Fx tugi keele edasiarendamiseks on kujundatud algusest peale.

Iga salvestatud Power Fx dokumendiga on kaasas keeleversiooni tempel. Kui me soovime muuta emakakaotust, siis kirjutame nime "tagasi comtricu" ja kirjutame valemi automaatselt ümber järgmine kord, kui seda järgmine kord redigeeritakse. Kui muudatus on midagi suurt, mille kohta peame kasutajat koolitama, siis kuvame ka sõnumi, mis sisaldab linki dokumendile. Selle ruumi abil saame laadida rakendusi, mis on rajatud mitme aasta eest loodud eelvaateversioonide kaudu, mis on olnud ülevaavad kõik sellest ajast Power Apps toimunud muudatused.

Näiteks võtsime kasutusele funktsiooni ShowError, et kuvada punase taustaga tõrgete riba.

Näita viga.

See meeldis kasutajatele, kuid nad palusid meilt ka võimalust kuvada edenemisriba (rohelise taustaga) või teaberiba (sinise taustaga). Seega kasutame geneerilisi Notify funktsioone, mis võtab teatise saamisest teise argumendi. Me oleks saanud lihtsalt lisada Notify ja hoida ShowError nii, nagu see oli, kuid selle asemel asendasime ShowError mõistega Notify. Eemaldasime funktsiooni, mis oli varem tootmises olnud ja asendasime selle millegagi muuga. Kuna sama asja tegemiseks oleks olnud kaks võimalust, oleks see põhjustanud olukorra, kus see oleks veelgi keerulisem olnud-eriti uute kasutajate-jaoks. 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.

Notify funktsioon asendab ShowErrori.

Selle ruumiga võib 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. Lihtsustamiseks oleme seda mõistet vältinud. 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
Tehtemärgid ja identifikaatorid
Tabelid
Muutujad
Imperatiivne loogika
Globaalne tugi
Avaldise grammatika
YAML-i valemi grammatika
Lõuendirakenduste valemid