数据知识栈

并发不适合胆小者

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

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

这就是通常处理线程相关任务的方式。 您自然会选择更高级别的抽象,因为您不想陷入低级细节中。 这就是为什么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,一经查实,立即删除!

相关文章

Spring Boot:快速启动MVC

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

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

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

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

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

Djang之cookie和session

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

ASP.NET技巧(收集)

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

Windows堆栈区别[转]

堆和栈的区别 (转贴) 非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥! 堆和栈的区别一、预备知识—程序的内存分配一个由c/C编译的程序占用的内存分为以下几个部分1、栈区&#xff08;stack&#xff09;— 由编译器自动分配释放 &#xff0c;存放函数的参数值&…

Tomcat启用HTTPS协议配置过程

Article1较为简洁&#xff0c;Article2较为详细&#xff0c;测试可行。 Article1 概念简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试…

springboot配置idea 热部署

背景&#xff1a; 在开发中&#xff0c;当我们修改代码之后&#xff0c;每次都要重新启动&#xff0c;很是浪费时间&#xff0c;在springboot中就有一种热部署方式&#xff0c;可以实现想要修改不需要每次都重新启动&#xff0c;保存即可生效 用法&#xff1a; 一、maven 添加 …

10分钟看懂Docker和K8S

作者&#xff1a;鲜枣课堂链接&#xff1a;https://www.jianshu.com/p/f1f94c6968f5 2010年&#xff0c;几个搞IT的年轻人&#xff0c;在美国旧金山成立了一家名叫“dotCloud”的公司。 这家公司主要提供基于PaaS的云计算技术服务。具体来说&#xff0c;是和LXC有关的容器技术。…

计算机专业论文关于天气预报的,关于天气预报论文范文写作 天气预报相关论文写作资料...

天气预报,本文是一篇关于天气预报论文范文&#xff0c;可作为相关选题参考,和写作参考文献。天气预报论文参考文献&#xff1a;每天吃过晚饭,严惠语都会准时打开电视,收看黑龙江电视台和云南电视台的天气预报节目.自从女儿考上云南大学,为了能攒够女儿下学期的费用,老公背起行李…

【快报】基于K2 BPM的新一代协同办公门户实践交流会

2014年2月28日&#xff0c;“基于BPM的新一代协同办公门户”用户实践交流活动在深圳金茂JW万豪酒店3楼Meet Room IV举办。本次会议由K2携手微软共同举办&#xff0c;邀请到的参会企业都是K2 的BPM老客户或对BPM新一代协同办公门户非常感兴趣的新朋友&#xff0c;他们有&#xf…

80个让你笑爆肚皮的程序员段子,不好笑算我输!

阅读本文大概需要 12 分钟。 1、折磨 对程序员的一般折磨&#xff1a;离奇的需求&#xff0c;对程序员的超级折磨&#xff1a;改三次需求~~~ 2、开发时间 项目经理说&#xff1a;给你三个人&#xff0c;多久可以完成&#xff1f;程序员&#xff1a;3个月&#xff01;那五个人呢…

腾讯TBS X5 WebView的简单使用

工作中经常涉及H5网页的加载工作&#xff0c;最多使用的就是安卓系统控件WebView&#xff0c;但是当网页内容比较多的时候&#xff0c;需要等待很久才能加载完&#xff0c;加载完后用户才能看到网页中的内容&#xff0c;这样用户需要等很久&#xff0c;体验很差。 那能不能边加…

python 内置标准库socketserver模块的思考

socketserver模块简化了编写网络服务器的任务, 在很大程度上封装了一些操作, 你可以看成是事件驱动型的设计, 这很不错。它定义了两个最基本的类--服务器类 BaseServer, 请求处理类 BaseRequestHandler. BaseServer 基本服务器类封装了基本的一些socket操作, socket原语中对so…

Spring 4.1和Java 8:java.util.Optional

由于Spring 4.1的Java 8的的java.util.Optional &#xff0c;容器对象可能会或可能不包含非空值&#xff0c;支持与RequestParam &#xff0c; RequestHeader和MatrixVariable 。 使用Java 8的java.util.Optional请确保参数永远不会为null 。 请求参数 在此示例中&#xff0c;…

Fibonacci again and again

Fibonacci again and again http://acm.hdu.edu.cn/showproblem.php?pid1848 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12494 Accepted Submission(s): 5439 Problem Description任何一个大学生对菲波那…

Vs Code 配置C/C++ 开发环境

第一步&#xff1a;下载 Vs Code 点击链接下载Vs Code 下载版本 并安装 https://code.visualstudio.com/ 点击 Download for Windwos 安装时 如图&#xff1a;请一定要勾选 添加到PATH (环境变量&#xff09; 其他选项可根据个人需要选配 但建议全部勾选 第二步&#xf…

28. css样式中px转rem

Vue3:脚手架配置 https://blog.csdn.net/weixin_41424247/article/details/80867351 与原来的vue-cli 2.x版本不同的是&#xff1a;如果使用最新版本的vue/cli初始化vue项目时&#xff0c;通常看不到webpack的配制文件。而在原来的2.x版本&#xff0c;我们可以在utils.js中轻…

集合已修改;可能无法执行枚举操作。

在对某个List进行遍历的同时&#xff0c;需要对其中的Item进行删除操作。 会提示错误&#xff1a;集合已修改&#xff1b;可能无法执行枚举操作 Codeforeach (VirtualTDate vtDate in tempList){ if (vtDate.Date itemTime.Date) { tempList.Remove(vtDate); …

UI测试脸型软件,App脸型美化剖析|UI-影视-其他|观点|freshoil - 原创文章 - 站酷 (ZCOOL)...

本文基于市面上多款App的美颜效果&#xff0c;做了一个对比分析&#xff0c;整理出一个可以指导美颜调教的参考规范。研究的几个要点如下&#xff1a;1.通过对 某陌、某音、某Y、某他相机、某天P图的效果对比分析2.本次只针对默认效果做对比(某Y无默认则选择自然)3.统一使用前置…