java责任链模式审批流程 自学java怎么入门?
自学java怎么入门?
其实编程语言的学习,尤其是对于有编程经验的人来说,应该掌握语言的主要元素,比如几乎每一种语言都有变量、函数、集合(如数组、字典、类、结构等。)、过程控制(if-else、break、continu
Java项目的代码,你们都是怎么设计分层的?分层有什么好处?
在我看来,Java项目分层简直是必须的,即使一个项目是一个人独立开发的,也要进行代码分层;我现在负责的项目没有参考任何代码层次规范,因为项目的框架是我自己搭建的,也是我凭经验设计的,有些地方掺杂了一些个人喜好。
分包我们的项目分几个包,但没有到微服务的程度,因为公司的一些基础不是很完善,比如容器、容器管理工具、持续集成。虽然已经起步,但还不够成熟,无法用于生产环境。毕竟是金融行业,稳定大于创新。
我们的项目现在按照功能模块分成包,比如接口服务、定时服务、前端页面、监控等等;
前端页面是纯前端页面(I m不确定这个描述是否清晰),页面需要的所有数据都是通过调用接口获得的,接口本身不与数据库交互;
其他项目可以独立部署,相关的功能通过MQ解耦。
分层在单个项目中,分层的设计是一样的,类似于主流的代码分层(我们项目的大部分功能都是接口,少数页面功能也分在单独的包里):
DAO层:数据访问对象,数据访问对象,我们用MyBatis,在方法的注释里写SQL语句;
服务层:业务逻辑层,这里其他服务或DAO可能被称为;我觉得有些系统的服务层会分为两部分,一部分是功能单一的业务逻辑,一部分是组合。商业逻辑;个人觉得这个有点繁琐;
控制器层:请求处理层,包括类型转换和参数验证的功能在这里完成;
模型层:数据的实体对象,与数据库列名一致;类名也以型号命名;
领域层:我们为输入参数和返回参数做了一个单独的层,但不与模型层混合;即使一个接口要查询单个表,查询结果也要把Model转换成Domain;我们已经在领域级别标准化了许多字段,以便保持其含义是已知的。领域层的内容确定后,属性名称不变,但模型层的内容允许修改。
其余的是Util、Contants、Config等等。
分层分包和分层的优点看似让代码结构更加复杂,但这种结构的复杂实际上可以降低系统的复杂度:
单一责任:每层代码只负责一类责任,责任边界变得非常清晰;
高内聚、低耦合、易维护:业务逻辑放在一起,可以快速修改,无遗漏;如果业务逻辑分散在多个代码层,修改时需要修改多个代码,必然导致遗漏;上层代码依赖下层代码,清晰,无循环依赖;
高重用性:一个功能是抽象的,可以在多个业务流程中重用。
我会继续分享我对Java开发、架构设计、程序员职业发展等方面的看法,希望得到大家的关注。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。