Langsung ke konten

Arsip

Go

4 artikel
Keamanan Siber 19 Sep 2026 8 min read

Signal Protocol Adalah Lapisan Kriptografi, Bukan Protokol Transport

Signal Protocol Adalah Lapisan Kriptografi, Bukan Protokol Transport Service Go dapat mengirim pesan melalui WebSocket, HTTP, WebRTC, MQTT, atau antrean store-and-forward tanpa satu pun transport tersebut menyediakan end-to-end encryption. Enkripsi transport seperti TLS melindungi koneksi antara peer jaringan. Signal Protocol menangani batas yang berbeda: isi pesan dienkripsi pada satu endpoint dan tetap berupa ciphertext sampai endpoint penerima memproses sesi kriptografi yang sesuai. Perbedaan itu menentukan posisi Signal Protocol dalam aplikasi. Relay dapat mengautentikasi akun, merutekan envelope, menyimpan ciphertext yang belum terkirim, dan menerapkan kuota, tetapi relay tidak perlu memiliki conversation key yang dibutuhkan untuk mendapatkan kembali plaintext pesan.

Go 13 Sep 2026 4 min read

Filter Slice Secara In-Place dengan slices.DeleteFunc di Go

Memfilter slice Go sering dimulai dengan loop kecil yang mempertahankan elemen tertentu dan membuang sisanya. slices.DeleteFunc menyatakan operasi kebalikannya secara langsung: predicate menandai elemen yang akan dihapus, elemen yang dipertahankan tetap dalam urutan semula, dan backing array yang ada digunakan kembali. Properti terakhir itu penting. DeleteFunc bukan filter yang menyalin data. Fungsi ini memutasi storage slice yang diberikan dan mengembalikan slice header dengan panjang hasil. Predicate memilih elemen yang akan dihapus Fungsi ini menerima slice dan deletion predicate:

Go 11 Sep 2026 7 min read

Urutkan Nilai Iterator Secara Stabil di Go dengan slices.SortedStableFunc

Sebuah iterator dapat menghasilkan nilai dalam urutan yang sudah memiliki arti: urutan kedatangan, urutan file, urutan database, atau urutan yang dibentuk oleh tahap pipeline sebelumnya. Jika Anda perlu mengurutkan nilai tersebut berdasarkan satu key tanpa mengacak kelompok dengan key yang sama, slices.SortedStableFunc menangani kedua langkah itu sekaligus. Fungsi ini mengonsumsi sebuah iter.Seq, mengumpulkan nilai yang dihasilkan ke slice baru, lalu mengurutkan slice tersebut dengan comparator. Ketika comparator mengembalikan nol, nilai-nilai itu mempertahankan urutan relatif yang sama seperti di sequence.

Go 10 Sep 2026 5 min read

Tambahkan Nilai Iterator ke Slice Go dengan slices.AppendSeq

Iterator praktis saat data mengalir melalui pipeline, tetapi pada akhirnya Anda mungkin perlu menyimpan nilai-nilai tersebut dalam sebuah slice. Jika sudah memiliki slice tujuan, mengumpulkan iterator secara terpisah lalu menambahkannya hanya menciptakan langkah perantara yang tidak perlu. Go 1.23 menambahkan slices.AppendSeq tepat untuk batas ini. Fungsi tersebut mengonsumsi sebuah iter.Seq, menambahkan setiap nilai yang dihasilkan ke slice yang sudah ada, lalu mengembalikan slice hasilnya. Apa yang dilakukan slices.AppendSeq Fungsi ini memiliki signature yang ringkas: