diff --git "a/\347\254\254\344\272\214\351\203\250\345\210\206\342\200\224\342\200\224\345\255\246\344\271\240\345\222\214\344\275\277\347\224\250\345\274\200\346\272\220\351\241\271\347\233\256/\345\246\202\344\275\225\346\211\276\345\210\260\351\200\202\345\220\210\350\207\252\345\267\261\345\255\246\344\271\240\345\222\214\344\275\277\347\224\250\347\232\204\345\274\200\346\272\220\351\241\271\347\233\256.md" "b/\347\254\254\344\272\214\351\203\250\345\210\206\342\200\224\342\200\224\345\255\246\344\271\240\345\222\214\344\275\277\347\224\250\345\274\200\346\272\220\351\241\271\347\233\256/\345\246\202\344\275\225\346\211\276\345\210\260\351\200\202\345\220\210\350\207\252\345\267\261\345\255\246\344\271\240\345\222\214\344\275\277\347\224\250\347\232\204\345\274\200\346\272\220\351\241\271\347\233\256.md" index d1a79413cbabac76f9a2369739d2a6fc4165ec55..be6e28edd189da83523d1e0eb1686f8d8088f2e8 100644 --- "a/\347\254\254\344\272\214\351\203\250\345\210\206\342\200\224\342\200\224\345\255\246\344\271\240\345\222\214\344\275\277\347\224\250\345\274\200\346\272\220\351\241\271\347\233\256/\345\246\202\344\275\225\346\211\276\345\210\260\351\200\202\345\220\210\350\207\252\345\267\261\345\255\246\344\271\240\345\222\214\344\275\277\347\224\250\347\232\204\345\274\200\346\272\220\351\241\271\347\233\256.md" +++ "b/\347\254\254\344\272\214\351\203\250\345\210\206\342\200\224\342\200\224\345\255\246\344\271\240\345\222\214\344\275\277\347\224\250\345\274\200\346\272\220\351\241\271\347\233\256/\345\246\202\344\275\225\346\211\276\345\210\260\351\200\202\345\220\210\350\207\252\345\267\261\345\255\246\344\271\240\345\222\214\344\275\277\347\224\250\347\232\204\345\274\200\346\272\220\351\241\271\347\233\256.md" @@ -1 +1,32 @@ -> 可通过语言、领域、应用场景、项目水平判断等几个方面来阐述 \ No newline at end of file + +## 1.技术栈 +首先要明白自己的技术栈是什么,使用什么语言做开发,通过首页的关键字搜索,选择相对应的技术栈。其次要明白自己的水平。选择相对应水平的开源项目,能够更好的学习。对于项目的源代码,学习初期,可以不做深入的学习。只需要了解项目的大概架构 + +## 2. Star 数量 + +首页关键字搜索之后,一般来说会优先按照 Star 来排序,Star 数高不代表一定是最好的,但是起码说明了这个项目的受欢迎程度,不然不会有那么多人都 Star ,在开源的项目上得一个 Star 远比在微信上获得一次「赞赏」难的多。 + +## 3. 项目作者 + +Star 数差不多相同的情况下,我们可以看项目作者的影响力,有影响力的人不一定是最好的选择,但起码说明不会不靠谱。同时也可以看一下作者以往的作品,优秀且靠谱的作者,项目大多都是受人欢迎程度高的,可信赖的。一般来说公司项目是优先于个人项目的。毕竟公司的开发实力是要强于个人的。 + +## 4. README.md + +readme 是关于项目的文档说明,在这个文件中会详细说明 **项目名及简介**,**项目背景**,**项目 Logo 和使用截图**,**项目的功能点**,**体验地址**,以及 **如何下载这个项目**:一般情况下 git clone 该项目地址即可,当然你也可以提供其他包管理下载安装方式。**项目依赖**:你需要说明编译运行这个项目前需要哪些依赖。**安装**:你需要说明如何编译安装/运行这个项目。**部署**:如果这个项目可以部署的话,请最好注明部署要注意的事项。**Debug 方法**:理想状况下,你的用户会顺利编译并运行这个项目,但你要确保用户遇到了问题不会来打扰你(如提交 Issues),你还需要提供用户可能会遇到的常见问题。 + + +## 5. 最后更新时间、Issues、Fork + +对于开源项目来说最怕的是作者不维护,这就意味着之后再也不会有改进了,并且出了问题也很难被迅速解决。除了最后更新时间之外,Issues数量以及作者回复的速度与比例,Forks 数量等都是体现该项目被关注程度以及流行程度,都是很不错的参考指标。 + +## 6. 开源协议 + +使用开源项目也要遵守一定的原则的,即所谓的开源协议,常见的开源许可协议有: + +GPL、LGPL、BSD、Apache Licence vesion 2.0、MIT。 + +这些协议不做过多解释,除了GPL协议需要注意外,GPL 协议规定使用了该开源库的代码也必须遵循 GPL 协议,也就是说也得开源,不适应于商业项目。其他协议多少也都会有些条件限制,但是影响不大。目前为止 MIT 应该算是用的最多的开源协议了。 + +## 7.总结 + +#### 综合评估的指标下,选择一个相对来说成熟并且适合你自己的就好了。