当前位置: 首页 > news >正文

网站开发+百度编辑器济南seo公司报价

网站开发+百度编辑器,济南seo公司报价,西安私人网站,房租 做网站1.引言 在开始之前#xff0c;我想我们有必要先了解以下DDD的主要参与者。因为毕竟语言是人说的吗#xff0c;就像我们面向对象编程一样#xff0c;那通用语言面向的是#xff1f;DDD的主要参与者#xff1a;领域专家开发人员领域专家#xff1a;精通业务的任何人。开发…1.引言 在开始之前我想我们有必要先了解以下DDD的主要参与者。因为毕竟语言是人说的吗就像我们面向对象编程一样那通用语言面向的是DDD的主要参与者领域专家开发人员领域专家精通业务的任何人。开发人员开发测试。领域专家擅长某个领域的知识专注于交付的业务价值。开发人员则注重于技术实现。开发人员总是想着类、接口、方法、设计模式、架构等。以面向对象的编程思想进行思考思考如何进行抽象、封装、继承、多态等。而领域专家对软件中的框架、持久化、数据库等没有概念而这也就导致了他们之间交流的困难性。 那怎么解决交流障碍这个问题呢 2. 通用语言 抛开DDD而言单从字面意思来理解我们首先肯定先联想到作为世界使用最多的语言--英语。英语之所以能成为通用语言我想无非是以下几方面 简单易学使用率高国际通用 那DDD中通用语言又是怎样呢首先它也同样要拥有【简单】的特性这样才便于理解和传播。其次它也要有【通用】、【使用率高】的特性因为只有在软件开发的过程中团队范围内所有的参与人员广泛使用才能准确传递业务规则。 通用语言是团队交流的基础上建立起来的代码则是基于通用语言来进行业务表达的。 3. 举个例子 项目经理安排了一项任务给我圣杰这个补丁处理下【可销控制】这个需求。听后真是一脸懵逼【可销控制】是什么鬼 这明显是专业术语我不懂的专业术语。按照DDD对通用语言的定义【可销控制】就不算通用语言。因为只有领域专家知道它的含义开发人员一脸茫然。 但通用语言是领域专家和开发人员一起创建的所以我们开个需求会议来梳理下专业术语背后的含义。 可销控制的应用场景是在ERP中在做单时对销售员负责的客户进行范围控制。比如A客户是销售员小李发展过来的小李希望仅能自己负责对A客户的业务。 这么一解释是不是明白不少了。但是不是还有几点疑惑 可销范围如何配置做什么单据时进行可销范围控制如何进行可销控制可销控制需不需要参数控制 经过讨论得出以下结论 提供专门的【销售员-客户可销控制】界面进行销售员-客户映射数据配置。做销售订单单据时进行可销范围控制在录入销售员后做单员在选择客户列表时客户列表中仅显示可销范围配置的客户数据。提供【销售员-客户可销范围控制】系统参数勾选后才进行可销范围控制。 好了这下需求理解个七八九了。原来可销控制就是销售员-客户销售范围控制。咱们用一句话来精简下这个需求可销控制是指销售员所负责客户的范围控制当勾选了【销售员-客户可销控制】参数后在做销售订单录入客户数据时客户列表仅能选择到在【可销控制】列表中为该销售员配置的客户。 经过这么一说明我们是不是已经理清了【可销控制】这个需求点。 那这种通过团队交流达成共识的能够简单清晰准确传递业务规则的语言可以是文字、图片等即可称为通用语言。 4. 通用语言的价值 就像上面所说的那样通用语言的最大价值是解决了交流障碍问题使领域专家和开发人员能够协同合作从而能够确保业务需求的正确表达。另外基于通用语言开发人员能够开发出可读性更好的代码从而将业务需求准确转化为代码设计。达到DDD的目标代码即设计设计即代码。通俗的讲也就是开发人员写的代码领域专家也能看懂。 5.通用语言的代码表达 既然开发人员也要基于通用语言进行代码开发那代码如何体现通用语言呢在《实现领域驱动设计》书中有一个简单的例子P238我们一起来看一下 系统必须对User进行认证并且只有当Tenant租户处于激活状态时才能对User进行认证。 上面这个用例就是基于通用语言的用例简单清楚的说明了业务规则。我们先看第一种代码实现 bool anthentic false; User user _userRepository().FindUserByTenantIdAndUserName(tenantId, userName);if(user!null) {authentic user.IsAuthentic(password); }return authentic; 这段代码完全不能反应通用语言主要存在以下问题 这段代码先查找user再对user进行密码匹配来完成认证。其中user.IsAuthentic(password);表示的是“用户是否被认证”的意思而没有表达出“认证”这个过程即“对用户进行认证”。未体现“检查Tenant是否处于激活状态”这个前提条件。 知道问题后我们可以讲代码略做改动 bool anthentic false; Tenant tenant _tenantRepository.FindTenantById(tenantId);//检查租户是否激活if(tenant!nulltenant.IsActive){ User user _userRepository.FindUserByTenantIdAndUserName(tenantId, userName);if(user!null) {authentic tenant.Authenticate(user, password);//租户对用户进行认证} }}return authentic; 以上代码虽然也不是最终结果但至少对通用语言进行了体现。通读代码就能明白业务用例体现代码即设计这一思想。 原文地址http://www.cnblogs.com/sheng-jie/p/6819378.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://www.huolong8.cn/news/97086/

相关文章:

  • h5自响应式网站模版门户网站建设的报价
  • 南昌市建设工程质量监督站网站wordpress首页不显示页面
  • 澄海网站建设部署个人网站
  • 上海网站制作公司哪家好台山市网站建设
  • 合肥制作网站价格设计类专业专科学校
  • 外贸网站支付接口网络服务器可提供的常见服务
  • 企业只有建立自己的网站平台那些网站能够做推广
  • 免费奖励自己的网站网页制作的平台
  • 广州网站下载安装网易企业邮箱邮件保存多久
  • 电子商务网站开发九洲建设app
  • 网站 微信开发网站 psd
  • 网站第三方统计工具钓鱼网站的域名怎么不稳定
  • 做简历最好的网站宿迁市房地产信息网
  • 网站开发要哪些音乐设计网站推荐
  • 个人网站建设基础与实例ae模板下载
  • 简述营销导向的企业网站建设的步骤wordpress学习教程
  • 凡科网站怎么修改昨天做的网站水果网站策划方案
  • 外贸机械网站建设网站文件夹命名怎么做
  • 惠州网站建设报价成都市城乡建设局网站
  • 软件工网站开发课程设计报告wordpress宝塔伪静态
  • 网站做一些流量互换网络营销与传统营销有哪些区别
  • 台州商务网站搜索引擎优化涉及到内容
  • 网站建设产品话术如何发布自己的网站
  • 玉林网站建设公司seo企业网站源码
  • qq网站登录入口请人做软件开发的网站
  • win7用iis搭建网站网站开发手机app
  • 山东兴华建设集团有限公司网站郴州网站排名优化
  • 万网网站域名注册排名好的郑州网站建设
  • 传媒视频软件下载网站网站建设终身不用维护
  • 部署自己做的网站吗手机自适应网站建设维护