Tips dan trik unit test di Go

Unit Test memang tidak bisa dilepaskan dari proses pengembangan software. Namun seringkali dalam pembuatan Unit Test di Go terjadi banyak repetisi yang tidak perlu dan Unit Test yang tidak dikelola dengan baik. Salah satu contoh kasus yang paling banyak ditemui dalam pembuatan Unit Test yaitu tidak dipisahkannya logic dan data sehingga ketika penambahan data test terdapat penambahan pula logic. Contoh Kode Sebelum memulai lebih lanjut berikut adalah contoh kode untuk membantu memahami tulisan ini.

Golang Test Coverage

Tulisan ini adalah lanjutan dari Golang Unit Test. Kali ini membahas tentang test coverage, yaitu untuk mengetahui apakah unit test sudah memenuhi semua jalur logika dari sistem yang kita uji. Contoh sederhana sebagai berikut: Suatu fungsi untuk menentukan nilai maksimal dari dua integer input. Input didefinisikan dalam variabel a dan b. Jika a lebih besar atau sama dengan b maka return a, sebaliknya jika b lebih besar maka return b.

Golang Om Telolet Om Server

Tahun 2016 lalu ramai sekali tentang om telolet om, dan disalah satu website e-commerse di Indonesia menambahkan x-om-telolet-om di response header. Mungkin banyak yang tidak mengetahuinya, karena hanya tambahan response header dan tidak terlihat di tampilan website. Golang Om Telolet Om Server Pertanyaannya bagaimana menambahkan respon http header menggunakan golang? Jawabnya tentu bisa dan sangat mudah sekali bahkan tidak perlu menggunakan eksternal dependensi tambahan. Pertama perlu kita buat web server sederhana menggunakan net/http package seperti dibawah ini.

Golang Unit Test

Unit test merupakan salah satu cara untuk validasi sebuah unit terkecil dalam suatu aplikasi, misalnya global variable, fungsi, fungsi dalam suatu class (dalam context golang fungsi dalam struct). Adanya unit test ini juga mempermudah pengujian suatu aplikasi/library yang secara terus menerus/diperlukan repetisi pengujian sehingga tidak perlu membuat aplikasi yang lain untuk menggunakan library kemudian dicek satu-persatu secara manual output program sudah sesuai atau belum. Golang Unit Test GOLANG sudah mempunyai standard library untuk unit testing, jadi tidak perlu menggunakan third-party untuk unit test.

Struct

Dalam pemrograman berorientasi object tentunya kita pasti mengenal apa itu class, enkapsulasi, inheritance, polimorfisme, dan lain sebagainya. Apakah semuanya masih bisa kita pakai dalam golang? Tentu tidak, tapi sebelum membahas lebih lanjut tentang konsep OOP sebaiknya kita perlu mengetahui tipe data dasar untuk OOP di golang yaitu struct. Struct tl;dr tidak ada class, adanya struct tidak ada inheritance, tapi menggunakan komposisi tidak ada konstruktor, tapi menggunakan return [pointer] function public access modifier menggunakan nama fungsi/peubah huruf besar public access modifier menggunakan nama fungsi/peubah huruf kecil Struct merupakan tipe data dasar yang digunakan untuk menggantikan fungsi dari class di bahasa pemrograman lain seperti C#, Java, C++, dll.

Pointer

Pointers gave me some nostalgic moment when learning C++ on first semester. They become source of headache on my day. Pointers are one of main tools to achieve high performance code in non-garbage-collected languages. So what about pointers in Go? Luckily Go’s pointer have achieved the best of both worlds by providing high-performance pointers with garbage-collector capabilities and easiness. Pointers in real world Unconsiously we are already knew main concept of pointers in real world.

Computer Science for Humanities

Computer science is no more about computers than astronomy is about telescopes, biology about microscopes, or chemistry about beakers and test tubes. Science is not about tools. It is about how we use them, and what we find out when we do. — Michael Fellows and Ian Parberry Imagine if today without computer technology, maybe we still doing everything in manual way and paper everywhere without gadget, internet connection, smart device, and many things.

Am I Lost?

I’m proud to be software engineer, programmer, code saint, or whatever you call it 😄. Do you know before I choose Computer Science degree I don’t know what the hell Computer Science is. Here the short history about path of my adventure of code. :p Junior High School Arch In this era I don’t know what I’m doing and I hate enter Junior High School 1 Malang because I wanted to enter another school.

Konsep synchronous dan asynchronous

Dalam postingan pertama ini saya akan sedikit mengulas tentang konsep asynchronous dalam analogi sederhana sehingga bisa memudahkan pembaca dalam memahaminya. Sebelum itu perlu kita ketahui ada proses synchronous dan asynchronous, apa bedanya? Mari kita simak analogi sederhana berikut. Untuk penjelasan selanjutnya saya menggunakan istilah sync untuk proses synchronous dan async untuk proses asynchronous. Pertama-tama akan saya gambarkan dalam bentuk proses yg berurutan: State awal Kondisi awal, sedang main DOTA 2.