CHƯƠNG 1. Tổng quan về ngôn ngữ lập trình 1. HTML HTML là một ngôn ngữ đánh dấu được thiết kế ra để tạo nên các trang web với các mẫu thông tin được trình bày trên World Wide Web. Cùng với CSS và Javascript, HTML tạo ra bộ ba nền tảng kỹ thuật cho World Wide Web.
HTML được định nghĩa như là một ứng dụng đơn giản của SGML và được sử dụng trong các tổ chức cần đến các yêu cầu xuất bản phức tạp. HTML đã trở thành một chuẩn Internet do tổ chức World Wide Web Consortium (W3C) duy trì. Phiên bản chính thức mới nhất của HTML và HTML 4. Sau đó, các nhà phát triển đã thay thế nó bằng XHTML.
Hiện nay, HTML đang được phát triển tiếp với phiên bản HTML5 hứa hẹn mang lại diện mạo mới cho trang Web. CSS CSS nó là một ngôn ngữ được sử dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánh dấu (ví dụ như HTML). Ta có thể hiểu đơn giản rằng, nếu HTML đóng vai trò định dạng các phần tử trên website như việc tạo ra các đoạn văn bản, các tiểu đề, bảng… thì CSS sẽ giúp chúng ta có thể thêm một chút “phong cách” vào các phần tử HTML đó như đổi màu sắc trang, đổi màu chữ, thay đổi cấu trúc, …. CSS được sử dụng trong Website là công nghệ được phát triển bởi W3C, được dùng để phát triển Front-end.
SVTH: Đỗ Huỳnh Ngọc Thế Trang 4 Xây dựng website đặt đồ ăn nhanh Hình 1. Java Java là một ngôn ngữ lập trình và một nền tảng phát triển ứng dụng. Nó được tạo ra bởi James Gosling và nhóm phát triển tại Sun Microsystems (nay là Oracle Corporation) vào những năm 1990. Java được thiết kế để có tính đa nền tảng, có nghĩa là các ứng dụng Java có thể chạy trên nhiều hệ điều hành khác nhau như Windows, macOS, Linux và nhiều thiết bị khác nhau như điện thoại di động, máy tính bảng, máy tính cá nhân, thiết bị nhúng và máy chủ.
Hình ảnh Java SVTH: Đỗ Huỳnh Ngọc Thế Trang 5 Xây dựng website đặt đồ ăn nhanh 1. Hệ quản trị cơ sở dữ liệu MySQL MySQL là một hệ thống quản trị cơ sở dữ liệu quan hệ (RDBMS) hoạt động theo mô hình client-server. RDBMS là một phần mềm hay dịch vụ dùng để tạo và quản lý các cơ sở dữ liệu (Database) theo hình thức quản lý các mối liên hệ giữa chúng. MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng.
Vì MySQL là hệ quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập cơ sở dữ liệu trên internet. Icon MySQL SVTH: Đỗ Huỳnh Ngọc Thế Trang 6 Xây dựng website đặt đồ ăn nhanh 1. Framework và thư viện hỗ trợ 1.
Giới thiệu Spring Framework Spring Boot là một framework phát triển ứng dụng Java được xây dựng trên nền tảng Spring Framework. Nó cung cấp một cách nhanh chóng và dễ dàng để xây dựng các ứng dụng Java enterprise-ready. Một trong những đặc điểm nổi bật của Spring Boot là khả năng tự cấu hình tự động (auto-configuration), giúp giảm bớt công việc cấu hình và mở rộng ứng dụng. Spring Boot tích hợp sẵn các thư viện và cấu hình mặc định cho các công nghệ phổ biến như Spring MVC, Spring Data, Spring Security, Hibernate, và nhiều hơn nữa.
Điều này giúp giảm thiểu việc cấu hình thủ công và giúp lập trình viên tập trung vào việc phát triển logic kinh doanh chính của ứng dụng. Spring Boot cũng cung cấp một hệ thống quản lý phụ thuộc (dependency management) thông qua Spring Boot Starter. Starter là các module đã được cấu hình trước và chứa tất cả các thư viện cần thiết để sử dụng một công nghệ cụ thể. Việc sử dụng Starter giúp giảm bớt công việc phải quản lý các phụ thuộc và đảm bảo rằng các phiên bản thư viện tương thích với nhau.
Spring Boot cung cấp các công cụ mạnh mẽ để phát triển và kiểm thử ứng dụng, bao gồm hỗ trợ tích hợp cho các framework kiểm thử như JUnit và Mockito. Nó cũng hỗ trợ việc tạo và quản lý các bộ công cụ phát triển như Maven và Gradle. Với Spring Boot, việc xây dựng các ứng dụng Java trở nên dễ dàng và nhanh chóng. Nó cho phép lập trình viên tập trung vào việc phát triển chức năng và logic kinh doanh của ứng dụng mà không cần quá nhiều công sức vào việc cấu hình và quản lý phụ thuộc.
Spring Boot đã trở thành một trong những framework phát triển ứng dụng Java phổ biến và được ưa chuộng trong cộng đồng phát triển phần mềm Java. Icon Spring boot Ưu điểm của Spring: SVTH: Đỗ Huỳnh Ngọc Thế Trang 7 Xây dựng website đặt đồ ăn nhanh - IoC (Inversion of Control): Spring sử dụng nguyên tắc IoC, giúp quản lý các đối tượng và kiểm soát luồng của chương trình. IoC giúp giảm sự phụ thuộc giữa các thành phần, làm cho ứng dụng dễ dàng mở rộng và bảo trì hơn. - Dependency Injection (DI): Spring hỗ trợ DI, cho phép bạn ánh xạ và chuyển các phụ thuộc giữa các thành phần một cách dễ dàng.
Điều này làm cho mã nguồn trở nên linh hoạt và dễ đọc, giảm sự rối bời và tăng tính tái sử dụng mã. - AOP (Aspect-Oriented Programming): Spring cung cấp hỗ trợ AOP, giúp tách rời các quy tắc chung (cross-cutting concerns) như logging, transaction management, security, và nhiều loại khác, từ mã nguồn chính. Điều này tạo ra mã nguồn sạch sẽ và dễ bảo trì. Điều này tạo ra sự tách biệt giữa giao diện người dùng và logic xử lý, làm cho việc phát triển ứng dụng dễ dàng hơn.
- ORM (Object-Relational Mapping): Spring hỗ trợ nhiều cách tiếp cận để tương tác với cơ sở dữ liệu thông qua ORM. Spring Data giúp giảm độ phức tạp của việc làm việc với cơ sở dữ liệu và cung cấp các tiện ích như JPA (Java Persistence API), Hibernate, và MyBatis. - Transaction Management: Spring cung cấp mô hình quản lý giao dịch linh hoạt, cho phép bạn quản lý giao dịch trong môi trường Java EE hoặc standalone. - Testability: Spring làm cho việc kiểm thử dễ dàng hơn bằng cách hỗ trợ việc chia nhỏ ứng dụng thành các thành phần độc lập có thể kiểm thử được.
Nó cũng cung cấp các công cụ hỗ trợ kiểm thử như Spring Test và JUnit. - Đa dạng các module: Spring cung cấp nhiều module khác nhau cho các nhu cầu khác nhau như Spring Security cho bảo mật, Spring Batch cho xử lý hàng loạt, Spring Integration cho tích hợp, và nhiều module khác nữa. Thư viện Thymeleaf Thymeleaf là một template engine (máy mẫu) cho phát triển ứng dụng web Java. Nó cung cấp cú pháp đơn giản và mạnh mẽ để tạo ra các giao diện người dùng động và tương tác trên máy chủ.
Một trong những đặc điểm nổi bật của Thymeleaf là khả năng tích hợp tốt với Spring Framework. Nó được thiết kế để làm việc tốt với Spring và hỗ trợ đầy đủ các SVTH: Đỗ Huỳnh Ngọc Thế Trang 8 Xây dựng website đặt đồ ăn nhanh tính năng của Spring như Dependency Injection và Spring Security. Thymeleaf có thể sử dụng như một phần của cấu trúc Spring MVC để tạo ra các trang web động. Thymeleaf sử dụng cú pháp dựa trên HTML, giúp làm cho các template dễ đọc và dễ hiểu.
Nó cung cấp các thuộc tính và các thẻ (tags) đặc biệt để tương tác với dữ liệu và logic trong ứng dụng. Với Thymeleaf, bạn có thể thực hiện các tác vụ như hiển thị dữ liệu từ mô hình Java, điều hướng, điều kiện, lặp lại các phần tử, xử lý biểu mẫu, và nhiều hơn nữa. Một điểm mạnh khác của Thymeleaf là khả năng xem trước (preview) template. Điều này cho phép bạn xem trước cách dữ liệu sẽ được hiển thị trong template mà không cần triển khai ứng dụng hoàn chỉnh.
Điều này rất hữu ích trong quá trình phát triển và kiểm tra. Thymeleaf cũng hỗ trợ nhiều tính năng bảo mật như tránh XSS (Cross-Site Scripting) và CSRF (Cross-Site Request Forgery). Nó giúp bảo vệ ứng dụng khỏi các cuộc tấn công thông qua việc xác thực và kiểm tra dữ liệu đầu vào. Với tính năng linh hoạt và tích hợp tốt với Spring Framework, Thymeleaf đã trở thành một lựa chọn phổ biến cho việc phát triển giao diện người dùng trong các ứng dụng web Java.
Nó giúp đơn giản hóa việc tạo ra giao diện động và tạo điểm giao tiếp mạnh mẽ giữa lập trình viên và nhà thiết kế giao diện. Thư viện Bootstrap Bootstrap là 1 framework HTML, CSS, và JavaScript cho phép người dùng dễ dàng thiết kế website theo 1 chuẩn nhất định, tạo các website thân thiện với các thiết bị cầm tay như mobile, ipad, tablet,. SVTH: Đỗ Huỳnh Ngọc Thế Trang 9 Xây dựng website đặt đồ ăn nhanh Bootstrap là một bộ sưu tập miễn phí của các mã nguồn mở và công cụ dùng để tạo ra một mẫu webiste hoàn chỉnh. Với các thuộc tính về giao diện được quy định sẵn như kích thước, màu sắc, độ cao, độ rộng…, các designer có thể sáng tạo nhiều sản phẩm mới mẻ nhưng vẫn tiết kiệm thời gian khi làm việc với framework này trong quá trình thiết kế giao diện website.
Icon Bootstrap SVTH: Đỗ Huỳnh Ngọc Thế Trang 10 Xây dựng website đặt đồ ăn nhanh 1. Công cụ hỗ trợ xây dựng hệ thống 1. Interlij IntelliJ IDEA là một môi trường phát triển tích hợp (IDE) mạnh mẽ và phổ biến dành cho phát triển phần mềm. Được phát triển bởi JetBrains, IntelliJ IDEA cung cấp nhiều tính năng và công cụ hỗ trợ cho việc phát triển ứng dụng Java, Kotlin, Groovy, Scala và nhiều ngôn ngữ lập trình khác.
IntelliJ IDEA có một giao diện người dùng thân thiện và tùy chỉnh, giúp lập trình viên tập trung vào công việc phát triển. Nó cung cấp một loạt các tính năng như gợi ý mã thông minh, tự động hoàn thành mã, kiểm tra lỗi cú pháp và lỗi logic, và tạo ra mã đồng thời. Nó cũng hỗ trợ tích hợp với các công cụ quản lý phiên bản như Git và SVN, và có khả năng tích hợp với hệ thống build phổ biến như Maven và Gradle. IntelliJ IDEA cung cấp một loạt các công cụ hỗ trợ cho việc kiểm thử và gỡ lỗi ứng dụng.
Nó cung cấp khả năng chạy và gỡ lỗi ứng dụng trực tiếp từ IDE, cho phép kiểm tra các đoạn mã theo từng bước và giải quyết các lỗi một cách hiệu quả.