ming-soft / MCMS

完整开源!Java快速开发平台!基于Spring、SpringMVC、Mybatis架构,MStore提供更多好用的插件与模板(文章、商城、微信、论坛、会员、评论、支付、积分、工作流、任务调度等,同时提供上百套免费模板任意选择),价值源自分享!铭飞系统不仅一套简单好用的开源系统、更是一整套优质的开源生态内容体系。铭飞的使命就是降低开发成本提高开发效率,提供全方位的企业级开发解决方案,每月28定期更新版本
http://www.mingsoft.net
MIT License
1.49k stars 662 forks source link

代码质量低下 #88

Closed aboutZZ closed 2 years ago

aboutZZ commented 2 years ago

花十分钟简单看了看你们的源码,想吐槽下

  1. 还在使用老式风格suffix pattern,非要加个.do后缀,不明白意义何在。这玩意我记得是struts2那个时代的风格。Spring boot 早已弃用,建议去除。e.g. /mcms/search.do改为/mcms/search(PS. 你们程序员感觉还是十几年前老一套思想)
  2. Mybaitis plusBaseMapperIService基础上又封装了一层,加入增删改查(queryBySQLsaveEntitydeleteEntity)等方法,但问题是这些操作Mybaitis plus都给你写好了,重复造轮子意义何在
  3. 有些Mapper加了@Component注解,有些没加,麻烦统一下。要么你每个interface上用@Mapper注解,要么你用@MapperSan,我还没有见过用@Component的。说到@MapperSanMSApplication.java里面basePackages竟然有com.baomidou.**.mapper这又是什么骚操作?感觉你们只要程序能运行起来不报错我别的啥都不管
  4. IBaseDao#saveEntityBaseAction#getLocaleString这些方法,标记为deprecated,但是代码里该用还是用,那你标记有啥用。
  5. BaseAction#getLocaleString注释也写错了:推荐使用 BasicUtil.getString,应该是BundleUtil.getLocaleString吧?这样写注释,我开始怀疑程序会不会有其他bug了,连方法都能搞错。其他的getUrlgetDomain等不说了,一样的毛病

希望贵司不是为了KPI而开源,既然开源,咱就把代码写好,不要应付草草了事

killfen commented 2 years ago

谢谢犀利的评价 1、系统从2012年一直更新到现在,结构是传统的MVC模式,简单容易理解,不管是加不加.do都可以访问,是开发者个人意愿,我们强调规范,只要简单易懂我们觉得就可以,不是一味最求新的,这也让mcms的代码识别度高 2、Mybaitis plus 是2020年才开始升级,早期都是我们自己实现,提一个问题Mybatis plus能做复杂的关联且要进行多个数据库适配真方便? 3、这个的确有些插件存在这种情况,的确需要规范一下 4、因为Mcms老的版本用户都还在用。会在大版本更新的时候会彻底移除(就像jdk、spring也有过期方法但也不会说一升级版本就彻底拿掉,影响太大) 5、BasicUtil.getString 国底层单独抽离的方法,是从原来的控制层,迁移到BasicUtil工具类。

最后还是感谢您评论,

aboutZZ commented 2 years ago