1. 程式人生 > 其它 >打卡MatrixCamp活動,成為了MatrixOne社群的一員

打卡MatrixCamp活動,成為了MatrixOne社群的一員

初識

   一週前,在一個數據庫技術交流群中,偶然看見了群友轉發的這個活動。當時點進去一看,竟然是分散式資料庫領域的寫函式的活動。由於自己之前在學6.824和6.830,對分散式、資料庫、Go語言都產生了興趣,所以看見這次的活動自己變得很興奮,立即就點進連結報名了,當天就領取到了屬於自己的函式。

 

 

 

 

參與其中

1.看文件

  領取了自己的函式後就開始看文件並著手進行除錯開發了。首先根據開發文件中的指示,看完了示例abs()函式的實現過程。第二步開始看如何為社群貢獻程式碼的文件,按照文件中的工作流程來進行開發並在Github上提交修改。

2.安裝MatrixOne

按照安裝單機版MatrixOne文件

,在我們本地安裝好MatrixOne 

3.寫程式碼

前提:熟悉Golang語言的基礎語法、go mod 包管理工具、make工具的使用即可。

完成的程式碼展示:

 

說幾個需要注意的點:

Acos函式的定義域是[-1,1],所以我們要注意判空。這裡需要注意我們的空值不應該為NaN,而是NULL

 

results := encoding.DecodeFloat64Slice(resultVector.Data)
                results = results[:len(origVecCol)]
                nulls.Set(resultVector.Nsp, origVec.Nsp)
                acosResult :
= acos.AcosUint8(origVecCol, results) if nulls.Any(acosResult.Nsp) { if !nulls.Any(origVec.Nsp) { resultVector.Nsp = acosResult.Nsp } else { resultVector.Nsp.Or(acosResult.Nsp) } } resultVector.Col
= acosResult.Result return resultVector, err

 

 4.測試

本地單元測試:需要自己寫測試樣例,注意考慮周全

 

 真實環境中執行:

這裡需要我們把更改的程式碼重新執行下面兩條命令。

$ make config
$ make build

測試後發現結果是正確的:

 

 5.merge提交,等待review

這裡需要贊一下社群的成員,反饋非常的及時!!!

 

 

 

最後,成為Contributor,完結撒花!感謝MatrixOne!!!