Giáo trình đào tạo 28 days cho 1Mount Fresher. Các ví dụ mẫu sẽ được chia thành các thư mục đánh số 01, 02, 03, ... 28.
Giảng viên chính: Trịnh Minh Cường, di động 0902209011, email cuong@techmaster.vn
- Trịnh Minh Thuý - Techcombank Security (cập nhật sau)
- Phạm Quang Liêm - Viettel (cập nhật sau)
- Nguyễn Anh Tuấn - JDoctor (cập nhật sau)
- Chiều thứ 2: 4:00PM đến 7:00PM
- Sáng thứ 4: 8:00 đến 11:00
- Sáng thứ 6: 8:00 đến 11:00
Địa điểm: Tower 2, Times City, Hà nội
- Máy tính Core i5, RAM 16G, ổ cứng SSD
- Hệ điều hành: MacOSX 10.13.6 High Sierra hoặc mới hơn, Windows 10 64 bit, Linux Ubuntu bản mới
- Phần mềm viết code: sinh viên tuỳ chọn Visual Studio Code hoặc IntelliJ Ultimate Edition
- Cài sẵn JDK 15 hoặc 16 trên máy tính
- Tôi chỉ đánh giá kỹ năng lập trình, thái độ làm việc trong khuôn khổ 28 buổi học. Các quyết định khác còn phụ thuộc vào trưởng nhóm trực tiếp nhận các bạn vào dự án.
- Nghỉ học không quá 3 buổi.
- Ngoại lệ làm đồ án môn học xuất sắc, kiến trúc microservice, OAuth2, message queue, high performance system, bạn có thể nghỉ bất kỳ buổi nào để chuyên tâm nghiên cứu công nghệ. Cứ nói trước với tôi. Tôi hỗ trợ.
- Dịch từ tiếng Anh hoặc viết tối thiểu 5 bài viết chuyên đề Spring Boot.
- Hoàn thành một chủ đề nghiên cứu chuyên sâu. Nộp kết quả bao gồm:
- Mã nguồn mở trên github repo. Đảm bảo phải chạy được
- Tài liệu mô tả chi tiết bằng định dạng MarkDown
- Vẽ hình minh hoạ khối bằng diagrams.net
- Tự đọc sách, tài liệu tiếng Anh. Đọc sách, tham khảo code trên mạng thì rất tốt, nhưng luôn phải tự lập trình -> Đọc đến đâu, code đến đó
- Chủ động hỏi đáp, trao đổi, tìm giải pháp thay vì chờ đợi
- Hướng đến xây dựng ứng dụng hệ thống lớn (microservice system)
- Chia sẻ, giúp đỡ bạn trong lúc học
- Luôn đặt câu hỏi nếu hệ thống phải xử lý số lượng request x2, x5, x10, x50, x100 thì phải làm thế nào.
- Thầy giáo không phải là người biết tất cả và luôn đúng. Chỉ có lập trình thực tiễn trong nhiều trường hợp khác nhau mới là người thầy tin cậy.
- Tuyệt đối bảo mật và không để lộ dữ liệu, bí mật kinh doanh của công ty chủ quản trong dự án bài tập.
- Lập trình Java căn bản: khai báo class, interface, các cấu trúc dữ liệu biến thể của interface List, Set.
- Khởi tạo dự án Spring Boot, quản lý dependencies bằng Maven.
- Các cơ chế Dependency Injection: @Component, @Bean, @Autowired, các annotation bổ trợ.
- Tạo REST API: hiểu rõ HTTP request, response, cấu tạo bên trong. Stateless vs Stateful. Các HTTP Verb., CRUD. Tạo document với Swagger, OpenAPI.
- Sử dụng Lombok để rút gọn code định nghĩa một class.
- Kỹ thuật liên quan đến JPA (định nghĩa Entity, viết Query, Projection, Transaction, kết nối đến MySQL)
- Viết Automation Unit Test bằng JUnit5.
- Sử dụng JUnit5 Testing Container để viết integration test.
- Kết nối CSDL MongoDB.
- Bảo mật Json Web Token và cơ chế hoạt động OAuth2.
- Kỹ thuật lập trình Reactive Web. Nonblocking vs Blocking call. Benchmark tốc độ xử lý request giữa 2 phương pháp.
- Đóng gói ứng dụng Spring Boot bằng Docker.
- Xây dựng API Gateway với nhiều REST API end points.
- Giới hạn của hệ thống monolithics và các hướng xử lý.
Cuối cùng là các bạn hãy tự chọn một đề tài tìm hiểu chuyên sâu để lập trình đồ án môn học.
Chú ý: khoá học này không dạy lập trình Server Side Rendering nên chúng ta bỏ qua View Template Engine, Form, Cookie, Session
- Hãy nhắn tin cho tôi. Tôi sẽ gợi ý cho bạn một số hướng tự tìm hiểu.
- Hỗ trợ đồng đội kém hơn. Không nên kiêu ngạo.
- Dịch hoặc viết những bài tuts lập trình chia sẻ cho bạn học, đồng nghiệp.
- Dành thời gian học DevOps và các kiến trúc microservices.
- Hãy nhắn riêng, góp ý cho giảng viên
- Nói rõ chưa hiểu chỗ nào, đặt câu hỏi cụ thể
- Làm lại những bước căn bản trước đó
- Học nhóm với bạn giỏi hơn trong lớp
- Spring Boot in Action 5th
- Spring Security in Action
- API Security in Action
- Microservices Patterns: With examples in Java
- Spring Microservices in Action
- Hands-On Microservices with Spring Boot and Spring Cloud: Build and deploy Java microservices using Spring Cloud, Istio, and Kubernetes
- Spring Boot Persistence Best Practices: Optimize Java Persistence Performance in Spring Boot Applications