Liên hệ với chúng tôi
 Thời gian kéo dài 21 Giờ học

Đề cương khóa học

Giới thiệu về Groovy

  • Giới thiệu về Apache Groovy
  • Lịch sử và sự tiến hóa của Groovy
  • Groovy và Máy ảo Java
  • Groovy như một ngôn ngữ script và lập trình
  • Các trường hợp sử dụng phổ biến của Groovy
  • Groovy trong các dự án dựa trên Java
  • Lợi ích của việc sử dụng Groovy cùng với Java
  • Tổng quan về ứng dụng mẫu

Tổng quan về các tính năng của Groovy

  • Phân loại kiểu dữ liệu động và phân loại tĩnh tùy chọn
  • Khả năng script của Groovy
  • Cú pháp ngắn gọn và các cải tiến ngôn ngữ
  • Closures và lập trình hàm
  • Các bộ sưu tập (collections) trong Groovy và API được nâng cao
  • Chồng đè toán tử (Operator overloading)
  • Chèn chuỗi (String interpolation)
  • Điều hướng an toàn (Safe navigation) và toán tử Elvis
  • Phát triển Domain-Specific Language (DSL)
  • Khả năng lập trình meta
  • Bộ công cụ phát triển Groovy (GDK)

Cài đặt Môi trường Phát triển

  • Cài đặt và cấu hình Groovy
  • Làm việc với các bản phân phối Groovy
  • Sử dụng Groovy từ dòng lệnh
  • Chạy các script Groovy
  • Cài đặt IDE
  • Tạo một dự án Groovy
  • Quản lý các phụ thuộc (dependencies)
  • Tích hợp Groovy với các dự án Java
  • Cấu hình môi trường phát triển cho các container

Viết Ứng dụng Groovy đầu tiên của bạn

  • Tạo một script Groovy cơ bản
  • Hiểu cấu trúc của script Groovy
  • Chạy các ứng dụng Groovy
  • Sử dụng lệnh println
  • Làm việc với biến
  • Định nghĩa các phương thức (methods)
  • Thêm chú thích và tài liệu
  • Xây dựng một ứng dụng mẫu đơn giản
  • Biên dịch mã nguồn Groovy

Quen thuộc với Cú pháp của Groovy

  • Câu lệnh và biểu thức trong Groovy
  • Dấu chấm phẩy và các thành phần cú pháp tùy chọn
  • Biến và hằng số
  • Phân loại động và phân loại tường minh
  • Chuỗi và ký tự, chèn chuỗi (interpolation)
  • Chuỗi một dòng và đa dòng
  • Toán tử và biểu thức
  • Toán tử và các đường tắt (shortcuts) trong Groovy
  • Xử lý giá trị rỗng (Null)
  • Điều hướng an toàn
  • Toán tử Elvis
  • Gán nhiều giá trị (Multiple assignment)

Sử dụng Kiểu Dữ liệu và Bộ Sưu tập (Collections) của Groovy

  • Kiểu nguyên thủy và kiểu đối tượng
  • Số và các phép toán số học
  • Chuỗi và ký tự
  • Đúng/sai (Booleans)
  • Ngày và tháng, các giá trị liên quan đến thời gian
  • Danh sách (Lists)
  • Maps
  • Sets
  • Intervals (Ranges)
  • Lặp qua các bộ sưu tập
  • Biến đổi các bộ sưu tập
  • Lọc và tìm kiếm trong các bộ sưu tập
  • Sắp xếp và nhóm dữ liệu
  • Các phương thức của bộ sưu tập trong Groovy

Sử dụng Closures của Groovy

  • Hiểu về closures
  • Cú pháp closures
  • Tham số của closures
  • Tham số ẩn danh của closures
  • Gọi closures
  • Closures như các biến
  • Đưa closures vào các phương thức
  • Trả về closures từ các phương thức
  • Closures và các bộ sưu tập
  • Sử dụng closures để lọc và biến đổi
  • Phạm vi và bắt biến (variable capture)
  • Closures cho lập trình hàm
  • Các mô hình closures thực tế

Điều khiển Luồng Chương trình bằng Cấu Trúc Điều Khiển Groovy

  • Câu lệnh điều kiện
  • if và else
  • Điều kiện lồng nhau
  • Câu lệnh switch
  • Vòng lặp và lặp lại (iteration)
  • for, while, và do-while
  • Intervals (Ranges) trong vòng lặp
  • Sử dụng closures để lặp lại
  • break và continue
  • Xử lý ngoại lệ (exceptions)
  • try, catch, và finally
  • Ném ngoại lệ tùy chỉnh (custom exceptions)
  • Các tính năng đặc thù của Groovy trong điều khiển luồng

Triển khai Lập trình Hướng Đối tượng (OOP) trong Ứng dụng của bạn

  • Định nghĩa các lớp (classes) Groovy
  • Thuộc tính và trường (fields)
  • Hàm xây dựng (Constructors)
  • Phương thức (Methods)
  • Khép kín (Encapsulation)
  • Kế thừa (Inheritance)
  • Giao diện (Interfaces)
  • Lớp trừu tượng (Abstract classes)
  • Đa hình (Polymorphism)
  • Đè lên phương thức (Method overriding)
  • Chồng đè phương thức (Method overloading)
  • Getter và Setter trong Groovy
  • Traits
  • Enums
  • Tạo mô hình miền (domain models) cho ứng dụng mẫu

Lập trình Meta lúc Chạy và Lập trình Meta lúc Biên dịch

  • Giới thiệu về lập trình meta trong Groovy
  • Gọi phương thức động (Dynamic method invocation)
  • Đối tượng Expando
  • Thao tác động với phương thức và thuộc tính lúc chạy
  • Categories và extensions
  • MetaClass
  • Thêm phương thức một cách động
  • Bắt các cuộc gọi phương thức (Intercepting method calls)
  • Các phép biến đổi lúc biên dịch (Compile-time transformations)
  • Các phép biến đổi AST phổ biến
  • Sử dụng lập trình meta có trách nhiệm
  • Các ví dụ lập trình meta thực tế

Làm việc với Builders

  • Giới thiệu về mô hình builder
  • Builders trong Groovy và mục đích của chúng
  • Tạo các cấu trúc phân cấp (hierarchical structures)
  • Builders cho XML
  • Builders cho JSON
  • Tạo HTML và markup
  • Cấu hình đầu ra của builder
  • Sử dụng closures với builders
  • Tạo các builder tùy chỉnh
  • Áp dụng builders trong Domain-Specific Languages

Truy cập Cơ sở Dữ liệu với Groovy

  • Các khái niệm về kết nối cơ sở dữ liệu
  • Kết nối các ứng dụng Groovy với cơ sở dữ liệu
  • JDBC và các API cơ sở dữ liệu của Groovy
  • Cấu hình kết nối cơ sở dữ liệu
  • Thực thi các truy vấn SQL
  • Đọc kết quả truy vấn
  • Chèn, cập nhật và xóa dữ liệu
  • Truy vấn có tham số (Parameterized queries)
  • Giao dịch (Transactions)
  • Xử lý ngoại lệ cơ sở dữ liệu
  • Làm việc với Groovy SQL
  • Xây dựng chức năng cơ sở dữ liệu cho ứng dụng mẫu

Gọi Java từ Groovy

  • Tương tác giữa Groovy và Java
  • Sử dụng các lớp Java trong Groovy
  • Gọi các phương thức Java
  • Làm việc với các thư viện Java
  • Sử dụng các bộ sưu tập của Java
  • Xử lý các ngoại lệ Java
  • So sánh cú pháp Groovy và cú pháp Java
  • Gọi mã nguồn Groovy từ Java
  • Kết hợp tệp nguồn Groovy và Java
  • Tích hợp Groovy vào các ứng dụng Java hiện có
  • Các thực hành tốt nhất về tương tác

Kết nối với Các Dịch vụ và Ứng dụng REST

  • Giới thiệu về API REST
  • Các khái niệm HTTP cho ứng dụng Groovy
  • Gửi các yêu cầu HTTP
  • Xử lý các thao tác GET, POST, PUT và DELETE
  • Làm việc với các tham số và header của yêu cầu
  • Xử lý các phản hồi JSON
  • Xây dựng thân yêu cầu JSON
  • Xử lý xác thực (authentication)
  • Quản lý các lỗi HTTP
  • Sử dụng các dịch vụ REST bên ngoài
  • Tích hợp chức năng REST vào ứng dụng mẫu

Làm việc với GDK

  • Giới thiệu về Bộ công cụ phát triển Groovy (Groovy Development Kit)
  • Các API Java được nâng cao
  • Làm việc với chuỗi
  • Các bộ sưu tập được nâng cao
  • Các thao tác tệp và thư mục
  • Đọc và ghi tệp
  • Làm việc với các luồng (streams)
  • Xử lý XML
  • Xử lý JSON
  • Làm việc với ngày và tháng
  • Các phương tiện tiện ích và API thuận tiện
  • Lựa chọn các chức năng GDK phù hợp

Kiểm Thử Đơn vị Ứng dụng Groovy

  • Giới thiệu về việc kiểm thử ứng dụng Groovy
  • Các khái niệm về phát triển hướng kiểm thử (Test-driven development)
  • Viết các bài kiểm thử đơn vị (unit tests)
  • Sử dụng các framework kiểm thử
  • Cấu trúc các lớp kiểm thử
  • Phán đoán (Assertions)
  • Viết kiểm thử cho các lớp và phương thức
  • Viết kiểm thử cho closures
  • Viết kiểm thử cho ngoại lệ
  • Mô phỏng các phụ thuộc (Mocking dependencies)
  • Viết kiểm thử dựa trên dữ liệu (Data-driven testing)
  • Viết kiểm thử cho các chức năng liên quan đến cơ sở dữ liệu
  • Viết kiểm thử cho các tích hợp REST
  • Chạy và phân tích kết quả kiểm thử

Xử Lý Sự Cố

  • Chẩn đoán lỗi cú pháp Groovy
  • Đi lỗi (Debugging) các lỗi lúc chạy
  • Xử lý các vấn đề biên dịch
  • Xử lý các vấn đề tương tác giữa Groovy và Java
  • Đi lỗi closures và các thao tác trên bộ sưu tập
  • Điều tra các vấn đề kết nối cơ sở dữ liệu
  • Xử lý sự cố các tích hợp API REST
  • Đi lỗi hành vi lập trình meta
  • Sử dụng ghi nhật ký (logging) và các công cụ chẩn đoán
  • Các bài tập thực hành xử lý sự cố

Tổng Kết và Kết Luận

  • Rà soát các nguyên lý cơ bản của ngôn ngữ Groovy
  • Rà soát cú pháp, kiểu dữ liệu và bộ sưu tập
  • Rà soát closures và lập trình hàm
  • Rà soát lập trình hướng đối tượng
  • Rà soát lập trình meta và builders
  • Rà soát tích hợp cơ sở dữ liệu và REST
  • Rà soát tương tác giữa Groovy và Java
  • Rà soát các khả năng của GDK
  • Rà soát các thực hành kiểm thử
  • Các thực hành tốt nhất khi phát triển ứng dụng Groovy
  • Bài tập thực hành cuối cùng
  • Câu hỏi và thảo luận

Yêu cầu

  • Kinh nghiệm lập trình bằng bất kỳ ngôn ngữ lập trình nào

Số người tham gia


Giá cho mỗi học viên

Đánh giá (1)

Các khóa học sắp tới

Các danh mục liên quan