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ế
What if I tell you everything, Team Leader!
This lecture is full of know-hows that have been very helpful in my work.
Thank you for making such a great lecture :)
Thanks to the numerous Q&A's posted by students studying Spring and JPA together, if you have any questions while watching the lecture, 90% of them can be resolved by referring to the Q&A. This is because King Young-Hwan has been paying attention to the Q&A from the beginning... It is a lecture where I can earn money just by paying and listening.
I have completed the JPA Basics and Utilization 1 and 2.
There were many lectures that were so boring that it was hard to listen to them without playing them at high speed, but I couldn't play Younghan's lectures at high speed. The content was so rich and the lecture tension was good, so I was able to concentrate and listen to all the lectures. Thank you for the great lecture~!~!
Wow! Thank you, Jeongwon. Actually, I also think that tension is important, so when the tension dies down, I take it again. ㅋㅋㅋ I worked hard on this part, so I feel good to receive good feedback. ㅎㅎ
* You explain the best practices, but you also explain the bad practices, so I could understand why the improved ones are the best practices.
* You explain in detail the trade-offs of development convenience, performance, and maintenance. I haven't experienced much traffic yet, but I was able to understand what backend developers should consider to improve performance when the service grows and traffic increases.
* When I worked on improving performance, you showed me SQL queries one by one and explained how performance optimization is done, and also explained that this type of performance optimization is not always a silver bullet.
After listening to the explanation of Spring Data JPA and QueryDSL, I feel like I want to solidify my basics of DB and JPA.
Thank you for sharing your practical experience in a great lecture :)