今天看啥  ›  专栏  ›  这里的文章值得一看

「韭菜防割」分辨一个 JS Github 仓库的好坏

这里的文章值得一看  · 掘金  ·  · 2018-11-02 09:11

这个人开始卖书了,开始开 live 了。然后有人说,如何判断一个人技术是否水、是否是商业互吹、是否xxx?


有人说,看 Github;又有人说,星多没用,可以刷的。而我说,刷是没用的,代码是你的痕迹,仓库的维护同样展示了你的性格、技术、认真程度。


那么,当一个人 post 自己的 github 作为简历或者是背书的时候,我们应该怎么看呢?


技术人的 Commit 情况

每当我们用自己账号给 github 上的仓库做贡献的时候,这里就会打上一个绿点,长期保持绿点的同学一定是经常给自己的仓库提交代码。虽然可以用脚本实现自动 commit,但是其实无法作弊。


因为,每一个 commit 都可以被查到。所以作弊没什么用,用自动刷 commit 的脚本的人,也不会用这个来证明自己很爱写代码。


因此,对于一个不刷 commit 的人来说,长期保持对自己项目的 commit 是一种非常难得的精神,这至少证明了,这个兄弟很爱写代码


一个仓库的情况

watch/star/fork 这三个是最后才看的,因为并不代表这三个东西多,这个项目就是牛逼的项目,虽然普遍情况是如此,但是对于一些别有用心,找某宝刷星的同学来说,这就不是这样了。所以,这三个一般都不作为参考的第一标准


仓库来源 egg.js

我们以 egg 为例子:

eggjs 是由阿里巴巴出品的一款企业级框架,其代码的严谨、细腻,文档清晰程度超越了大部分的 js 库。是一款值得信赖的企业级 node.js 框架
  • eslintrc eslintigonre :一款正规项目中,这两个东西是必须有的。这两个代表着这个项目是否使用了 eslint 这款 style check 工具。不要小看代码风格的检测,在一定程度上反应了项目维护者是否参与过大型项目的经验。在大型项目中,多个程序员的代码风格不一致的解决方案,就是通过 commit 的自动 lint 规则所约束的。
  • .gitignore:没有 .igitignore 的项目千万别用,这几乎就证明了作者根本不会 git,也代表着这个人或许根本没有过团队协作的经验,甚至没有代码版本管控的经验,如果是实习生就算了,某些人如果一个项目说开源,没有这个东西,那简直就是灾难的。.gitignore 的存在是为了保证某些在编译时期生成的东西不被上传到 github,在前端而言, node_modules 是绝对不能上传到 github 的,通过 .igitignore 可以忽略掉 node_modules。
  • test:不好意思,一个项目你可以没有描述或者你可以说代码就是文档,但是你的项目没有任何的 test ,这也可以证明了,你没有负责过中大型项目、甚至可以说,你对你写的代码过于自信
  • 测试覆盖率:一个项目是否有测试,测试的覆盖率又是多少,这足以证明了这个项目是否是一个好项目。为什么说 egg 不是一个kpi 项目的根本原因就在这里,框架的 test-case 非常齐全,覆盖率也是惊人的高 99%-100%。


项目结构大约是这几个比较重要和参考点


项目的 commit 情况


项目的每一个 commit 应该保持较为清晰的描述,并且非常推荐带上 commit 头,如:

  • docs,文档类修改
  • fix,bug 修复
  • feat,升级、新增特性
  • test,新增、修改测试

等等,每个 commit 清晰的目的在于能够知道这个 commit 到底是干嘛了,鉴于某些项目是这样的:

  • 升级了
  • update
  • change
  • fix
  • ...

省省吧。。。。


技术人的星情况

星是可以刷的,但是代码不可以。但是夹在这其中的还有一种情况就是 pr 项目,当你获得一定贡献以后,你 pr 的项目会在你的面板中出现,虽然这个项目不是你的,但是他的星“好像是你的“


那么,我们应该如何鉴别这样的情况呢?

以大神 dan 为例子,他不是 react 的创始人,项目也不是他一个人在做,他只是对 react 有贡献,具体贡献了多少,应该这样去查看:

dan 老大威武

Dan 作为 react team 的核心成员,为 react 贡献了 30w 行代码,commit 数量也是最多的,这也就证明了,目前他是这个项目的主要维护者之一。那么这个人在这个项目中的作用至少从 commit 数量来看,举足轻重。


当然,有些人蹭 pr 改文档,也算是 github 的贡献,但是他是不是大神,就很难说了

例如在 react 贡献者中:

这个兄弟修改的都是 react docs ,那么只能说明这个人比较的熟悉 react 的 docs了。


总结:

  • 项目星是最没用的,当然有时候也是最有用的
  • 在钻进去看代码之前,可以看看项目的结构、规划以及一些常见的东西是否齐全,就可以判断这个项目是否值得去看
  • 没有 test 的项目基本是垃圾项目
  • 星多但是代码不行的人(不包括 awesome 等 md 项目)或者甚至没有 github 的人出的 live 千万谨慎。
  • 当然,星多、代码写得好,也不一定就能讲得好。因为演讲、传授是另一个技术活。




原文地址:访问原文地址
快照地址: 访问文章快照