Belajar Microservice dengan Go (Golang), Protobuf, dan GRPC API
Coding Protocol Buffers (protobuf) & gRPC API memakai bahasa pemrograman Go (Golang) untuk arsitektur microservice
Tentang Kelas
Kursus ini dibuat untuk membantu Anda memahami dan implementasi coding Protocol Buffers (protobuf) dan gRPC API memakai bahasa pemrograman Go pada arsitektur microservice.
Kursus ini disusun bertahap, dimulai dengan pengenalan protobuf, panduan dan konvensi penulisan, dan struktur file kursus. Anda akan mempelajari teori di balik berbagai aspek coding protobuf seperti : tipe data, komentar, enum, repeated, hubungan protobuf dan JSON, nested message, package, tipe data any, oneof, map, dan evolusi skema (schema evolution).
Di kursus ini, Anda juga belajar tentang coding gRPC API dan hubungannya dengan protobuf. Anda akan belajar bagaimana mengeloloa repository gRPC di github, status grpc, dan penanganan error, membuat API gRPC yang tangguh, timeout, retry, dan circuit breaker. Kursus ini juga termasuk coding metadata untuk server dan client gRPC, server interceptor, client interceptor, dan gRPC-REST gateway.
Dalam kursus, Anda akan praktek coding, dengan latihan membuat aplikasi bank menggunakan gRPC API dan protobuf, dengan memakai database PostgreSQL dan Go Object Relational Mapper (ORM) untuk coding dengan database. Di akhir kursus ini, Anda akan memiliki keterampilan dan pengetahuan yang diperlukan untuk membuat microservice menggunakan gRPC dan protobuf dengan bahasa pemrograman Go (Golang).
Persyaratan (wajib):
- Pengetahuan dasar tentang bahasa pemrograman Go. Kursus ini bukan kursus dasar untuk Golang
- Familiar dengan perintah git (push, pull, pull request, merge, branch)
Software:
- Bahasa pemrograman : Go (Golang)
- Protocol Buffers (protobuf)
- gRPC
- Github
- Visual Studio Code (atau editor apa pun yang Anda suka)
Anda akan belajar dengan metode lab / praktek, di mana Anda diberikan teori dan tugas yang harus diselesaikan. Akan ada petunjuk untuk setiap tugas sehingga Anda dapat mencoba langsung. Jika Anda bingung, Anda dapat melihat solusi / kunci jawabannya.
Kursus ini berisi 130+ pelajaran, yang mencakup topik-topik berikut:
- Pengantar protobuf, apa itu protobuf
- Menulis protobuf (panduan dan konvensi coding)
- Tipe data, enum, repeated, dan konversi Protobuf-JSON
- Berbagai jenis message protobuf, multiple file and import Protobuf, nested message, dan package
- Any, oneof, dan maps
- Membaca / menulis protocol buffers ke disk dan JSON
- Schema evolution dan tipe data tambahan
- Option, validasi field, dan efek penomoran field
- Pendahuluan gRPC, kapan memakai (atau tidak memakai) gRPCP
- Memakai repository github untuk Protobuf dan gRPC, termasuk otomatisasi dengan github action
- Membuat coding gRPC unary server dan client, server streaming, client streaming, dan bidirectional streaming
- Coding API gRPC untuk bank dengan database PostgreSQL, membuat streaming API untuk kurs, dan rangkuman transaksi bank
- Menangani gRPC status dan error, penanganan error di sisi client, dan teknik membuat API gRPC yang tahan banting, seperti : timeout, retry, dan circuit breaker
- Coding gRPC metadata, interceptor server dan client
- gRPC-REST gateway
Di akhir kursus, Anda akan tahu bagaimana cara coding Protocol Buffer dan gRPC menggunakan bahasa pemrograman Go. Anda akan belajar cara menulis Protobuf dengan panduan / konvensi standar, mengatur struktur file Protobuf, dan bekerja dengan tipe scalar, enum, repeated, map, any, oneof, dan nested message. Anda juga akan belajar cara membaca dan menulis Protobuf ke disk dan JSON, menangani schema evolution (forward / backward compatibility), dan memakai tipe data tambahan.
Selain itu, Anda akan memperoleh pengalaman langsung dalam coding berbagai jenis API gRPC, termasuk unary, server streaming, client streaming, dan bidirectional streaming. Anda juga akan mempelajari cara menangani status dan error gRPC, menerapkan teknik untuk membuat gRPC API tahan banting seperti timeout, retry, circuit breaker, dan konversi gRPC ke REST API dengan gRPC-REST gateway. Anda juga akan belajar membuat dokumentasi OpenAPI / swagger untuk gRPC. Dengan kata lain, Anda akan memperoleh keterampilan dan pengetahuan praktis yang dapat Anda terapkan dalam pekerjaan,untuk membangun microservice API memakai Protocol Buffers dan gRPC dengan bahasa pemrograman Go.
What you’ll learn
- Apa itu Protocol Buffers (Protobuf) dan bagaimana memakainya untuk komunikasi data
- Definisi / Skema Protocol Buffers : tipe data, list, sintaks, dll
- Protocol Buffers Schema Evolution (Evolusi Skema)
- Coding Protocol Buffers dengan memakai Go programming language (Golang)
- Coding semua jenis gRPC API dengan Golang : unary, server streaming, client streaming, dan bi-directional
- Coding database PostgreSQL dengan gorm : Go Object Relational Mapping (ORM)
- Memakai Software Architecture Hexagon (Port & Adapters) untuk membangun gRPC API untuk aplikasi bank dengan coding Golang
- Membuat API gRPC yang tangguh / resilient : memakai timeout / deadline, retry, dan circuit breaker
- Menangani error di gRPC, status code, metadata, interceptor
- gRPC - REST API gateway
- Membuat OpenAPI documentation (otomatis) untuk API gRPC
Who this course is for:
- Software engineer / developer, technical architect, engineering manager yang ingin tahu cara mengimplementasikan / coding Protocol Buffers menggunakan bahasa pemrograman Go (Golang)
- Penggemar Golang
Daftar Materi
Selamat Datang! | 01:02 | |
Rangkuman Materi | 02:31 |
PENTING! Persyaratan & Software Yang Diperlukan | 01:39 | |
Download Script & Source Code | 00:29 |
Berkenalan Dengan Protocol Buffers (Protobuf) | 07:53 | |
Panduan & Konvensi untuk Coding Protocol Buffers | 03:52 | |
Struktur File & Folder di Kursus Ini | 01:15 |
Metode Belajar | 02:13 |
Teori : Hello Protobuf | 02:37 | |
Tugas : Hello Protobuf | 00.00 | |
Coba Sendiri : Hello Protobuf | 00.00 | |
Solusi : Hello Protobuf | 10:24 |
Teori : Tipe Data Scalar | 03:55 | |
Tugas : Tipe Data Scalar | 00.00 | |
Coba Sendiri : Tipe Data Scalar | 00.00 | |
Solusi : Tipe Data Scalar | 02:17 |
Tips : Makefile | 02:07 |
Teori : Repeated Field, Enumerations, Comments | 01:30 | |
Tugas : Repeated Field, Enumerations, Comments | 00.00 | |
Coba Sendiri : Repeated Field, Enumerations, Comments | 00.00 | |
Solusi : Repeated Field, Enumerations, Comments | 02:07 |
Teori : Protobuf - JSON | 01:18 | |
Tugas : Protobuf - JSON | 00.00 | |
Coba Sendiri : Protobuf - JSON | 00.00 | |
Solusi : Protobuf - JSON | 05:08 |
Teori : Memakai Message Lain Sebagai Tipe Data | 00:49 | |
Tugas : Memakai Message Lain Sebagai Tipe Data | 00.00 | |
Coba Sendiri : Memakai Message Lain Sebagai Tipe Data | 00.00 | |
Solusi : Memakai Message Lain Sebagai Tipe Data | 01:59 |
Teori : Multiple File & Import Message | 01:34 | |
Tugas : Multiple File & Import Message | 00.00 | |
Coba Sendiri : Multiple File & Import Message | 00.00 | |
Solusi : Multiple File & Import Message | 04:25 |
Teori : Tipe Message Nested | 01:17 | |
Tugas : Tipe Message Nested | 00.00 | |
Coba Sendiri : Tipe Message Nested | 00.00 | |
Solusi : Tipe Message Nested | 01:56 |
Teori : Package | 01:23 | |
Tugas : Package | 00.00 | |
Coba Sendiri : Package | 00.00 | |
Solusi : Package | 07:56 |
Teori : Any | 01:51 | |
Tugas : Any | 00.00 | |
Coba Sendiri : Any | 00.00 | |
Solusi : Any | 09:08 |
Teori : Oneof | 01:12 | |
Tugas : Oneof | 00.00 | |
Coba Sendiri : Oneof | 00.00 | |
Solusi : Oneof | 03:33 |
Teori : Map | 00:29 | |
Tugas : Map | 00.00 | |
Coba Sendiri : Map | 00.00 | |
Solusi : Map | 01:46 |
Teori : Baca / Tulis Protobuf - File | 00:34 | |
Tugas : Baca / Tulis Protobuf - File | 00.00 | |
Coba Sendiri : Baca / Tulis Protobuf - File | 00.00 | |
Solusi : Baca / Tulis Protobuf - File | 04:08 |
Teori : Baca / Tulis Protobuf - JSON | 00:33 | |
Tugas : Baca / Tulis Protobuf - JSON | 00.00 | |
Coba Sendiri : Baca / Tulis Protobuf - JSON | 00.00 | |
Solusi : Baca / Tulis Protobuf - JSON | 01:47 |
Teori : Schema Evolution (Evolusi Skema) | 07:16 | |
Tugas : Schema Evolution (Evolusi Skema) | 00.00 | |
Coba Sendiri : Schema Evolution (Evolusi Skema) | 00.00 | |
Solusi : Schema Evolution (Evolusi Skema) | 15:45 |
Tips : Efek Nomor Field | 03:59 |
Teori : Tipe Data Tambahan | 01:54 | |
Tugas : Tipe Data Tambahan | 00.00 | |
Coba Sendiri : Tipe Data Tambahan | 00.00 | |
Solusi : Tipe Data Tambahan | 03:53 |
Tips : Protobuf Option | 02:50 |
Tips : Validasi Field | 09:47 |
Teori : Tentang gRPC | 08:10 | |
Memakai gRPC Atau Tidak? | 01:03 | |
Teori : Protocol Buffers dan gRPC | 03:05 |
Teori : Protocol Buffers Repository | 03:43 | |
Tugas : Protocol Buffers Repository | 00.00 | |
Coba Sendiri : Protocol Buffers Repository | 00.00 | |
Solusi : Protocol Buffers Repository | 10:16 |
Teori : Hello gRPC (Unary Server) | 03:31 | |
Tugas : Hello gRPC (Unary Server) | 00.00 | |
Coba Sendiri : Hello gRPC (Unary Server) | 00.00 | |
Solusi : Hello gRPC (Unary Server) | 10:34 |
Teori : Hello gRPC (Unary Client) | 02:09 | |
Tugas : Hello gRPC (Unary Client) | 00.00 | |
Coba Sendiri : Hello gRPC (Unary Client) | 00.00 | |
Solusi : Hello gRPC (Unary Client) | 08:01 |
Teori : Hello gRPC (Server Stream) | 01:29 | |
Tugas : Hello gRPC (Server Stream) | 00.00 | |
Coba Sendiri : Hello gRPC (Server Stream) | 00.00 | |
Solusi : Hello gRPC (Server Stream) | 07:23 |
Teori : Hello gRPC (Client Stream) | 01:04 | |
Tugas : Hello gRPC (Client Stream) | 00.00 | |
Coba Sendiri : Hello gRPC (Client Stream) | 00.00 | |
Solusi : Hello gRPC (Client Stream) | 07:57 |
Teori : Hello gRPC (Bi-Directional Stream) | 01:37 | |
Tugas : Hello gRPC (Bi-Directional Stream) | 00.00 | |
Coba Sendiri : Hello gRPC (Bi-Directional Stream) | 00.00 | |
Solusi : Hello gRPC (Bi-Directional Stream) | 07:48 |
Teori : Bank - Persiapan gRPC | 00:38 | |
Tugas : Bank - Persiapan gRPC | 00.00 | |
Coba Sendiri : Bank - Persiapan gRPC | 00.00 | |
Solusi : Bank - Persiapan gRPC | 10:03 |
Teori : Bank - Persiapan Database | 03:22 | |
Tugas : Bank - Persiapan Database | 00.00 | |
Coba Sendiri : Bank - Persiapan Database | 00.00 | |
Solusi : Bank - Persiapan Database | 15:03 |
Teori : Bank - Struktur Database | 00:55 | |
Tugas : Bank - Struktur Database | 00.00 | |
Coba Sendiri : Bank - Struktur Database | 00.00 | |
Solusi : Bank - Struktur Database | 03:42 |
Teori : Bank - Ambil Saldo | 01:02 | |
Tugas : Bank - Ambil Saldo | 00.00 | |
Coba Sendiri : Bank - Ambil Saldo | 00.00 | |
Solusi : Bank - Ambil Saldo | 06:46 |
Teori : Bank - Kurs Mata Uang | 00:52 | |
Tugas : Bank - Kurs Mata Uang | 00.00 | |
Coba Sendiri : Bank - Kurs Mata Uang | 00.00 | |
Solusi : Bank - Kurs Mata Uang | 18:30 |
Teori : Bank - Ringkasan Transaksi | 00:55 | |
Tugas : Bank - Ringkasan Transaksi | 00.00 | |
Coba Sendiri : Bank - Ringkasan Transaksi | 00.00 | |
Solusi : Bank - Ringkasan Transaksi | 19:56 |
Teori : Bank - Banyak Transaksi Transfer | 00:29 | |
Tugas : Bank - Banyak Transaksi Transfer | 00.00 | |
Coba Sendiri : Bank - Banyak Transaksi Transfer | 00.00 | |
Solusi : Bank - Banyak Transaksi Transfer | 22:49 |
Teori : gRPC Status & Error - Bagian 1 | 03:30 | |
Tugas : gRPC Status & Error - Bagian 1 | 00.00 | |
Coba Sendiri : gRPC Status & Error - Bagian 1 | 00.00 | |
Solusi : gRPC Status & Error - Bagian 1 | 04:30 |
Teori : gRPC Status & Error - Bagian 2 | 01:12 | |
Tugas : gRPC Status & Error - Bagian 2 | 00.00 | |
Coba Sendiri : gRPC Status & Error - Bagian 2 | 00.00 | |
Solusi : gRPC Status & Error - Bagian 2 | 07:39 |
Teori : gRPC Status & Error - Bagian 3 | 01:02 | |
Tugas : gRPC Status & Error - Bagian 3 | 00.00 | |
Coba Sendiri : gRPC Status & Error - Bagian 3 | 00.00 | |
Solusi : gRPC Status & Error - Bagian 3 | 04:50 |
Teori : Menangani Error di gRPC Client | 01:01 | |
Tugas : Menangani Error di gRPC Client | 00.00 | |
Coba Sendiri : Menangani Error di gRPC Client | 00.00 | |
Solusi : Menangani Error di gRPC Client | 25:18 |
Teori : Resiliency - Server | 02:40 | |
Tugas : Resiliency - Server | 00.00 | |
Coba Sendiri : Resiliency - Server | 00.00 | |
Solusi : Resiliency - Server | 20:55 |
Teori : Resiliency - Timeout (Deadline) | 00:45 | |
Tugas : Resiliency - Timeout (Deadline) | 00.00 | |
Coba Sendiri : Resiliency - Timeout (Deadline) | 00.00 | |
Solusi : Resiliency - Timeout (Deadline) | 16:39 |
Teori : Resiliency - Retry | 03:07 | |
Tugas : Resiliency - Retry | 00.00 | |
Coba Sendiri : Resiliency - Retry | 00.00 | |
Solusi : Resiliency - Retry | 07:37 |
Teori : Resiliency - Circuit Breaker | 02:11 | |
Tugas : Resiliency - Circuit Breaker | 00.00 | |
Coba Sendiri : Resiliency - Circuit Breaker | 00.00 | |
Solusi : Resiliency - Circuit Breaker | 07:08 |
Teori : Metadata - Server | 02:45 | |
Tugas : Metadata - Server | 00.00 | |
Coba Sendiri : Metadata - Server | 00.00 | |
Solusi : Metadata - Server | 11:05 |
Teori : Metadata - Client | 01:18 | |
Tugas : Metadata - Client | 00.00 | |
Coba Sendiri : Metadata - Client | 00.00 | |
Solusi : Metadata - Client | 10:26 |
Teori : gRPC Interceptor | 08:16 | |
Tugas : gRPC Interceptor (Server) | 00.00 | |
Coba Sendiri : gRPC Interceptor (Server) | 00.00 | |
Solusi : gRPC Interceptor (Server) | 11:21 | |
Tugas : gRPC Interceptor (Client) | 00.00 | |
Coba Sendiri : gRPC Interceptor (Client) | 00.00 | |
Solusi : gRPC Interceptor (Client) | 14:54 |
Teori : gRPC-REST Gateway | 03:15 | |
Tugas : gRPC-REST Gateway (Persiapan) | 00.00 | |
Coba Sendiri : gRPC-REST Gateway (Persiapan) | 00.00 | |
Solusi : gRPC-REST Gateway (Persiapan) | 08:52 | |
Tugas : gRPC-REST Gateway (Default Mapping) | 00.00 | |
Coba Sendiri : gRPC-REST Gateway (Default Mapping) | 00.00 | |
Solusi : gRPC-REST Gateway (Default Mapping) | 07:21 | |
Tugas : gRPC-REST Gateway (Annotation Mapping) | 00.00 | |
Coba Sendiri : gRPC-REST Gateway (Annotation Mapping) | 00.00 | |
Solusi : gRPC-REST Gateway (Annotation Mapping) | 07:12 | |
Tugas : gRPC-REST Gateway (External Mapping) | 00.00 | |
Coba Sendiri : gRPC-REST Gateway (External Mapping) | 00.00 | |
Solusi : gRPC-REST Gateway (External Mapping) | 05:23 |
Teori : Mengamankan gRPC | 03:46 | |
Tugas : Mengamankan gRPC (Server) | 00.00 | |
Coba Sendiri : Mengamankan gRPC (Server) | 00.00 | |
Solusi : Mengamankan gRPC (Server) | 02:18 | |
Tugas : Mengamankan gRPC (Client) | 00.00 | |
Coba Sendiri : Mengamankan gRPC (Client) | 00.00 | |
Solusi : Mengamankan gRPC (Client) | 01:45 | |
Tugas : Mengamankan gRPC (REST Gateway) | 00.00 | |
Coba Sendiri : Mengamankan gRPC (REST Gateway) | 00.00 | |
Solusi : Mengamankan gRPC (REST Gateway) | 02:00 |
Download Source Code & Referensi | 00.00 |
Penyusun Materi
Testimoni Oleh Siswa
(0 reviews)