《find innercircle of contour by using pointPolygonTest》
总的来说,参加PR绝对是一件消耗时间精力(特别对于新手),同时收获非常巨大的事情。下面,分几个方面对这次工作进行总结。
一、价值和收益
1、获得名誉、结交高手
这是隐性的收获,但却是绝对重要的收获。在anwseropencv上面的交流,在githup里面提交pr和issue,你所交流的这些人,都是这个方向最为优秀的工程师,和他们进行交流,能够有很多收益。
2、项目理解
正是因为要向项目提交代码,强迫自己必须从结构、细节等多个方面去理解这个项目,绝不是仅够用就可以。这就使得你对项目的理解能够更上层次,进一步地理解项目内容;
更深入的理解,带来的结果,显而易见是在使用的时候能够更得心应手。“你对你所做的了解的越多,则越能够做得更好”
3、代码规范;
我们都说cleanCode,但是你写出来的到底是不是cleanCode,只有一个笼统的概念。OpenCV通过自动构建,你必须按照它的规范来写(严格到多一个空格,或者使用了tab而不是四个空格都不可以),这就要求你必须尽可能地用规范代码编写,养成良好习惯。【附录我会给出一个被拒绝的具体情况】
同时,owner会提示你正确的代码是怎样的(因为他拒绝你总要给个合适理由),往往这些提示都是非常精准的。就是通过这个过程,能够让我写出高质量的代码;
二、成功pr的来源
1、选题必须要恰当
简单的来说,绝对不能为了pr而去pr,而是要在自己的使用OpenCV的过程中,确实发现的问题、确实发现的更好的算法,那么通过pr就能够帮助你将初步的想法变成一套正规的解决方案。
2、代码必须符合规范
相比较逻辑错误,由于代码规范问题导致的错误更容易成为你的绊脚石;
3、把我节奏,注重效率
pr最终还是和人的沟通,那么要注意管理员的活跃时间,以及和他们进行有理有节的“斗争”。
三、关键的工具
1、github desktop
3、buildboot等自动化工具,要首先让代码在本地能够通过包括“代码格式”的审核,然后再上传上去。
PR,特别是对OpenCV这样的伟大项目的PR,应该说非常有价值意义。值得投入时间进行研究,尽快提高PR成功的可能。
p.s
opencv的pr是自动编译的,如果编译不通过,肯定不会被merge,首先要过的就是merge这关
为了稳定,opencv不允许warning,这也是为了编写高质量代码
像这种warning,可能平时写程序的时候,完全不会在意,但是build就不通过。这样对代码质量提出更高要求。
只要告诉我哪里错了,就没有问题。
语言习惯错误
历史版本问题
之前的红的好像过去了
空格都能看出来,厉害
这个时候,管理员介入了,出现了更多错误