网站建设完成后怎么上传服务器做网站爬闪
- 作者: 五速梦信息网
- 时间: 2026年03月21日 07:44
当前位置: 首页 > news >正文
网站建设完成后怎么上传服务器,做网站爬闪,好多网站没排名了,基础网页制作流程前言 软件设计的目标是高内聚、低耦合。 如果代码是高耦合和低内聚的#xff0c;就会出现修改一个逻辑#xff0c;会导致多处代码要修改#xff0c;可能影响到多个业务链路#xff0c;这增加了出bug的业务风险#xff0c;同时增加了测试回归的范围#xff0c;导致研发成… 前言 软件设计的目标是高内聚、低耦合。 如果代码是高耦合和低内聚的就会出现修改一个逻辑会导致多处代码要修改可能影响到多个业务链路这增加了出bug的业务风险同时增加了测试回归的范围导致研发成本增加。 耦合和内聚是我们常挂在嘴边的话但是大家却说不太清楚讲不太明白很难衡量 什么样的叫高内聚什么样的叫低耦合高内聚要高到什么程度低耦合要低到什么程度 3.1 耦合的类型 耦合是描述模块系统/模块/类/函数之间相互联系控制/调用/数据传递紧密程度的一种度量。 紧耦合模块之间联系越紧密耦合性就越强模块的独立性则越差松耦合模块之间联系越松散单个模块解决问题的目的越明确模块的独立性越强。 ✪ 3.1.1 非直接耦合Nondirect Coupling 如果两个模块之间没有直接关系它们之间的联系完全是通过主模块控制调用来实现的这就是非直接耦合这种耦合的模块独立性最强。 class User {long userId;String userNick; }class MessageService {void pushMessage(long userId, String message); }class UserLoginService {void onLoginEvent(long userId) {User user queryUserById(userId);String message user.getUserNick() 登录成功。;messageService.pushMessage(userId, message);} } } ✪ 3.1.2 数据耦合Data Coupling 如果一个模块访问另一个模块时彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的则称这种耦合为数据耦合它是较好的耦合形式。 class MessageService {void pushMessage(long userId, String userNick) {String message userNick 登录成功。;doPushMessage(userId, message);} }class UserLoginService {void onLoginEvent(User user) {messageService.pushMessage(user.getUserId(), user.getUserNick());} } ✪ 3.1.3 印记引用耦合Stamp Coupling 当模块之间使用复合数据结构进行通信时就会发生印记耦合。 复合数据结构可以是数组、类、结构体、联合体等的引用通过复合数据结构在模块之间传递的参数可能会或不会被接收模块完全使用。 class User {long userId;String userNick;// 该属性未被MessageService使用int level; }class MessageService {void pushMessage(User user) {String message user.getUserNick() 登录成功。;doPushMessage(user.getUserId(), message);} }class UserLoginService {void onLoginEvent(User user) {messageService.pushMessage(user);} } 印记耦合优点 把模块A的引用一把传递给模块B模块B只需要接受少量参数接口说明简单。 印记耦合缺点 不必要的参数模块B可能只使用了模块A中部分的数据模块B捆绑了模块A任何需要用到模块B的地方都需要先获取到模块A无法脱离模块A单独使用修改可能互相影响修改模块A或模块B可能导致对方也需要跟着修改不符合开闭原则。 印记耦合优化 增加入参数类型仅传入模块需要的必要数据如下 ✪ 3.1.4 控制耦合Control Coupling 如果一个模块通过传送开关、标志等控制信息明显地控制选择另一模块的功能就是控制耦合。 class MessageService {void pushMessage(long userId, bool isNewUser) {if(isNewUser) {doPushMessage(userId, 登录成功。);}} }class UserLoginService {void onLoginEvent(User user) {messageService.pushMessage(user.getUserId, user.getIsNewUser());} } 数据耦合和控制耦合的主要区别 在数据耦合中模块之间的依赖关系非常小而在控制耦合中模块之间的依赖关系很高。在数据耦合中模块之间通过传递数据进行通信而在控制耦合中模块之间通过传递模块的控制信息进行通信 控制耦合优化 把控制的逻辑放在模块A之中或增加模块C封装控制逻辑不然模块B只做某一件独立的事情。 ✪ 3.1.5 外部耦合External Coupling 外部耦合是指多个模块同时依赖同一个外部因素IO设备/文件/协议/DB等如上图所示外部耦合与与外部设备的通信有关而不是与公共数据或数据流有关。 一个模块对外部数据或通信协议所做的任何更改都会影响其他模块可以通过增加中间模块隔离外部变化来降低耦合度如下 ✪ 3.1.6 共用耦合(Common Coupling) 共用耦合是指不同的模块共享全局数据的信息全局数据结构、共享的通信区、内存的公共覆盖区。 public Response loadInitInfo(Request request) {// requestresponse是Commands的全局数据Response response new Response();commandExecutor.serial(request, response,orderRenderRateLimitCommand,renderInitResponseCommand,renderEnrichTradeNoCommand,renderEnrichItemCommand,renderEnrichCombinationCommand,renderEnrichPriceCommand);return response; } 共用耦合的问题 较难控制各个模块对公共数据的存取容易影响模块的可靠性和适应性使软件的可维护性变差若一个模块修改了共用数据则会影响相关模块降低了软件的可理解性不容易清楚知道哪些数据被哪些模块所共享排错困难。 ✪ 3.1.7 内容耦合(Content Coupling) 内容耦合在低级语言汇编中出现高级语言从设计上已避免出现内容耦合。 如果发生下列情形两个模块之间就发生了内容耦合 一个模块直接访问另一个模块的内部数据一个模块不通过正常入口而直接转入到另一个模块的内部两个模块有一部分代码重叠该部分代码具有一定的独立功能一个模块有多个入口。 3.2 内聚的类型 内聚是描述一个模块内各元素彼此结合的紧密程度是从功能角度来度量模块内的联系。 低内聚模块内的元素的职责相关性低通常也意味着模块与外部是紧耦合的。高内聚模块内的元素的职责相关性强通常也意味着模块与外部是松耦合的。 通常解决了耦合的问题就解决了内聚的问题反之亦然。 ✪ 3.2.1 偶然性内聚 偶然内聚一个模块内的各元素之间没有任何联系仅是恰好放在同一个模块内业务的“Util/Helper”类有大量例子。 问题的原因通常是模块名起的过于抽象导致不同职责的元素都可以放进去从而引起了低内聚。 问题的解法将抽象的模块拆解成多个更小的具体模块例如RetailTradeHelper可以拆为OrderAmountHelper/OrderPaymentParamHelper。 ✪ 3.2.2 逻辑性内聚 逻辑内聚把几种相关的功能组合在一起由调用方传入的参数来确定具体执行哪一种功能。 逻辑内聚是一种“低内聚”某程度上对应了“控制耦合”它把内部的逻辑处理暴露给了接口之外当内部逻辑发生变更时原本无辜的调用方也会受牵连改动。 public void syncOrder(Order order, String dist) {if(dist oc) {syncOrder2Oc(order);}if(dist mis) {syncOrder2Mis(order);}if(dist tp) {syncOrder2Tp(order);} } ✪ 3.2.3 时间性内聚 时间内聚指一个模块内的组件除了在同一时间都会被执行外相互之间没有任何关联。 ✪ 3.2.4 过程性内聚 过程内聚指一个模块内的组件以特定次序被执行但相互之间没有数据传递。 ✪ 3.2.5 通信性内聚 通信内聚指一个模块内的组件以特定次序被执行且相互之间传递和操作相同的数据。 ✪ 3.2.6 顺序性内聚 顺序内聚指一个模块内的元素以特定次序被执行且上一步的输出被下一元素所依赖。 ✪ 3.2.7 功能性内聚 功能内聚指一个模块内所有组件属于一个整体完成同一个不可切分的功能彼此缺一不可。 参考资料 《阿里技术》-
- 上一篇: 网站建设完成后如何备案缪斯设计公司官网
- 下一篇: 网站建设完成情况注册公司的流程及费用
相关文章
-
网站建设完成后如何备案缪斯设计公司官网
网站建设完成后如何备案缪斯设计公司官网
- 技术栈
- 2026年03月21日
-
网站建设外包合同模板模板之家
网站建设外包合同模板模板之家
- 技术栈
- 2026年03月21日
-
网站建设外包还是自己做试用虚拟主机不能创建网站
网站建设外包还是自己做试用虚拟主机不能创建网站
- 技术栈
- 2026年03月21日
-
网站建设完成情况注册公司的流程及费用
网站建设完成情况注册公司的流程及费用
- 技术栈
- 2026年03月21日
-
网站建设完成确认书谷歌seo关键词排名优化
网站建设完成确认书谷歌seo关键词排名优化
- 技术栈
- 2026年03月21日
-
网站建设完成域名申请哪家好
网站建设完成域名申请哪家好
- 技术栈
- 2026年03月21日
