到目前為止,我已經參加了9 場黑客馬拉松,其中一場是國際比賽,甚至在4 場比賽中獲勝。話又說回來,當我的學弟 Dhruv 和 Tushar 告訴我關於 Golang Specific 的黑客馬拉松時,我把 Harsh 也拉了過來,因為為什麼不呢。不只是 Harsh,我還拉了我們 Point Blank 團隊的 40 個人一起參加,這最終讓黑客馬拉松變成了我們自己的內部競賽,哈哈。
我們團隊中的所有人GoGoingGone(lmao)都有使用 Golang 的良好經驗,但我們想做的不僅僅是建立另一個工具。我們想要創新。就在那時,這個想法突然出現—讓我們建立一個迷你語言來定義動態、可設定的資料管道。
我是 Akash Singh,來自班加羅爾的三年級工程專業學生和開源貢獻者。
這是我的 LinkedIn、GitHub 和 Twitter
我在網路上的名字是SkySingh04。
Fractal 最初是一種資料處理工具,用於從遺留系統(例如 SQL 資料庫和 CSV 檔案)無縫遷移到現代平台,例如 MongoDB 或 AWS S3。但我們想要的不僅僅是另一個 ETL 工具。我們的想法是使其高度靈活且用戶友好,允許用戶使用簡單的聲明性語法(一種迷你語言)定義驗證和轉換規則在工具內。
我們觀察到資料管道空間中的大多數工具都依賴嚴格的配置或自訂腳本。這種方法通常需要大量的程式設計專業知識,這限制了非開發人員的可訪問性。聲明性迷你語言提供:
這種迷你語言不是要重新發明輪子,而是要提供一個抽象來簡化資料轉換和驗證。
當這與簡單的 yaml 檔案配置相結合時,我們認為我們已經達到了目標,即創建一個易於配置的資料管道,可以大規模地將資料從一個來源處理到另一個來源。
我們將文法設計得簡單而富有表現力,並專注於兩個主要操作:
這種抽象允許使用者以最少的努力處理不同的資料集,從而提高生產力並降低複雜性。
在弄清楚如何製作這種語言的詞法分析器和解析器的過程中,GoFr.dev 的團隊帶我們上樓參加了一次減壓課程,其中充滿了深夜的 sharayis 和即興演奏!
黑客馬拉松不只是為了創造迷你語言。我們也必須建造周圍的基礎設施,確保分形:
我們將工作分為四個模組:
儘管我們在 GO for GOFR 黑客馬拉松中表現出色,但我們在最終評估過程中面臨嚴峻的挑戰。除了我們錄製的演示之外,評審還要求進行現場演示,不幸的是,我們在現場運行期間遇到了解析器邏輯中的意外錯誤。考慮到在短短24 小時內建立強大的自訂解析器的複雜性,這是一項雄心勃勃的開發功能,雖然我們錄製的演示展示了其功能,但在時間限制下實現100% 的準確性被證明是困難的。這個小問題最終讓我們失去了最高獎項。然而,我們的努力仍然受到高度評價,我們團隊的清晰願景和引人注目的交付為我們贏得了「最佳推介」的榮譽,凸顯了我們的潛力和獨創性。
黑客馬拉松通常是關於突破界限和探索未知領域。 Fractal 是我們重新定義資料處理工具運作方式的嘗試——讓它們變得可存取、模組化且對開發人員友好。
我找不到比這更志同道合的人與我一起工作了,毫無疑問,他們是絕對最好、最勤奮的隊友。期待是什麼讓我參加下一次黑客馬拉松,我敢說,基於 RUST 的黑客馬拉松嗎? xD
查看 GitHub 上的 Fractal
Fractal 是一個靈活的、可配置的資料處理工具,使用 GoFr 和 Golang 建構。 Fractal 旨在處理來自多個來源的資料攝取,應用強大的轉換和驗證,並將輸出傳遞到廣泛的目的地。借助 Fractal,您可以自動化複雜的資料工作流程,而無需管理低階細節 以下是在專案中設定新整合的文件:
自訂語法使用戶能夠:
可以為任何資料來源或目的地撰寫規則,例如JSON、YAML、CSV、SQL 資料庫、訊息代理,或雲端服務。
驗證規則確保資料符合特定的品質和完整性要求。
推廣材料:Drive Link
或自己嘗試一下,讓我們知道您的想法!
以上是為什麼我們為 Golang 黑客馬拉鬆建立迷你語言的詳細內容。更多資訊請關注PHP中文網其他相關文章!