首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

n-tier理论中数据在层间是如何传递的?什么是BO,DO,PO,VO,DTO,BoDto,DoDto?

马克-to-win:一 个数据库中的表对应一个PO(Persistant Object),这好理解。在Web层的网页,当用户提交表单数据以后,在Controller层,把表单数据放在VO(View Object有人也叫Value Object) 当中,接着调用Service层。VO相对于网页表单数据,也许对应n个PO,而且和PO数据格式也许不一样。马克-to-win:(表单2012/1/1而数据库中是 2012-1-1)。Service层原始接受的数据是VO,但在这里,Service层把它变成DTO(Data Transfer Object)。DTO不用于VO,不但因为二者功能不同,(DTO用于专门的层间传输,VO用于持有表单数据)而且DTO也许有很多VO里没有的数据, 比如Service层的方法现场产生的加密密码,各种加密的标志,收到的短信验证码等。马克-to-win:Service层接着调用BO,BO调用DO,(这个过程 应该是涉及的业务范围越来越小,越来越具体,就像中央委托给东北局,东北局再委托给辽宁省,处理某个事一样),DTO在这个过程中承载的数据量也必然越来 越小。马克-to-win:既然有可能Service层和BO层或DO层不在同一台电脑上,为了节约网络带宽并提高系统性能,我们可以推出若干BoDto和DoDto的概念, 使它仅封装BO和DO需要的数据,当然采用BoDto和DoDto系统,会有越来越多的各种DTO,所以我们实际中宁愿使用粗粒DTO(即包含比需要多的 属性),而不是重新编写一堆新的各种各样的DTO,前提是只要冗余数据不是太多。马克-to-win:在代码量代码复杂度和系统性能之间做取舍是我们工程师永恒的话题。技术教 会大家,大家起码可以有做选择的机会。当DTO进入到DO层以后,经过DO的复杂处理后,当需要被传给Dao层,压入数据库之前一瞬间,就需要被变成PO 了。Dao层就相对简单了。

02

致敬平凡的程序员--《SOD框架“企业级”应用数据架构实战》自序

上面两句话不知道是哪位名人说的,又或者是广大劳动人民总结的,反正我很小的时候就常常听到这两句话,这两句话也成了我的人生格言,而且事实上我也是一个生活过得比较简单的平凡人物,当然这不能说我跟“伟大”有什么关系,我觉得绝大部分人都是像我一样的平凡人物,但正是这些绝大多数平凡的人,创造了我们现在这个美好的世界,说他们是伟大的一点也不过分。在我身边,也有一群平凡的程序员,用他们日复一日,加班加点,简单而平凡的工作,编写了许多有价值的商业软件,付出了青春和汗水,除了相应的薪水,还有什么更大的回报吗?不排除程序员中有一些出类拔萃的人,他们取得了工作上的成功,在能力上获得了很大的成长,当了公司高管又或者是自己创业,事业上取得了一定成就。但是这些出类拔萃的程序员是很少的,在本书第一章,笔者根据《2018年中国程序员生存现状报告》进行了分析,年薪超过30万的程序员不超过10%,年薪10万左右的占比最高,并且年薪10万到15万之间5到10年工作经验的程序员占比最高。如果按照社会上普遍的以收入来衡量一个人是否成功的标准,大部分程序员的职业人生都是不成功的,他们并没有随着工作年限的增长而获得相应成长,这是一个无奈的现实。然而换一个角度来看待,大部分程序员虽然每天都做着简单而重复的“增删改查”工作,但他们用平凡的工作为自己服务的公司创造了利润,为社会创造了价值。

02

不使用反射,“一行代码”实现Web、WinForm窗体表单数据的填充、收集、清除,和到数据库的CRUD

问题篇:     昨天在CSDN看到这样一个帖子:“苦逼的三层代码”: 采用传统的三层架构写代码,每个数据表都要定义一个实体对象,编写后台的时候, Web层需要针对页面的用户输入逐个手动编写赋值到实体对象的各个属性,然后DAL层还要用SqlHelper 进行各个存储过程对应参数的实体赋值, 我的天呀,写几个表还好,多个表呢, 写的后台都没力气, 典型的苦逼代码工没营养,各位有啥好的处理方法或开发方式。。     看到跟帖,大部分都说使用ORM解决这个问题,但我觉得ORM还是没有解决贴主的几个问题: 每个

08

springcloud Alibaba 微服务 flowable 工作流 自定义表单 vue.js前后分离

1.代码生成器: [正反双向](单表、主表、明细表、树形表,快速开发利器) freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块 2.多数据源:(支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源 3.阿里数据库连接池druid,安全权限框架 shiro(菜单权限和按钮权限), 缓存框架 ehcache 4.代码编辑器,在线模版编辑,仿开发工具编辑器 5.调用摄像头拍照 自定义裁剪编辑头像,头像图片色度调节 6.websocket 及时站内信并声音提醒、实时在线管理、websocket及时刷新页面(完胜ajax技术) 7.redis存储分布式缓存 自windows redis ,方便开发者本地开发测试

03

springcloud Alibaba 2021.0.1.0 + springboot 2.6.6 +flowable6.7.2

1.代码生成器: [正反双向](单表、主表、明细表、树形表,快速开发利器) freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块 2.多数据源:(支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源 3.阿里数据库连接池druid,安全权限框架 shiro(菜单权限和按钮权限), 缓存框架 ehcache 4.代码编辑器,在线模版编辑,仿开发工具编辑器 5.调用摄像头拍照 自定义裁剪编辑头像,头像图片色度调节 6.websocket 及时站内信并声音提醒、实时在线管理、websocket及时刷新页面(完胜ajax技术) 7.redis存储分布式缓存 自windows redis 绿色版,方便开发者本地开发测试 ----------------------------------------------------------------------------------------------------------------- 服务介绍 (各个服务单独运行,高可用、低耦合) 一:springcloud服务 ------------------------------------------------------------------------------------- 1.nacos 阿里注册中心:官方eureka停止更新,目前比较好的取代者就是nacos 2.zipkin 跟踪服务:分布式跟踪日志,基于内存存储记录 3.gateway 网关路由服务:分发请求,统一管理过滤,结合 ribbon 负载均衡、feign服务调用 4.springboot-admin 监控中心服务:统一界面管理,查看各个服务运行状态 actuator健康检查 5.sentinel 高可用流量管理框架:以流量为切入点,限流、流量整形、熔断降级、系统负载保护、热点防护 二:工作流服务 -------------------------------------------------------------------------------------------- 1.模型管理 :web在线流程设计器、导入导出xml、复制流程、部署流程,选择办理人

02
领券