Microsoft Power Fx pārskats

Power Fx ir zema koda valoda, kas tiks izmantota visā Microsoft Power Platform. Tā ir vispārīga, stipra drukāta, delaratīva un funkcionāla programmēšanas valoda.

Power Fx tiek izteikta cilvēkiem draudzīga tekstā. Tā ir zema koda valoda, ar kuru veidotāji var strādāt tieši Excel līdzīgu formulas joslu vai Visual Studio Code teksta logā. Zema koda "zemais" ir saistīts ar valodas īssavienojamību un vienkāršu būtību, atvieglojot bieži veicamos programmēšanas uzdevumus gan veidotājiem, gan izstrādātājiem. Tas nodrošina pilnīgu izstrādes spektru, sākot no “bez koda” tiem, kas nekad iepriekš nav programmējuši, līdz “pro kodam” pieredzējušam profesionālim bez mācīšanās vai pārrakstīšanas, ļaujot dažādām komandām sadarboties un ietaupīt laiku un izdevumus.

Note

  • Microsoft Power Fx ir pamatnes programmu formulas valodas jaunais nosaukums programmā Power Apps. Šie raksti darbojas, kad izvelk valodu no pamatnes programmām, integrējot to ar citiem Microsoft Power Platform produktiem un padarām to pieejamu kā atvērtu avotu. Lai uzzinātu vairāk par valodu un to izmēģinātu jau šodien, sāciet ar Sākt darbu ar formulām pamatnes programmās Power Apps dokumentācijā un piesakieties bezmaksas Power Apps izmēģinājumversijai.
  • Šajā rakstā mēs atsaucamies uz veidotājiem, aprakstot līdzekli, ko varētu izmantot programmēšanas prasmju spektra abos galos. Lietotājs tiek norādīts kā izstrādātājs, ja šis līdzeklis ir progresīvāk un, visticamāk, pārsniedz parasta Excel lietotāja darbības jomu.

Power Fx saista kopā objektus ar deklaratīvām izklājlapai līdzīgām formulām. Piemēram, padomājiet par UI vadīklas kā Excel darblapas šūnas rekvizītu Redzams ar saistītu formulas vērtību, kas aprēķina tās vērtību, pamatojoties uz citu vadīklu rekvizītiem. Formulas loģika automātiski pārrēķina vērtību līdzīgi kā izklājlapā, kas ietekmē vadīklas pārredzamību.

Vēl Power Fx piedāvā imperatīvo loģiku, kad tas ir nepieciešams. Darblapām parasti nav pogu, kuras var iesniegt izmaiņas datu bāzē, bet programmām bieži vien ir. To pašu izteiksmes valodu lieto gan deklaratīvai, gan imperatīvai loģikai.

Power Fx būs pieejams kā atvērtā koda programmatūra. To patlaban integrē pamatnes programmās, un mēs to izgūstam no Power Apps un izmantojam citos Microsoft Power Platform produktos un kā atklāto pirmkodu. Papildinformāciju Microsoft Power Fx skatiet vietnē GitHub

Šajā rakstā sniegts pārskats par valodu un tās izstrādes pamatprincipiem. Papildu informāciju par Power Fx skatiet šādos rakstos:

Iedomājieties izklājlapu

Ko darīt, ja programmu varat izveidot tikpat vienkārši kā darblapu programmā Excel?

Ko darīt, ja varat izmantot esošo izklājlapu zināšanas?

Šie bija jautājumi, kas iedvesmoja Power Apps un Power Fx izveidi. Simtiem miljonus cilvēku katru dienu izveido darblapas ar Excel; pieņemsim viņiem programmas izveidi, kas ir vienkārša un kurā tiek izmantoti Excel jēdzieni, kurus viņi jau pārzina. Nošķirot Power Fx no Power Apps, mēs atbildēsim uz automatizācijas būvēšanas jautājumiem, kā arī uz virtuālo aģentu vai citiem domēniem.

Visām programmēšanas valodām, tostarp Power Fx, ir izteiksmes: veids, kā attēlot aprēķinu pār skaitļiem, virknēm vai citiem datu tipiem. Piemēram, mass * acceleration lielākajā daļā valodu izsaka mass un acceleration reizinājumu. Izteiksmes rezultātu var ievietot mainīgajā, ko izmanto kā procedūras argumentu vai ligzdo lielākā izteiksmē.

Power Fx iet vienu soli tālāk. Izteiksme pati par sevi neko nenorāda par to, kas tiek aprēķināts. Veidotājam tas ir jā novieto mainīgajā vai jānokārto funkcija. Power Fx jāieraksta formula, kas saista izteiksmi ar identifikatoru tā vietā, lai ierakstītu tikai izteiksmi bez specifiskas nozīmes. force = mass * acceleration tiek rakstīts kā formula force aprēķinam. Tā kā mass vai acceleration mainās, force tiek automātiski atjauninātas uz jaunu vērtību. Šī izteiksme apraksta aprēķinu, kas ir formula, kas atbalsta nosaukuma aprēķināšanu un to izmantoja kā pretsummu. Tādēļ mēs uzskatām Power Fx par formulas valodu.

Piemēram, šī formula no grēdas pārpildes meklē virkni apgrieztā secībā. Programmā Excel tā izskatās pēc tālāk sniegtā attēla.

Apgrieztā meklēšana

Excel formulas joslas ekrānuzņēmumu, kurā ir formula: =RIGHT(A1,ROD(A1)- FIND("|", SUBSTITUTE(A1," ","|", LĒNA(A1)-LĒNA(SUBSTITUTE(A1," ","")))) Šūnā A1 ir teksts "Labdien, world! Prieks tevi redzēt!" Šūnā A2 ir teksts "tevi!"

Power Fx darbojas ar šo pašu formulu, šūnu atsauces aizstājot ar vadīklas rekvizītu atsaucēm:

Power Fx apgrieztā meklēšana.

Ekrānuzņēmums ar Power Fx formulu joslu Power Apps. Formula ir =(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) Ievades lodziņā zem formulas teksta "Labdien, pasaule! Prieks tevi redzēt!" parādās burts pēc burta. Vienlaikus lodziņā Etiķete tiek parādīti pēdējā vārda burti. Kad ievades lodziņā tiek parādīts pilns teksts, Etiķetes lodziņā tiek rādīts vārds "jūs!".

Mainot Input vadīklas vērtību, vadīkla Label automātiski pārrēķina formulas vērtību un parāda jauno vērtību. Šeit nav OnChange pasākumu apstrādātāju, kā tas būtu izplatīts citās valodās.

Cits piemērs, kurā izmantota formula ekrāna Fill krāsai. Kad tiek mainīti slīdņi, kas kontrolē Sarkanu, Zaļu un Zilu, fona krāsa automātiski tiek mainīta, kad tā tiek pārrēķināta.

Krāsu slīdnis.

Šeit nav OnChange pasākumu slīdņa vadīklām, kā tas būtu izplatīts citās valodās. Nevar tieši iestatīt rekvizīta Fill vērtību. Ja krāsa nedarbojas, kā paredzēts, ir jāizskatās šai vienai formulai, lai saprastu, kāpēc tā nedarbojas. Jums nav jāmeklē lietojumprogrammā, lai atrastu koda fragmentu, kas neparedzētā laikā iestata rekvizītu; Nav laika elementa. Pareizās formulas vērtības vienmēr tiek uzturētas.

Tā kā slīdņi ir iestatīti uz tumšu krāsu, sarkanā, zaļā un zilā krāsa tiek mainīta uz baltu, lai kompensētu. Tas tiek darīts, izmantojot vienkāršu rekvizītu katrai Color etiķetes vadīklai.

Power Fx krāsu slīdņi.

Lieliski ir tas, ka krāsainā krāsa atšķiras: tie ir divi pilnīgi dažādi Fill aprēķini. Lielu monolītu procedūru vietā Power Fx loģiskais objekts parasti sastāv no daudz mazākām neatkarīgām formulām. Tas viņiem ļauj vieglāk izprast un iespējot uzlabojumus, netraucējot esošo loģiku.

Power Fx ir deklaratīva valoda, tāpat kā programma Excel. Veidotājs definē, kādu uzvedību viņi vēlas, bet sistēmai ir jānosaka un jāoptimizē, kā un kad to paveikt. Lai padarītu to praktisku, lielākā daļa darba tiek paveikts, izmantojot tikai funkcijas bez blakusefektiem, padarot Power Fx arī par funkcionālu valodu (tāpat kā programma Excel).

Vienmēr tiešsaistē

Definējot darblapu aspektu, tie vienmēr ir jādzīvā, un izmaiņas nekavējoties tiek atspoguļotas. Darblapā nav kompilēšanas vai palaišanas režīma. Ja tiek modificēta formula vai tiek ievadīta vērtība, darblapa nekavējoties tiek pārrēķināta, lai atspoguļotu izmaiņas. Atrastas kļūdas tiek radušās nekavējoties un netraucē pārējo darblapu.

Tas pats tiek ieviests Power Fx. Pakāpenisks kompilators tiek izmantots, lai nepārtraukti uzturētu programmas sinhronizāciju ar datiem, ar kuriem tā darbojas. Izmaiņas tiek automātiski izplatītas programmas grafikā, ietekmējot atkarīgo aprēķinu rezultātus, kas var ietekmēt vadīklu rekvizītus, piemēram, krāsu vai pozīciju. Soļkompilators arī nodrošina bagātīgu formulas rediģēšanas pieredzi ar IntelliSense, ierosinājumiem, automātisko pabeigšanu un tipa pārbaudi.

Tālāk redzamajā animācijā pasūtījuma numurs tiek parādīts etiķetes vadīklā atkarībā no slīdņa vadīklas, kaut arī etiķetēs zem tā ir divas kļūdas. Šī programma ir dzīva un interaktīva. Pirmais mēģinājums izlabot formulas, ievadot .InvalidName, nekavējoties veido sarkanu līniju un kļūdu, kā vajadzētu, bet lietojumprogramma turpina darboties.

Vienmēr dzīvo.

Ievadot .Employee, rūtī Data tiek pievienota darbinieku tabula, tiek izgūti šīs tabulas metadati un nekavējoties tiek piedāvāti ieteikumi kolonnām. Mēs tikko nonācām attiecībās no vienas tabulas uz otru, un sistēma veica nepieciešamās korekcijas lietotnes atsaucēs. Tas pats notiek, pievienojot .Customer.

Pēc katras izmaiņas slīdņa vērtība tiek turpināta ar pēdējo vērtību, un visi mainīgie saglabā savu vērtību. Pasūtījuma numurs augšējā etiķetē turpināja parādīties, kā vajadzēja. Šī programma visu laiku ir bijusi tiešsaistē, apstrādājot reāllaika datus. Mēs varam to saglabāt, aiziet prom, un citi to var atvērt un izmantot tāpat kā Excel. Nav nekādas izveides darbības, nav kompilēšanas, ir tikai publicēšanas darbība, lai noteiktu, kura programmas versija ir gatava lietotājiem.

Zems kods

Power Fx raksturo biznesa loģiku īsās, bet efektīvās formulās. Lielāko daļu loģikas var samazināt līdz vienai rindai ar daudz izteiksmīguma un vadīklas sarežģītākām vajadzībām. Mērķis ir līdz minimumam samazināt to jēdzienu skaitu, kas ražotājam ir jāsaprot, ideālā gadījumā ne vairāk par to, ko Excel lietotājs jau zina.

Piemēram, lai uzmeklētu darbinieka vārdu pasūtījumā, jūs rakstiet Power Fx, kā redzams šajā animācijā. Papildus Excel jēdzieniem šeit izmantotais vienīgais pievienotais jēdziens ir punkta "." notācija rakšanās datu struktūrā, šajā gadījumā .Employee.'First Name'. Šajā animācijā tiek parādīts kartējums starp Power Fx formulas daļām un jēdzieniem, kas ir tieši jākodē ekvivalentā JavaScript.

Zema koda JavaScript.

Apskatīsim visu, ko Power Fx dara mūsu vietā, un brīvību, ko tā sniedz optimizējot, jo formula bija deklaratīva:

  • Asinhroni: visas Power Fx datu operācijas ir asinhronas. Veidotājam šī informācija nav jānorāda un pēc sarunas beigām nav jāsinhronizē arī veidotājam veiktās operācijas. Veidotājam nav vispār jāizprot šis jēdziens, viņam nav jāzina, kas ir solījums vai lambda funkcija.

  • Lokāli un attālināti: Power Fx tiek izmantota tā pati sintakse un funkcijas, kas nodrošina lokālo atmiņu un attālināti izveido datu bāzes vai pakalpojuma savienojumu. Lietotājam nav jādomā par šo atšķirību. Power Fx automātiski deleģē uz serveri to, ko tas spēj, lai apstrādātu filtrus un kārtotu tos efektīvāk.

  • Attiecību dati: Pasūtījumi un Klienti ir divas dažādas tabulas, ar attiecībām daudzi pret vienu. OData vaicājumam ir nepieciešams "$expand", kam ir zināšanas par kļūdaino atslēgu, līdzīgi kā savienojumam ar SQL. Patiesībā formulai tādas nav; datu bāzes atslēgas ir cits jēdziens, par ko veidotājam nav jāzina. Veidotājs var izmantot vienkāršu punktu notāciju, lai piekļūtu visam ierakstu attiecību grafikam.

  • Projekcija: rakstot vaicājumu, daudzi izstrādātāji raksta select * from table, kas atkal parāda visas datu kolonnas. Power Fx analizē visas kolonnas, kas tiek izmantotas visā programmā, pat visās formulas atkarībās. Projekcija tiek automātiski optimizēta, un atkal veidotājam nav jāzina, ko nozīmē "projekcija".

  • Izgūt tikai nepieciešamo: šajā piemērā funkcija LookUp norāda, ka ir jāatgūst tikai viens ieraksts un tas ir viss, kas tiek atgriezts. Ja vairāk ierakstu tiek pieprasīti, izmantojot funkciju Filter, kurai varētu atbilst tūkstošiem ierakstu, tiek atgriezta tikai viena datu lapa ar 100 ierakstiem vienā lapā. Lai redzētu vairāk datu, lietotājam ir jāmeklē caur galeriju vai datu tabulu, un tie tiks automātiski uzrādīti. Veidotājs var radīt iemeslu lielām datu kopām, par ko nav jādomā, ierobežojot datu pieprasījumus līdz pārvaldāmiem sārņiem.

  • Tiek palaists tikai tad, ja nepieciešams: mēs definējām Text formulas etiķetes vadīklas rekvizītam. Kad atlasītais mainīgais mainās, LookUp tiek automātiski pārrēķināts un etiķete tiek atjaunināta. Veidotājam atlasei nebija jāraksta OnChange apdarinātājs, un nebija nepieciešams atcerēties, ka šī etiķete ir atkarīga no tā. Šī ir deklaratīva programmēšana, kas aplūkota iepriekš, ražotājs ir norādījis, ko vēlas etiķetē, nevis to, kā un kad tas ir jāienes. Ja šī etiķete nav redzama, jo tā ir redzama ekrānā vai tās rekvizīts Visible ir nepatiess, mēs varam izmantot šo aprēķinu, līdz etiķete kļūst redzama un faktiski nedarbojas, ja tas notiek reti.

  • Excel sintakses tulkošana: Programmu Excel izmanto daudzi lietotāji, no kuriem lielākā daļa zina, ka virknes konkatenācijai tiek izmantots zīme "&". JavaScript izmanto pluszīmi (+), bet citās valodās — punktu (.).

  • Parādāmie nosaukumi un lokalizācija: First Name tiek izmantota Power Fx formulā, kamēr nwind_firstname tiek izmantots JavaScript ekvivalentā. Microsoft Dataverse un SharePoint ir kolonnu un tabulu parādāmais nosaukums, kas nav tikai unikāls loģiskais nosaukums. Parādāmais nosaukums bieži vien ir daudz lietotājam draudzīgais, kā tas ir šajā gadījumā, bet viņiem ir vēl viena svarīga kvalitāti, jo tos var lokalizēt. Ja jums ir daudzvalodu darba grupa, katrs komandas dalībnieks tabulu un lauku nosaukumus var redzēt savā valodā. Visos lietošanas gadījumos Power Fx nodrošina, ka uz datu bāzi automātiski tiek nosūtīts pareizais loģiskais nosaukums.

Bez koda

Lai sāktu izteikt loģiku, jums nav jālasa un jāraksta Power Fx. Ir daudz pielāgojumu un loģiku, ko var izteikt, izmantojot vienkāršus pārslēdzējus un UI veidotājus. Šie bezkodu rīki ir būvēti, lai lasītu un rakstītu Power Fx, lai nodrošinātu, ka kādam tās nepieciešams izmantot tālāk, vienlaikus atzījot, ka neviens koda rīki nekad nepiedāvās visas pilnas valodas izteikšanas iespējas. Pat tad, ja tiek izmantots bez koda kadru joslas, formulas josla ir Power Apps galvenā daļa, lai izglītotu veidotāju par to, kas notiek viņa vārdā, lai viņš varētu sākt apgūt Power Fx.

Apskatīsim dažus piemērus. Programmas Power Apps rekvizītu panelī vadīklu rekvizītiem tiek nodrošināti "bezkoda" slēdži un pogas. Praktiski lielākā daļa rekvizītu vērtību ir statiskas. Varat lietot krāsu krāsas kodā, lai mainītu krāsas Gallery fona krāsu. Ņemiet vērā, ka formulas josla atspoguļo šīs izmaiņas, atjauninot formulas vērtību citā RGBA izsaukumam. Jebkurā laikā varat pāriet uz formulas joslu un veikt šo soli tālākšajā piemērā, izmantojot ColorFade krāsu pielāgošanai. Krāsu rekvizīts joprojām tiek rādīts rekvizītu panelī, bet uz peles kursora tiek rādīta fx ikona kastplūsmā, un jūs esat novirzīts uz formulas joslu. Tas pilnībā darbojas divos veidos: noņemot ColorFade izsaukumu, krāsa tiek atgriezta tajā, ko var saprast rekvizītu panelis, un varat to atkal izmantot, lai iestatītu krāsu.

Bez koda krāsa.

Šeit parādīts sarežģītāks piemērs. Galerija parāda darbinieku sarakstu no Dataverse. Dataverse nodrošina skatus pār tabulas datiem. Mēs varam atlasīt vienu no šiem skatiem, un tiek mainīta formula, lai izmantotu Filter funkciju ar šī skata nosaukumu. Abas nolaižamās izvēlnes var izmantot, lai sastādītu numuru pareizajā tabulā un skatā, nepieskartoties formulas joslai. Taču pieņemsim, ka vēlaties iet tālāk un pievienot kārtošanu. To var izdarīt formulas joslā, un rekvizītu panelī atkal tiek rādīta fx ikona un vada modifikācijas formulas joslā. Un atkal, ja mēs vienkāršojam formulu uz kaut ko, ko rekvizītu panelis var lasīt un rakstīt, to atkal var izmantot.

Bezkoda kārtošana.

Šie ir bijuši vienkārši piemēri. Mēs ticam, ka Power Fx ir lieliska valoda, kurā var aprakstīt bezkoda mijiedarbību. Tas ir īss, spēcīgs un viegli parsējams, un nodrošina tik bieži nepieciešamo brīvo telpu “bez klintīm” līdz pat zemam kodam.

Pro kods

Zema koda veidotāji dažreiz būvē lietas, kurām ir nepieciešama speciālista palīdzība vai ko ir pārņēmis profesionāli izstrādātājs, lai uzturētu un uzlabotu darbību. Speciālisti arī atbalsta to, ka zema koda izstrāde var būt vienkāršāka, ātrāka un ne tik dārga, kā profesionāla rīka būvēšana. Ne katrai situācijai ir nepieciešams pilns Visual Studio spēks.

Speciālisti vēlas izmantot profesionālus rīkus, lai strādātu produktīvāk. Power Fx formulas var tikt glabātas YAML avota failos, kurus ir viegli rediģēt, izmantojot Visual Studio Code, Visual Studio vai jebkuru citu teksta redaktoru un iespējot Power Fx, lai novietotu avota vadīklā ar GitHub, Azure DevOps vai jebkuru citu avota koda kontroles sistēmu.

Pro koda Visual Studio kods.

Pro kods GitHub.

Power Fx atbalsta uz formulām balstītus komponentus koplietošanai un atkārtotai izmantošanai. Mēs paziņojām par atbalstu parametru noteikšanai komponentu rekvizītiem, ļaujot veidot lietotājam noteiktas funkcijas, vēl vairāk pa ceļam pa ceļam nodrošinot lielākus uzlabojumus.

Tāpat Power Fx lieliski apvieno profesionāļu būvētos komponentus un pakalpojumus. Standarta savienotāji nodrošina piekļuvi simtiem datu avotu un tīmekļa pakalpojumu, pielāgotie savienotāji ļauj Power Fx sarunāties ar jebkuru REST tīmekļa pakalpojumu, un koda komponenti ļauj Power Fx mijiedarboties ar pilnībā pielāgotu JavaScript ekrānā un lapā.

Dizaina principi

Vienkāršs

Power Fx ir izstrādāts, lai mērķētu uz veidotāju mērķauditoriju, kuras dalībnieki kā izstrādātāji to nav apmācījuši. Kur vien iespējams, mēs izmantojam zināšanas, ko šī auditorija jau zinātu vai spētu ātri iemācīties. Sekmīgai darbībai nepieciešamo jēdzienu skaits tiek saglabāts minimāls.

Būt vienkāršam ir labi arī izstrādātājiem. Izstrādātāju auditorijai mēs tiecamies pēc zemas koda valodas, kas samazina risinājuma izstrādei nepieciešamo laiku.

Excel konsekvence

Microsoft Power Fx valoda aizņemas lielā mērā no Excel formulas valodas. Mēs iesakām jums izmantot Excel zināšanas un pieredzi, ko sniedz daudzi veidotāji, kas lieto arī programmu Excel. Tipi, operatori un funkciju semantika ir pēc iespējas līdzīgāki programmai Excel.

Ja excel nav atbildes, tālāk tiek meklēts SQL. Pēc Excel SQL ir nākamā visbiežāk lietotā deklaratīvā valoda, un tā var sniegt norādes par datu operācijām un stipru rakstīšanu, ko programma Excel neraksta.

Deklaratīvs

Veidotājs apraksta, ko viņi vēlas darīt ar savu loģiku, nevis tieši vai kad to darīt. Tas ļauj kompilatoram optimizēt darbību, vienlaicīgi izpildot operācijas, nesekojot darbu līdz nepieciešamajam brīdim, kā arī pirms kešoto datu pirmsiekstalācijas un atkārtotas izmantošanas.

Piemēram, Excel darblapā autors definē attiecības starp šūnām, bet Excel izlemj, kad un kādā secībā tiek novērtētas formulas. Līdzīgi arī formulas programmā var tikt uzskatīšanas par "pārrēķināšanu", ja tas ir nepieciešams, pamatojoties uz lietotāja darbībām, datu bāzes izmaiņām vai taimera notikumiem.

Funkcionāls

Mēs atbalstām tikai funkcijas, kurām nav blakusefektu. Tas izraisa loģiku, ko ir vieglāk saprast un kas kompilatoram sniedz vislabāko optimizēšanu.

Atšķirībā no Excel programmām programmas pēc savas būtības mutē, piemēram, programmām ir pogas, kas saglabā ieraksta izmaiņas datu bāzē. Tādēļ dažām funkcijām ir blakusefekti, bet mēs to ierobežojam, cik lielā mērā tas ir iespējams.

Salikums

Ja iespējams, pievienotā funkcionalitāte labi funkcionē ar esošu funkcionalitāti. Jaudīgas funkcijas var sadalīt mazākās daļās, kuras var vieglāk izmantot patstāvīgi.

Piemēram, galerijas vadīklai nav atsevišķu rekvizītu Sort un Filter. Tās vietā funkcijas Sort un Filter tiek sagrupētas vienā Items rekvizītā. Sort un Filter uzvedības izteikšanas interfeiss tiek kārtots virs Items rekvizīta, izmantojot šī rekvizīta divvirzību redaktoru.

Stingri ierakstīts

Visu vērtību tipi ir zināmi sastādīšanas laikā. Tas ļauj savlaicīgi noteikt kļūdas un bagātināt ieteikumus autorēšanas laikā.

Tiek atbalstīti polimorfiskie tipi, bet, lai tos varētu izmantot, to tips ir jāpiesprauž statiskam tipam, un šim tipam ir jābūt zināmam kompilēšanas laikā. Funkcijas IsType un AsType ir paredzētas testēšanai un testēšanas tipiem.

Tipa norāde

Tipi ir atvasināti no to izmantošanas, tos nedeklarējot. Piemēram, iestatot mainīgo skaitlim, tiek izveidots mainīgā tips kā skaitlis.

Konfliktējošā tipa lietojums izraisa sastādīšanas laika kļūdu.

Lokalizācijas jutīgie decimāldaļu atdalītāji

Dažos pasaules reģionos kā decimālatdalītāju tiek lietots punkts (.), bet citos — komats (,). Tas ir tas pats, ko dara programma Excel. Parasti tas netiek darīts citās programmēšanas valodās, kur kā decimāldaļskaitlis visiem lietotājiem visā pasaulē parasti tiek lietots ar lielisku punktu (.). Lai veidotājiem visos līmeņos būtu pēc iespējas tuvojamies, ir svarīgi, lai personai Francijā būtu decimāldaļskaitlis 3,14, kas šo sintaksi izmantojis visu dzīvi.

Decimālā atdalītāja izvēlei ir kaskādes ietekme uz saraksta atdalītāju, ko izmanto funkciju izsaukuma argumentos, un ķēdes operators.

Autora valodas decimāldaļu atdalītājs Power Fx decimāldaļu atdalītājs Power Fx saraksta atdalītājs Power Fx saķēdēšanas operators
. (dot) . (dot) , (komats) ; (semikols)
, (komats) , (komats) ; (semikols) ;; (dubults semikols)

Papildinformācija: globālais atbalsts

Nav orientēts uz objektu

Excel nav orientēta uz objektu, un tāpat arī Power Fx. Piemēram, dažās valodās virknes garums tiek izteikts kā virknes rekvizīts, piemēram, "Hello World".length programmā JavaScript. Tā vietā Excel un Power Fx izsauc šo informāciju attiecībā uz kādu no funkcijām, kā Len( "Hello World" ).

Komponenti ar rekvizītiem un metodēm ir orientēti uz objektiem, un Power Fx viegli ar tiem darbojas. Taču, ja iespējams, mēs dodam priekšroku funkcionālai pieejai.

Paplašināms

Veidotāji var izveidot savus komponentus un funkcijas, izmantojot pašu Power Fx. Izstrādātāji var izveidot savus komponentus un funkcijas, rakstot JavaScript.

Draudzīga izstrādātājiem

Lai gan veidotāji ir mūsu primārais mērķis, mēs centīsimies būt izstrādātājiem draudzīgi, vienalga, kur tas ir iespējams. Ja tas nav konfliktā ar iepriekš raksturotajiem dizaina pamatprincipiem, mēs darām tā, lai izstrādātājs to darītu. Piemēram, Excel nevar pievienot komentārus, tāpēc mēs izmantojam C tipa rindas un iekļautos komentārus.

Valodu evolūcija

Jaunas programmēšanas valodas ir nepieciešamas un viltīgas. Ikviens ir pamatoti noraizējies par to, ka izmaiņas, neatkarīgi no tā, cik labi ir nolūki, var pārtraukt esošo kodu un pieprasīt lietotājiem apgūt jaunu modeli. Power Fx nopietni izturas pret atpakaļsaderību, mēs arī stingri ticam, ka mēs ne vienmēr to iegūstam pirmajā reizē, un mēs kopīgi uzzināsim, kas ir vislabākais kopienas līmenī. Mums ir jāattīstās, un Power Fx jau no paša sākuma ir jāizveido atbalsts valodu evolūcijai.

Valodas versijas spiedols tiek iekļauts katrā saglabātajā Power Fx dokumentā. Ja mēs vēlamies panākt, lai ar aizķerēm izmaiņa tiktu mainīta, mēs rakstīsim to, ko dēvējam par "atpakaļsavienojamību", kas automātiski pārraksta šo formulas rediģēs nākamreiz, kad tā tiks rediģēta. Ja izmaiņas ir svarīgas, par ko mums ir jāiemācās lietotājs, tiks parādīts arī ziņojums ar saiti uz dokumentiem. Izmantojot šo iekārtu, mēs joprojām varam ielādēt programmas, kas tika būvētas, izmantojot pirms daudziem gadiem būvētās Power Apps priekšskatījuma versijas, neraugoties uz visām izmaiņām no tā laika.

Piemēram, mēs ieviesām ShowError funkciju, lai rādītu kļūdas reklāmkarogu ar sarkanu fonu.

Rādīt kļūdu.

Lietotājiem tas ļoti patika, bet viņi mums lūdza arī veidu, kā parādīt veiksmes baneri (zaļo fonu) vai informatīvu baneri (zilo fonu). Tādēļ mēs uzsākām Notify vispārīgāku funkciju, kas izmanto otru argumentu šāda veida paziņojumam. Mēs varētu tikko pievienot Notify un paturēt ShowError to, kā tas bija, bet tā vietā mēs aizstājām ShowError ar Notify. Tika noņemta funkcija, kas iepriekš bija ražošanā, un tā tika aizstāta ar kaut ko citu. Tā kā būtu bijuši divi veidi, kā to izdarīt vienu un to pašu, tas izraisītu mulsumu, jo īpaši jauniem lietotājiem, un, pats svarīgākais, sarežģītību. Neviens nesūdzējās, visi novērtēja pārmaiņas un tad pārgāja pie nākamās Paziņojuma funkcijas.

Tas ir veids, kā tā pati programma izskatās, kad tā tiek ielādēta jaunākajā Power Apps versijā. Lai šī transformācija notiktu, lietotājs nevarēja veikt nekādas darbības, tā automātiski tika palaista, kad programma tika atvērta.

Funkcija Paziņot aizstāj funkciju ShowError.

Izmantojot šo iekārtu, Power Fx var attīstīties ātrāk un daudz straujāk, nekā lielākā daļa programmēšanas valodu.

Bez nedefinētām vērtībām

Dažās valodās, piemēram, JavaScript, tiek lietots nedefinētas vērtības jēdziens neinicializētiem mainīgajiem vai trūkstošiem rekvizītiem. Vienkāršības dēļ izvairījāmies no šī koncepta. Instances, kas varētu būt nedefinētas citās valodās, tiek uzskatītas par kļūdu vai tukšu vērtību. Piemēram, visi neinicializētie mainīgie sākas ar tukšu vērtību. Visiem datu tipiem var izmantot tukšo vērtību.

Datu tipi
Operatori un identifikatori
Tabulas
Mainīgie
Imperatīvā loģika
Globālais atbalsts
Izteiksmes gramatika
YAML formulas gramatika
Formulas pamatnes programmās