什么是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.