我推荐的这些项目,我自己都在实际开发环境中使用过,目前暂时没有遇到副作用,当然也不排除存在副作用,当然了,就目前web应用开发而言,还没有遇到严重影响项目对外提供正常服务。另外这些开源项目的源代码都是对外完全开放的,大家如果觉得它只能满足大部分需求,不满足特定需求,可根据个人能力或团队能力自行改造。
正如jeesite对MyBatis那样,jeesite觉得MyBatis不符合其实现零编程的想法,就自己对MyBatis加以改造,改造后的MyBatis其零编程的思想(通过界面配置生成代码和界面,不管是单表还是多表,还是其他复杂的逻辑,基本都能通过界面配置完成,使程序员脱离了重复性编程)在项目开发中,发挥的非常不错,但是我个人从公司开发的角度思考觉得还是有风险的,需要慎用或是不用,记得《不止代码》中提过,任何开源新项目不可忽略之重要因素就是Bug。哪怕是像Spring或者SpringBoot及其MyBatis等国外大牛开发的项目,或是我们Java开发者开发中所使用的API都或多或少是存在Bug的。Spring、MyBatis及其SpringBoot与jeesite相比,在业界广泛应用,其文档和国内资源相比新兴的jeesite4.0要丰富的多,而且jeesite其本身就是用这些技术,可以说jeesite的基石就包含它们。不可靠原因,其开源作者并未对核心代码开源,主要是持久层代码和工作流,导致有的时候排查问题会有阻碍,如果一旦使用,意味着存在许多未知的危险,有的时候因为这些未知的风险,可能会使项目产生停顿,这就不得不慎用开源项目。不开源也是可以理解的,因为该开源项目开发者们主要靠其盈利,更何况中国人的学习能力是非常强大的,为了避免和减少损失,只得闭源,我想这也是国外IT技术为什么比国内要厉害的原因之一,国外的创新能力和分享精神是值得我们国内IT界人士学习的。
总而言之,对于公司的项目所使用的技术,最好是非常熟练,达到精通是最好的。而像jeesite这种开源项目,很多时候出问题,该团队一时半会也无法及时解决,而我们团队并不是开发者,因此排查问题和解决问题,一方面需要时间的,另外一方面需要理清代码实现思路,而且最后也不一定能解决,特别是项目赶进度的时候,这个时候是不允许停滞不前的。在这声明下,并不是说jeesite不好,而是使用开源项目要慎重,孙子曰:兵者,国之大事,死生之地,存亡之道,不可不察也。软件开发,同样如此。技术实现业务,技术的质量,关系到项目的存亡,项目的存亡,关系到公司的前途。
《不止代码》中那篇专门讲使用开源项目文章的题目叫:
使用开源项目的正确姿势,血和泪的总结
地址为;http://techforum-img.cn-hangzhou.oss-pub.aliyun-inc.com/1530517140411/Codelife.pdf?Expires=1535727727&OSSAccessKeyId=LTAIAJ2WBIdlRPlb&Signature=HkU5boegM1NsoXqa%2BnTOCqe6TFQ%3D
朋友们可以看看
推荐开源项目一
项目名:Hutool
项目地址:https://gitee.com/loolly/hutool
项目详细文档指南:http://hutool.mydoc.io/
推荐理由:集成开发常用工具类,减少我们自行编写工具类成本,直接复用现成的即可,利于开发效率的提高。该开源项目广泛应用其诸如其他开源项目,目前我公司就使用该开源项目,就目前而言,当有某些业务需求,需要工具类时,直接参考该文档,直接引用即可。当然了,实际业务充满复杂性和多变性,Hutool并不能满足其特定需求,不过就普遍性原则,还是比较适用的。
推荐开源项目二
项目名:MyBatis Plus
项目地址:https://gitee.com/baomidou/mybatis-plus
项目架构原理pdf地址:https://gitee.com/baomidou/mybatis-plus/attach_files
项目文档指南:http://mp.baomidou.com/#/
推荐理由:正如开源项目作者所说的那样,MyBatis Plus对于MyBatis只做增强不做改变。简化开发。我们公司的第二个项目和第三个项目就是用它来开发的,就目前而言,生产环境没有因为加入它的缘故出大问题或者小问题。MyBatis Plus上手非常容易,只要用过MyBatis的朋友们,学它分分秒的事。
我的关于MyBatis Plus文章系列地址为:https://www.cnblogs.com/youcong/category/1213059.html
有不少开源项目就用它作为持久层,比如guns,renren-fast
大家可以做参考。
推荐开源项目三:
项目名:EasyPoi
项目地址:https://gitee.com/lemur/easypoi
项目详细文档指南:http://www.afterturn.cn/doc/easypoi.html
推荐理由:EasyPoi本质上还是Poi,只不过其将Poi的繁杂进行封装和升级。EasyPoi的使用同样也非常简单,自从用了EasyPoi发现报表相关功能做的是越来越快了。
推荐开源项目四:
项目名:t-io
项目地址:https://gitee.com/tywo45/t-io
项目详细文档:https://t-io.org/blog/index.html?p=%2Fblog%2Ftio%2Fintro%2Fintro.html
推荐理由:正如t-io所说的那样,“让大家没有难开发的网络编程”。
小结:
虽说复用开源项目以达到开发效率提高的目的,但是我还是要建议朋友们,也包括提醒我自己,在使用开源项目前,能不能“物尽其用”,也就是现在使用的技术能不能实现,以及实现的成本是多少,实现后维护方面又会怎么样,最后就是性能方面等等。而不是一时半想象一番或者随便百度搜搜觉得难,就去码云或者github上找找开源项目拿来直接用(顶多就是简单例子,测试几遍,发现达到预期效果后,就不管了),记得我当初将MyBatis Plus引用到公司项目中就是如此,关于这一点我觉得自己有必要对MyBatis Plus的架构原理十分清楚才行,不然以后随着项目越来越大,根据业务进行拆分,到时万一出个什么问题就不好了。孙子曰;知己知彼,方能百战百胜;知己不知彼,一胜一负;不知彼不知己,每战必殆。对于项目实际应用而言,容不得半点差池。