Chào mừng bạn tới với series "Become a Backend Java Developer". Loạt bài viết hướng dẫn trong series này được tạo ra với mục đích chia sẻ kiến thức và trải nghiệm học lập trình Java web của mình tham khảo theo chương trình đào tạo Fresher tại FPT Information System - FIS.
Theo mình nghĩ - viết bài là một trong những cách hiệu quả để có thể cải thiện khả năng ghi nhớ cũng như tăng cường hiểu biết trong mọi môn học, vấn đề. Vậy nên bài viết của một người còn non trẻ như mình sẽ còn mắc nhiều vi phạm, lỗi lầm - mong mọi người cải thiện và góp ý 🤓
Không biết nhiều về máy tính, Chưa từng viết code, Không giỏi môn toán, Không giỏi tiếng Anh, ... = me! 🤪🤪🤪
Chúng ta cần chuẩn bị gì trước?
- Cần chuẩn bị một tâm hồn đẹp - Để bắt đầu series học ấy à? Bạn nên có hiểu biết cơ bản về lập trình hướng đối tượng, Java basic syntax, kỹ năng tìm kiếm, tra cứu Google...v...v... Nhưng những thứ đó chỉ là điều kiện cần mà thôi. Điều quan trọng nhất mà bạn cần chuẩn bị là một tinh thần sẵn sàng học tập những kiến thức mới và đặt xuống mọi định kiến mà bạn đã từng có về việc học lập trình. Và đây mới là điều kiện đủ để chúng ta có thể bắt đầu hành trình tự học lập trình mà mình muốn dẫn bạn đi cùng với series bài viết này.
Cho người ta một phần mềm, bạn sẽ làm họ bực mình một ngày. Dạy người ta lập trình, họ sẽ bực mình cả đời
_David Leinweber
- JDK & Maven
- JDK: https://www.oracle.com/java/technologies/downloads/#java18
- Maven: https://maven.apache.org/download.cgi
- IntelliJ Community
- link: https://www.jetbrains.com/idea/download/#section=windows
- Window: https://www.jetbrains.com/idea/download/download-thanks.html?platform=windows&code=IIC
- MySQL Community for RDBMS
- MySQL Workbench for DB Management
- Postman for testing API https://www.postman.com/downloads/
Mục lục
- Java Core
- Java Flow Controls, Loop
- IDE & Environment (IntelliJ Community, MySQL, MySQL Workbench)
- Package, Class, Method, Data Types, Variables, Operators, String, Array
- OOP with Java
- Naming Convention (Java Coding Convention)
- Shadow copy & Deep copy
- String builder, String Buffer. Fail-fast, fail-safe
- Array, ArrayList, Vector, Map
- Interface, Abstract
- Annotation, Generics, Exception Handling
- Java Collection Framework
- Stream Processing
- Concurrency, Thread Safe
- Ví dụ concurency: Xóa phần tử trong vòng lặp
- Ví dụ thread safe: nối chuỗi string builder trong multi thread
- Tự tạo exception theo từng nghiệp vụ, catch multi exception
- Tự tạo 1 queue/stack có sử dụng generic
- Filter, group java 8, so sánh với các cách viết thông thường
- Java Advance
- IO (java.io)
- NIO (java.nio)
- Read/Write the CSV file
- Database Programming - JDBC
- Connection
- Statement, PrepareStatement, CallableStatement
- Transaction, ResultSet
- Working with H2 Database
- SQLInjection Attach
- Connection Pool (HikariCP)
- JDBC Advanced (DataRow, Scrollable Result Set, ...)
- Advance Topic
- TCP/UDP -> socket, streamming -> websocket
- Các lỗi timeout
- Firewall, demo mở chặn port firewall
- Các lỗi 500, 503, 504, 502,…
- Maven
- Junit 5
- Mockito
- SL4F (Logback), Log Level.
- Testing Process
- Coding Convention
- JaCoCo to check coverage code
- Java Web + Spring Core
- Giới thiệu về mô hình servlet, filter, listener,
- Spring Core
- Make a simple Spring Core (IOC, DI)
- Spring Framework
- Repository & Service Layer
- Spring Boot
- Spring Data JDBCTemplate
- Java Persistence API (Mapping, Querying, Transaction, …).
- Spring Data JPA
- Exception / Global Exception
- Spring Flyway
- Controller Layer
- Spring Data Rest API (CRUD Entity)
- Spring Web with REST API
- Validation
- Spring Test
- Testing in Spring
- Spring Test + JaCoCo
- Mockito in Spring
- Post man for Test
- Spring Security
- Spring Security
- Spring Security 4 Basic Authen
- Config Security for Rest API
- Demo spring security, authentication
- An toàn bảo mật thông tin
- Make a simple web application with SpringBoot + JPA/Hibernate + Spring Secutiry
- Let's go for an internship