02 Penggunaan HTTP Test

02 Penggunaan HTTP Test

Pengenalan HTTP Test

HTTP Test pada golang sudah disediakan package khusus untuk membuat unit test terhadap fitur Web. Semua itu ada pada package net/http/httptest https://golang.org/pkg/net/http/httptest/. Dengan menggunakan package ini, kita bisa melakukan unit test terhadap handler web yang sudah kita buat tanpa harus menjalankan aplikasi web-nya sehingga kita bisa langsung fokus terhadap handler function yang ingin kita test.

01 Pengenalan Web

01 Pengenalan Web

Pengenalan Web

Web merupakan kumpulan informasi yang tersedia dalam sebuah komputer yang terkoneksi secara langsung menerus melalui internet. Web ini berisi informasi dalam bentuk apapun seperti teks, audio, video dan lainnya. Web berjalan diaplikasi yang namanya web server yaitu aplikasi yang digunakan untuk menyimpan dan menyampaikan isi informasi web.

Pengenalan Dan Implementasi Golang Embed

Pengenalan Dan Implementasi Golang Embed

Pengenalan Embed Package

Sejak Golang merilis versi 1.16 terdapat fitur baru dengan nama Embed. Package embed ini adalah fitur yang mempermudah membuka isi file pada saat compile time secara otomatis dimasukkan isi file tersebut ke dalam variabel yang sudah kita definisikan. Lebih lengkapnya bisa lihat di sini.

Mengenal Repository Pattern pada Golang

Mengenal Repository Pattern pada Golang

Dalam buku Domain-Driven Design, Eric Evans menjelaskan bahwa

Repository is a mechanism for encapsulating storage, retrieval and search behaviour, which emulates a collection of objects

Pengenalan Integrasi Database MySQL pada Golang

Pengenalan Integrasi Database MySQL pada Golang

Pengenalan Package Database

Pada pemrograman Golang sebenarnya secara default itu memiliki sebuah package bernama database. Package ini memiliki kumpulan standar interface yang menjadikan standar untuk komunikasi ke dalam database sehingga kita bisa langsung membuat program yang akan kita buat itu menggunakan package tersebut untuk mengakses beberapa jenis database apapun dengan kode yang sama. Tetapi yang akan membedakan adalah hanya kode query SQL yang digunakan sesuai dengan database yang digunakan.

Mengenal Package Context With Timeout Pada Golang

Mengenal Package Context With Timeout Pada Golang

Pengenalan package context.WithTimeout

Pada artikel sebelumnya kita sudah mempelajari context.WithCancel dimana kita mengirim sinyal cancel dari context secara manual. Selain itu kita juga bisa menambahkan sinyal cancel ke dalam context secara otomatis dengan menggunakan pengaturan waktu timeout. Dengan menggunakan pengaturan waktu, kita tidak perlu lagi melakukan pemanggilan eksekusi cancel secara manual, tetapi dengan timeout cancel akan otomatis dieksekusi jika waktu timeout sudah terlewati.

Mengenal Package Context With Cancel Pada Golang

Mengenal Package Context With Cancel Pada Golang

Pengenalan package context.WithCancel

Context yang bisa menambahkan value, kita juga bisa menambahkan sinyal cancel ke dalam context. Biasanya context cancel ini dipakai saat kita butuh menjalankan proses lain, dan kita ingin memberi cancel ke proses tersebut. context cancel ini dijalankan biasanya menggunakan goroutine yang berbeda sehingga dengan mudah kita ingin membatalkan proses eksekusi goroutine tersebut, jadi tingal kita kirim sinyal cancel ke dalam context maka goroutine yang ingin kita stop sudah bisa kita lakukan.

Mengenal Package Context With Value Pada Golang

Mengenal Package Context With Value Pada Golang

Pengenalan package context.WithValue

Pada awal penjelasan context kita tahu bahwa context akan dibuat pertama kali saat inisialisasi dengan menggunakan context.Background() atau context.TODO() yang mana pada context tersebut tidak memiliki value alias masih kosongan. Kita bisa menambahkan value dari sebuah context dengan konsep seperti map yaitu [key - value].

Mengenal Package Context Pada Golang

Mengenal Package Context Pada Golang

Pengenalan package context

Context merupakan package yang bisa menyimpan dan membawa suatu data value, sinyal timeout dan sinyal deadline. Context ini berjalan dan dibuat per satu request. Pada context biasanya akan membawa value dari inisialisasi sampai akhir proses dijalankan. Context ini kadang jadi keharusan ketika kita melakukan kode pada program agar dari awal fungsi menuju ke fungsi selanjutnya itu bisa digunakan value sebelumnya apabila proses pada fungsi selanjutnya membutuhkan data dari proses awal.

Mengenal Package Ticker Pada Golang

Mengenal Package Ticker Pada Golang

Pengenalan package time.Ticker

Package golang ini adalah package yang digunakan untuk perulangan untuk kejadian tertentu yang nantinya akan terus diulan dalam waktu tertentu. Ticker ini jika sudah expire maka akan mengirim ke dalam channel sebuah trigger atau signal.

Mengenal Package Timer Pada Golang

Mengenal Package Timer Pada Golang

Pengenalan package time.Timer

time.Timer adalah package yang berhubungan dengan waktu atau kejadian yang akan terjadi saat proses dijalankan. Misalkan kita akan memberikan delay selama beberapa detik untuk menuju ke proses selanjutnya atau ada skema hal lain.

Mengenal Dan Implementasi Sync Atomic Pada Golang

Mengenal Dan Implementasi Sync Atomic Pada Golang

Pengenalan sync.Atomic

Untuk operasi atomik pada variabel pada golang, paket sync/atomic menawarkan metode tingkat rendah tertentu. Di Go, metode ini memungkinkan beberapa goroutine untuk mengubah variabel bersama dengan aman tanpa menggunakan kunci atau sinkronisasi eksplisit lainnya. Fungsi seperti AddInt64, AddUint32, CompareAndSwapInt32, dll digunakan untuk melakukan aritmatika dasar pada berbagai jenis variabel dapat ditemukan dalam paket atom. Metode AddInt64 misalnya, menjamin bahwa modifikasi yang dibuat oleh goroutine lain akan terlihat saat menambahkan nilai tertentu ke variabel int64 dengan gaya atomik.