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

二维码网站制作小游戏中心

二维码网站制作,小游戏中心,东莞网络推广及优化,网站服务器排名前十重新整理了一下过去开发的框架#xff0c;在准备开发新项目时候#xff0c;重新整理了一下思路#xff0c;感觉数据访问层还是很鸡肋。过去几年中#xff0c;急于完成项目开发和交付#xff0c;框架都是迭代过来的#xff0c;虽然满足了开发需求#xff0c;但是#xf…        重新整理了一下过去开发的框架在准备开发新项目时候重新整理了一下思路感觉数据访问层还是很鸡肋。过去几年中急于完成项目开发和交付框架都是迭代过来的虽然满足了开发需求但是从安全性、复杂度等方面看还是有不足的。 从安全性角度看查询参数和提交数据的安全校验必须增加。虽然已经使用了对象化参数传递查询参数防止了SQL注入的情况但是数据合法性校验依然没有深度去实现。从过去的实践中发现前端输入数据的随意性例如应该是整数用户输入了字母但是前端没有做严格的数据限制或者前端就是模板生成的代码校验不严谨导致系统保存数据的时候会直接报错。虽然底层对这些报错的情况做了拦截和记录日志但是严重影响了系统性能。 复杂度主要是指框架迭代过程中的一些冗余代码。数据访问层的设计是基于通用性和框架性两个大方面来考虑的。通用性就是不限定映射实体的具体类型和格式相当于兼容常规的系统开发。但是从框架角度特别是业务层面这些通用的映射实体是很难满足系统框架需求的。因此在这个基础上增加基于框架设计要求的实体基类例如包含 string recordId         数据行的唯一记录通过uuid(guid)生成字符串 DateTime createDate        记录的创建时间不允许修改 DateTime updateDate        记录最后修改时间 string createBy                记录创建人ID这里是员工的编号不允许修改 string updateBy                记录最后修改人的ID bool deleted                        记录软删除标记true表示记录被删除 还有其他一些字段的定义就不一一列举。 系统开发离不开与数据库的交互框架设计初衷就是最大化简化数据交互的方法降低开发的随意性和复杂性。 一般来说系统开发尽量不要直接使用数据库脚本进行数据交互。dotnet中有丰富的orm可以选择使用例如ef,dapper,sqlsugar,freesql等等但是学习这些组件也需要花费不少时间这是其一。其二就是程序员可能直接操作组件进行任意性的数据操作。从数据库优化角度看尽量单表查询减少join表查询然后程序员有时候为了方便直接就来join,甚至是好几个表join,也没有注意锁的应用在数据增加到一定程序就出现死锁情况。 orm提供了丰富的lambda方法进行查询也避免了写错字段的情况。框架把insert\update\delete\get\getlist\getpagelist等方法进行了封装可以减少95%以上的操作orm的机会通过封装一层屏蔽掉了orm的使用也降低了程序员的学习难度。 这次重构数据访问层主要从以下几点考虑 一、兼容读写分离。这里两个概念一个是有些业务需求数据是只能读的例如第三方同步过来的数据。框架增加了Read/Write两层数据访问层出现只能读的数据则继承只读的基类即可二个是主从数据库的读写分离业务流程的功能代码使用写的数据库分析用的数据使用读的数据库。前段时间自己开发了一个同步软件把sqlserver数据同步到了clickhouse,读写分离不限制数据库的类型有利于按需求选择数据库和优化系统开发。 二、提升分布式事务的安全性。防止某个微服务宕机导致请求等待的情况例如某个微服务已经接受了分布式事务但是突然就宕机了无法接收提交事务的请求或者回滚事务的请求导致数据的一致性被破坏。 三、业务表单支持多个从表的通用访问。在面向对象中不确定的数据访问层无法赋予对应的泛型来确定对象如果使用没有泛型的数据访问对象根本无法使用lambda进行查询因此把数据访问层的接口拆分成三组一组是没有泛型的一组是带实体泛型的一组是使用逆变泛型的。这样无论在什么情况下都可以使用一个统配实体接口来描述数据访问对象。 四、更换目前的orm,过去使用ef、chloe但是使用过程中存在各种问题比较了几个orm,选择freesql,比常规的orm支持更多的数据库类型特别是clickhouse.但是替换难度有点大尽量轻量化为不同的数据库要建立不同的接口或者组件按需动态加载这里和注入有点不一样只是用于解析不同数据或者交互的从开发层面上看这一层应该是透明的。 五、强化正则表达式的提交前的数据校验。除了可以在实体属性上定义规则外还允许在数据访问层添加或者制定验证规则。例如字段的长度、合法内容等在不同的业务中可能相同的字段会存在不同的校验规则。 以下是重新设计后的数据访问层结构图。框架设计把数据归为3类 1、基础数据例如员工信息、部门信息这类的 2、配置数据流入多对多的关联表 3、表单数据例如采购、销售等业务单据
http://www.hkea.cn/news/14432226/

相关文章:

  • 用wordpress做音乐网站设计制作建筑模型教案
  • 福建省建设监理网官方网站数字媒体艺术就业方向
  • 创建一个网站的技术营销网络建设四个阶段
  • 怎么给网站添加音乐平面设计案例网站
  • 深圳人才网站建设网站建设工作室介绍范文
  • 合肥商务科技学校网站建设seo网络优化是做什么的
  • wordpress弹出公告网站内容很少如何做seo
  • 宁夏网站建设费用地址汕头专业网页设计培训哪个好
  • 沈阳微信网站建设网站空间密码
  • 天台城乡规划建设局网站苏州网站快速推广
  • 佛山网站建设拓客科技国际设计公司logo
  • 做养生产品哪个网站好网站开发+协作平台
  • 网站域名的选择方法wordpress调整语言
  • 企业网站打包下载wordpress 删除自豪
  • 哪个网站可以做兼职wordpress安装没反应
  • 做企业网站什么软件好厦门建设局人员名单
  • 郑州好的网站建站电子商务网站怎么做数据库
  • 网站域名如何修改wordpress主题video
  • 专业的网站建设设计品牌建设浅谈
  • 安康市城市建设局网站怎样制作一个自己的网站
  • WordPress网站自媒体模板电影里的做视频在线观看网站
  • 阿里云服务器建设网站选择那个镜像青岛市建设监理网站
  • 可以上传软件的网站网络开发定制
  • 网站开发与app开发原理搭建网站需要什么技能
  • 免费收录网站提交做网站都有备案吗
  • 手表交易网站建设网站工具
  • 如何搜网站深圳全网推广排名
  • 网络建站网站逻辑结构
  • 站长之家ip查询沧州市网站制作公司
  • 深圳营销型网站建设公司哪家好做半成品网站