Kami sangat senang Anda dapat ikut berkontribusi dalam implementasi algoritma, struktur data atau memperbaiki error serta merilis implementasi materi basic learning Golang. Semua boleh ikut berkontribusi walaupun hal kecil dengan ketentuan sebagai berikut:
- Hasil pekerjaan Anda adalah buatan Anda sendiri dan tidak ada hak cipta dari orang lain, jika kami menemukan kesamaan maka kami tidak
merged
. - Hasil kerja Anda akan berlisensi MIT ketika permintaan pull Anda sudah di merged
- Hasil kerja Anda wajib mengikuti standar dan style koding dari kami (lihat bagian Standar penulisan)
- Jika dibutuhkan, hanya gunakan library package dari composer, sebelumnya silahkan diskusi di issue
Basic learning adalah kumpulan demonstrasi kode materi pemrograman Go beserta artikel penjelasan yang lengkap, mudah dimengerti dan menarik secara visual. Dirangkai dengan alur yang runtut mulai dasar sehingga bisa dijadikan referensi untuk kalian yang belajar pemrograman Go.
Untuk berkontribusi di repositori bellshade Golang bagian Basic ini kamu harus mengikuti urutan materi yang telah ditentukan. Daftar materi yang tersedia bisa kamu jelajahi di issue ini. Di dalam issue itu kami juga menuliskan rekomendasi tentang konten yang ada dalam materi tersebut, namun kamu masih dapat menambah materi konten jika dirasa perlu.
Semua implementasi kode untuk Basic Learning bisa ditemukan di /basics
dengan struktur direktori sebagai berikut
📦 /
┣📦basics
┃ ┣ 📂x_nama_materi
┃ ┃ ┣ 📜1_sub_materi.go
┃ ┃ ┣ 📜2_sub_materi.go
┃ ┃ ┣ 📜3_sub_materi.go
┃ ┃ ┣ ....
┃ ┃ ┗ 📜README.md
Artikel materi ditulis pada
README.md
Algoritma adalah langkah-langkah untuk menyelesaikan suatu pekerjaan yang terdiri dari 3 bagian utama, yaitu:
- Input/masukan, sebelum menjalankan sebuah algoritma maka hal yang pertama harus dilakukan adalah menerima masukan, input dapat berasal dari pengguna ataupun dari langkah sebelumnya.
- Proses, bagian utama dari algoritma yang melakukan pengolahan input yang akan menghasilkan output.
- Output/keluaran, output adalah hasil dari bagian proses, output ini juga bisa digunakan untuk langkah selanjutnya (jika masih ada).
Algoritma harus dikemas sedemikian rupa sehingga memudahkan pembaca untuk memasukkannya ke dalam program yang lebih besar.
Semua implementasi kode untuk Algorithm bisa ditemukan di /algorithms
dengan bentuk struktur seperti berikut
📦/
┣📦algorithms
┃ ┣ 📂NamaKategoriAlgoritma
┃ ┃ ┣ 📂NamaKasusAlgoritma
┃ ┃ ┃ ┣ 📜FileAlgoritmanya.go
┃ ┃ ┃ ┗ 📜README.md
┃ ┃ ┗ 📜README.md
Artikel penjelasan algoritma ditulis pada
README.md
Kategori utilities adalah kumpulan referensi dan contoh penggunaan komponen-komponen/fitur-fitur umum yang mungkin diperlukan oleh para web developer untuk diterapkan pada project aplikasi webnya. Didalam kategori ini, kalian dapat menjelajahi berbagai macam kebutuhan umum untuk pengembangan web umum dan mempelajari bagaimana cara mengimplementasikannya.
Utility ini adalah sesuatu yang bukan esensial dalam pengembangan web namun terkadang dibutuhkan. Bisa juga dibilang Utility ini adalah peralatan/komponen yang bisa melengkapi sebuah fitur dalam aplikasi berbasis web. Contohnya adalah seperti: Manipulasi Gambar, DateTime, Mencetak ke printer dot matrix dan sebagainya.
Semua tentang Utility dapat ditemukan pada direktori /utilities
dengan bentuk struktur yang mirip dengan algorithm
📦/
┣📦utilities
┃ ┣ 📂NamaKategoriUtility
┃ ┃ ┣ 📂NamaUtility
┃ ┃ ┃ ┣ 📜demo_utility_1.go
┃ ┃ ┃ ┣ 📜demo_utility_2.go
┃ ┃ ┃ ┣ 📜 .....
┃ ┃ ┃ ┗ 📜README.md
┃ ┃ ┗ 📜README.md
Artikel penjelasan utility ditulis pada
README.md
Selain menggunakan gaya penulisan PSR-12 untuk implementasi kode pada Basic Learning. Ada ketentuan konsistensi yang harus Anda terapkan yaitu:
- Setiap materi pembelajaran berada pada folder tersendiri yang dinamai dengan materi yang berkaitan
- Folder materi memiliki penomoran diawal sebagai prefix
- Artikel penjelasan ditulis di
README.md
pada setiap folder materi. jadi kamu perlu membuatREADME.md
nya - Penamaan variabel dan fungsi menggunakan
camelCase
- Penamaan File menggunakan
snake_case
Pedoman penulisan untuk utilities sama persis seperti materi pembelajaran dasar (basic) dengan pengecualian, penamaan variabel bebas asalkan tetap konsisten diseluruh satu utility.
Testing hanya dilakukan untuk Algorithm dan tidak diperlukan untuk Basic Learning ataupun Utility. Testing algoritma diperlukan agar suatu algoritma berjalan sesuai dengan yang di harapkan. Kami juga menerapkan unit testing ini pada Continuous Integration kami agar selalu dijaga keandalan kodenya.
Pull Request yang Baik
- Lakukan fork pada repository kami
- Usahakan Anda membuat branch baru
git checkout -b <branch_name>
git add .
git commit -m "feat: menambahkan algoritma baru"
- Lakukan push ke branch Anda dan kemudian open pull request
Saran Pesan Commit:
feat:
Untuk menambahkan algoritma atau tambahan lainnyafix:
Untuk mengubah algoritma yang sudah ada atau memperbaikidocs:
Untuk mengubah atau membuat dokumentasistyle:
Untuk mengubah atau memperbaiki style kode untuk contohnya bisa dilihat pada commit yang diatas
Pull Request merged
jika:
- Mengikuti standar dan arahan dari
CONTRIBUTING.md
- Lulus test dan cek dari beberapa test yang sudah kami siapkan
Tambahan:
- Jika ada kendala atau masalah dalam pull request, Anda bisa laporkan masalah pada issue
- Jika ada tes yang tidak lewat atau gagal, kami akan mengecek kembali perubahan.
Untuk pull request kami sarankan untuk menjelaskan secara detail yang Anda ubah atau tambahkan, dan bersikap sopan, serta selalu berterima kasih, itu salah satu bentuk tata krama yang baik terhadap sesama contributor dan programmer lainnya.
Terima kasih sudah berkontribusi di Bellshade/Golang!