开源项目之架构分享[通俗易懂]

开源项目之架构分享[通俗易懂]此次分享是我当初在开发某个系统时,参考的一些开源项目架构的思路和风格。第一个是Jeesite,它的架构风格如下:大家如果对jeesite感兴趣的话,可以百度搜索找到,不过那已经是半年多以前的事情,jeesite目前也发生较大的变化。当初我在参考jessite这个思路时,不知道是什么原因使我没有加入module,其实从现在的角度出发,加上module也是一件不错的事情,modu…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

此次分享是我当初在开发某个系统时,参考的一些开源项目架构的思路和风格。

第一个是Jeesite,它的架构风格如下:

开源项目之架构分享[通俗易懂]

 

大家如果对jeesite感兴趣的话,可以百度搜索找到,不过那已经是半年多以前的事情,jeesite目前也发生较大的变化。

当初我在参考jessite这个思路时,不知道是什么原因使我没有加入module,其实从现在的角度出发,加上module也是一件不错的事情,module即模块,通过模块来扩展功能,这与我目前以service来扩展功能的思路不谋而合。

jeesite的common思路,我现在也一直再采用,common目前主要是放置常用工具类,不过,因为我们引入了Hutools开源项目,目前common主要是一些数据传输类,例如dto、queryvo或者是其他自定义工具类等等。

jeesite的core思路,我并没有采用,我还是按照service思路,公共模块,例如菜单,权限,用户,组织我将其抽象为一个公共service。

jeesite的web思路,与我现在的做法是一样,不过我考虑的是,一旦后期模块拆分分布式之类的,我可以轻松的通过service思路分离,不过我的service模块耦合度要尽可能低,内聚性高,不然的话,一旦拆分意味着重构,要知道能不重构尽量不重构,重构是一件痛苦的事情。很多中小公司开发团队,时常犯的错误就是为了实现功能,代码质量不做丝毫考虑,当然了,客观上也是因为业务的紧急性和迫切性不得不为之。记得第一个项目给我的阴影已经足够多了,我不想再因为代码质量的问题,陷入无止休的死循环中(改bug,改bug,这是一件要命的事情)。

另外jeesite的一个亮点就是技术选型,它的技术选型,可以说是目前java开发者们,无论是后台还是前端都是比较熟悉的,而且目前资料也十分齐全,学习起来也不是特别难。不过,jeesite还是没有开源,这也是我当初没有采用它的一个重要原因,在我看来,开源意味着源代码对外开放,一旦有问题,我可以通过看源代码来解决,尽管有看不懂的可能性存在,但是好歹可以看吧,看总比不能看要好,这也是我一贯的作风。

 

第二个是iBase4j,它的架构风格如下:

开源项目之架构分享[通俗易懂]

它的这个就更好理解了

iBase4j-Biz-Facade 存放 entity,service等

iBase4j-Biz-Service 存放dao及其xml和实现类,还有配置类等

iBase4j-Biz-Web 存放对应的controller还有配置类

不过我个人觉得它的这个架构设计不是特别好

要是我来设计的话,iBase4j-Biz-Facade我会直接entity,dao,service还有xml文件,iBase4j-Biz-Service专门放实现类,我个人觉得这样看起来无论是从视觉上,还是逻辑上看,都比iBase4j原生设计要好。

当然了,有句话说的好,“情人眼里出西施”或者是“一百个人一百个哈姆莱特”。总而言之,每个人都有每个人的想法。

至于iBase4j-SYS相关的其实与我上面说的iBase4j-Biz是一样的道理。

 

第三个是人人开源(renrne-security),它的架构如下:

开源项目之架构分享[通俗易懂]

 

 

它的这个架构,我认为适合SpringBoot应用开发,renren-admin通常就是后台管理系统,renrne-api用于管理接口文档可作为独立的应用也可以引入admin中,common就不必多说,我想在上面的jeesite中已经说得很详细了。generator,web在线代码生成器,我也写过,感兴趣的可以参考我的这篇博客:https://www.cnblogs.com/youcong/p/9494892.html (JavaWeb在线代码生成器)

我觉得人人开源的这个比较与我接近,所以在多租户架构设计时,我最先想到的就是人人开源,只不过我没有理解好它们之间的关系,同时也没有考虑到技术的局限性,为此我付出了一周多的时间成本。

renren-generator生成的代码,点击表打成zip包(支持批量选择),不过我觉得我的在线代码生成器比它好,但是唯一不足的是,我没有考虑到权限,因此我的代码生成器不是特别完美,但是对于提高开发效率还是有一定的帮助。

 

总结:

今天分享的一共三个开源项目,分别是jeesite、iBase4j、人人开源等。

分享这三个项目,我要告诉大家的不是学会怎么用,而是有的时候,在开发设计的时候,如果自己没有思路的话,特别是架构设计,可以参考下开源项目,也许你会有意向不到的收获。

记得荀子说过一句话,“君子性非异也,善假于物也”。以此话,与IT友友们共勉。

转载于:https://www.cnblogs.com/youcong/p/9800717.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164737.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • phpstorm 激活码(破解版激活)

    phpstorm 激活码(破解版激活),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    49
  • nginx如何处理TIMEWAIT过多?

    nginx如何处理TIMEWAIT过多?在高并发短连接的TCP服务器上,当服务器处理完请求后立刻主动正常连接。这个场景下会出现大量socket处于TIME_WAIT状态。如果客户端的并发量持续很高,此时部分客户端就会显示连接不上。首先先查看tcp连接状态及数量:#netstat-n|awk‘/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}’或者#netstat-ant|awk’/^tcp/{++S[$NF]}END{for(ainS)print(a,S[a])}

    2022年5月2日
    144
  • 树莓派串口调试助手_树莓派4b教程

    树莓派串口调试助手_树莓派4b教程原文链接:https://blog.csdn.net/itisyang/article/details/79968592最新的Raspbian串口连接没有数据输出使用ssh连接树莓派之后-sudoraspi-config-InterfacingOptions-Serial打开串口登录树莓派正常情况串口四根线连接:VCC-5VGND-GNDTX…

    2022年10月10日
    0
  • Oracle数据库运维方案及优化

    Oracle数据库运维方案及优化Oracle数据库优化运维优化文章目录Oracle数据库优化前言:Oracle数据库性能优化一为啥要运维,运维哪些内容?二检查数据库基本状况2.1检查Oracle实例状态2.2检查Oracle服务进程2.3检查Oracle监听状态三检查系统和oracle日志文件四检查Oracle对象状态前言:在上一篇文章中我们讲了关于Oracle数据库的性能方面的优化,这篇文章咱们讲讲关于运维方面的优化吧。上一篇文章的地址:Oracle数据库性能优化一为啥要运维,运维哪些内容?数据库的运维主

    2022年10月22日
    0
  • GIMP 2.10教程「建议收藏」

    GIMP 2.10教程「建议收藏」更新一下(2020-12-27),有大神刚完成人工翻译,质量很好,地址在此:https://www.ycproject.cn/gimp/gimp.html下文可以忽略了GIMP_2.10中文教程(谷歌机翻)GIMP是全平台(桌面)下的Photoshop,专门处理图片的。先放原文地址:https://docs.gimp.org/2.10/zh_CN/(基于2.10.18版)GIMP中文教程太少了,搜了一大圈找到一个靠谱点全一点的,是@笨⼩璀在2014年基于2012年的2.8版翻译的,翻译

    2022年6月17日
    24
  • ios 越狱 真机调试

    ios 越狱 真机调试开发环境:Xcode4.5.2ios设备需要越狱并从Cydia安装appsync安装appsync步骤:1、找到安装的cydia,第一次运行将会弹出提示,选择开发者即可2、在工具栏中选择软件源(iphone/itouch选管理),然后点右上角的编辑3、点左上角添加4、输入源:http://yuan.duowan.com/(多玩的源),点添加源,等待添加完成,然后点返回C

    2022年5月17日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号