Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Power Fx to język niskokodowy, który Microsoft Power Platform używa. Jest to język programowania ogólnego przeznaczenia, silnie typizowane, deklaratywne i funkcjonalne.
Power Fx jest wyrażany w przyjaznym użytkownikowi formacie tekstowym. Jest to język niskiej zawartości kodu, z którym można pracować bezpośrednio w pasku formuł lub w oknie tekstowym, podobnie jak w programie Visual Studio Code lub w programie Excel. "Niski" w niskim kodzie pochodzi z zwięzłego i prostego charakteru języka, co sprawia, że typowe zadania programistyczne są łatwe zarówno dla twórców, jak i deweloperów. Umożliwia to pełne spektrum rozwoju od braku kodu dla tych, którzy nigdy wcześniej nie programowali do "pro-code" dla doświadczonych profesjonalistów, bez nauki ani ponownego pisania klifów między. Zróżnicowane zespoły mogą współpracować i oszczędzać czas i wydatki.
Uwaga
- Microsoft Power Fx to nowa nazwa języka formuł dla aplikacji kanw w programie Power Apps. To omówienie i skojarzone artykuły są w toku, ponieważ Microsoft wyodrębnia język z aplikacji kanwy, integruje go z innymi produktami Microsoft Power Platform i udostępnia je jako open source. Aby dowiedzieć się więcej o języku i korzystać z niego dzisiaj, Zacznij od formuł dostępnych w aplikacjach kanw w dokumentacji Power Apps i zarejestruj się w celu uzyskania bezpłatnej wersji próbnej Power Apps.
- W tym artykule twórcy odnoszą się do użytkowników, którzy mogą używać funkcji na każdym końcu spektrum umiejętności programistycznych. Deweloperzy odnoszą się do użytkowników, gdy funkcja jest bardziej zaawansowana i prawdopodobnie wykracza poza zakres typowego użytkownika Excel.
Program Power Fx łączy obiekty z deklaratywnymi formułami przypominającymi arkusz kalkulacyjny. Na przykład można pomyśleć o właściwościach Widoczne formantu interfejsu użytkownika jako komórki w arkuszu programu Excel ze skojarzoną formułą obliczaną na podstawie właściwości innych formantów. W logice formuły jest automatycznie przeliczana wartość, podobnie jak w przypadku arkusza kalkulacyjnego, co ma wpływ na widoczność formantu.
Ponadto Power Fx oferuje potrzebną logikę. Arkusze nie mają zazwyczaj przycisków, które mogą przesyłać zmiany do bazy danych, ale aplikacje często je zawierają. Ten sam język wyrażenia jest używany zarówno w logice deklaratywnej, jak i koniecznej.
Microsoft program Power Fx będzie dostępny jako oprogramowanie open source. Jest ona obecnie zintegrowana z aplikacjami kanwy, a Microsoft jest w trakcie wyodrębniania go z Power Apps do użytku w innych produktach Microsoft Power Platform i jako open source. Więcej informacji: Microsoft Power Fx w witrynie GitHub
W tym artykule znajdują się informacje poglądowe na temat języka i jego zasad projektowych. Aby dowiedzieć się więcej o Power Fx, zobacz następujące artykuły:
- Typy danych
- Operatory i identyfikatory
- Tabel
- Zmiennych
- Logika imperatywna
- Globalne wsparcie
- Gramatyka wyrażeń
- Gramatyka formuły YAML
Myśl w arkuszach
Chcesz utworzyć aplikację tak łatwo, jak łatwo tworzysz arkusz w programie Excel?
Czy chcesz skorzystać z posiadanej wiedzy w zakresie arkuszy kalkulacyjnych?
Te pytania zainspirowały tworzenie Power Apps i Power Fx. Setki milionów ludzi tworzy arkusze z Excel każdego dnia. Przyjrzyjmy się tworzeniu aplikacji, które są łatwe i korzystają z Excel pojęć, które już znają. Odłączając Power Fx od Power Apps odpowiemy na te pytania dotyczące automatyzacji tworzenia, agenta wirtualnego lub innych domen.
Wszystkie języki programowania, w tym także język Power Fx mają wyrażenia: sposób reprezentowania obliczania liczb, ciągów i innych typów danych. Na przykład mass * acceleration w większości języków oznacza pomnożenie mass przez acceleration. Wynik wyrażenia można umieścić w zmiennej, użyć go jako argumentu do procedury lub zagnieżdżać je w większym wyrażeniu.
W tym celu Power Fx idzie o krok dalej. Wyrażenie same w sobie nie zawiera informacji o tym, co jest obliczane. Zadaniem twórcy jest umieścić ją w zmiennej lub przekazać do funkcji. W programie Power Fx zamiast pisania wyrażenia bez konkretnego znaczenia napisać formułę połączoną z identyfikatorem. Zapisujesz force = mass * acceleration jako formułę obliczania force. W miarę mass zmiany force lub acceleration automatycznie aktualizuje nową wartość. W wyrażeniach opisano obliczenia, formułę, która określa nazwę i używa ją jako pliku składniowego. Właśnie z tego powodu mamy do odwoływać się do Power Fx jako języka formuł.
Na przykład ta formuła z Stack Overflow wyszukuje ciąg w kolejności odwrotnej. W programie Excel wygląda to jak na obrazie.
Zrzut ekranu paska formuł w programie Excel z formułą: =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) Komórka A1 zawiera tekst „Witaj, Świecie! Wspaniale cię poznać!” W komórce A2 znajduje się tekst „ty!”
Power Fx działa z tą samą formułą, a odwołania do komórek zastąpione odwołaniami do właściwości formantu:
Zrzut ekranu paska formuł Power Fx w programie Power Apps. Formułą jest =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) W polu danych poniżej formuły, tekst „Witaj, Świecie! Wspaniale jest cię poznać!” pojawia się litera po literze. Jednocześnie w polu Etykieta zostaną wyświetlone litery ostatniego wyrazu. Gdy pełny tekst pojawi się w polu wprowadzania, słowo „ty!” pojawi się w polu Etykieta.
Gdy wartość kontrolki Input ulegnie zmianie, kontrolka Label automatycznie ponownie oblicza formułę i wyświetla nową wartość. Brak tutaj obsługi zdarzeń OnChange, tak jak ma to miejsce w innych językach.
Inny przykład używa formuły dla Fill koloru ekranu. W miarę zmiany suwaków sterujących kolorem Czerwonym, Zielonym i Niebieskim kolor tła zmienia się automatycznie podczas ponownego obliczania.
Nie ma zdarzeń OnChange dla formantów suwaka, tak jak dzieje się to w innych językach. Nie ma możliwości jawnie ustawiać wartości Fill właściwości. Jeśli kolor nie działa zgodnie z oczekiwaniami, należy przypatrzeć się tej jednej formule, aby zrozumieć, dlaczego nie działa. Nie trzeba przeszukiwać aplikacji, aby znaleźć fragment kodu odpowiedzialny za problem. Nie ma czegoś takiego. Poprawne wartości formuł są zawsze zachowywane.
Suwaki ustawiono na ciemny kolor, więc etykiety dla koloru czerwonego, zielonego i niebieskiego zmienią się na biały. Ta zmiana odbywa się za pomocą prostej formuły we Color właściwości dla każdej kontrolki etykiety.
Co jest doskonałe w tej formule, to to, że jest odizolowana od tego, co dzieje się dla Fill koloru: są to dwa zupełnie różne obliczenia. Zamiast dużych procedur składniowych logika Power Fx zawiera zwykle wiele mniejszych formuł, które są niezależne. Ta struktura ułatwia zrozumienie i umożliwia ulepszenia bez zakłócania istniejącej logiki.
Power Fx jest językiem deklaratywnym, tak jak program Excel. Twórca definiuje żądane zachowanie, ale to do systemu należy określenie i zoptymalizowanie sposobu i czasu jego wykonania. Aby ta funkcja był bardziej praktyczna, większość pracy jest wykonywana za pomocą funkcji bez efektów ubocznych, co sprawia, że Power Fx jest także językiem funkcjonalnym (tak jak w przypadku programu Excel).
Zawsze na żywo
Definiującym aspektem arkuszy jest to, że są one zawsze dostępne, a zmiany są odzwierciedlane błyskawicznie. W arkuszu nie ma trybu kompilowania ani uruchamiania. Podczas modyfikowania formuły lub wprowadzania wartości arkusz natychmiast ponownie oblicza zmiany. Wszelkie wykryte błędy są natychmiast udostępniane i nie zakłócają pozostałej części arkusza.
Power Fx implementuje to samo. Używa kompilatora przyrostowego do ciągłego synchronizowania programu z danymi, na których działa. Zmiany są automatycznie propagowane za pośrednictwem grafu programu, co wpływa na wyniki obliczeń zależnych. Te obliczenia mogą prowadzić do właściwości kontrolek, takich jak kolor lub położenie. Kompilator przyrostowy także udostępnia rozbudowane funkcje edycji formuł IntelliSense —sugestie, auto-uzupełnianie i sprawdzanie typów.
W poniższej animacji numer zamówienia jest wyświetlany w kontrolce etykiety zależnej od kontrolki suwaka, mimo że na etykietach poniżej występują dwa błędy. Aplikacja jest bardzo żywa i interakcyjna. Pierwsza próba naprawiania formuły przez wprowadzenie .InvalidName powoduje natychmiastowe wyświetlenie błędu, tak jak powinno, ale aplikacja działa.
Po wprowadzeniu .Employeew okienku okienko Data dodaje tabelę Employees, pobiera metadane dla tej tabeli i natychmiast oferuje sugestie dotyczące kolumn. Właśnie przechodziliśmy przez relację z jednej tabeli do innej, a system dokonał niezbędnych korekt odwołań do aplikacji. To samo dzieje się podczas dodawania .Customer.
Po każdej zmianie suwak będzie nadal używał swojej ostatniej wartości, a wszystkie zmienne zachowają swoją wartość. W całej kolejności numer zamówienia będzie nadal wyświetlany w górnej etykiecie, tak jak powinien. Aplikacja jest aktywna, przetwarza dane rzeczywiste przez cały czas. Możesz go zapisać, odejść, a inne mogą go otwierać i używać tak jak Excel. Nie ma kroku kompilacji, nie ma kompilacji, istnieje tylko krok publikowania, aby określić, która wersja aplikacji jest gotowa dla użytkowników.
Bez umiejętności kodowania
Power Fx opisuje logikę biznesową w ścisłych, ale zaawansowanych formułach. Większość logiki zmniejsza się do pojedynczej linii, z dużą wyrazistością i kontrolą w celu bardziej złożonych potrzeb. Celem jest ograniczenie do minimum liczby pojęć, które twórca musi zrozumieć — najlepiej nie więcej, niż zna już użytkownik programu Excel.
Na przykład w celu wyszukania imienia pracownika etatowego dla zamówienia, należy napisać Power Fx w sposób przedstawiony w poniższej animacji. Oprócz pojęć programu Excel jedyna dodana tutaj koncepcja to kropka ".". Notacja ta dotyczy przetwarzania danych, w tym wypadku .Employee.'First Name'. Animacja zawiera mapowanie między częściami formuły Power Fx a pojęciami, które należy jawnie kodować w równoważnym języku JavaScript.
Przyjrzyjmy się bardziej szczegółowo wszystkim tym, co robi power fx dla nas i wolność, którą musi zoptymalizować, ponieważ formuła jest deklaratywna:
Asynchroniczne: wszystkie operacje na danych są Power Fx asynchroniczne. Twórca nie musi tego określać, ani też nie musi synchronizować operacji po zakończeniu wywołania. Twórca w ogóle nie musi mieć świadomości tego konceptu. Nie musi wiedzieć czym jest np. funkcja lambda lub obietnica.
Lokalne i zdalne: Power Fx używa tej samej składni i funkcji dla danych, które są lokalne w pamięci i zdalnie łączą bazę danych lub usługę. Użytkownik nie musi myśleć o tym rozróżnieniu. Program Power Fx automatycznie deleguje to, co może na serwer, aby efektywniej przetwarzać filtry i sortować obiekty.
Dane relacyjne: Zamówienia i Klienci to dwie różne tabele z relacją wiele-do-jednego. Zapytanie OData wymaga "$expand" z wiedzą na temat klucza obcego, podobnego do „Join” w SQL. Formuła nie zawiera żadnych informacji o tym. W rzeczywistości klucze bazy danych to kolejne pojęcie, o których twórca nie musi wiedzieć. Producent może użyć prostego zapisu kropki, aby uzyskać dostęp do całego wykresu relacji z rekordu.
Projekcja: Podczas pisania zapytania wielu deweloperów pisze
select * from table, co powoduje przywrócenie wszystkich kolumn danych. Power Fx analizuje wszystkie kolumny używane w całej aplikacji, nawet w zależności od formuł. Projekcja jest automatycznie zoptymalizowana i znowu producent nie musi wiedzieć, co to jest „projekcja”.Pobierz tylko to, co jest potrzebne: W tym przykładzie funkcja sugeruje, że należy pobrać tylko jeden rekord i to wszystko,
LookUpco jest zwracane. Jeśli wymagane jest więcej rekordów przy użyciu funkcjiFilter— do której tysiące rekordów może kwalifikować się jednocześnie — tylko jedna strona danych jest zwracana naraz. Na pojedynczej stronie jest zwracanych 100 rekordów na stronę. Użytkownik musi gestować za pośrednictwem galerii lub tabeli danych, aby wyświetlić więcej danych i automatycznie wprowadza do nich więcej danych. Producent może zastanowić się nad dużymi zestawami danych, nie myśląc o ograniczaniu żądań danych do łatwych do przetwarzania fragmentów.Uruchamia się tylko w razie potrzeby: należy zdefiniować formułę dla
Textwłaściwości kontrolki etykiety. Wraz ze zmianą wybranej zmiennej,LookUpjest automatycznie ponownie przeliczane a etykieta aktualizowana. Twórca nie musi pisać procedury obsługi OnChange dla opcji Wyboru i nie musi pamiętać, że ta etykieta zależy od tego. Jest to deklaratywne programowanie, które zostało wcześniej omówione. Twórca określa, co chce mieć w etykiecie, a nie jak i kiedy ma zostać pobrana. Jeśli ta etykieta nie jest widoczna, ponieważ znajduje się na ekranie, który nie jest widoczny, lub jejVisiblewłaściwość jest fałszywa, możesz odroczyć to obliczenie, dopóki etykieta nie będzie widoczna i skutecznie wyeliminować ją, jeśli rzadko występuje.Excel tłumaczenie składni : wielu użytkowników wie, że ampersand (& ) jest używany do łączenia ciągów w Excel. W języku JavaScript jest używany znak plus (+), a w innych językach kropka (.).Nazwy wyświetlane i lokalizacja:
First Namejest używany w formule, Power Fx podczas gdynwind_firstnamejest używany w odpowiedniku JavaScript. Oprócz unikatowej nazwy logicznej w Microsoft Dataverse i SharePoint jest nazwa dla kolumn i tabel. Wyświetlane nazwy są często bardziej przyjazne dla użytkownika, jak w tym przypadku, ale mają inną ważna jakość, ponieważ można je zlokalizować. W przypadku pracy z zespołem wielojęzycznym każdy członek zespołu może zobaczyć nazwy tabel i pól we własnym języku. We wszystkich przypadkach Power Fx upewni się, że prawidłowa nazwa logiczna jest automatycznie wysyłana do bazy danych.
Brak kodu
Nie musisz odczytywać ani zapisywać programu Power Fx, aby rozpocząć wyrażanie logiki. Wiele dostosowań i logiki można wyrazić za pomocą prostych przełączników i konstruktorów interfejsu użytkownika. Te narzędzia bez kodu są kompilowane do odczytywania i pisania power fx, więc jest mnóstwo miejsca, aby ktoś mógł go jeszcze bardziej wykorzystać. Jednak narzędzia bez kodu nigdy nie oferują całej wyrazistości pełnego języka. Nawet jeśli używasz konstruktorów bez kodu, pasek formuły jest przedni i środkowy w Power Apps, aby edukować twórcę o tym, co robi się w ich imieniu, aby mogli zacząć uczyć się usługi Power Fx.
Przyjrzyjmy się niektórym przykładom. W panelu właściwości w Power Apps znajdują się przełączniki i pokrętła „bez kodu”, pozwalające kontrolować właściwości formantów. W praktyce większość wartości właściwości jest statyczna. Można użyć konstruktora kolorów, aby zmienić kolor w tle Gallery. Należy zauważyć, że pasek formuł odzwierciedla tę zmianę, aktualizując formułę do innego wywołania RGBA. W dowolnym momencie możesz przejść do paska formuły i wykonać tę zmianę krok dalej — w tym przykładzie użyj polecenia ColorFade , aby dostosować kolor. Właściwość kolorów nadal jest wyświetlana w panelu właściwości, ale po umieszczeniu kursora na pasku formuł jest wyświetlana ikona fx. Działa to na dwa sposoby: usunięcie wywołania zwraca kolor do czegoś, co rozumie panel właściwości, i można jej użyć ponownie do ustawienia koloru ColorFade.
Oto bardziej skomplikowany przykład. W galerii jest wyświetlona lista pracowników z Dataverse. Dataverse zawiera widoki na dane tabeli. Możesz wybrać jeden z tych widoków i zmienić formułę Filter , aby użyć funkcji z tą nazwą widoku. Możesz użyć dwóch menu rozwijanych, aby wybrać odpowiednią tabelę i wyświetlić bez dotykania paska formuły. Załóżmy jednak, że chcesz przejść dalej i dodać sortowanie. Możesz dodać tę funkcję na pasku formuły, a panel właściwości ponownie wyświetla ikonę fx i kieruje modyfikacje paska formuły. I znowu, jeśli uprościsz formułę do czegoś, co panel właściwości może odczytywać i zapisywać, można go użyć.
Te przykłady są proste. Power Fx to doskonały język do opisywania interakcji bez kodu. Jest zwięzły, potężny i łatwy do przeanalizowana. Zapewnia to miejsce pracy, które jest tak często potrzebne z "bez klifów" do niskiego kodu.
Kodowanie profesjonalne
Twórcy kodu o niskim poziomie czasami tworzą rozwiązania, które wymagają pomocy eksperta lub są przejęte przez profesjonalnego dewelopera w celu utrzymania i ulepszania. Specjaliści cenią sobie również, że w przypadku projektowania o niskiej zawartości kodu pracuje się łatwiej, szybciej i niższym kosztem, niż w przypadku korzystania z narzędzia profesjonalnego. Nie każda sytuacja wymaga wszystkich możliwości Visual Studio.
Specjaliści chcą używać narzędzi profesjonalnych, aby być jak najbardziej produktywnym. Formuły Power Fx można przechowywać w plikach źródłowych YAML, które można łatwo edytować przy użyciu Visual Studio Code, Visual Studio lub dowolnego innego edytora tekstów. Przechowywanie formuł w plikach YAML umożliwia umieszczenie usługi Power Fx pod kontrolą źródła przy użyciu GitHub, Azure DevOps lub dowolnego innego systemu kontroli kodu źródłowego.
Program Power Fx umożliwia udostępnianie i ponowne używanie składników opartych na formułach. Obsługuje on parametry właściwości składników, umożliwiając tworzenie czystych funkcji zdefiniowanych przez użytkownika z większymi ulepszeniami w drodze.
Ponadto Power Fx jest doskonały w łączeniu składników i usług zbudowanych przez specjalistów. Gotowe łączniki zapewniają dostęp do setek źródeł danych i usług internetowych. Łączniki niestandardowe umożliwiają usłudze Power Fx rozmowę z dowolną usługą internetową REST. Składniki kodu umożliwiają usłudze Power Fx interakcję z w pełni niestandardowym kodem JavaScript na ekranie i stronie.
Zasady projektowania
Proste
Power Fx jest przeznaczony dla odbiorców twórców, których członkowie nie są przeszkoleni jako deweloperzy. Wszędzie tam, gdzie to możliwe, język korzysta z wiedzy, że ta grupa odbiorców już wie lub może szybko podnieść. Liczba pojęć wymaganych jest utrzymywana na minimalnym poziomie.
Prostota jest także ważna dla deweloperów. Dla odbiorców deweloperów usługa Power Fx ma na celu zmniejszenie czasu potrzebnego do utworzenia rozwiązania w języku o niskim kodzie.
Spójność z Excelem
Język Microsoft Power Fx zapożycza dużo z programu Excel. Wykorzystuje Excel wiedzę i doświadczenie wielu twórców, którzy również korzystają z Excel. Typy, operatory i funkcje są jak najbardziej zbliżony do programu Excel.
Jeśli Excel nie ma odpowiedzi, usługa Power Fx obok szuka języka SQL. Po programie Excel SQL to najbardziej znany język deklaracyjny, który zapewnia wskazówki dotyczące operacji danych oraz silne pisanie, którego Excel nie ma.
Deklaratywny
Twórca opisuje, co ma zrobić jego logika, a nie jak i kiedy należy to zrobić. Takie podejście umożliwia kompilatorowi optymalizowanie przez równoległe wykonywanie operacji, odroczenie pracy do momentu potrzeby oraz wstępne pobieranie i ponowne używanie buforowanych danych.
Na przykład w arkuszu Excel autor definiuje relacje między komórkami, ale Excel decyduje, kiedy i w jakiej kolejności oblicza formuły. Podobnie formuły w aplikacji można traktować jako "ponowne obliczanie" zgodnie z potrzebami na podstawie akcji użytkownika, zmian bazy danych lub zdarzeń czasomierza.
Funkcjonalność
Używaj czystych funkcji, które nie mają skutków ubocznych. Takie podejście powoduje, że logika jest łatwiejsza do zrozumienia i daje kompilatorowi największą swobodę optymalizacji.
W przeciwieństwie do Excel aplikacje ze względu na ich charakter nie modyfikują stanu. Na przykład aplikacje mają przyciski, które zapisują zmiany w rekordzie w bazie danych. Niektóre funkcje, w związku z tym, mają skutki uboczne, chociaż ograniczają te skutki uboczne tak samo, jak jest praktyczne.
Tworzenie
Jeśli to możliwe, dodaj funkcje, które dobrze komponują się z istniejącymi funkcjami. Zaawansowane funkcje można rozkładać na mniejsze części, które można łatwiej używać niezależnie.
Na przykład formant Galeria nie ma oddzielnych właściwości Sort i Filter. Zamiast tego należy utworzyć Sort funkcje i Filter w jedną Items właściwość. Interfejs użytkownika warstwy służy do wyrażania Sort i Filter zachowania na podstawie Items właściwości przy użyciu dwukierunkowego edytora dla tej właściwości.
Jednoznaczność
Typy wszystkich wartości są znane w czasie kompilacji. Takie podejście umożliwia wczesne wykrywanie błędów i rozbudowanych sugestii podczas tworzenia.
Obsługiwane są typy polimorficzne, ale zanim będzie można ich używać, należy przypiąć ich typ do typu statycznego i ten typ musi być znany w czasie kompilacji. Funkcje IsType i AsType są dostępne do testowania i jako typy ogólne.
Dziedziczenie typów
Typy są dziedziczone ze względu na ich zastosowanie bez konieczności deklaracji. Na przykład ustawienie zmiennej na liczbę powoduje ustanowienie typu zmiennej jako liczby.
Kolidujące użycie typu powoduje błąd w czasie kompilacji.
Separatory dziesiętne zależne od lokalizacji
Na przykład niektóre regiony używają znaku „.” jako separatora dziesiętnego, a w innych stosuje się znak „.”. Excel jest zgodna z tą konwencją regionalną. Inne języki programowania zazwyczaj używają kropki kanonicznej (.) jako separatora dziesiętnego dla wszystkich użytkowników na całym świecie. Aby można było jak najbardziej ułatwić dla osób na wszystkich poziomach, należy stosować 3,14 jako oznaczenie dziesiętne dla osoby we Francji, która używa tej składni przez całe życie.
Wybór separatora dziesiętnego wpływa kaskadowo na separator list, używany na przykład dla argumentów funkcyjnych i operatorów łańcucha.
| Separator dziesiętny języka autora | Separator dziesiętny Power Fx | Separator listy Power Fx | Operator łańcuchowy Power Fx |
|---|---|---|---|
| . (kropka) | . (kropka) | , (przecinek) | ; (średnik) |
| , (przecinek) | , (przecinek) | ; (średnik) | ;; (podwójny średnik) |
Więcej informacji: pomoc globalna
Bez orientacji na obiekt
Ani program Excel, ani Power Fx nie są ukierunkowane obiektowo. W niektórych językach długość ciągu jest na przykład wyrażana jako właściwość ciągu, na przykład w języku JavaScript jest to "Hello world".length. Excel i Power Fx zamiast tego wyrażają to samo jako funkcję, jak Len( "Hello world" ).
Składniki z właściwościami i metodami są ukierunkowane na obiekt i Power Fx łatwo z nimi współpracuje. Ale jeśli to możliwe, preferuj podejście funkcjonalne.
Możliwość rozszerzenia
Twórcy mogą tworzyć własne składniki i funkcje, używając samego Power Fx. Deweloperzy mogą tworzyć swoje składniki i funkcje, pisząc skrypt JavaScript.
Przyjazne dla deweloperów
Mimo że twórcy są głównym celem, staraj się być przyjazny dla deweloperów wszędzie tam, gdzie to możliwe. Jeśli nie powoduje to konfliktu z opisanymi wcześniej zasadami projektowania, wykonaj czynności w sposób doceniany przez dewelopera. Na przykład Excel nie ma możliwości dodawania komentarzy, więc użyj wiersza przypominającego język C i komentarzy wbudowanych.
Ewolucja języka
Zmieniający się język programowania jest potrzebny i niezbędny. Wszyscy użytkownicy — słusznie — obawiają się, że zmiana, bez względu na jej skalę i powód, może niszczyć istniejący kod i wymagać od użytkowników, aby nauczyli się nowego wzorca. Power Fx poważnie traktuje zgodność z poprzednimi wersjami, ale zespół Power Fx również zdecydowanie uważa, że nie zawsze będzie to dobrze po raz pierwszy i że społeczność może wspólnie dowiedzieć się, co jest najlepsze. Język programowania musi ewoluować, a program Power Fx został zaprojektowany tak, aby od samego początku obsługiwał ewolucję języka.
Każdy zapisany dokument Power Fx zawiera sygnaturę wersji językowej. Jeśli zespół Power Fx chce wprowadzić niezgodną zmianę, piszą to, co nazywają "konwerterem wstecznym", który automatycznie ponownie zapisuje formułę przy następnej edycji. Jeśli zmiana jest czymś ważnym, o czym zespół musi edukować użytkownika, aplikacja wyświetla komunikat z linkiem do dokumentacji. Korzystając z tej funkcji, program Power Fx nadal może ładować aplikacje, które zostały skompilowane przy użyciu wersji zapoznawczej Power Apps sprzed wielu lat, pomimo wszystkich zmian, które nastąpiły od tego czasu.
Na przykład zespół Power Fx wprowadził funkcję w ShowError celu wyświetlenia transparentu błędu z czerwonym tłem.
Użytkownicy go kochali, ale poprosili również o sposób wyświetlania transparentu sukcesu (zielone tło) lub baneru informacyjnego (niebieskie tło). W związku z tym zespół wymyślił bardziej ogólną Notify funkcję, która przyjmuje drugi argument dla rodzaju powiadomienia. Zespół mógł właśnie dodać Notify i zachować ShowError sposób, w jaki to było, ale zamiast tego zastąpili ShowError element .Notify Usunęli funkcję, która była wcześniej w środowisku produkcyjnym i zamienili ją na coś innego. Ponieważ istniałyby dwa sposoby wykonania tej samej czynności, ta zmiana spowodowałaby zamieszanie — zwłaszcza dla nowych użytkowników — i, co najważniejsze, spowodowałoby to dodatkową złożoność. Zmiana podobała się wszystkim. Nikt nie miał problemów z korzystaniem z funkcji Notify.
W taki sposób aplikacja wygląda po załadowaniu w najnowszej wersji Power Apps. Do przekształcenia nie jest wymagane żadne działanie — wystąpiło ono automatycznie po otwarciu aplikacji.
Dzięki temu narzędziu program Power Fx może rozwijać się szybciej i bardziej agresywnie niż większość języków programowania.
Brak niezdefiniowanych wartości
W niektórych językach, na przykład w JavaScript, istnieją pojęcia niezdefiniowanej wartości zmiennych lub brakujących właściwości. Dla uproszczenia usługa Power Fx unika tej koncepcji. Wystąpienia, które w innych językach mogą być niezdefiniowane, są traktowane jako błąd lub pusta wartość. Na przykład wszystkie nieinicjowane zmienne zaczynają się od pustej wartości. Wszystkie typy danych mogą przyjąć wartość pustą.
Powiązane artykuły
Typy danych
Operatory i identyfikatory
Tabel
Zmiennych
Logika imperatywna
Globalne wsparcie
Gramatyka wyrażeń
Gramatyka formuły YAML
Formuły w aplikacjach kanwy