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 "Nền tảng 
  • Nắm HTML, CSS, JavaScript 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. Cài đặt - cú pháp căn bản.
  • Giới thiệu và cài đặt Golang, một vài IDE.
  • Thiết lập môi trường: cấu trúc thư mục $GOPATH, $GOROOT.
  • Khai báo biến, kiểu dữ liệu.
  • Function: variadic function, multiple returned values, closure.
  • Lab 1: hàm tính giai thừa
  • Lab 2: Fibonnaci
  • Lab 3: giải phương trình bậc 2
  • Vòng lặp, điều kiện, switch
  • Array, Slice, Map
  • Lab 4: Đảo phần tử mảng
  • Lab 5: Loại bỏ phần tử lặp lại
  • Struct, Method, Interface.
  • Lab 6: Mô hình kế thừa Animal <- Tiger, Cat, Cow, Bird…
1. Cú pháp căn bản
  • Pointer
  • Defer - panic -recover.
  • Quản lý package.
  • Lab 1: Khởi tạo Go module
  • Lab 2: Chuyển đổi code từ package sang module.
  • Lab 3: Xây dựng package CSV
2. Golang advanced: Concurrency
  • Concurrency, Goroutine
  • Lab 1: Xây dựng concurrent TCP server
  • Channel, Buffered channel – Worker pool, Select
  • Lab 2: So sánh mutex vs rwmutex
3. Golang advanced:
  • Lab 1: Xử lý Pipeline
  • Lab 2: Lỗi Race Condition và cách xử lý
  • Lab 3: Shared Memory
4. Tạo REST API bằng Iris framework
  • Giới thiệu và cài đặt Iris Framework
  • Lab 1: REST API trả về JSON, GET Method
  • Lab 2: Post request to REST API
  • Đối tượng App, Context
  • Hai cách viết hàm hứng sự kiện: viết trực tiếp routing handler, viết thành hàm tách biệt
  • Lab 3: Delete request to REST API
  • Lab 4: Update request to REST API
  • Đối tượng MVC: struct – method
  • Lab 5: Chuyển code bài trước sang mô hình MVC
5. Lấy tham số, dữ liệu từ Path, Query String, Post Body
  • Lấy tham số từ path
  • Lab 1: Lấy dữ liệu book theo tham số Path
  • Lấy dữ liệu từ Query String và từ Post Body
  • Lab 2: Ứng dụng tính chỉ số BMI lấy cân nặng và, chiều cao từ Query String v Post Body
  • Binding Query String, Header, URL Path
  • Lab 3: Tải file binary lên server
  • Lab 4: Kết hợp tải file binary + tham số trong Post Body
  • Lab 5: Tải nhiều file đồng thời
  • Nhóm các đường dẫn – Group path sử dụng app.Party
  • Lab 6: Phiên bản hoá REST API
6. Kết xuất HTML
  • Sử dụng Kataras/Blocks để kết xuất HTML
  • Lab 1: Truyền dữ liệu vào View Template
  • Lab 2: Cung cấp file tĩnh
  • Lab 3: Partial View Template
  • Lab 4: Lệnh điều kiện if và lệnh vòng range
  • Lab 5: Hot reload view template
  • Lab 6: Bổ xung hàm xử lý vào view template
7. Cookie – Session. Custom Middleware
  • Lab 1: Đọc và ghi Cookie
  • Lab 2: Lưu thông tin session vào memory
  • Lab 3: Lưu session vào database Redis
  • Lab 4: Viết custom middle ware xử lý request.
8. Authentication
  • Lab 1: Basic Authentication
  • Lab 2: CORS
  • Lab 3: JWT Authentication
9. Kết nối CSDL PostgreSQL
  • Giới thiệu, cài đặt và khởi chạy PostgreSQL.
  • Kết nối PostgreSQL database.
  • Định nghĩa struct tạo bảng.
  • SELECT, INSERT, UPDATE, DELETE bằng ORM và raw query.
  • Tạo relationship giữa các bảng: 1 – many, many – many.
  • Thực hành tạo ứng dụng Todo List kết nối cơ sở dữ liệu
10. Protobuf và gRPC
  • Giới thiệu Protobuf, sử dụng Protobuf thay cho JSON
  • Giới thiệu gRPC
  • Thực hành: Sử dụng gRPC và Protobuf để tạo một API đơn giản
11. Xây dựng 1 app theo kiến trúc microservice với go-micro
  • Giới thiệu kiến trúc microservice.
  • Thư viện go-micro
  • Thực hành: Xây dựng 1 app blog đơn giản gồm ít nhất 3 service bằng go-micro
12. Đóng gói ứng dụng bằng Docker
  • Giới thiệu Docker
  • Docker Image, Docker Container
  • Tập lệnh Docker căn bản: ps, logs, exec, run, start, stop, cp, publish port
  • Mount volume
13. Triển khai ứng dụng bằng Docker trên môi trường VPS
  • Viết Dockerfile đóng gói image.
  • Triển khai bằng docker-compose
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
3500000đ
4000000đ
Học viên hoàn thành học phí trong một lần