看完这篇项目设计规约!你应该就能构建良好的工程结构了

在应用分层架构中,上层依赖下层是默认的设计原则,箭头关系表示直接依赖关系。例如,开放接口层可以直接依赖于web层,也可以直接依赖于service层。以下是对各个层的详细描述和异常处理、领域模型、二方库依赖、服务器规约等方面的规约:

应用分层架构:

开放接口层

可以直接封装Service方法暴露成RPC接口。通过Web封装成接口。进行网关安全控制、流量控制等。

终端显示层

负责各个端的模板渲染和执行显示。主要包括velocity渲染、JS渲染、JSP渲染和移动端展示等。

Web层

主要负责访问控制的转发,各类基本参数校验,或不复用业务的简单处理。

Service层

处理相对具体的业务逻辑。

Manager层

通用业务处理层,具有以下特征:对第三方平台封装的层,预处理返回结果及转化异常信息。对Service层通用能力下沉,如缓存方案、中间件通用处理。与DAO层交互,对多个DAO的组合复用。

DAO层

数据访问层,与底层MySQL、Oracle、HBase等进行数据交互。

外部接口或第三方平台

包括其它部门的RPC开放接口、基础平台、其它企业的HTTP接口。

看完这篇项目设计规约!你应该就能构建良好的工程结构了

分层异常处理规约:

DAO层

产生的异常类型繁多,无法用细粒度的异常进行捕获。使用catch(Exception e)方式,并throw new DAOException(e)。不需要打印日志,因为日志在Manager或Service层一定需要捕获并打印到日志文件中去。如果同台服务器再打印日志,会浪费性能和存储。

Service层

出现异常时,必须记录出错日志到磁盘,尽可能带上参数信息,相当于保护案发现场。

Manager层

如果Manager层与Service同机部署,日志方式与DAO层处理一致。如果是单独部署,采用与Service一致的处理方式。

Web层

Web层绝对不允许继续往上抛异常,因为已经处于顶层。如果意识到这个异常将导致页面无法正常渲染,应该直接跳转到友好错误页面,加上用户容易理解的错误提示信息。

开放接口层

要将异常处理成错误码和错误信息方式返回。

分层领域模型规约:

DO(Data Object)

与数据库表结构一一对应,通过DAO层向上传输数据源对象。

DTO(Data Transfer Object)

数据传输对象,Service或Manager向外传输的对象。

BO(Business Object)

创客贴设计 创客贴设计

创客贴设计,一款智能在线设计工具,设计不求人,AI助你零基础完成专业设计!

创客贴设计 51 查看详情 创客贴设计 业务对象,由Service层输出的封装业务逻辑对象。

AO(Application Object)

应用对象,在Web层与Service层之间抽象的复用对象模型,极为贴近展示层,复用度不高。

VO(View Object)

显示层对象,通常是Web向模板渲染引擎层传输的对象。

Query

数据查询对象,各层接收上层的查询请求。注意超过2个参数的查询封装,禁止使用Map类来传输。

二方库依赖规约:

定义GAV遵循以下规则:

GroupID格式

com.[公司/BU].业务线[.子业务线],最多4级子业务线可选。例如:com.taobao.jstorm, com.alibaba.dubbo.register

ArtifactID格式

产品线-模块名,语义不重复不遗漏,先到中央仓库查证一下。例如:dubbo-client, fastjson-api

Version

主版本号.次版本号.修订号。主版本号:产品方向更改,或大规模的API不兼容,或架构不兼容升级。次版本号:保持相对兼容性,增加主要功能特性,影响范围极小的API不兼容修改。修订号:保持完全兼容性,修复BUG,新增次要功能特性。注意起始版本号为:1.0.0,而不是0.0.1。正式发布的类库必须先去中央仓库进行查证,使版本号有延续性,正式版本号不允许覆盖升级。

线上应用依赖

不要依赖SNAPSHOT版本,除了安全包以外。不依赖SNAPSHOT版本是保证应用发布的幂等性,同时也可以加快编译时的打包构建。

二方库的新增或升级

保持除功能点之外的其它jar包不变。如果有改变,必须明确评估和验证,建议进行dependency:resolve前后信息比对。如果仲裁结果完全不一致,那么通过dependency:tree命令,找出差异点,进行排除jar包。

二方库的枚举类型

二方库可以定义枚举类型,参数可以使用枚举类型,但是接口返回值不允许使用枚举类型或者包含枚举类型的POJO对象。

统一版本变量

依赖于一个二方库群时,必须定义一个统一的版本变量,避免版本号不一致。例如,依赖springframework-core, -context, -beans都是同一个版本号,可以定义一个变量来保存版本${spring.version},定义依赖的时候,引用该版本。

子项目依赖管理

禁止在子项目的pom依赖中出现相同的GroupId,相同的ArtifactId,但是不同的Version。在本地调试时会使用各子项目指定的版本号,但是合并成一个war,只能有一个版本号出现在lib目录中,可能出现线下调试是正确的,发布到线上去出现故障问题。pom文件中的依赖声明放在语句块中,所有版本号仲裁放在语句块中。里只是声明版本,并不实现引入,需要子项目显式的声明依赖,versionscope都读取自父pom。所有声明在主pom的里的依赖都会自动导入,并默认被所有的子项目继承。

二方库配置项

二方库不要有配置项,最低限度不要再增加配置项。为了避免应用二方库的依赖冲突问题,二方库发布者应当遵循以下原则:精简可控原则:移除一切不必要的API和依赖,只包含Service API,必要的领域模型对象,Utils类,常量,枚举等。如果依赖其它二方库,尽量是provided引入,让二方库使用者去依赖具体的版本号。无log的具体实现,只依赖日志框架。稳定可追溯原则:每个版本的变化应该被记录,二方库维护信息,源码位置,都需要能够方便查到。除非用户主动升级版本,否则公共二方库的行为不应该发生变化。

服务器规约:

高并发服务器TCP协议的time_wait时间操作系统默认240秒后,才会关闭处于time_wait状态的连接。在高并发访问下,服务器端会因为处于time_wait的连接数太多,可能无法建立新的连接。所以需要在服务器上调小此等待值。在linux服务器上通过变更/etc/sysctl.conf文件去修改该缺省值。

net.ipv4.tcp_fin_timeout = 30

服务器支持的最大文件句柄数(fd, File Descriptor)

主流操作系统的设计是将TCP/UDP连接采用与文件一样的方式去管理,即一个连接对应于一个fd。主流的linux服务器默认支持的最大fd数量为1024,当并发连接数很大时很容易因为fd不足出现“open too many files”错误,导致新的连接无法建立。需要将linux服务器支持的最大句柄数调高数倍,与服务器内存数量相关。

JVM环境参数设置

给JVM环境参数设置-XX: +HeapDumpOnOutOfMemoryError参数,使JVM遇到OOM场景时输出dump信息。OOM的发生是有概率的,甚至相隔数月才出现一例,出错时的堆内信息对解决问题非常有帮助。在线上生产环境,JVM的Xms和Xmx设置一样大小的内存容量,避免在GC后调整堆大小带来的压力。

服务器重定向

服务器内部重定向使用forward。服务器外部重定向地址使用URL拼装工具类来生成,否则会带来URL维护不一致问题和潜在的安全风险。

以上就是看完这篇项目设计规约!你应该就能构建良好的工程结构了的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/472339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 08:04:05
下一篇 2025年11月8日 08:08:26

相关推荐

  • 狗狗币交易所哪个App官网下载安装.热门交易所地址.cc

    在数字资产交易日益普及的今天,狗狗币(dogecoin)作为一种备受关注的加密货币,吸引了众多用户的目光。许多希望参与狗狗币交易的朋友都在寻找可靠的交易平台及其官方应用程序。找到一个安全、正规的交易所并从其官方渠道下载安装应用,是进行数字资产交易的第一步,也是至关重要的一步。随着市场上交易平台的增多…

    2025年12月8日
    000
  • 链接价格下跌:抵抗的拒绝 – 深度潜水是不可避免的吗?

    chainlink(link)在遭遇关键阻力位压制后,价格出现下跌趋势,未来是反弹还是继续走低? LINK价格大幅回落:受阻于关键阻力——更深的回调是否已成定局? Chainlink(LINK)近期遭遇市场抛压,在重要阻力区域未能突破后,价格下挫了3.8%。这是短期调整,还是更大跌幅的开始?我们来一…

    2025年12月8日
    000
  • 欧易交易所APP与网页版对比(哪个更好用?)

    数字资产交易平台在现代金融中扮演着重要角色。用户通过这些平台进行加密货币的买卖与管理。欧易(okx)作为其中的佼佼者,提供了多种访问方式,其中移动应用程序(app)和网页版是用户最常用的两种。它们各自具备特点,满足不同场景下的需求。 欧易(OKX)APP 1、随时随地便捷交易: APP最大的优势在于…

    2025年12月8日
    000
  • 2025欧易交易所官网入口及注册教程(附最新链接)

    欧易okx是全球知名的数字资产交易平台之一,提供广泛的加密货币交易及相关服务。 官方下载地址: 欧易OKX及注册指南 准备在2025年进入欧易OKX平台,用户需要通过官方渠道访问并完成必要的注册流程。该平台以其多样的交易产品、健全的安全系统和用户友好的界面而受到关注。了解其核心功能和访问步骤,对于新…

    2025年12月8日
    000
  • P2PSG Coin交易平台TOP3_2025年SG Coin匿名兑换指南

    一键直达|2025主流加密资产交易所平台 Binance币安 Huobi火币 欧易OKX 2025年P2P SG Coin交易平台TOP3及匿名兑换指南 随着隐私保护需求的提升,P2P(点对点)交易平台成为许多用户实现匿名兑换SG Coin的重要渠道。P2P交易允许用户直接对接,避免中心化交易所的身…

    2025年12月8日
    000
  • 2025合规SAHARA交易所TOP10

    一键直达|2025主流加密资产交易所平台 Binance币安 Huobi火币 欧易OKX 2025年合规SAHARA交易所TOP10——全球最具监管资质的平台评选 随着全球对数字资产监管逐步明晰,合规性已成为衡量交易所可信度与可持续性的核心指标。对于SAHARA等新兴资产而言,选择合规交易所,不仅保…

    2025年12月8日
    000
  • 支持多链SAHARA的交易所推荐_2025年SAHARA跨链兑换首选平台推荐

    一键直达|2025主流加密资产交易所平台 Binance币安 Huobi火币 欧易OKX 2025年支持多链SAHARA交易所推荐——跨链兑换首选平台TOP5 随着SAHARA生态的拓展,该币种已部署于多个主流区块链(如 Ethereum、BNB Chain、Polygon、Arbitrum 等),…

    2025年12月8日
    000
  • SAHARA安全交易所介绍_2025年零风险SAHARA平台精选

    一键直达|2025主流加密资产交易所平台 Binance币安 Huobi火币 欧易OKX 2025年SAHARA安全交易所推荐——零风险平台精选 随着SAHARA在全球数字资产市场中的流通日益增加,用户在投资与交易过程中对“安全性”的要求也持续提升。2025年,真正实现资金安全、风控完备、系统稳固的…

    2025年12月8日
    000
  • 2025SG Coin最好的交易所推荐_全球十大SG Coin交易平台权威评测

    一键直达|2025主流加密资产交易所平台 Binance币安 Huobi火币 欧易OKX 2025年SG Coin全球十大交易所权威评测 随着区块链技术的飞速发展,SG Coin作为新兴数字资产备受市场关注。选择一个安全、流动性强且合规的交易平台,对于投资者来说尤为重要。本文根据交易量、流动性、合规…

    2025年12月8日
    000
  • 欧意交易所最新入口链接(更新版)

    欧意交易所作为一家享有全球声誉的数字资产交易平台,致力于为世界各地的用户提供一个安全、高效且用户友好的数字货币交易环境。平台支持广泛的加密货币种类,涵盖主流币种及各类创新数字资产,同时提供现货、合约等多种交易模式,满足不同风险偏好和策略的交易者需求。欧意交易所高度重视用户资产的安全,采取了多重技术和…

    2025年12月8日
    000
  • 欧易交易平台怎么样 虚拟币交易平台对比

    数字资产交易平台是投资者进行加密货币买卖的核心场所。它们如同传统的股票交易所,为用户提供撮合交易、资产存储、充值提现等一系列服务。选择一个合适的平台,对于数字资产的交易体验和资金安全至关重要。不同的平台在服务内容、交易费用、安全性、资产种类以及用户体验等方面存在差异。 欧易交易平台 (OKX) 欧易…

    2025年12月8日
    000
  • 平台用户粘性与交易量:2025年高频交易者聚集地排行

    进入2025年,全球数字资产交易市场的格局愈发清晰。对于高频交易者而言,选择一个合适的交易平台是其交易策略成功的基石。衡量一个平台是否具备吸引力的核心指标,集中体现在其用户粘性与交易量上。用户粘性代表了平台在产品设计、服务质量、安全保障等方面的综合实力,能够有效留存核心用户群体。庞大的交易量则直接关…

    2025年12月8日 好文分享
    000
  • 定投收益缩水!以太坊质押APY降至3.6%的应对策略

    近期以太坊质押的年化收益率(APY)降至约3.6%,这让许多寻求稳定收益的参与者感到收益缩水。本文将详细阐述一种结合了定投(DCA)和流动性挖矿的组合策略,旨在应对单一质押收益下降的问题。通过讲解这套组合策略的操作过程,为您提供一个优化“躺赚”收益的参考方案。 2025以太坊交易平台官网注册地址推荐…

    2025年12月8日 好文分享
    000
  • 2025国际SG Coin交易所排行_全球SG Coin流动性交易所TOP5

    一键直达|2025主流加密资产交易所平台 Binance币安 Huobi火币 欧易OKX 2025年国际SG Coin交易所排行——全球流动性交易所TOP5 流动性是交易所选择的关键指标,决定了资产买卖的便捷性和价格稳定性。2025年,全球SG Coin流动性最强的交易所凭借庞大用户基础和高效撮合引…

    2025年12月8日
    000
  • 2025年MEME币交易主战场:热门平台交易量排行榜

    进入2025年,加密货币市场展现出与以往截然不同的活力,其中MEME币板块的崛起尤为引人注目。这些源于互联网文化、由社区驱动的数字资产,已经从边缘化的玩笑演变为一股不可忽视的金融力量。它们不再仅仅是投机者的乐园,更成为了衡量市场情绪和散户参与度的重要指标。强大的社区共识和病毒式的社交媒体传播,是ME…

    2025年12月8日 好文分享
    000
  • 2025好用的SG Coin交易所排行_新手友好型SG Coin平台TOP5

    一键直达|2025主流加密资产交易所平台 Binance币安 Huobi火币 欧易OKX 2025年新手友好型SG Coin交易所TOP5推荐 对于刚入场的投资者来说,选择一个操作简单、界面清晰、客服响应快且安全可靠的交易平台尤为重要。以下是2025年专为新手用户推荐的5大SG Coin交易所,助力…

    2025年12月8日
    000
  • 2025SAHARA最好的交易所推荐_全球十大SAHARA交易平台权威评测

    一键直达|2025主流加密资产交易所平台 Binance币安 Huobi火币 欧易OKX 2025年SAHARA币最佳交易所推荐——全球十大权威平台评测 SAHARA 作为近年来新兴的高潜力数字资产之一,其生态逐渐完善,受到全球投资者关注。选择一个优质、安全且流动性强的交易平台,是投资SAHARA的…

    2025年12月8日
    000
  • 新兴SAHARA交易所评测_2025年SAHARA潜力黑马平台

    一键直达|2025主流加密资产交易所平台 Binance币安 Huobi火币 欧易OKX 2025年新兴SAHARA交易所评测——潜力黑马平台深度解析 随着SAHARA资产在市场上的持续走热,一批新兴交易所迅速崛起,凭借创新的产品设计、灵活的合规策略和差异化服务,成为投资者关注的“潜力黑马”。本文精…

    2025年12月8日
    000
  • 币圈衍生品交易量聚焦:2025年合约平台交易排行

    进入2025年,加密货币衍生品市场已经演变为整个数字资产领域中最为活跃、竞争也最为激烈的赛道。合约交易,特别是永续合约,凭借其高杠杆特性和灵活的交易机制,吸引了全球范围内海量的交易者与资本。各大交易平台在衍生品领域的角逐,早已不再是单纯的产品功能比拼,而是涉及到交易深度与流动性、风险控制能力、系统稳…

    2025年12月8日 好文分享
    000
  • SHIB双顶形态预警!技术面指向归零风险还是黄金坑?

    本文主要探讨如何通过技术分析工具,解读SHIB当前可能面临的“双顶形态”警示。文章将详细阐述双顶形态的识别方法,并结合Murrey Math(MM线)理论,讲解如何判断市场是面临潜在的深度回调风险,还是构筑了新的机遇“黄金坑”。通过分步解析,我们将提供一个基于技术信号的风险管理策略,帮助投资者理解在…

    2025年12月8日
    000

发表回复

登录后才能评论
关注微信