Lập trình Web - API - Microservice bằng Golang

Golang là ngôn ngữ được phát triển bởi Google, được cộng đồng đón nhận rộng rãi, ứng dụng tốt cho kiến trúc microservice.

Tại sao chọn Golang?

  • Tốc độ thực thi nhanh gần như C, nhanh hơn Java, C# ở tác vụ giao tiếp http web.
  • Tốc độ benchmark Golang web framework EchoLab Stack, Iris,... nhanh khoảng gấp 4 lần Node.js Express, và tất nhiên là rất nhiều lần PHP.
  • Thích hợp để tạo ra các microservice đóng gói vào container đẩy lên Cloud
  • Ứng dụng trong tiền kỹ thuật số
  • Nhu cầu tuyển dụng cao: Grab, Tiki, VNG, Vin, Fsoft…

16 buổi x 2.5 tiếng. Thực hành 80% tại phòng lab. Có video, slide và mã nguồn demo dự án.

Kinh nghiệm và Năng lực đào tạo Golang của Techmaster

Từ 2018, Techmaster bắt đầu xây dựng đội ngũ lập trình viên để chuyển đổi nền tảng học trực tuyến vốn viết bằng (Node.js - JavaScript) sang Golang, chuyển từ Monolithic Web App sang Microservice + API Gateway. 2019, Techmaster xây dựng cho phép lập trình viên có thể lập trình trực tuyến, gửi mã nguồn lên server biên dịch rồi chạy unit-test trả về kết quả. Techmaster đã tổ chức 4 lớp dạy lập trình Golang, trong đó có 2 lớp đào tạo lập trình viên fresher cho công ty VinID thuộc tập đoàn VinGroup.

Giảng viên Techmaster giảng dạy Golang tại trụ sở VinID, Times City, Hà nội 12/2019

Yêu cầu

  • Đây không phải lớp cho người mới bắt đầu. Nếu bạn chưa lập trình bao giờ hãy đăng ký học Lộ trình lập trình căn bản 
  • Có sẵn laptop và máy tính thực hành
  • Đã lập trình một ngôn ngữ lập trình bất kỳ tối thiểu 6 tháng
Giáo trình
0. Golang căn bản (1)
1. Golang căn bản (2)
2. Golang căn bản (3)
3. Concurrency (1)
  • Concurrency vs Parallelism
  • Goroutine
  • WaitGroup
  • Channel (part 1)
  • Channel (part 2)
  • Lab: Tính số lượng xuất hiện của 1 từ trong các file
  • Lab: Đọc nội dung trang web từ link URL và lưu vào file
  • Select
  •  Timeout 316
  • Data race
  • Mutex
4. Concurrency (2)
  • Function return channel
  • Fan-In pattern
  • Pipeline pattern
  •  Buffered channel 295
  •   Worker Pool pattern 172
  • Context package
  • Lab: Đọc file có dung lượng lớn
  • Lab: Goroutine timeout, cancellation
5. Tạo ứng dụng web với Iris framework (1)
  • Giới thiệu và cài đặt Iris framework
  • Giới thiệu project được sử dụng cho các buổi 6,7,8,9,10,11
  • Routing handler
  • Task: Tạo GET API trả về danh sách bài viết
  • Lấy dữ liệu từ URL path, query string
  • Task: Tạo GET API trả về chi tiết 1 bài viết
  • Task: Cập nhật GET API tìm kiếm bài viết
  • Xử lý form upload
  • Task: Tạo POST API xử lý form upload bài viết mới
  • Task: Tạo POST API đọc file JSON
  • Task: Tạo POST API xử lý upload ảnh
  • Task: Tạo GET API trả về file ảnh hiển thị trên trình duyệt
6. Tạo ứng dụng web với Iris framework (2)
  • Giới thiệu
  • Render giao diện HTML
  • Trả về các file tĩnh (CSS, image, JS)
  • Truyền dữ liệu vào View Template
  • Xử lý vòng lặp range
  • Task: Cập nhật GET API render trang danh sách bài viết
  • Task: GET API hiển thị chi tiết bài viết
  • Layout
  • Task: Sử dụng layout cho header, footer của các trang
7. Thao tác với database PostgreSQL
  • Cài đặt PostgreSQL và thư viện go-pg
  • Các thao tác CRUD bằng ORM
  • Các thao tác CRUD bằng raw query
  • JOIN bảng
  • Tạo bảng
  • Transaction
8. Tạo ứng dụng web với Iris framework (3)
  • Kết nối web server với database PostgreSQL bằng go-pg
  • Lab: Mockup dữ liệu danh sách sản phẩm, bài viết vào database
  • Lab: Update các API GET, POST để thao tác với dữ liệu trên database
9. Tạo ứng dụng web với Iris framework (3)
  • Session - Cookie
  • Lưu thông tin session vào Redis
  • Lab: Bổ sung chức năng đăng nhập, đăng kí user
  • Middleware
  • Cache
  • Lab: Lưu thông tin giỏ hàng vào cookie
  • Lab: Lưu cache các file static
10. Authentication, Authorization với JWT
  • Giải thích về JWT (JSON Web Token)
  • JWT khác gì với Session Cookie. JWT phân quyền truy cập REST API method như thế nào?
  • Lab: Phân quyền REST API có 3 role: admin, user, anonymous
11. Tạo ứng dụng web với Iris framework (4)
  • Giới thiệu Kafka: có thể làm được gì, khác gì với RabbitMQ và các Message Queue phổ biến khác
  • Kết nối ứng dụng web với Kafka
  • Lab: Tracking user activity
  • Lab: Gửi notification đến user
12. Giới thiệu gRPC
  • Giới thiệu
  • gRPC framework
  • Mô hình client-server trong gRPC
  • Task: Viết file proto định nghĩa các method cho gRPC app
  • Task: Triển khai code cho gRPC client và server
  • gRPC message flow
13. Tạo ứng dụng blog với gRPC
  • Giới thiệu
  • Lab: Định nghĩa message, triển khai service Create Blog
  • Lab: Định nghĩa message, triển khai service Read Blog
  • Lab: Định nghĩa message, triển khai service Update Blog
  • Lab: Định nghĩa message, triển khai service Delete Blog
14. gRPC streaming
  • Giới thiệu
  • Server streaming
  • Lab: Tạo 1 trang web chạy code Javascript/Python sử dụng gRPC server streaming
  • Client streaming
  • Lab: Upload file dung lượng lớn với gRPC client streaming
  • Bidirectional streaming
  • Lab: Upload nhiều file dung lượng lớn và tính toán số lần xuất hiện của các từ sử dụng gRPC bidirectional streaming
15. gRPC advanced
  • Bảo mật kết nối với TLS
  • Interceptor
  • Authentication
  • Deadline, cancellation
  • Error handling
  • Load balancing
Gói học phí
Bạn có thắc mắc
Nhận hỗ trợ
Để lại thông tin, chúng tôi sẽ liên hệ với bạn
Đóng trọn gói
4500000đ
Học viên hoàn thành học phí trong một lần