lafzi / lafzi-mobile

Lafzi: mesin pencari lafadz dalam Al-Quran versi mobile (Android)
5 stars 1 forks source link

Restrukturisasi kode #7

Closed rahmanda closed 7 years ago

rahmanda commented 7 years ago

Supaya kolaborasinya enak, saya ingin mengusulkan kita memiliki standar yg disepakati bersama. Pertama-tama untuk struktur kode, saya memiliki ide seperti di bawah ini:

--- android
--- ios
--- src
------ assets
--------- images
------------ logo.png
--------- images.js
------ components
--------- Button
------------ Button.js
------------ index.js
------------ styles.js
------ layouts
--------- Home
------------ Home.js
------------ index.js
------------ styles.js
------ colors.js
------ utilities.js

Semua kode react disimpan di folder src. Di dalam folder tersebut terdapat dua folder lagi yaitu components dan layouts. Folder components menyimpan komponen-komponen yang paling kecil, sedangkan layouts menyimpan komponen-komponen container. Style dibuat pada file terpisah berdasarkan folder komponen masing-masing. Tetapi untuk variabel-variabel warna disimpan di file colors.js supaya stylenya konsisten (mungkin untuk setting ukuran teks dan tipe font juga bisa dibuatkan file terpisah). Aset gambar disimpan di folder images, sedangkan untuk path-nya disimpan di file images.js. File utilities.js dipakai untuk menyimpan fungsi-fungsi yang sering dipakai di banyak komponen.

Untuk meyeragamkan gaya ngoding, kita perlu pakai editorconfig (untuk pengaturan format spaces, trailing whitespaces dll) dan eslint (untuk style kode js). Seharusnya dua tools tsb mudah diintegrasikan di teks editor pilihan masing-masing.

Untuk menjaga agar dependency npm package konsisten di semua komputer, saya mengusulkan untuk memakai Yarn disebabkan oleh beberapa isu apabila kita pakai npm (dan kemaren baru kejadian di saya juga :sweat_smile:) :

Nested dependencies: npm version 2 nests dependencies which lead to duplicates, and as a user of windows, file paths may get long which causes problems with windows when trying to delete them. To fix this problem, use npm version 3. Queued install: when npm gets dependencies from its repository, it installs each dependency one after the other which might end up using a lot of time. Single registry: If a package is not on NpmJS, forget about it. No offline installation. https://scotch.io/tutorials/yarn-package-manager-an-improvement-over-npm.

abrari commented 7 years ago

Untuk fungsi algoritma pencariannya juga, mungkin namanya engine atau core?

--- src
------ ...
------ core
--------- phonetic.js
--------- search.js
--------- ...
rahmanda commented 7 years ago

oh iya boleh pak pakai yg core :+1:

abrari commented 7 years ago

File ini yang kemungkinan bisa langsung dipakai (dari lafzi-desktop), mungkin bisa langsung saja sekalian masukin di PR untuk langkah awal.

Nanti setelah itu bisa di-per-elegan lagi hehe.

rahmanda commented 7 years ago

File ini yang kemungkinan bisa langsung dipakai (dari lafzi-desktop), mungkin bisa langsung saja sekalian masukin di PR untuk langkah awal.

phonetic.js array.js (couldn't think of a better name :cry:) gabungan dari array.js dan trigram.js

Nanti setelah itu bisa di-per-elegan lagi hehe.

Berdasarkan diskusi di PR, core nanti dimasukin di file terpisah aja ya pak.

abrari commented 7 years ago

Ok berarti struktur direktori sudah fix ya buat sekarang. Tinggal tambahkan nanti untuk core.