DataQL(Data Query Language)新型查詢語言


什么是DataQL?

DataQL(Data Query Language)DataQL 是一種查詢語言。旨在通過提供直觀、靈活的語法來描述客戶端應用程序的數據需求和交互。
數據的存儲根據其業務形式通常是較為簡單的,並不適合直接在頁面上進行展示。因此開發頁面的前端工程師需要為此做大量的工作,這就是 DataQL 極力解決的問題。

例如:下面這個 DataQL 從 user 函數中查詢Id 為 4 的用戶相關信息並返回給應用。

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

返回結果:

{
    'name' : '馬三',
    'sex'  : 'F',
    'age'  : 25
}

在比如:性別數據的字典映射,為此您可以通過 DataQL 的表達式進行快速的轉換。從而無需任何服務端和前端的開發。

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

返回結果:

{
    'name' : '馬三',
    'sex'  : '男',
    'age'  : '25歲'
}

還可以定義一個查詢函數來重用這一邏輯。

var sex_str = (sex) -> {
    return (sex == 'F' ? '男' : '女');
}
return userByID({'id': 4}) => {
    'name',
    'sex' : sex_str(sex),
    'age' : age + '歲'
}

DataQL架構

在這里插入圖片描述

特性

DataQL 有一些設計原則,這也使其成為有一定的特性。

  • 層次結構:多數產品都涉及數據的層次結構,為了保證結構的一致性 DataQL 結果也是分層的。
  • 數據為中心:前端工程是一個比較典型的場景,但是 DataQL 不局限於此(后端友好性)。
  • 弱類型定義:語言中不會要求聲明任何形式的類型結構。
  • 簡單邏輯:具備簡單邏輯處理能力:表達式計算、對象取值、條件分支、lambda和函數。
  • 編譯運行:查詢的執行是基於編譯結果的。
  • 混合語言:允許查詢中混合任意的其它語言代碼,典型的場景是查詢中混合 SQL 查詢語句。 類 JS
  • 語法:類JS語法設計,學習成本極低。
    基於這些原則和特性,DataQL變為構建應用程序的強大而高效的環境。

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

結束語

DataQL 不是一門編程語言,它是查詢語言。它對邏輯的處理僅限於簡單場景。DataQL 的解決問題的重點集中在:數據的聚合和轉換以及過程中的簡單加工處理。
如有問題,歡迎有問題及時交流。謝謝!下次再介紹怎么使用DataQL.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM