数据知识栈
并發(fā)不適合膽小者
我們都知道并發(fā)編程很難正確實現。 這就是為什么在執(zhí)行線程任務之后要進行大量的設計和代碼審查會議。
您永遠不會將并發(fā)問題分配給經驗不足的開發(fā)人員。 仔細分析問題空間,提出設計,并記錄和審查解決方案。
這就是通常處理線程相關任務的方式。 您自然會選擇更高級別的抽象,因為您不想陷入低級細節(jié)中。 這就是為什么java.util.concurrent通常比手工生產者/消費者Java 1.2風格的線程安全結構更好(除非您構建高頻交易系統(tǒng))。
數據庫編程有什么不同嗎?
在數據庫系統(tǒng)中,數據分布在各種結構(SQL表或NoSQL集合)中,并且多個用戶可以選擇/插入/更新/刪除他們選擇的任何內容。 從并發(fā)的角度來看,這是一個非常具有挑戰(zhàn)性的任務,而不僅僅是數據庫系統(tǒng)開發(fā)人員的問題。 這也是我們的問題。
典型的RDBMS數據層要求您掌握各種技術,而您的解決方案僅與團隊最薄弱的地方一樣強大。
成功秘訣
當涉及到數據庫編程時,您永遠都不應從未受過訓練。 不斷學習是您最好的武器,沒有其他方法。
為此,我想出了自己的數據知識堆棧:
在前進到上一層之前,您應該始終掌握下一層。
因此,這些是馴服數據層的黃金法則:
- 該數據庫手冊不僅適用于數據庫管理員。如果您正在執(zhí)行任何與數據庫相關的任務,那么閱讀當前的數據庫手冊不是可選的。 您應該熟悉SQL標準和數據庫特定的特征。 擺脫SQL-92思維定式 。 不要讓可移植性的恐懼使您拒絕高效的數據庫特定功能。 最終,使用緩慢的數據庫層比將已經在運行的系統(tǒng)移植到新的數據庫解決方案上更為常見。
- 完整閱讀“ 企業(yè)應用程序架構的模式 ”,我將為您提供一個不錯的投資技巧。 您距離了解任何可用的ORM工具的核心概念還差50美元。 馬丁·福勒 ( Martin Fowler )的書對于任何企業(yè)開發(fā)人員都是必不可少的。 在線模式目錄是一個很好的預告片。
- 閱讀您的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
總結
- 上一篇: 针对新手的Java EE7和Maven项
- 下一篇: 在N + 1场景中使用@NamedEnt