数据知识栈

并发不适合胆小者

我们都知道并发编程很难正确实现。 这就是为什么在执行线程任务之后要进行大量的设计和代码审查会议。

您永远不会将并发问题分配给经验不足的开发人员。 仔细分析问题空间,提出设计,并记录和审查解决方案。

这就是通常处理线程相关任务的方式。 您自然会选择更高级别的抽象,因为您不想陷入低级细节中。 这就是为什么java.util.concurrent通常比手工生产者/消费者Java 1.2风格的线程安全结构更好(除非您构建高频交易系统)。

数据库编程有什么不同吗?

在数据库系统中,数据分布在各种结构(SQL表或NoSQL集合)中,并且多个用户可以选择/插入/更新/删除他们选择的任何内容。 从并发的角度来看,这是一个非常具有挑战性的任务,而不仅仅是数据库系统开发人员的问题。 这也是我们的问题。

典型的RDBMS数据层要求您掌握各种技术,而您的解决方案仅与团队最薄弱的地方一样强大。

成功秘诀

当涉及到数据库编程时,您永远都不应从未受过训练。 不断学习是您最好的武器,没有其他方法。

为此,我想出了自己的数据知识堆栈:

数据栈

在前进到上一层之前,您应该始终掌握下一层。

因此,这些是驯服数据层的黄金法则:

  • 该数据库手册不仅适用于数据库管理员。如果您正在执行任何与数据库相关的任务,那么阅读当前的数据库手册不是可选的。 您应该熟悉SQL标准和数据库特定的特征。 摆脱SQL-92思维定式 。 不要让可移植性的恐惧使您拒绝高效的数据库特定功能。 最终,使用缓慢的数据库层比将已经在运行的系统移植到新的数据库解决方案上更为常见。
  • 完整阅读“ 企业应用程序架构的模式 ”,我将为您提供一个不错的投资技巧。 您距离了解任何可用的ORM工具的核心概念还差50美元。 马丁·福勒 ( Martin Fowler )的书对于任何企业开发人员都是必不可少的。 在线模式目录是一个很好的预告片。
  • 阅读您的ORM文档有些人认为他们的ORM工具是万恶之源。 除非您花时间阅读所有可用的文档,否则,将很难驯服ORM数据层。 关系不匹配的对象一直是一个非常复杂的问题,但是它简化了复杂对象树结构的CREATE / UPDATE / DELETE操作。 ORM的乐观锁定功能是解决“丢失的更新”问题的好方法 。
  • 选择和混合 JPA / Hibernate不能替代SQL。 您应该充分利用JPA和SQL,并将它们组合成一个成功的解决方案。 由于SQL在任何非平凡的应用程序中都是不可避免的,因此明智的做法是花一些时间(甚至是许可证)来使用功能强大的查询框架 。 如果您担心数据库的可移植性使您无法使用专有的数据库查询功能,那么JPA / JOOQ混合泳是成功的秘诀。

休眠大师班

我已经使用Hibernate已有将近十年了,我承认这并不是一件容易的事。 每天都会出现与StackOverflow Hibernate相关的问题。

这就是为什么我决定提出自己的Hibernate资料(我将在此博客和GitHub帐户上共享)的原因,因为如果您愿意花费时间来学习它,那么您就不必为自己的努力而付费。 对于那些需要密集且个性化的Hibernate Master培训的人,请随时与我联系。 我们将找到一种方法来培训您。

翻译自: https://www.javacodegeeks.com/2014/06/the-data-knowledge-stack.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/363600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker Swarm 常用命令

# 管理配置文件docker config # 查看已创建配置文件 - docker config ls # 将已有配置文件添加到docker配置文件中 - docker config create docker 配置文件名 本地配置文件# 管理swarm节点docker node # 查看集群中的节点 - docker node ls # 将manager角色降级为wor…

单点登录

单点登录:是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分 1、获取登录页面的表单信息: 用户名,密码等, eg:  var username document.ge…

我的GMAIL下蛋了,要的请留下姓,名和email!!

如果要的请留下First Name,Last Name,Email!先来先得,发完为止!转载于:https://www.cnblogs.com/xiali/archive/2004/09/20/44731.html

微型计算机用什么评价判断,环评中常用评价等级的判定

环评中常用评价等级的判定环评就是分析项目建成投产后可能对环境产生的影响,并提出污染防治对策和措施。那么环评中常用评价等级的判定有哪些呢?一、生态影响评价工作等级划分表影响区域生态敏感性工程占地(水域)范围面积≥20km2或长度≥100km面积2km2~…

客服顾问的工具箱--走出软件作坊:三五个人十来条枪 如何成为开发正规军(六)[转]...

这段时间,写完了项目经理的工具箱---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三) 、实施经理的工具箱--走出软件作坊:三五个人十来条枪 如何成为开发正规军(五)。于是想一气呵成&…

Spring Boot:快速启动MVC

我打算一年多以前写一篇关于Spring Boot的文章。 最后,我有时间和灵感。 因此,准备10到15分钟的高质量Spring教程。 我将用Gradle和嵌入式Tomcat演示Spring Boot的基础知识。 我使用Intellij IDEA而不是Eclipse,但是对于那些习惯Eclipse的人来…

opengl库区分:glut、freeglut、glfw、glew、gl3w、glad

//oepngl库 opengl原生库 gl* 随opengl一起发布 opengl实用库 glu* 随opengl一起发布 opengl实用工具库glut glut* 需要下载配置安装(太老了!) opengl实用工具库开源版本freeglut glut* 需要下载配置安装(完全兼容glut,算是glut的代替品,但是…

css实现左(右)侧固定宽度,右(左)侧宽度自适应 ---清除浮动

老话长谈,css的不固定适应布局 不管是面试还是在平时的工作中,这样的布局形式一直都在用着,很常见,所以今天我就拿出来在唠叨一下, 既是给自己一个备忘存储,也是一个学习巩固的参考,知道大家都…

Func 与Action

Func< > 封装一个具有一个参数并返回 TResult 参数指定的类型值的方法&#xff0c; Action<T> 委托封装一个方法&#xff0c;该方法只有一个参数并且不返回值。 其实都是一个委托 Main() { Func<int, string > fun p.Name;//int是委托要执行的…

HDU1512 (左偏树)

2.1.2 可并堆的定义 可并堆(Mergeable Heap)也是一种抽象数据类型&#xff0c;它除了支持优先队列的三个基本操作(Insert, Minimum, Delete-Min)&#xff0c;还支持一个额外的操作——合并操作&#xff1a; H ← Merge(H1,H2) Merge( ) 构造并返回一个包含H1和H2所有元素的新堆…

布里斯托大学计算机科学专业排名,2021年布里斯托大学世界及专业排名 多个领域位居全英前十!...

它既是红砖大学的成员&#xff0c;也是罗素大学集团成员&#xff0c;在这所学校里共培养出了13位诺贝尔奖得主&#xff0c;这所学校就是布里斯托大学&#xff0c;该校的83%的研究成果都达到了世界领先水平&#xff0c;因此&#xff0c;越来越多的学生去布里斯托大学留学&#x…

Spring启动时的Spring社交示例,或者我如何不再担心和喜欢自动配置

对于Spring Boot 1.1.0.RC1&#xff0c;添加了自动配置和Spring Social的启动程序pom&#xff0c;这意味着我不必为pom添加一百个依赖关系&#xff0c;并且将为我处理许多毫无意义的Spring配置。 让我们来看一个例子。 我将实现一个两页的Web应用程序。 一个将显示给定用户的T…

Djang之cookie和session

一 会话跟踪 我们需要先了解一下什么是会话&#xff01;可以把会话理解为客户端与服务器之间的一次会晤&#xff0c;在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话&#xff0c;你就是客户端&#xff0c;而10086服务人员就是服务器了。从双方接通电话那一刻起&a…

html 安卓解锁,【华为手机解账户锁教程】手撕篇3 完美解锁华为EMUI8.0,8.1,8.2系统...

[free]华为手机在8.0系统以后都无法用工具解除账户锁。但要想解除账户锁&#xff0c;并不是没有办法&#xff0c;下面我们演示手工解账户锁的一种方法&#xff0c;本方案 针对所有华为机型的EMUI8.0 8.1 8.2有效&#xff0c;其他系统自测&#xff0c;需要华为手机解锁的可以联系…

java.lang.Error: Unresolved compilation problems

一般有两种常见的情况&#xff1a; 1、当一个 jar 文件的 MANIFEST.MF 中已经标记了 Sealed: true 时&#xff0c;这个 jar 内所有的 java package 中的类必须来自这个 jar 包&#xff0c;这是 JVM 的安全措施&#xff0c;配合数字签名就能防止篡改&#xff0c;微软就把它的 SQ…

正则表达式实例

1、匹配非负整数&#xff08;正整数 0&#xff09; <div class"qfverify"><input type"text" onkeyup"inputIntReg(this)" placeholder"请输入充值预算"><p class"qfverify__font">请输入有效数字</p…

ASP.NET技巧(收集)

1、有没有办法让JavaScript的注释在客户端不可见呢&#xff1f; 答案很简单&#xff0c;就是&#xff1a;JavaScript注释 服务器端注释&#xff01; 行注释写法&#xff1a; //<%-- 这里写行注释 --%> 块注释写法&#xff1a; /*<%-- 这里写注释语句块&a…

Java文件I / O基础

Java 7引入了java.nio.file包&#xff0c;以提供对文件I / O的全面支持。 除了许多其他功能之外&#xff0c;该软件包还包括Files类&#xff08;如果您已经使用此类&#xff0c;则可以在这里停止阅读&#xff09;。 文件包含许多静态方法&#xff0c;可用于在处理文件时完成常…

2018-05-14 代码考古-Python3官方教程字典例程

知乎原链 Data Structures中的第一个例程:>>> tel {jack: 4098, sape: 4139} >>> tel[guido] 4127 >>> tel {sape: 4139, guido: 4127, jack: 4098} >>> tel[jack] 4098 >>> del tel[sape] >>> tel[irv] 4127 >&g…

中大计算机考研复试刷人太狠,中山大学考研复试被刷原因大盘点!

不知不觉已经进入4月了&#xff0c;距离分数线公布的时间也越来越近了。复试的重要程度一点也不亚于初试的。复试考察内容多&#xff0c;考察形式多样&#xff0c;往年也有高分落榜&#xff0c;低分逆袭的情况&#xff0c;不管你是何种情况&#xff0c;都要做好复试准备哦&…