Hiểu cách phát triển API chính xác bằng Spring Boot và JPA.
Hiểu cách điều chỉnh hiệu suất truy vấn API bằng Spring Boot và JPA.
Hiểu cách tối ưu hóa hiệu suất thực tế bằng Spring Boot và JPA.
Bạn muốn sử dụng Spring Boot hiệu quả trong thực tế? Phát triển khả năng giải quyết các vấn đề phức tạp.
🚩 Khóa học này là khóa học theo lộ trình.
Bài giảng này là bài thứ hai trong khóa học thực hành về phát triển back-end Java. Vui lòng xem lại lộ trình thành thạo Spring Boot và JPA(liên kết) .
Thực hành! Sử dụng Spring Boot và JPA 2 - Phát triển API và Tối ưu hóa Hiệu suất
Trong thế giới Java, việc phát triển ứng dụng web bằng Spring Boot và JPA đang là xu hướng toàn cầu. Do đó, nhiều nhà phát triển đang tìm hiểu và sử dụng hai công nghệ này. Tuy nhiên, việc sử dụng hiệu quả các công nghệ này trong các tình huống thực tế đa dạng và phức tạp, đồng thời vẫn đảm bảo hiệu suất, không hề dễ dàng như chúng ta tưởng.
Trên thực tế, bạn cần vượt ra ngoài phạm vi phát triển chức năng để giải quyết các vấn đề kỹ thuật. Bạn cần phát triển các ứng dụng tối ưu hóa hiệu suất trong các tình huống phức tạp, đòi hỏi nhiều dữ liệu, đồng thời dễ bảo trì.
Mục tiêu của khóa học
Trong khi Phần 1 tập trung vào việc triển khai các tính năng trong quá trình phát triển ứng dụng web, Phần 2 đi xa hơn việc phát triển chức năng và tập trung vào việc giải quyết các vấn đề kỹ thuật . Chúng tôi sẽ đề cập đến cách triển khai chúng đúng cách , những vấn đề về hiệu suất thường phát sinh trong thực tế và cách giải quyết chúng. Chúng tôi cũng sẽ giúp bạn giải quyết các vấn đề kỹ thuật.
Triển khai API đúng cách
Ngay cả khi phát triển một API duy nhất, việc sử dụng JPA cũng dẫn đến khái niệm thực thể, dẫn đến nhiều lo ngại. Liệu các thực thể có nên được hiển thị trực tiếp với API không? Hay chúng nên được tạo thành các đối tượng riêng biệt và được trả về? Tải lười biếng nên được xử lý như thế nào khi trả về các thực thể? Những câu hỏi này thường nảy sinh. Chúng tôi sẽ chia sẻ bí quyết thực tế về cách triển khai chúng một cách an toàn và dễ bảo trì.
Hiểu về tối ưu hóa hiệu suất truy vấn JPA Extreme
Trong thực tế, thường phát sinh các tình huống phức tạp khi phải kết hợp nhiều bảng để truy xuất dữ liệu nhanh chóng. Tuy nhiên, điều này thường đòi hỏi phải bổ sung dữ liệu thu thập với các mối quan hệ một-nhiều, và có thể cần thêm phân trang. Điều này làm phức tạp vấn đề đáng kể, khiến việc giải quyết bằng các phép kết hợp bảng đơn giản trở nên khó khăn. Bài viết này sẽ chia sẻ bí quyết thực tế về cách tối ưu hóa các vấn đề hiệu suất truy vấn phức tạp này với JPA và các hạn chế của nó.
Điều chỉnh hiệu suất bằng cách mã hóa các ví dụ phức tạp theo sáu bước.
Chúng tôi đã chuẩn bị hướng dẫn sáu bước để giúp bạn phát triển một API hoạt động kém, phân tích nguyên nhân gây lỗi và tinh chỉnh từng bước thông qua mã hóa . Bằng cách làm theo hướng dẫn này, bạn sẽ tự nhiên học được cách giải quyết các vấn đề hiệu suất phức tạp trong các tình huống thực tế.
Giải quyết 90% các vấn đề thực tế về hiệu suất JPA
Khóa học này đề cập đến nhiều vấn đề về hiệu suất thường gặp trong thực tế, giúp bạn giải quyết 90% các vấn đề thực tế về hiệu suất JPA. Tôi đã chứng kiến vô số lập trình viên làm việc trên các dự án Spring Boot và JPA triển khai thành công các chức năng, nhưng lại gặp khó khăn với các vấn đề về hiệu suất vào cuối dự án. Vì vậy, khi tôi đến hỗ trợ họ, tôi thường nhận ra họ không biết cách tối ưu hóa hiệu suất JPA.
Tôi đã chứng kiến đủ loại tình huống, từ những người thức trắng đêm tìm giải pháp, đến những người, vì không chắc chắn về giải pháp, đã tự tay viết lại SQL thay vì JPA và chuyển đổi vô số mã thành SQL. Tuy nhiên, khi tôi thực sự vào cuộc, chỉ mất chưa đầy năm phút để tinh chỉnh hệ thống để đạt hiệu suất tối ưu. Tôi vẫn có thể hình dung rõ nét vẻ mặt của nhà phát triển khi họ thấy một truy vấn từng mất cả giờ, bất chấp nhiều ngày làm việc chăm chỉ, đã được rút ngắn xuống còn vài chục giây bằng cách điều chỉnh các tùy chọn truy vấn JPA và thực hiện một vài thay đổi nhỏ về mã. JPA vốn cung cấp nhiều tùy chọn tinh chỉnh hiệu suất , vì vậy chỉ với một vài tùy chọn và sửa đổi mã, bạn có thể thử nghiệm nhiều cách tối ưu hóa hiệu suất khác nhau.
Nếu bạn hiểu những gì tôi đang nói trong bài giảng này, bạn sẽ có thể giải quyết 90% các vấn đề về hiệu suất thực tế của mình.
Mục lục chính
Ngày nay, thay vì sử dụng các mẫu view để tạo HTML trực tiếp trên máy chủ và phản hồi, nhiều nhà phát triển đang tải dữ liệu JSON vào API và trả về. Mục tiêu của bài viết này là tìm hiểu các cân nhắc và hướng dẫn thiết kế phù hợp để phát triển API bằng Spring Boot và JPA, đồng thời hoàn thiện API với mục tiêu tối ưu hóa hiệu suất.
Phần 2 phát triển một REST API dựa trên miền đã tạo trong Phần 1. Sau đó, chúng tôi từng bước tối ưu hóa hiệu suất của API truy vấn. Quy trình này cung cấp giải thích chi tiết và toàn diện về việc tinh chỉnh truy vấn JPA, một hoạt động quan trọng.
Cơ bản về phát triển API : Phát triển API REST cơ bản để đăng ký, sửa đổi và truy vấn.
Phát triển API Nâng cao: Chúng tôi sẽ giải thích những cân nhắc chính và hướng dẫn thiết kế để phát triển API truy vấn sử dụng JPA trong thực tế. Chúng tôi sẽ giải quyết các vấn đề về tải chậm JPA và hướng dẫn từng bước các phương pháp tối ưu hóa hiệu suất khác nhau.
Tối ưu hóa cần thiết cho thực hành: Bao gồm các chủ đề OSIV có thể dẫn đến các vấn đề thực tế nếu không được xử lý cẩn thận khi sử dụng Spring Boot và JPA.
Làm thế nào để học
Khóa học này chủ yếu là thực hành . Do đó, bạn sẽ tận dụng tối đa lợi ích của nó bằng cách tự mình viết mã và theo dõi bài giảng từ đầu đến cuối .
Xin lưu ý rằng khóa học này dành cho những người đã quen thuộc với Spring Boot và JPA và có khả năng phát triển các ứng dụng web đơn giản. Mục tiêu là giúp những người này phát triển hiểu biết chuyên sâu về kỹ thuật, vượt ra ngoài phạm vi triển khai chức năng. Do đó, nếu bạn chưa có kiến thức vững chắc về Spring Boot và JPA, chúng tôi khuyên bạn nên học Phần 1 trước.
💻 Hãy xem bài giảng của người chơi!
Chúng tôi sẽ phát triển một API dựa trên mô hình miền được thiết kế trong Phần 1 và trình bày các kỹ thuật tối ưu hóa hiệu suất khác nhau. Do đó, chúng tôi khuyên bạn nên học Phần 1 trước Phần 2.
Thực tế! Querydsl Giải quyết các vấn đề truy vấn phức tạp và động với Querydsl.
sách tham khảo
Cuốn sách này dành cho những ai muốn nghiên cứu sâu hơn về nội dung. Bạn có thể coi nó như một cuốn sách tham khảo. (Ngay cả khi bạn không có sách, tài liệu riêng cho bài giảng vẫn sẽ được cung cấp.)
Khuyến nghị cho những người này
Khóa học này dành cho ai?
Những người sử dụng Spring Boot và JPA trong thực tế nhưng muốn sử dụng những công nghệ đó tốt hơn
Bất kỳ ai biết Spring Boot và JPA nhưng muốn hiểu cách phát triển API phù hợp
Bất cứ ai biết Spring Boot và JPA nhưng muốn hiểu các kỹ thuật tối ưu hóa hiệu suất cần thiết để sử dụng thực tế
Những người biết Spring Boot và JPA nhưng muốn hiểu sâu nội dung cần thiết cho việc sử dụng thực tế
Nếu tôi kể cho anh mọi chuyện thì sao, trưởng nhóm?
Bài giảng này chứa đầy những bí quyết rất hữu ích trong thực tế.
Cảm ơn bạn đã tạo ra một bài giảng tuyệt vời :)
Nhờ có rất nhiều Q&A được đăng bởi các sinh viên cùng học Spring và JPA, nếu có thắc mắc gì về bài giảng, 90% sẽ được giải đáp bằng cách tham khảo Q&A. Đó là bởi vì Vua Younghwan luôn chú ý đến phần Hỏi đáp... Tôi thực sự kiếm tiền chỉ bằng cách trả tiền và nghe giảng.
Tôi đã hoàn thành phần cơ bản và cách sử dụng JPA phần 1 và 2.
Có nhiều bài giảng nhàm chán đến mức khó nghe nếu không bật tốc độ gấp đôi, nhưng tôi không thể mở bài giảng của Younghan ở tốc độ gấp đôi. Nội dung rất phong phú và độ căng thẳng của bài giảng tốt đến nỗi tôi có thể tập trung và nghe hết tất cả các bài giảng. Cảm ơn bạn vì bài giảng tuyệt vời~!~!
Đẹp! Cảm ơn. Jeongwon. Thực ra tôi cũng nghĩ sự căng thẳng rất quan trọng nên tôi quay phim lại khi bớt căng thẳng haha tôi đã bỏ rất nhiều công sức vào phần này và cảm thấy rất vui khi nhận được phản hồi tốt.
* Bạn đã được hướng dẫn những phương pháp hay nhất nhưng bạn cũng giải thích những phương pháp chưa tốt, nhờ đó tôi có thể hiểu tại sao những phương pháp cải tiến lại trở thành phương pháp hay nhất.
* Vui lòng giải thích chi tiết những sự đánh đổi như sự thuận tiện trong phát triển, hiệu suất và bảo trì. Mặc dù chúng tôi chưa gặp nhiều lưu lượng truy cập nhưng chúng tôi đã có thể biết các nhà phát triển phụ trợ cần xem xét những gì để cải thiện hiệu suất khi dịch vụ phát triển và lưu lượng truy cập tăng.
* Khi nỗ lực cải thiện hiệu suất, chúng tôi hiển thị từng truy vấn SQL một và cho bạn biết hiệu suất được tối ưu hóa như thế nào và loại tối ưu hóa hiệu suất này không phải lúc nào cũng là giải pháp hiệu quả.
Sau khi nghe giải thích về Spring Data JPA và QueryDSL, tôi thấy mình muốn củng cố kiến thức cơ bản về DB và JPA.
Cảm ơn bạn đã chia sẻ kinh nghiệm thực tế của mình trong một bài giảng tuyệt vời :)