Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Power Fx adalah bahasa kode rendah yang Microsoft Power Platform gunakan. Ini adalah bahasa pemrograman tujuan umum, sangat diketik, deklaratif, dan fungsi.
Power Fx diekspresikan dalam teks yang ramah manusia. Ini adalah bahasa kode rendah yang bisa dikerjakan pembuat secara langsung di bilah rumus seperti Excel atau jendela teks Visual Studio Code. "Rendah" dalam kode rendah berasal dari sifat bahasa yang ringkas dan sederhana, yang membuat tugas pemrograman umum mudah bagi pembuat dan pengembang. Ini memungkinkan spektrum penuh pengembangan dari tanpa kode bagi mereka yang tidak pernah diprogram sebelumnya ke "pro-code" untuk profesional berpengalaman, tanpa belajar atau menulis ulang tebing di antaranya. Tim yang beragam dapat berkolaborasi dan menghemat waktu dan biaya.
Catatan
- Microsoft Power Fx adalah nama baru untuk bahasa rumus untuk aplikasi kanvas di Power Apps. Gambaran umum dan artikel terkait ini adalah pekerjaan yang sedang berlangsung saat Microsoft mengekstrak bahasa dari aplikasi kanvas, mengintegrasikannya dengan produk Microsoft Power Platform lainnya, dan membuatnya tersedia sebagai sumber terbuka. Untuk mempelajari lebih lanjut dan mempelajari bahasa hari ini, mulai dengan rumus di aplikasi kanvas di dokumentasi Power Apps dan mendaftarlah untuk uji coba Power Apps gratis.
- Dalam artikel ini, pembuat mengacu pada pengguna yang mungkin menggunakan fitur di salah satu akhir spektrum keterampilan pemrograman. Pengembang mengacu pada pengguna ketika fitur ini lebih canggih dan kemungkinan berada di luar cakupan pengguna Excel umum.
Power Fx mengikat objek bersama dengan rumus seperti spreadsheet deklaratif. Misalnya, pikirkan properti Terlihat dari kontrol UI sebagai sel dalam lembar kerja Excel, dengan rumus terkait yang menghitung nilainya berdasarkan properti kontrol lain. Logika rumus menghitung ulang nilai secara otomatis, mirip dengan bagaimana spreadsheet melakukannya, yang memengaruhi visibilitas kontrol.
Selain itu, Power Fx menawarkan logika imperatif bila diperlukan. Lembar kerja biasanya tidak memiliki tombol yang bisa mengirimkan perubahan ke database, tetapi aplikasi sering melakukannya. Bahasa ekspresi yang sama digunakan untuk logika deklaratif maupun imperatif.
Microsoft akan membuat Power Fx tersedia sebagai perangkat lunak sumber terbuka. Saat ini diintegrasikan ke dalam aplikasi kanvas, dan Microsoft sedang dalam proses mengekstraknya dari Power Apps untuk digunakan dalam produk Microsoft Power Platform lain dan sebagai sumber terbuka. Informasi lebih lanjut: Microsoft Power Fx di GitHub
Artikel ini merupakan ikhtisar bahasa dan prinsip desainnya. Untuk mempelajari lebih lanjut tentang Power Fx, lihat artikel berikut:
- Jenis data
- Operator dan pengidentifikasi
- Tabel
- Variabel
- Logika imperatif
- Dukungan global
- Tata bahasa ekspresi
- Tata bahasa rumus YAML
Bayangkan Spreadsheet
Bagaimana jika Anda bisa membuat aplikasi semudah Anda menyusun lembar kerja di Excel?
Bagaimana jika Anda dapat memanfaatkan pengetahuan spreadsheet yang ada?
Pertanyaan-pertanyaan ini menginspirasi pembuatan Power Apps dan Power Fx. Ratusan juta orang membuat lembar kerja dengan Excel setiap hari. Mari kita bawa mereka pembuatan aplikasi yang mudah dan menggunakan konsep Excel yang sudah mereka ketahui. Dengan mengeluarkan Power Fx dari Power Apps, kita akan menjawab pertanyaan-pertanyaan ini untuk membangun otomatisasi, atau agen virtual, atau domain lainnya.
Semua bahasa pemrograman, termasuk Power Fx memiliki ekspresi: cara untuk menggambarkan perhitungan atas angka, string, atau tipe data lainnya. Contohnya, mass * acceleration di kebanyakan bahasa menyatakan perkalian dan mass dan acceleration. Anda dapat menempatkan hasil ekspresi dalam variabel, menggunakannya sebagai argumen ke prosedur, atau menumpuknya dalam ekspresi yang lebih besar.
Power Fx melakukan langkah ini lebih lanjut. Sebuah ekspresi dengan sendirinya tidak mengatakan apa-apa tentang apa yang dikalkulasikannya. Terserah pembuat untuk menempatkannya dalam variabel atau meneruskannya ke fungsi. Di Power Fx, alih-alih hanya menulis ekspresi yang tidak memiliki arti tertentu, Anda menulis rumus yang mengikat ekspresi ke pengidentifikasi. Anda menulis force = mass * acceleration sebagai rumus untuk menghitung force. Sebagai mass atau acceleration berubah, force secara otomatis diperbarui ke nilai baru. Ekspresi menjelaskan perhitungan, rumus memberi nama perhitungan itu dan menggunakannya sebagai resep. Oleh karena itu, kita mengacu pada Power Fx sebagai bahasa rumus.
Misalnya, rumus dari Stack Overflow ini mencari string dalam urutan terbalik. Di Excel, ini terlihat seperti gambar berikut ini.
Cuplikan layar bilah rumus di Excel dengan rumus: =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) Sel A1 berisi teks "Halo, Dunia! Sangat menyenangkan bertemu Anda" Sel A2 berisi teks "Anda!"
Power Fx berfungsi dengan rumus yang sama, dengan referensi sel yang diganti dengan referensi properti kontrol:
Cuplikan layar bilah rumus Power Fx di Power Apps. Rumusnya adalah =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) Dalam kotak Input di bawah rumus, teks "Hello, World! Sangat menyenangkan untuk bertemu Anda!" muncul, huruf demi huruf. Pada saat yang sama dalam kotak Label, huruf dari kata terakhir muncul. Saat teks lengkap muncul di kotak Input, kata "Anda!" muncul di kotak Label.
Input Saat nilai kontrol berubah, Label kontrol secara otomatis menghitung ulang rumus dan memperlihatkan nilai baru. Tidak ada penanganan aktivitas OnChange di sini sebagaimana umumnya dalam bahasa lain.
Contoh lain menggunakan rumus untuk Fill warna layar. Saat slider yang mengontrol perubahan Merah, Hijau, dan Biru, warna latar belakang secara otomatis berubah saat dihitung ulang.
Tidak ada aktivitas OnChange untuk kontrol panel geser seperti yang umum dalam bahasa lainnya. Tidak ada cara untuk secara eksplisit menetapkan nilai properti Fill sama sekali. Jika warna tidak berfungsi seperti yang diharapkan, Anda perlu melihat rumus yang satu ini untuk memahami mengapa warna tidak berfungsi. Anda tidak perlu mencari melalui aplikasi untuk menemukan sepotong kode yang mengatur properti pada waktu yang tidak terduga; tidak ada elemen waktu. Nilai rumus yang benar selalu dipertahankan.
Saat panel geser diatur ke warna gelap, label untuk Merah, Hijau, dan Biru berubah menjadi putih untuk mengkompensasi. Perubahan ini terjadi melalui rumus sederhana pada Color properti untuk setiap kontrol label.
Apa yang hebat tentang rumus ini adalah bahwa rumus ini diisolasi dari apa yang terjadi untuk Fill warna: ini adalah dua perhitungan yang sama sekali berbeda. Alih-alih prosedur monolitik besar, logika Power Fx biasanya terdiri dari banyak formula yang lebih kecil yang independen. Struktur ini membuatnya lebih mudah dipahami dan memungkinkan peningkatan tanpa mengganggu logika yang ada.
Power Fx adalah bahasa deklatif, sama seperti Excel. Pembuat mendefinisikan perilaku apa yang mereka inginkan, tetapi terserah sistem untuk menentukan dan mengoptimalkan bagaimana dan kapan mencapainya. Untuk membuatnya praktis, sebagian besar pekerjaan dilakukan melalui fungsi-fungsi alami tanpa efek samping, sehingga Power Fx juga menjadi bahasa fungsi, (lagi-lagi seperti Excel).
Selalu langsung
Aspek yang menentukan lembar kerja adalah bahwa lembar kerja selalu aktif, dan perubahan tercermin secara instan. Tidak ada mode kompilasi atau eksekusi dalam lembar kerja. Saat Anda mengubah rumus atau memasukkan nilai, lembar kerja segera menghitung ulang untuk mencerminkan perubahan. Setiap kesalahan yang terdeteksi muncul segera dan tidak mengganggu lembar kerja lainnya.
Power Fx mengimplementasikan hal yang sama. Ini menggunakan kompilator inkremental untuk terus menjaga program tetap sinkron dengan data yang dioperasikannya. Perubahan secara otomatis disebarluaskan melalui grafik program, yang memengaruhi hasil perhitungan dependen. Perhitungan ini mungkin mendorong properti pada kontrol seperti warna atau posisi. Pengompilasi tambahan juga memberikan pengalaman pengeditan rumus kaya dengan IntelliSense, saran, penyelesaian otomatis, dan pemeriksaan ketikan.
Dalam animasi berikut, nomor pesanan ditampilkan dalam kontrol label tergantung pada kontrol penggeser, meskipun ada dua kesalahan pada label di bawahnya. Aplikasi ini sangat langsung dan interaktif. Upaya pertama dalam memperbaiki rumus dengan memasukkan hasil .InvalidName adalah dalam garis merah langsung dan kesalahan yang ditampilkan, sebagaimana mestinya, tetapi aplikasi terus berjalan.
Saat Anda memasukkan .Employee, panel Data menambahkan tabel Karyawan, mengambil metadata untuk tabel ini, dan segera menawarkan saran untuk kolom. Anda hanya berjalan melintasi hubungan dari satu tabel ke tabel lainnya, dan sistem membuat penyesuaian yang diperlukan untuk referensi aplikasi. Hal yang sama terjadi ketika menambahkan .Customer.
Setelah setiap perubahan, panel geser akan melanjutkan dengan nilai terakhirnya dan variabel apa pun mempertahankan nilainya. Sepanjang, nomor pesanan terus ditampilkan di label atas sebagaimana mestinya. Aplikasi ini aktif, memproses data nyata, sepanjang waktu. Anda dapat menyimpannya, pergi, dan orang lain dapat membuka dan menggunakannya seperti Excel. Tidak ada langkah build, tidak ada kompilasi, hanya ada langkah penerbitan untuk menentukan versi aplikasi mana yang siap untuk pengguna.
Kode rendah
Power Fx mendeskripsikan logika bisnis dalam rumus ringkas, namun kuat. Sebagian besar logika berkurang menjadi satu baris, dengan banyak ekspresivitas dan kontrol untuk kebutuhan yang lebih kompleks. Tujuannya adalah agar jumlah konsep yang perlu dipahami pembuat tetap minimal—idealnya tidak lebih dari yang sudah diketahui pengguna Excel.
Misalnya, untuk mencari nama depan karyawan untuk pesanan, Anda menulis Power Fx seperti yang diperlihatkan dalam animasi berikut. Di luar konsep Excel, satu-satunya konsep tambahan yang digunakan di sini adalah notasi titik "." untuk menggali ke dalam struktur data, dalam hal ini .Employee.'First Name'. Animasi menunjukkan pemetaan antara bagian-bagian rumus Power Fx dan konsep yang perlu dikodekan secara eksplisit dalam JavaScript yang setara.
Mari kita lihat lebih mendalam pada semua hal yang Power Fx lakukan untuk kita dan kebebasan yang harus dioptimalkan karena rumusnya deklaratif:
Asinkron: Semua operasi data bersifat Power Fx asinkron. Pembuat tidak perlu menentukan ini, pembuat juga tidak perlu menyinkronkan operasi setelah panggilan selesai. Pembuat tidak perlu mengetahui konsep ini sama sekali, mereka tidak perlu mengetahui apa itu fungsi janji atau lambda.
Lokal dan jarak jauh: Power Fx menggunakan sintaks dan fungsi yang sama untuk data yang berada dalam memori lokal dan menghubungkan database atau layanan dari jarak jauh. Pengguna tidak perlu berpikir tentang perbedaan ini. Power Fx secara otomatis mendelegasikan apa yang dapat dilakukan ke server untuk memproses filter dan mengurutkan di sana secara lebih efisien.
Data relasional: Pesanan dan Pelanggan adalah dua tabel yang berbeda, dengan hubungan banyak ke satu. Kueri OData memerlukan "$expand" dengan pengetahuan tentang kunci asing, yang mirip dengan Gabung di SQL. Rumus tidak memiliki semua ini, pada kenyataannya, kunci database adalah konsep lain yang tidak perlu diketahui oleh pembuatnya. Pembuat dapat menggunakan notasi titik sederhana untuk mengakses seluruh grafik Relasi dari rekaman.
Proyeksi: Saat menulis kueri, banyak pengembang menulis
select * from table, yang mengembalikan semua kolom data. Power Fx menganalisis semua kolom yang digunakan melalui seluruh aplikasi, bahkan di seluruh dependensi rumus. Proyeksi secara otomatis dioptimalkan dan, sekali lagi, pembuat tidak perlu tahu apa artinya "proyeksi".Ambil hanya apa yang diperlukan: Dalam contoh ini, fungsi menyiratkan
LookUpbahwa hanya satu rekaman yang harus diambil dan hanya itu yang dikembalikan. Jika lebih banyak rekaman diminta dengan menggunakan fungsiFilter—di mana ribuan rekaman mungkin memenuhi syarat—hanya satu halaman data yang dikembalikan pada satu waktu, pada urutan 100 rekaman per halaman. Pengguna harus melakukan gerakan melalui galeri atau tabel data untuk melihat lebih banyak data, dan secara otomatis membawa lebih banyak data untuk mereka. Pembuat dapat bernalar tentang kumpulan data besar tanpa perlu memikirkan pembatasan permintaan data untuk potongan yang dapat dikelola.Hanya berjalan jika diperlukan: Anda menentukan rumus untuk
Textproperti kontrol label. Saat variabel yang dipilih berubah, variabelLookUpakan secara otomatis dihitung ulang dan label diperbarui. Pembuat tidak perlu menulis handler OnChange untuk Selection, dan tidak perlu ingat bahwa label ini tergantung padanya. Ini adalah program deklaratif seperti yang telah didiskusikan sebelumnya, pembuat menentukan apa yang mereka inginkan di label, bukan cara atau waktu pengambilannya. Jika label ini tidak terlihat karena berada di layar yang tidak terlihat, atau propertinyaVisiblesalah, Anda dapat menunda perhitungan ini hingga label terlihat dan secara efektif menghilangkannya jika itu jarang terjadi.Excel terjemahan sintaks : Banyak pengguna tahu bahwa ampersand (& ) digunakan untuk perangkaian string dalam Excel. JavaScript menggunakan tanda plus (+), dan bahasa lain menggunakan titik (.).Nama tampilan dan lokalisasi:
First Namedigunakan dalam Power Fx rumus sementaranwind_firstnamedigunakan dalam setara JavaScript. Di Microsoft Dataverse dan SharePoint, ada nama tampilan untuk kolom dan tabel selain nama logika yang unik. Nama tampilan sering jauh lebih ramah pengguna, seperti dalam hal ini, tetapi mereka memiliki kualitas penting lainnya karena mereka dapat dilokalkan. Jika Anda memiliki tim multibahasa, setiap anggota tim dapat melihat nama tabel dan bidang dalam bahasa mereka sendiri. Dalam semua kasus penggunaan, Power Fx memastikan bahwa nama logika yang benar dikirim ke database secara otomatis.
Tidak ada kode
Anda tidak perlu membaca atau menulis Power Fx untuk mulai mengekspresikan logika. Anda dapat mengekspresikan banyak penyesuaian dan logika melalui sakelar sederhana dan penyusun UI. Alat tanpa kode ini dibuat untuk membaca dan menulis Power Fx, jadi ada banyak ruang kepala bagi seseorang untuk mengambilnya lebih lanjut. Namun, alat tanpa kode tidak pernah menawarkan semua ekspresi bahasa lengkap. Bahkan ketika Anda menggunakan penyusun tanpa kode, bilah rumus berada di depan dan tengah dalam Power Apps untuk mendidik pembuat tentang apa yang sedang dilakukan atas nama mereka sehingga mereka dapat mulai mempelajari Power Fx.
Mari kita lihat beberapa contoh. Pada Power Apps, panel properti menyediakan switch dan tombol "tanpa kode" untuk properti kontrol. Pada praktiknya, sebagian besar nilai properti adalah statis. Anda dapat menggunakan pembangun warna untuk mengubah warna latar belakang Gallery. Perhatikan bahwa bilah rumus mencerminkan perubahan ini, memperbarui rumus ke panggilan RGBA yang berbeda. Kapan saja, Anda bisa masuk ke bilah rumus dan mengambil perubahan ini selangkah lebih jauh - dalam contoh ini, dengan menggunakan ColorFade untuk menyesuaikan warna. Properti warna masih muncul di panel properti, tetapi ikon fx muncul saat melayangkan kursor di atasnya dan Anda diarahkan ke bilah rumus. Ini sepenuhnya berfungsi dalam dua cara: menghapus panggilan ColorFade mengembalikan warna ke sesuatu yang dapat dipahami panel properti, dan Anda dapat menggunakannya lagi untuk mengatur warna.
Berikut adalah contoh yang lebih rumit. Galeri memperlihatkan daftar karyawan dari Dataverse. Dataverse memberikan tampilan pada data tabel. Anda dapat memilih salah satu tampilan ini dan rumus berubah untuk menggunakan Filter fungsi dengan nama tampilan ini. Anda bisa menggunakan dua menu drop-down untuk memanggil di tabel dan tampilan yang benar tanpa menyentuh bilah rumus. Tapi katakanlah Anda ingin melangkah lebih jauh dan menambahkan urutan. Anda dapat menambahkan fungsi tersebut di bilah rumus, dan panel properti kembali memperlihatkan ikon fx dan mengarahkan modifikasi ke bilah rumus. Dan sekali lagi, jika Anda menyederhanakan rumus ke sesuatu yang dapat dibaca dan ditulis panel properti, itu dapat digunakan.
Contoh-contoh ini sederhana. Power Fx membuat bahasa yang bagus untuk menjelaskan interaksi tanpa kode. Ringkas, kuat, dan mudah diurai. Ini menyediakan ruang kepala yang sangat sering diperlukan dengan "tidak ada tebing" hingga kode rendah.
Kode profesional
Pembuat kode rendah terkadang membangun solusi yang memerlukan bantuan ahli atau diambil alih oleh pengembang profesional untuk memelihara dan meningkatkan. Para profesional juga mengetahui bahwa pengembangan kode rendah dapat lebih mudah, lebih cepat, dan lebih hemat biaya daripada membangun alat bantu profesional. Tidak setiap situasi memerlukan kemampuan penuh Visual Studio.
Profesional ingin menggunakan alat profesional untuk menjadi paling produktif. Anda dapat menyimpan rumus Power Fx dalam file sumber YAML, yang mudah diedit dengan menggunakan Visual Studio Code, Visual Studio, atau editor teks lainnya. Menyimpan rumus dalam file YAML memungkinkan Anda menempatkan Power Fx di bawah kontrol sumber dengan menggunakan GitHub, Azure DevOps, atau sistem kontrol kode sumber lainnya.
Power Fx mendukung komponen berbasis rumus untuk berbagi dan digunakan kembali. Ini mendukung parameter untuk properti komponen, memungkinkan pembuatan fungsi murni yang ditentukan pengguna dengan lebih banyak peningkatan di jalan.
Selain itu, Power Fx sangat bagus untuk menggabungkan komponen dan layanan yang dibangun oleh profesional. Konektor siap pakai menyediakan akses ke ratusan sumber data dan layanan web. Konektor kustom memungkinkan Power Fx untuk berbicara dengan layanan web REST apa pun. Komponen kode memungkinkan Power Fx berinteraksi dengan JavaScript yang sepenuhnya kustom di layar dan halaman.
Prinsip desain
Sederhana
Power Fx dirancang untuk menargetkan audiens pembuat, yang anggotanya tidak dilatih sebagai pengembang. Jika memungkinkan, bahasa ini menggunakan pengetahuan yang sudah diketahui audiens ini atau dapat mengambil dengan cepat. Jumlah konsep yang diperlukan agar berhasil tetap minimum.
Menjadi sederhana juga bagus untuk pengembang. Untuk audiens pengembang, Power Fx bertujuan untuk menjadi bahasa kode rendah yang mengurangi waktu yang diperlukan untuk membangun solusi.
Konsistensi Excel
Bahasa Microsoft Power Fx sangat meminjam dari bahasa rumus Excel. Ini memanfaatkan pengetahuan dan pengalaman Excel dari banyak pembuat yang juga menggunakan Excel. Jenis, operator, dan fungsi semantik sedekat mungkin dengan Excel.
Jika Excel tidak memiliki jawaban, Power Fx selanjutnya akan melihat ke SQL. Setelah Excel, SQL adalah bahasa deklaratif berikutnya yang paling umum digunakan dan dapat memberikan panduan tentang operasi data dan berkarakter kuat yang tidak dilakukan Excel.
Deklaratif
Pembuatnya menjelaskan apa yang mereka ingin dilakukan oleh logika mereka, tidak persis bagaimana atau kapan melakukannya. Pendekatan ini memungkinkan pengkompilasi untuk mengoptimalkan dengan melakukan operasi secara paralel, menugaskan pekerjaan hingga diperlukan, dan melakukan prefetching dan menggunakan kembali data yang di-cache.
Misalnya, dalam lembar kerja Excel, penulis menentukan hubungan di antara sel tetapi Excel memutuskan kapan dan dalam urutan apa untuk mengevaluasi rumus. Demikian pula, Anda dapat menganggap rumus dalam aplikasi sebagai "recalc-ing" sesuai kebutuhan berdasarkan tindakan pengguna, perubahan database, atau peristiwa timer.
Fungsional
Gunakan fungsi murni yang tidak memiliki efek samping. Pendekatan ini menghasilkan logika yang lebih mudah dipahami dan memberi kompilator kebebasan paling untuk dioptimalkan.
Tidak seperti Excel, aplikasi berdasarkan sifatnya melakukan mutasi status. Misalnya, aplikasi memiliki tombol yang menyimpan perubahan ke rekaman dalam database. Oleh karena itu, beberapa fungsi memiliki efek samping, meskipun membatasi efek samping ini sebanyak yang praktis.
Komposisi
Jika memungkinkan, tambahkan fungsionalitas yang terdiri dengan baik dengan fungsionalitas yang ada. Anda dapat menguraikan fungsi yang kuat menjadi bagian yang lebih kecil yang dapat Anda gunakan dengan lebih mudah secara independen.
Misalnya, kontrol Galeri tidak memiliki properti Sort dan Filter terpisah. Sebagai gantinya Sort , Anda menyusun fungsi dan Filter bersama-sama menjadi satu Items properti. Anda melapisi UI untuk mengekspresikan Sort dan Filter perilaku di atas Items properti dengan menggunakan editor dua arah untuk properti ini.
Ketikan yang ampuh
Jenis semua nilai diketahui pada waktu kompilasi. Pendekatan ini memungkinkan deteksi dini kesalahan dan saran yang kaya saat penulisan.
Jenis polimorfik didukung, tetapi sebelum Anda dapat menggunakannya, Anda harus menyematkan jenisnya ke jenis statis dan jenis tersebut harus diketahui pada waktu kompilasi. Fungsi IsType dan AsType disediakan untuk tipe pengujian dan kasting.
Inferensi Tipe
Tipe diambil dari penggunaannya tanpa dideklarasikan. Misalnya, mengatur variabel ke angka menghasilkan tipe variabel yang ditetapkan sebagai angka.
Hasil penggunaan tipe yang bertentangan dalam kesalahan waktu susun.
Pemisah desimal peka lokal
Beberapa wilayah di dunia menggunakan titik (.) sebagai pemisah desimal, sementara yang lain menggunakan koma (,). Excel mengikuti konvensi regional ini. Bahasa pemrograman lainnya umumnya menggunakan titik kanonis (.) sebagai pemisah desimal untuk semua pengguna di seluruh dunia. Untuk menjadi sedekat mungkin bagi pembuat di semua tingkatan, penting bahwa 3,14 adalah angka desimal bagi seseorang di Prancis yang telah menggunakan sintaks itu sepanjang hidup mereka.
Pilihan pemisah desimal memiliki dampak berantai pada pemisah daftar, yang digunakan untuk argumen panggilan fungsi, dan operator penautan.
| Pemisah desimal bahasa penulis | Pemisah desimal Power Fx | Pemisah daftar Power Fx | Operator penautan Power Fx |
|---|---|---|---|
| . (titik) | . (titik) | , (koma) | ;(titik koma) |
| , (koma) | , (koma) | ;(titik koma) | ;; (titik koma ganda) |
Informasi lebih lanjut: Dukungan global
Tidak berorientasi objek
Excel tidak berorientasi objek, dan juga Power Fx. Contohnya, dalam beberapa bahasa, panjang string dinyatakan sebagai properti string seperti "Halo Dunia".length di JavaScript. Excel dan Power Fx sebagai gantinya mengekspresikan hal ini dalam fungsi sebagai Len( "Halo Dunia" ).
Komponen dengan properti dan metode berorientasi objek dan Power Fx berfungsi di situ dengan mudah. Tetapi jika memungkinkan, lebih suka pendekatan fungsional.
Dapat diperluas
Pembuat dapat membuat komponen dan fungsi mereka dengan menggunakan Power Fx itu sendiri. Pengembang dapat membuat komponen dan fungsi dengan menulis JavaScript.
Ramah pengembang
Meskipun pembuat adalah target utama, cobalah untuk ramah pengembang sedapat mungkin. Jika tidak bertentangan dengan prinsip desain yang dijelaskan sebelumnya, lakukan hal-hal dengan cara yang dihargai pengembang. Misalnya, Excel tidak memiliki kemampuan untuk menambahkan komentar, jadi gunakan komentar baris seperti C dan sebaris.
Evolusi Bahasa
Bahasa pemrograman yang berkembang diperlukan sekaligus rumit. setiap orang—tentu—khawatir bahwa perubahan, tidak peduli seberapa baik niatnya, mungkin merusak kode yang ada dan mengharuskan pengguna untuk mempelajari pola baru. Power Fx menganggap serius kompatibilitas mundur, tetapi tim Power Fx juga sangat percaya bahwa mereka tidak akan selalu mendapatkannya dengan benar pertama kalinya dan bahwa komunitas dapat secara kolektif mempelajari apa yang terbaik. Bahasa pemrograman harus berkembang, dan Power Fx dirancang untuk mendukung evolusi bahasa sejak awal.
Setiap dokumen Power Fx yang disimpan menyertakan stempel versi bahasa. Jika tim Power Fx ingin membuat perubahan yang tidak kompatibel, mereka menulis apa yang mereka sebut "back compat converter" yang secara otomatis menulis ulang rumus saat berikutnya diedit. Jika perubahan adalah sesuatu yang utama yang perlu dididik pengguna, aplikasi akan menampilkan pesan dengan tautan ke dokumen. Dengan menggunakan fasilitas ini, Power Fx masih dapat memuat aplikasi yang dibangun dengan versi pratinjau Power Apps dari beberapa tahun yang lalu, terlepas dari semua perubahan yang terjadi sejak saat itu.
Misalnya, tim Power Fx memperkenalkan ShowError fungsi untuk menampilkan banner kesalahan dengan latar belakang merah.
Pengguna menyukainya, tetapi mereka juga meminta cara untuk menunjukkan banner sukses (latar belakang hijau) atau spanduk informasi (latar belakang biru). Jadi, tim datang dengan fungsi yang lebih umum Notify yang mengambil argumen kedua untuk jenis pemberitahuan. Tim bisa saja menambahkan Notify dan tetap ShowError seperti itu, tetapi sebaliknya mereka mengganti ShowError dengan Notify. Mereka menghapus fungsi yang sebelumnya dalam produksi dan menggantinya dengan sesuatu yang lain. Karena akan ada dua cara untuk melakukan hal yang sama, perubahan ini akan menyebabkan kebingungan—terutama bagi pengguna baru—dan, yang terpenting akan menambah kompleksitas. Tidak ada yang mengeluh, semua orang, senang dengan perubahan tersebut, dan kemudian beralih ke fitur Beri tahu berikutnya.
Ini adalah tampilan aplikasi yang sama bila dimuat ke versi terbaru Power Apps. Tidak ada tindakan yang diperlukan oleh pengguna untuk mewujudkan transformasi ini, itu terjadi secara otomatis ketika aplikasi dibuka.
Dengan menggunakan fasilitas ini, Power Fx dapat berkembang lebih cepat dan lebih agresif daripada sebagian besar bahasa pemrograman.
Tidak ada nilai yang tidak dapat didefinisikan
Beberapa bahasa, seperti JavaScript, menggunakan konsep nilai yang tidak terdefinisi untuk variabel yang tidak diinisialisasi atau properti yang hilang. Demi kesederhanaan, Power Fx menghindari konsep ini. Instans yang tidak terdefinisi dalam bahasa lain diperlakukan sebagai kesalahan atau nilai kosong. Contohnya, semua variabel yang tidak diinisialisasi dimulai dengan nilai kosong. Semua jenis data dapat menggunakan nilai kosong.
Artikel terkait
Jenis data
Operator dan pengidentifikasi
Tabel
Variabel
Logika imperatif
Dukungan global
Tata bahasa ekspresi
Tata bahasa rumus YAML
Rumus di aplikasi kanvas