javaweb项目(JavaWeb项目,你们一般都是怎么设计代码分层的)
我现在负责的项目,并没有遵守什么外部严格的代码分层规范,因为项目的架子都是我一个人搭建的,所以很多地方都是以个人的经验做的设计,甚...
2024-03-22
我现在负责的项目,并没有遵守什么外部严格的代码分层规范,因为项目的架子都是我一个人搭建的,所以很多地方都是以个人的经验做的设计,甚至有些地方掺杂了一些个人的喜好。下面我大概介绍一下,有不赞同的地方,可以留言讨论。
在说单个项目的代码分层之前,先说一下代码的分包。
我们公司现在面临着比较尴尬的问题,一方面新的项目部再是只有一个代码包,希望走微服务的方式,把一个项目拆成多个工程,分别迭代开发和部署;另一方面,很多基础的基础还不是很完善,比如容器、容器管理工具、持续集成,要么是没有,要么是难以用在生产环境中。
所以我们项目只拆分出来五六个工程,包括定式服务、接口服务、前端页面等;除了前端页面这个工程要依赖接口服务之外,其余几个工程彼此可以单独部署,很多功能是通过MQ解耦。
单个工程中,分包都是一样的,也和主流的代码分层差不多:
Model层:就是普通的Jave Bean,数据的实体对象,和数据库列名保持一致;
DAO层:Data Access Object,数据访问对象,我们用的是MyBatis,在方法的注解中写SQL语句;
Service层:业务逻辑层,这里可能调用其他的Service或DAO;
Controller层:请求处理层,包括入参回参的类型转换、入参验证等功能在这里完成;
Domain层:我们把回参单独做了一层,没有和Model层混在一起;就算一个接口要查询一个单表,查询结果也要把Model转成Domain;我们在Domain这一层做了很多字段的标准化,保持见名知意;
剩下的就是Util、Contants、Config等等。
做到现在的阶段,也遇到了一些问题,也在想办法解决:
一些可以通用的类,在几个包中都存在,有的时候修改起来要修改好几个工程,挺麻烦的,准备把这些通用的东西提出来放在单独的一个工程中;
接口现在放在一个工程中,我认为是有些不合理的;接口应该可以分成原子服务和组合服务,这里至少要分成两层,原子服务稳定,改动的频率很低;组合服务应该是快速迭代的,会根据需求不断地修改和增加。但是苦于没有很多基础设施,纯人工的话又很难支持。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如有侵权行为,请第一时间联系我们修改或删除,多谢。
相关文章
我现在负责的项目,并没有遵守什么外部严格的代码分层规范,因为项目的架子都是我一个人搭建的,所以很多地方都是以个人的经验做的设计,甚...
2024-03-22
解答:口袋妖怪漆黑的魅影5 0金手指大全:穿墙:C518E2595ADBAF5B;瞬移:020322E42710;大师球:8CC994DD 6B80B4CC;神
2024-03-22
我是雪上长留马行处,见字如见面。范某庆是山东理工大学数学专业的大四学生,还有三个月就可以毕业了,但他在疫情期间疯狂虐待流浪猫,在猫...
2024-03-22
人气漫画《海贼王》已经更新到了951话,让我们看看这一话到底说了些什么吧!上一话结尾就看到了,罗被霍金斯捉了起来。尽管捉了这一位超新...
2024-03-22
预算20万,没有提具体要求。推荐几款SUV如下:1 本田皓影可以参照CRV,几乎一样,但是外观更年轻顺眼,20万只能买汽油版,噪声表现不是太...
2024-03-22
今天距高考是一百零七天,即将进入最后的百日冲刺,高三备考也进入了知识的系统整合和强化训练的关键阶段,想取得较好的效果就得专心致志全...
2024-03-22
这个 我还有一点点经验分享给你。这个是可以在平台上挣取佣金的。想要知道步骤 往下滑……首先呢,你的有一个属于自己的喜马拉雅平台账号...
2024-03-22
看来波波维奇对湖人是真爱啊!在浓眉表示自己要离开鹈鹕后,湖人总经理魔术师应该是最高兴也最头疼的人,但是波波维奇的表态又让湖人球迷感...
2024-03-22
热门文章
运营干货盘点:随手记为何能做到苹果总榜第五?
幸惠了,亲!法国司米橱柜携手索菲亚衣柜双旦惠
中国线上品牌的国际高光秀
中国江西省景德镇陶艺家姚辉作品欣赏
过年回家,租车走起!(经济聚焦·关注节前消费)