<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          DataQL數(shù)據(jù)查詢引擎

          聯(lián)合創(chuàng)作 · 2023-09-28 12:01

          什么是DataQL?

          DataQL(Data Query Language)DataQL 是一種查詢語言。旨在通過提供直觀、靈活的語法來描述客戶端應(yīng)用程序的數(shù)據(jù)需求和交互。

          數(shù)據(jù)的存儲(chǔ)根據(jù)其業(yè)務(wù)形式通常是較為簡單的,并不適合直接在頁面上進(jìn)行展示。因此開發(fā)頁面的前端工程師需要為此做大量的工作,這就是 DataQL 極力解決的問題。

          例如:下面這個(gè) DataQL 從 user 函數(shù)中查詢 id 為 4 的用戶相關(guān)信息并返回給應(yīng)用。

          1
          2
          3
          4
          5
          return userByID({'id': 4}) => {
              'name',
              'sex',
              'age'
          }
          

          返回結(jié)果:

          1
          2
          3
          4
          5
          {
              'name' : '馬三',
              'sex'  : 'F',
              'age'  : 25
          }
          

          在比如:性別數(shù)據(jù)的字典映射,為此您可以通過 DataQL 的表達(dá)式進(jìn)行快速的轉(zhuǎn)換。從而無需任何服務(wù)端和前端的開發(fā)。

          1
          2
          3
          4
          5
          return userByID({'id': 4}) => {
              'name',
              'sex' : (sex == 'F') ? '男' : '女' ,
              'age' : age + '歲'
          }
          

          返回結(jié)果:

          1
          2
          3
          4
          5
          {
              'name' : '馬三',
              'sex'  : '男',
              'age'  : '25歲'
          }
          

          還可以定義一個(gè)查詢函數(shù)來重用這一邏輯。

          1
          2
          3
          4
          5
          6
          7
          8
          var sex_str = (sex) -> {
              return (sex == 'F' ? '男' : '女');
          }
          return userByID({'id': 4}) => {
              'name',
              'sex' : sex_str(sex),
              'age' : age + '歲'
          }
          

          架構(gòu)

          特性

          DataQL 有一些設(shè)計(jì)原則,這也使其成為有一定的特性。

          • 層次結(jié)構(gòu):多數(shù)產(chǎn)品都涉及數(shù)據(jù)的層次結(jié)構(gòu),為了保證結(jié)構(gòu)的一致性 DataQL 結(jié)果也是分層的。

          • 數(shù)據(jù)為中心:前端工程是一個(gè)比較典型的場景,但是 DataQL 不局限于此(后端友好性)。

          • 弱類型定義:語言中不會(huì)要求聲明任何形式的類型結(jié)構(gòu)。

          • 簡單邏輯:具備簡單邏輯處理能力:表達(dá)式計(jì)算、對象取值、條件分支、lambda和函數(shù)。

          • 編譯運(yùn)行:查詢的執(zhí)行是基于編譯結(jié)果的。

          • 混合語言:允許查詢中混合任意的其它語言代碼,典型的場景是查詢中混合 SQL 查詢語句。

          • 類 JS 語法:類JS語法設(shè)計(jì),學(xué)習(xí)成本極低。

          基于這些原則和特性,DataQL變?yōu)闃?gòu)建應(yīng)用程序的強(qiáng)大而高效的環(huán)境。

          目前 DataQL 提供了 Java 版的指令執(zhí)行引擎,使用這個(gè)引擎您只需要依賴一個(gè) Jar 包即可。任何一個(gè)Web應(yīng)用或者 Spring Boot 的 jar 應(yīng)用使用都變得非常容易。

           

           

          請注意 DataQL 不是一門腳本語言,它對邏輯的處理僅限于簡單場景。DataQL 的解決問題的重點(diǎn)集中在:數(shù)據(jù)的聚合和轉(zhuǎn)換以及過程中的簡單加工處理。

          瀏覽 29
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  www.豆花福利视频 | 久久人妻人人操 | 久久久久久久香蕉视频 | 国产黄色电影网站 | 成人黄色av |