sop
# Code
1 Gunakan spaces 2 dan indentasi dengan tab.
2 Selalu beri new line diakhir file
3 Penamaan variable memakai bahasa inggris & garis bawah untuk separator (misal: order_paid)
4 Locales yml harus sama jumlahnya. 1 file / bahasa.
5 Kasih comment dalam bahasa inggris tiap method/function
6 Pakai worker untuk job yang tidak harus selesai dalam saat itu juga.
7 Untuk value atau method boolean selalu diawali dg is_ (contoh: is_boolean, is_active, is_designer)
8 Untuk code yang sudah tidak terpakai, lebih baik dihapus daripada dicomment out.
9 Locale YML gunakan double quotes (") untuk setiap value
10 Gunakan logic yang straight forward & bisa langsung dimengerti. Misal: "if [Link]?" daripada "unless [Link]?" (referensi: [Link]
11 Selalu printout (print / puts) hasil rake.
12 Penamaan variable menggunakan pattern seperti ini misalnya: total_order_paid, total_order_pending, total_order_refund
13 URL menggunakan dash (ex: /process-account)
14 Jarak spasi antara method adalah 2 lines (2x enter)
15 Methods di dalam private methods diindentasi 1x (rails only?)
# Git & Deployment
1 Setiap commit, masukkan judul (dari card Trello) yang singkat dan jelas. Untuk detail bisa di bagian description.
2 Setiap pengerjaan task baru, harus menggunakan branch baru. Sedangkan untuk bug dari commit sebelumnya, boleh menggunakan branch lama tapi harus pull rebase/merge code terbaru dari master agar selalu update.
3 Setelah mengerjakan task, developer harap segera Pull-Request (PR), jangan langsung di merge ke master. QA hanya akan cek kerjaan dari PR dan memberi comment apakah lolos QA atau tidak.
4 Deploy sesering mungkin. Untuk project besar jangan tunggu selesai, tapi deploy sekecil mungkin & secepat mungkin. Supaya cepat ketahuan bugnya & debugging jadi tidak susah.
5 Penamaan branch: <namaproject>_<namadeveloper>_<namatask>
# CSS
1 Penamaan class / id dengan bahasa inggris & separator menggunakan dash (misal: box-item)
2 Indent preprocessor css usahakan 3 level depth
3 Tidak menggunakan !important, gunakan jika hanya benar-benar terpaksa (quick fix, hacky) dan beri note di situ/commit
4 Color value menggunakan lowercase (#ff0000 bukan #FF0000) dan selalu gunakan 6 digit (#ffffff bukan #fff)
# JS
1 Hindari global variabel, selalu tempatkan fungsi dalam namespace yang tersedia
2 Fungsi-fungsi yang dipakai di beberapa tempat di-namespace sebagai components
3 Fungsi-fungsi yang dipakai di semua tempat di-namespace sebagai general
4 Penamaan menggunakan camel case
# Database
Selalu simpan breakdown detail di database. Misal: di table invoice akan menyimpan semua detil biaya yang ada (misal: untuk sribu: field prize desainer, posting fee, transaction fee, tax, etc), gunanya agar tidak perlu lagi menggunakan logic untuk mengambil data invoice. Jadi tinggal ambil saja tanpa kalkulasi
1 lagi.
2 Kalau perlu field denormalization, gunakan prefix zn_ untuk penanda
Last Update: 20180627
Install Ubuntu
Install RVM 1.29.1 and ruby 2.3.1
Install Rails 4.2.5
Install MongoDB 3.2.13
Install ElasticSearch 5.5.1
Last Update: 20180627
Trello For project management tracking
Github Project code repository
Telegram Internal messaging chat & automate notification
Google Drive Cloud Storage
Google Doc & Sheet Document & Spreadsheet
Google Apps Email
AWS S3, SES, SNS, Cloudfront
Linode Cloud VPS
Developer Schedules
Monday 0900: Standup Meeting
Tuesday 0900: Standup Meeting
Wednesday 0900: Standup Meeting
Thursday 0900: Standup Meeting
Friday 0900: Standup Meeting
Saturday
Sunday