Membuat README.md
Membuat berkas README memudahkan developer lain baik untuk berkontribusi ataupun menggunakan project yang kita buat. Karena itu, membuat berkas README yang jelas dan mudah dipahami adalah langkah awal untuk mengambil hati pengguna/developer terhadap project yang kita buat & kembangkan.
Tak kenal maka tak sayang
Klasik, tapi it works. Tulis nama projectmu apa, beri penjelasan singkat tentang apa projectmu tersebut. Juga, bila memiliki nama yang unik, kasih tau sedikit "cerita" dibalik nama tersebut agar pembaca tidak terlalu bingung dengan nama projectmu.
Latar Belakang
Tulis motivasi dibalik alasan mengapa kamu membuat project tersebut. Bahkan bila motivasinya hanya "just for fun", karena, you know, developer punya banyak waktu & kita sering boring, bukan?
Jika kamu tipe yang suka bercerita, beri tautan ke "versi panjang" dari motivasimu tersebut.
Prasyarat
Masalah klasik dari "it works on my machine" adalah keberagaman mesin. Tidak semua developer memasang GCC di mesinnya, misalnya. Tulis prasyarat dari sistem operasi, runtime, dependensi, dsb. Tulis jika projectmu belum mendukung di lingkungan spesifik (misal only works on BSD).
Bagian ini penting untuk membuat developer tidak frustasi karena selalu gagal untuk mencoba menjalankan projectmu di mesin mereka.
Tautan ke dokumentasi
Beri tautan ke dokumentasi, untuk mengetahui secara keseluruhan high-level nya dari projectmu. Membuat halaman khusus untuk API lebih baik untuk bisa melihatnya dari lower-level view.
Cara menggunakan
Ya, the manual. Mungkin developer bisa langsung cek berkas Makefile
atau package.json
, tapi mungkin ada beberapa "upacara" yang harus dilakukan seperti mengatur environment variable contohnya. Selain itu, membuat langkah cara menggunakan juga baik untuk developer lain yang kurang familiar dengan stack yang kamu pilih, khususnya kepada para pendatang baru.
Menulis & Menjalankan test
Jika projectmu memiliki automated testing, kasih tau cara menjalankannya seperti apa. Beberapa developer bisa mempelajari tentang projectmu dari behavior yang dilakukan via menjalankan tests, jadi, buatlah skenario testing yang jelas dan mudah untuk dijalankan.
Cara deployment
Jika project kita adalah sebuah aplikasi, bagian ini penting untuk membantu developer lain menggunakan projectmu di dunia nyata.
Cara berkontribusi
Jika projectmu sudah "lumayan matang" dan membuka peluang untuk developer lain agar bisa berkontribusi, kasih tau caranya bagaimana (how) dan kasih tau apa yang harus dilakukan (what).
Tampilkan kontributor
Meskipun itu baru hanya kamu sendiri. Ini berguna untuk "ber-terima kasih" kepada developer lain yang telah meluangkan waktunya untuk berkontribusi di project kamu.
Ber-terima kasih
Jika project kamu ter-inspirasi dari project lain, tweet seseorang, atau apapun itu, ber-terima kasihlah secara eksplisit dengan menuliskannya disitu. Inilah salah satu keindahan dari dunia Open Source.
Narahubung
Ini berguna untuk developer lain agar bisa "berkomunikasi" dengan orang yang tepat. Tulis username Twittermu atau alamat email mu, agar developer lain (dan semoga bukan rekruiter spam!) bisa menghubungimu terkait dengan project yang kamu buat.
Footer
Terserah ingin diisi apa, ingin "greetz to blablabla" seperti heker; "thanks to blablabla", ataupun hal lainnya asal masih dibatas kewajaran.
Template
Agar lebih mudah, kamu bisa menggunakan template dibawah:
# Nama ProjectProject keren gue, sama seperti yang biasa orang lain lakukan.## MotivasiLatar belakang mengapa project ini dibuat adalah karena:- Alasan pertama- Alasan kedua- Alasan nJika ingin membaca lebih lengkapnya tentang ceritadibalik project ini, bisa [baca disini](https://evilfactorylabs.org/cerita)## Prasyarat- Node.js (>= v12.0.0)- NPM (>= 6.9.0)- Brainfuck CompilerUntuk pengguna Windows, ada sedikit masalah ketika mem-buildproject, and I'm working on it (#1)!## Cara menggunakan- Install dependensi (`npm install`)- Jalankan perintah (`npm start`)## DokumentasiSilahkan kunjungi https://lol.readthedocs.org untuk dokumentasi lengkapnya.## Menjalankan testKita menggunakan Jest sebagai Testing Runner, cukup jalankan `npm run test` diterminal dan lihat apa yang terjadi!## Cara deploymentKita menggunakan Docker, silahkan lihat berkas `docker-compose.yml` dan ikuti instruksiyang ada di berkas [deployment.md](deployment.md)## Cara berkontribusiSilahkan membaca [CONTRIBUTING.md](contributing.md) untuk selengkapnya (termasukpanduan untuk membuat Pull Request)## Contributors((Bisa menggunakan [all-contributors](https://github.com/all-contributors/all-contributors)atau secara manual seperti ini:))- Nama orang (@username), tempat bekerjanya bila ada.## Terima KasihProject ini dibuat menggunakan:- Project populer yang sudah ada- Tulis lagi kalau masih ada- Terus tulis bila masih adaDan ter-inspirasi dari [Project ini](https://github.com/user/repo) dengan beberapapeningkatan dan fitur unik.## Narahubung- Nama orang (username)- Nama orang (username)---MIT LicenseCopyright (c) 2020 evilfactorylabsPermission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THESOFTWARE.