其他分享
首页 > 其他分享> > 打卡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!!!

 

标签:MatrixCamp,acosResult,results,Nsp,文档,MatrixOne,打卡,resultVector
来源: https://www.cnblogs.com/JasonPeng1/p/16106864.html