当前位置: 首页 > news >正文 太仓网站制作书生开发app的平台 news 2025/10/24 17:26:29 太仓网站制作书生,开发app的平台,做网站制作,网络推广一个月的收入说在前面 在40岁老架构师 尼恩的读者交流群(50)中#xff0c;最近有小伙伴拿到了一线互联网企业字节、如阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格#xff0c;遇到很多很重要的面试题#xff1a; 谈谈你的DDD落地经验#xff1f; 谈谈你对DDD的理解…说在前面 在40岁老架构师 尼恩的读者交流群(50)中最近有小伙伴拿到了一线互联网企业字节、如阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格遇到很多很重要的面试题 谈谈你的DDD落地经验 谈谈你对DDD的理解 如何保证RPC代码不会腐烂升级能力强? 用电商系统为例介绍一下领域驱动设计DDD? 最近有小伙伴在字节又遇到了相关的面试题。小伙伴懵了 当然面试也就挂了。 这里尼恩给大家做一下系统化、体系化的 DDD 梳理使得大家可以充分展示一下大家雄厚的 “技术肌肉”让面试官爱到 “不能自已、口水直流”。 也一并把这个题目以及参考答案收入咱们的 《尼恩Java面试宝典PDF》V122版本供后面的小伙伴参考提升大家的 3高 架构、设计、开发水平。 《尼恩 架构笔记》《尼恩高并发三部曲》《尼恩Java面试宝典》的PDF请到文末公号【技术自由圈】获取 出了本文尼恩输出了一个 《从0到1带大家精通DDD》系列帮助大家彻底掌握DDD链接地址是 《阿里DDD大佬从0到1带大家精通DDD》 《阿里大佬DDD 落地两大步骤以及Repository核心模式》 《阿里面试让代码不腐烂DDD是怎么做的》 《阿里大佬DDD 领域层该如何设计》 《极兔面试微服务爆炸如何解决Uber 是怎么解决2200个微服务爆炸的》 《阿里大佬DDD中Interface层、Application层的设计规范》 大家可以先看前面的文章再来看本篇效果更佳。 另外尼恩会结合一个工业级的DDD实操项目在第34章视频《DDD的顶奢面经》中给大家彻底介绍一下DDD的实操、COLA 框架、DDD的面试题。 文章目录 说在前面领域驱动设计介绍第1步战略设计1、业务分析事件风暴业务分析的核心环节 2、领域建模3、划分边界上下文 第2步战术设计1、领域服务设计2、领域分层3、代码结构 电商的领域驱动设计第1步战略设计1、事件风暴参与者、动作以及事件 整个协作流程梳理2、领域建模与边界上下文划分 第2步战术阶段 领域驱动设计与微服务的关系领域驱动设计与敏捷开发相结合未完待续尼恩说在最后尼恩技术圣经系列PDF 领域驱动设计介绍 领域驱动设计Domain-driven DesignDDD是一种软件设计方法该方法的核心思想是将业务领域作为设计和开发的中心强调对业务领域的深入理解、业务语言的建模以及领域对象的设计和实现。 这样可以更好地将软件设计和业务需求紧密结合起来从而提高软件的可维护性、可扩展性和可重用性使得软件更加贴近业务需求。 DDD设计的两个阶段包括两部分战略设计部分和战术设计部分 第1步 战略设计 战略设计主要从业务视角出发包括了业务场景分析、领域建模、划分边界上下文三个阶段。限界上下文可以作为微服务设计的参考边界。 第2步战术设计 战术设计则从技术视角出发侧重于领域模型的技术实现完成软件开发和落地 战术设计包括聚合根、实体、值对象、领域服务、应用服务和资源库等代码逻辑的技术设计和技术设计。 第1步战略设计 在战略设计阶段我们最主要的过程大致包括了业务场景分析、领域建模、划分边界上下文三个阶段。 实际上战略设计是 DDD 过程中的核心步骤。 1、业务分析 在这个阶段我们所有做的就是进行全面的业务梳理把业务中涉及到的所有细节都梳理出来为后续进行领域建模分析提供足够的、全面的业务输入。 战略设计 经常使用到的业务场景分析方法主要包括 用例分析法事件风暴法四色建模法。 一般使用事件风暴法。 事件风暴是一种快速轻量级且未得到充分认可的群体建模技术它对于加速开发团队而言非常强大有趣且有用。 事件风暴业务分析的核心环节 这里我们使用事件风暴进行业务场景的分析以及梳理。 1事前准备 在进行事件风暴之前我们需要进行一些准备主要包括贴纸、笔以及讨论的会议室 会议室中最好不要有椅子目的是想让大家都能够站立在一起、全神贯注的去进行业务讨论。 2邀请参会的人 会议的参与方主要包括用户、产品经理、PD、研发、测试、架构师等。 其中PD为产品设计师也可能叫产品规划师、需求分析师、小产品经理。 PD侧重于将对应用做功能级的设计在这个模块上PD类似是一个小产品经理、模块级别的产品经理。 架构师系统分析师会与PD紧密合作架构师 这时候开始考虑技术可行性性价比。 PD的职位描述 1调查市场并研究需求形成市场需求文档。 2负责新产品设计拟定设计规划和方案。 3负责新产品的原型设计。 4组织产品开发团队协调资源跟进产品的开发保证日程进度。 5分析产品运营数据收集运营意见及时调整产品形态优化产品并提出合理的运营建议。 6 以用户体验为中心改进现有产品或设计新产品。 3业务讨论 首先确定我们今天需要讨论的业务是什么目标是什么。 咱们业务场景中如果讨论的业务就是电商那么目标就是完成业务梳理确保没有业务方面的理解 gap在团队中达成业务理解的的一致性。 事件风暴过程需要问题驱动一般通过提问的方式来驱动交流。 a、分析业务中的事件搞清楚事件发生的前因后果 什么动作会导致当前事件的发生当前这个事件发生后又会导致怎样的后果。 这些我们都需要梳理清楚。 还有一点需要注意 需要全面梳理 不但要关注正常的业务流程还要关注异常的业务流程。 b、寻找业务逻辑和业务规则 注在进行事件风暴过程中所有的参与人都要全身投入整个过程 大家都是站立形式聚焦全部注意力 大家都放下手机以及电脑一起参与整个业务梳理过程只有这样事件风暴才可能有比较好的效果。 在前面的事件风暴业务梳理中我们已经把电商业务涉及到的参与者、动作以及事件等都进行了全面的梳理。 参与者、动作以及事件 整个协作流程是一个粗粒度的 业务流程 非常粗。 2、领域建模 那么接下来我们就要在此基础之上进行细粒度的 领域建模这是整个 DDD 的核心。 DDD领域模型 细分为两步骤第一步是发散产生很多实体、命令、事件等领域对象 DDD领域模型 细分为两步骤第二步是收敛我们从不同的维度对进行聚类形成聚合建立最终领域模型 这是一个收敛的过程。 1发散阶段领域对象分析 领域对象分析也就 实体、值对象、领域事件、领域命令的分析。 2收敛阶段构建业务聚合 完成领域对象分析之后我们需要构建业务聚合。 想要构建聚合那么首先就要在实体中找到聚合根。 来看看一个 聚合根的特点 聚合根一定是实体那么它具有全局唯一的标识聚合根是具备生命周期的聚合根需要专门的模块来进行管理。 3、划分边界上下文 获得了整个业务流程中的所有聚合后我们需要更具业务语义上下文将具体的聚合划分到对应的上下文中 域的拆分 按业务抽象进行划分一个业务拆分成几个独立的域每个域又可细拆成不同子域 防腐 一个域在访问其他域的模型时把获取到的模型做层转换映射到自己域的模型中不直接使用别的域模型作为自己域模型中的一部分防止源域模型发生变更依赖源域模型的调用方在需要源域模型新功能时必须要全局依赖修改才在能兼容防止域上下文不一致产生的冲突 限界上下文之间的映射关系 合作关系Partnership两个上下文紧密合作的关系一荣俱荣一损俱损。共享内核Shared Kernel两个上下文依赖部分共享的模型。客户方-供应方开发Customer-Supplier Development上下文之间有组织的上下游依赖。遵奉者Conformist下游上下文只能盲目依赖上游上下文。防腐层Anticorruption Layer一个上下文通过一些适配和转换与另一个上下文交互。开放主机服务Open Host Service定义一种协议来让其他上下文来对本上下文进行访问。发布语言Published Language通常与OHS一起使用用于定义开放主机的协议。大泥球Big Ball of Mud混杂在一起的上下文关系边界不清晰。另谋他路SeparateWay两个完全没有任何联系的上下文。 第2步战术设计 在战略设计阶段我们通过事件风暴法对整体的业务进行了全部的梳理同时构建了领域模型以及划分了边界下文。 那么接下来我们就要将领域模型映射到工程结构以及代码中实现最终的实现落地。 另外在这个阶段实际还有很多细节需要明确的。 1、领域服务设计 需要哪些领域服务领域服务依赖哪些属性依赖哪些实体依赖哪些值对象这些都是需要在战术设计阶段明确下来。 2、领域分层 在领域分层方面可以按照cola分层结构来进行这个后面结合cola框架进行说明。 3、代码结构 当我们把领域对象进行进一步的细化之后同时把对应的领域服务敲定之后我们可以把这些分析后的内容映射成工程分层后的代码了。 所以后续就进入到阶段了还有很多工作要做比如详细设计、编写代码以及功能测试 特别实在详细设计阶段我们还要涉及很多的细节问题的敲定比如数据库表的设计、比如使用什么 MQ用不用缓存怎么保证缓存和数据库的数据一致性问题分布式服务有没有分布式事务的问题应该怎么解决 有没有服务幂等问题应该怎么解决 这些都是需要在详细设计阶段进行确定的。 因此 DDD 就像是框架通过它把业务映射成为领域对象以及领域服务和领域事件再把这些领域相关内容再读映射为实际的代码。 使得我们的服务更加的逻辑清晰以及扩展性更强但是分布式的技术实现细节我们还是需要有对应的解决方案来进行解决。 电商的领域驱动设计 第1步战略设计 1、事件风暴参与者、动作以及事件 整个协作流程梳理 大致可以梳理出下面的参与者、动作以及事件 订单创建事件当用户下单后系统需要创建一个新的订单并触发订单创建事件。订单支付事件当用户完成订单支付后系统需要将订单状态设置为已支付并触发订单支付事件。订单发货事件当商家完成订单发货后系统需要将订单状态设置为已发货并触发订单发货事件。订单退款事件当用户申请退款并经过审核后系统需要将订单状态设置为已退款并触发订单退款事件。商品上架事件当商家将商品上架时系统需要将商品状态设置为上架并触发商品上架事件。商品下架事件当商家将商品下架时系统需要将商品状态设置为下架并触发商品下架事件。库存变更事件当用户下单后系统需要检查商品库存是否充足并对库存进行相应的变更并触发库存变更事件。物流状态变更事件当订单状态变更为已发货时系统需要记录物流信息并触发物流状态变更事件。 通过对领域事件的记录和处理可以在电商系统中实现更加复杂的业务逻辑提高系统的灵活性和可维护性。 2、领域建模与边界上下文划分 电商系统中的聚合和聚合根是什么 在电商系统中可以将订单作为一个聚合其中包括多个领域对象例如订单项、收货地址、发票信息等。 订单作为一个聚合它的内部领域对象之间有明确的关联关系并且需要满足一些业务规则例如订单项的数量不能为负数订单状态必须是待付款、待发货、待收货、已完成等状态之一。 在订单聚合中可以将订单对象作为聚合根用于保证订单聚合的完整性和一致性。订单对象具有唯一标识和全局访问权限它可以被其他领域对象引用例如订单项和收货地址等。 使用聚合和聚合根可以将复杂的业务逻辑封装在一个边界内提高系统的可维护性和可扩展性。 电商系统是一个涉及到多个业务领域的复杂应用系统经过上下文建模和边界上下文划分最后确定电商系统所包含了众多的子域。 以下是电商系统中常见的一些子域 商品子域包括商品分类、商品管理、商品展示等功能。订单子域包括下单、订单管理、订单配送、订单支付等功能。营销子域包括促销活动、优惠券、积分、礼品卡等功能。用户子域包括用户注册、用户登录、用户个人信息管理等功能。支付子域包括支付方式、支付渠道、支付接口等功能。物流子域包括订单配送、物流跟踪、运费计算等功能。客服子域包括售后服务、用户反馈、在线客服等功能。数据统计子域包括用户行为分析、交易数据统计、业务数据报表等功能。 在实际的电商应用系统中可能会根据业务需求进一步细分和扩展各个子域。每个子域都可以作为一个独立的微服务进行设计和开发从而实现更好的业务解耦和系统扩展性。 第2步战术阶段 核心是领域服务设计 电商系统中包括的领域服务主要如下 商品服务负责管理商品的上架、下架、库存等信息并提供商品的查询、搜索、推荐等功能。订单服务负责管理订单的创建、支付、发货、退款等流程并提供订单的查询、取消、评价等功能。用户服务负责管理用户的注册、登录、个人信息管理等功能并提供用户评价、收藏、关注等功能。支付服务负责管理系统的支付方式、支付账户等信息并提供支付的流程和接口。物流服务负责管理物流的配送、快递信息等并提供物流的查询、跟踪等功能。营销服务负责管理系统的促销活动、优惠券等信息并提供优惠券领取、使用等功能。数据统计服务负责收集、分析、展示系统的数据统计信息例如订单量、销售额、用户活跃度等。客服服务负责管理系统的客户服务、投诉处理等工作并提供在线客服、电话客服等渠道。 这些领域服务之间相互协作共同实现电商系统的核心功能和业务流程。 通过领域服务的划分和封装可以提高系统的可扩展性和可维护性降低系统的耦合度和复杂度。 领域驱动设计与微服务的关系 领域驱动设计DDD和微服务是两种不同的概念但它们可以结合在一起来提高软件的质量和可维护性。 微服务架构是一种将应用程序拆分成多个小型、自治的服务的架构模式每个服务专注于某个特定的业务功能通过轻量级通信机制进行协作。 微服务架构通常需要处理大量的业务逻辑因此需要一个清晰的领域模型来管理这些业务逻辑这时领域驱动设计就能够发挥作用了。 通过领域驱动设计开发人员可以更好地理解业务需求更好地建模业务领域将领域模型作为微服务架构的核心从而更好地支持微服务架构。 具体来说领域驱动设计可以帮助实现以下方面 微服务的拆分和划分通过领域驱动设计可以将业务领域划分为不同的子域并将每个子域划分为一个或多个微服务从而实现微服务的拆分和划分。 服务间的通信微服务架构中的服务需要通过通信机制进行协作。 通过领域驱动设计可以在微服务之间定义明确的接口和协议使得服务之间的通信更加清晰和稳定。 微服务的扩展和维护通过领域驱动设计可以将业务逻辑清晰地划分为不同的领域模型从而使得微服务的扩展和维护更加容易。例如在需要修改业务逻辑时只需要修改对应的领域模型和微服务而不需要修改整个应用程序。 因此领域驱动设计可以帮助开发人员更好地支持微服务架构并实现更好的软件设计和开发。 领域驱动设计与敏捷开发相结合 领域驱动设计和敏捷开发是两种不同的方法论但可以相互结合提高开发效率和软件质量。 在敏捷开发过程中团队通常采用迭代式的开发模式不断地根据用户反馈和需求变化进行调整和优化。 这种敏捷开发模式与领域驱动设计的思想相契合因为领域驱动设计强调将业务领域建模为一个相对独立的系统同时也强调不断优化和迭代。 以下是一些结合领域驱动设计和敏捷开发的方法 划分迭代周期在敏捷开发中团队通常会划分出多个迭代周期来实现软件的开发和交付。在每个迭代周期中可以采用领域驱动设计方法进行领域建模和设计以确保软件系统的质量和可维护性。与领域专家和用户紧密合作在敏捷开发中团队需要与领域专家和用户紧密合作及时获取用户反馈和需求变化。在领域驱动设计中也需要与领域专家和用户紧密合作以确保领域建模的准确性和实用性。重构和优化敏捷开发中团队需要不断地重构和优化代码以提高软件系统的质量和可维护性。在领域驱动设计中也需要不断地优化领域建模和设计以提高系统的可扩展性和可维护性。测试和验收在敏捷开发中团队需要进行测试和验收以确保软件系统的质量和稳定性。在领域驱动设计中也需要进行测试和验收以确保领域建模和设计的准确性和实用性。 未完待续尼恩说在最后 DDD 面试题是非常常见的面试题。 DDD的学习材料 汗牛塞屋又缺乏经典。 大家面试的时候 可以参考以上的内容去组织答案如果大家能做到对答如流如数家珍基本上 面试官会被你 震惊到、吸引到。 另外在面试之前建议大家系统化的刷一波 5000页《尼恩Java面试宝典PDF》并且在刷题过程中如果有啥问题大家可以来 找 40岁老架构师尼恩交流。 最终让面试官爱到 “不能自已、口水直流”。offer 也就来了。 当然关于DDD尼恩即将给大家发布一波视频 《第34章DDD的顶奢面经》 帮助大家彻底穿透DDD。 尼恩技术圣经系列PDF 《NIO圣经一次穿透NIO、Selector、Epoll底层原理》《Docker圣经大白话说Docker底层原理6W字实现Docker自由》《K8S学习圣经大白话说K8S底层原理14W字实现K8S自由》《SpringCloud Alibaba 学习圣经10万字实现SpringCloud 自由》《大数据HBase学习圣经一本书实现HBase学习自由》《大数据Flink学习圣经一本书实现大数据Flink自由》《响应式圣经10W字实现Spring响应式编程自由》《Go学习圣经Go语言实现高并发CRUD业务开发》 ……完整版尼恩技术圣经PDF集群请找尼恩领取 《尼恩 架构笔记》《尼恩高并发三部曲》《尼恩Java面试宝典》PDF请到下面公号【技术自由圈】取↓↓↓ 文章转载自: http://www.morning.mjjty.cn.gov.cn.mjjty.cn http://www.morning.gcrlb.cn.gov.cn.gcrlb.cn http://www.morning.njnqn.cn.gov.cn.njnqn.cn http://www.morning.xhwty.cn.gov.cn.xhwty.cn http://www.morning.rqmr.cn.gov.cn.rqmr.cn http://www.morning.jzdfc.cn.gov.cn.jzdfc.cn http://www.morning.wmglg.cn.gov.cn.wmglg.cn http://www.morning.kqkmx.cn.gov.cn.kqkmx.cn http://www.morning.xbptx.cn.gov.cn.xbptx.cn http://www.morning.zwmjq.cn.gov.cn.zwmjq.cn http://www.morning.dangaw.com.gov.cn.dangaw.com http://www.morning.pfcrq.cn.gov.cn.pfcrq.cn http://www.morning.nfqyk.cn.gov.cn.nfqyk.cn http://www.morning.wqpr.cn.gov.cn.wqpr.cn http://www.morning.bkcnq.cn.gov.cn.bkcnq.cn http://www.morning.mbaiwan.com.gov.cn.mbaiwan.com http://www.morning.mcndn.cn.gov.cn.mcndn.cn http://www.morning.zpjhh.cn.gov.cn.zpjhh.cn http://www.morning.lwtld.cn.gov.cn.lwtld.cn http://www.morning.ymwcs.cn.gov.cn.ymwcs.cn http://www.morning.shyqcgw.cn.gov.cn.shyqcgw.cn http://www.morning.mrncd.cn.gov.cn.mrncd.cn http://www.morning.bflws.cn.gov.cn.bflws.cn http://www.morning.wjxtq.cn.gov.cn.wjxtq.cn http://www.morning.bfysg.cn.gov.cn.bfysg.cn http://www.morning.brmbm.cn.gov.cn.brmbm.cn http://www.morning.youngbase.cn.gov.cn.youngbase.cn http://www.morning.lztrt.cn.gov.cn.lztrt.cn http://www.morning.rfkyb.cn.gov.cn.rfkyb.cn http://www.morning.ngpdk.cn.gov.cn.ngpdk.cn http://www.morning.xxzjb.cn.gov.cn.xxzjb.cn http://www.morning.xyhql.cn.gov.cn.xyhql.cn http://www.morning.mrfr.cn.gov.cn.mrfr.cn http://www.morning.qlhwy.cn.gov.cn.qlhwy.cn http://www.morning.kcypc.cn.gov.cn.kcypc.cn http://www.morning.mqbzk.cn.gov.cn.mqbzk.cn http://www.morning.fdrwk.cn.gov.cn.fdrwk.cn http://www.morning.yrjhr.cn.gov.cn.yrjhr.cn http://www.morning.lxthr.cn.gov.cn.lxthr.cn http://www.morning.xqbgm.cn.gov.cn.xqbgm.cn http://www.morning.lbbyx.cn.gov.cn.lbbyx.cn http://www.morning.rdkqt.cn.gov.cn.rdkqt.cn http://www.morning.smjyk.cn.gov.cn.smjyk.cn http://www.morning.nfks.cn.gov.cn.nfks.cn http://www.morning.wpmqq.cn.gov.cn.wpmqq.cn http://www.morning.alwpc.cn.gov.cn.alwpc.cn http://www.morning.jpbky.cn.gov.cn.jpbky.cn http://www.morning.gqhgl.cn.gov.cn.gqhgl.cn http://www.morning.ngznq.cn.gov.cn.ngznq.cn http://www.morning.bangaw.cn.gov.cn.bangaw.cn http://www.morning.qtnmp.cn.gov.cn.qtnmp.cn http://www.morning.c7498.cn.gov.cn.c7498.cn http://www.morning.cdygl.com.gov.cn.cdygl.com http://www.morning.lrplh.cn.gov.cn.lrplh.cn http://www.morning.rnfwx.cn.gov.cn.rnfwx.cn http://www.morning.thlr.cn.gov.cn.thlr.cn http://www.morning.ndtzy.cn.gov.cn.ndtzy.cn http://www.morning.jypqx.cn.gov.cn.jypqx.cn http://www.morning.hnpkr.cn.gov.cn.hnpkr.cn http://www.morning.fjlsfs.com.gov.cn.fjlsfs.com http://www.morning.rytps.cn.gov.cn.rytps.cn http://www.morning.hffpy.cn.gov.cn.hffpy.cn http://www.morning.sqgsx.cn.gov.cn.sqgsx.cn http://www.morning.xqmd.cn.gov.cn.xqmd.cn http://www.morning.fmznd.cn.gov.cn.fmznd.cn http://www.morning.niukaji.com.gov.cn.niukaji.com http://www.morning.fpzpb.cn.gov.cn.fpzpb.cn http://www.morning.ttryd.cn.gov.cn.ttryd.cn http://www.morning.hbjqn.cn.gov.cn.hbjqn.cn http://www.morning.ymfzd.cn.gov.cn.ymfzd.cn http://www.morning.mwkwg.cn.gov.cn.mwkwg.cn http://www.morning.rbmnq.cn.gov.cn.rbmnq.cn http://www.morning.cftkz.cn.gov.cn.cftkz.cn http://www.morning.tbknh.cn.gov.cn.tbknh.cn http://www.morning.wnkjb.cn.gov.cn.wnkjb.cn http://www.morning.ptzf.cn.gov.cn.ptzf.cn http://www.morning.sgbk.cn.gov.cn.sgbk.cn http://www.morning.dsmwy.cn.gov.cn.dsmwy.cn http://www.morning.sjwws.cn.gov.cn.sjwws.cn http://www.morning.djpgc.cn.gov.cn.djpgc.cn 查看全文 http://www.tj-hxxt.cn/news/245914.html 相关文章: 云南建设厅网站安全处网站系统维护一般多长时间 如何添加网站李字logo创意设计 设计常用网站怎么建立一个属于自己的网站 做自媒体资源的网站wordpress数据库下载备份 贵州网站建设营销公司wordpress code highlight 公司网站后台导航链接怎么做巨鹿建设银行网站首页 杭州网站建设求职简历阿里巴巴做轮播网站 陶瓷 网站模板wordpress图片加载快 四川建设信息共享网站用rem做移动网站 江门建站模板大型网站开发工具 开发手机应用网站友情链接分析 网站怎么添加假备案号免费建设论坛网站 襄阳网站开发平面设计培训班价格 中国建设教育网站网站建设基础培训 企业网站建设费属于办公费吗东莞市网站建设平台 移动网站适配网站开发需要后台吗 企业网站怎么收录wordpress 引用 样式 股票实时交易网站开发新乡最新消息 深圳创新网站建设文化馆网站建设意义 钓鱼网站的主要危害手机如何制作图片 网站安全检测网站统一用户管理系统 网站前端建设都需要什么福建省建设监理网官方网站 如何将自己做的网站织梦做网站主页容易吗 网站排名推广自己怎么做大型网站建设哪家服务好 做淘宝门头的网站单职业传奇手机手游版 云天下网站建设怎么做公司网页 上海的建设网站制作一线城市做网站工资有多少钱 泰安住房和城乡建设厅网站深圳网站建设怎样做 三门峡建设银行网站网站开发需要哪些语言 做球衣外贸用什么网站网站结构是什么 怎么做