Vlad Mihalcea – 20 năm Hibernate phát triển

Sau hơn 20 năm phát triển, Hibernate hiện nay là một ORM framework được sử dụng rộng rãi trong các ứng dụng Java. Vlad Mihalcea tác giả của cuốn sách High-Performance Java Persistence đã có một bài viết chia sẽ về quá trình phát triển sự nghiệp của mình cùng với Hibernate.

Introduction

Vào ngày 23 tháng 5 năm 2001, Gavin King ra mắt phiên bản Hibernate đầu tiên. 20 năm sau Hibernate là một trong những Java data access frameworks thành công nhất, có hàng triệu nhà phát triển sử dụng nó hàng ngày.

My Hibernate journey

Tham gia vào dự án Hibernate là một trong những quyết định đúng đắn nhất trong con đường sự nghiệp của tôi. Chúng ta sẽ cùng tìm hiểu chặng đường này ngay sau đây.

NHibernate Beta version

Đó là năm 2004 khi tôi bắt đầu làm luận văn tốt nghiệp của mình sử dụng .NET nên tôi bắt đầu tìm hiểu về NHibernate, một dự án mã nguồn mã mới lấy ý tưởng từ một dự án Java rất nổi tiếng lúc bấy giờ gọi là Hibernate.

Sau khi đọc tài liệu về NHibernate và Hibernate. Tài liệu được viết rất tốt, API truy cập dữ liệu vừa đơn giản vừa mạnh mẽ. Vì vậy, tôi đã chọn NHibernate, ngay cả khi phiên bản có sẵn chỉ là bản Beta, 0.8.4.

J2EE and JDBC 

Việc sử dụng NHibernate để thao tác dữ liệu đơn giản và logic hơn đối thủ ADO.NET.

Trước khi tốt nghiệp, tôi đã tìm được một công việc phát triển phần mềm sử dụng ngôn ngữ Java và đang sử dụng J2EE. Tầng data access không sử dụng Entity Beans do các vấn đề về hiệu suất khét tiếng của chúng, thay vào đó là JDBC.

Tôi đã phải triển khai cơ chế xử lý giao dịch để đảm bảo rằng nhiều phương thức DAO được sử dụng trong cùng một transaction. Ngày nay, đây chỉ là vấn đề thêm chú thích @Transactional, nhưng 20 năm trước, để đạt được điều đó là rất nhiều công sức.

Sau một thời gian phát triển dự án, project manager nói rằng họ cần hỗ trợ thêm Oracle database. Tầng data access lúc này gồm hàng nghìn câu lệnh dành riêng cho SQL Server, do đó, việc hỗ trợ cho Oracle mất rất nhiều thời gian. Đã từng sử dụng NHibernate trước đây, tôi cũng đã bỏ lỡ tính năng quan trọng của nó giúp chuyển đổi linh hoạt giữa các database khác nhau.

Spring and Hibernate

Năm 2008, tôi đã tham gia một team mới sử dụng spring và hibernate.Bỏ lại J2EE phía sau thật dễ dàng! Spring và Hibernate là một sự kết hợp tuyệt vời, và dự án đã thành công tốt đẹp.

Việc phải sử dụng Hibernate hàng ngày cho phép tôi tìm hiểu thêm về nó. Vì vậy, tôi bắt đầu đọc cuốn sách Java Persistence with Hibernate được viết bởi  Christian Bauer, một Hibernate committer lâu năm và Gavin King, cha đẻ của Hibernate.

Bằng cách đọc tài liệu và cuốn sách Java Persistence with Hibernate, tôi đã biết cách sử dụng Hibernate đúng cách.

Cho đến năm 2015, khi tôi bỏ công việc  software architect, mọi dự án Java mà chúng tôi phát triển đều sử dụng Spring và Hibernate. Từ những dự án nhỏ đến một trong những nền tảng bất động sản lớn nhất ở Phần Lan, Spring và Hibernate đã là một câu chuyện thành công đối với chúng tôi.

Blogging and answering Stack Overflow questions

Vào năm 2013, tôi bắt đầu viết blog này và trong suốt thời gian này, tôi đã viết được hơn 400 bài báo về Hibernate, JPA và các hệ thống cơ sở dữ liệu.

Viết blog hoạt động theo cả hai cách. Bạn không chỉ có thể chia sẻ kiến ​​thức của mình với người khác mà viết ra suy nghĩ của bạn là một cách tuyệt vời để hiểu sâu hơn về một chủ đề nhất định.

Trong khi trước đây tôi chỉ đọc các câu trả lời của StackOverflow, vào tháng 5 năm 2014, tôi bắt đầu trả lời các câu hỏi Hibernate, và thật ngạc nhiên, tôi bắt đầu thích làm điều đó. Hiện nay, tài khoản StackOverflow của tôi cho tôi thấy rằng tôi đã trả lời hơn 1600 câu hỏi.

Sau một thời gian, Hibernate team đã ghi nhận những đóng góp và đề nghị tôi làm việc với tư cách là Developer Advocate for the Hibernate project.

Working on the Hibernate project

Trong ba năm tôi làm việc cho dự án Hibernate, tôi đã cố gắng viết lại user guide và một vài mẹo để tối ưu hiệu suất. Vo số pull request, hồi sinh hibernate forum và tham giao làm diễn giả tại vô số các hội nghị phần mềm.

High-Performance Java Persistence

Trong khi làm việc với tư cách là một software developer tôi nhận thấy rằng, trong mọi dự án mà tôi làm việc, một số đồng nghiệp của tôi đang phải vật lộn với các vấn đề về hiệu suất cơ sở dữ liệu, bất kể họ đang sử dụng framework nào.

Và, bởi vì các bài báo của và câu trả lời của tôi trên StackOverflow đã được đón nhận rất tích cực, tôi bắt đầu nghĩ đến việc viết một cuốn sách về cách tối ưu hiệu suất truy cập dữ liệu trong Java. Và đó là lý do tại sao cuốn sách High-Performance Java Persistence của tôi ra đời.

Năm năm sau, Java Persistence hiệu suất cao là sản phẩm bán chạy nhất của Amazon với hơn 63 bài đánh giá.

Hibernate Types

Vào mùa thu năm 2018, tôi bắt đầu dự án mã nguồn mở Hibernate Types, hỗ trợ cho nhiều loại dữ liệu như JSON, ARRAY, Range, HStore, Inet. Hiện nay, dự án Hibernate Types nhận được hơn 850 nghìn lượt tải xuống hàng tháng.

Hypersistence Optimizer

Sau khi nghỉ việc tại Red hat, tôi bắt đầu làm việc trên Hypersistence Optimize, một công cụ giúp bạn phân tích các ánh xạ, cấu hình Hibernate, cũng như các truy vấn và việc sử dụng EntityManager, và cho bạn biết bạn cần thực hiện những thay đổi nào để tăng tốc tầng data access của mình.

Hai năm sau, và Hypersistence Optimizer là công cụ cứu cánh cho hàng trăm công ty sử dụng nó hàng ngày.

Bài viết được dịch từ: https://vladmihalcea.com/20-years-of-hibernate/

 

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x