Nyocote tutorial ๐Ÿ˜„

Memamg ga nyambung: sc pribadi

Kebanyakan tutorial di indonesia itu langsung to the point.

* spesifik tutorial programming ya

Sebenarnya bagus bagi yg mmg sudah di ranah itu (sudah paham sebelumnya di stack lain at least, atau yg mmg sudah belajar2l sebelumnya tapi pengen lebih dalam).

Tapi bagi yg awam ya jadi bikin males. Ngantuk.

Paling penting justru:
what, why and how.

Sebuah teknologi baru itu dibuat karna teknologi sebelumnya ada masalah, bisa jadi ga efisien secara penggunaan, resource dll.

Maka diciptakanlah teknologi tersebut.

Sebagai contoh;

Kenapa ada SCSS?

karna penggunaan CSS ga efisien, ga fleksibel, sulit di trace, dimaintain dll. Maka diciptakanlah SCSS.

Maka cara ngajarinnya/ngasih tutorialnya dari permasalahan yg terjadi sebelumnya.

Kasih contoh CSS itu begini, lalu muncul masalah jika mau begini ini susah, mau begono, syusah. Nahh makanya hadir SCSS agar masalah masalah masalah seperti bisa diatasi.

Dengan begini pembaca akan ngangguk2 dan semangat; yakin deh pasti lebih giat ngikuti tutorialnya dan cepet paham.

Dan yang baca/nonton tau apa sih yg mereka pelajari? Kenapa sih harus belajar ini? Dan gimana nih caranya?

Di udemy yg bagus2, mmg diawal selalu berangkat dari what, why dan how.

Bukan langsung grasa grusu coding sana sini.

Gue mmg jago suruh meng-kritik, tapi males kalau buat tutorial ๐Ÿ˜„.

Suka suka gue lah

Behind the scenes laravel mix

Start from this question;

The answer.

Laravel memang framework keren yang dikembangkan dengan memikirkan segala aspek, tak melulu soal fitur secara teknis, tapi juga kolaborasi dan easy to use.

Tapi, jika tidak melakukan deep learning, hanya coding asal jalan, akan jadi bomerang.

Katakanlah persoalan assets front end seperti pertanyaan di group facebook tsb.

Dia bingung soal dir node_modules yg memberatkan server, yg mana node_modules mmg tempatnya garbage dengan file size bisa ber GB.

Tapi justru aku heran, kenapa node_modules bisa berada di live server? Defaultnya saja sudah .gitignore yg artinya for development environtment only.

Jadi; cara kerja node_modules itu begini.

Node_modules itu adalah tempat package yang kita install menggunakan npm package manager.

Install disini belum siap dipakai, hanya pull/download dari website packagist dan ditaruh di node_modules dan register di package.json.

Untuk menggunakan package yg sudah diinstall harus include/load dari view yg membutuhkan.

Best practice nya, load assets package menggunakan laravel mix yg nantinya di compile dan hasilnya berada di directory public, baru dari sini load dari view menggunakan keyword asset.

gampangnya sama dengan membuat salinan dari node_modules ke folder public assets dengan ketentuan tertentu dan optimized biasanya.

Jadi, node_modules tak perlu di upload ke live server.

Sedangkan yg dilakukan TS di group facebook tsb install package dan langsung load dari view ke folder node_modules. Berarti node_modules yg isinya file mentahan dan garbage dari npm harus diupload ke server agar app nya berjalan.

Salah kaprah…

Tapi, memang begitulah; kita tak akan tau sesuatu sampai kita mempelajarinya, dan tak akan mempeljari sesuatu jika kita tak membutuhkan nya.

Manage your projects

Dalam pengembangan project; penting bagi seluruh tim memahami methodology apa yang akan dipakai untuk management.

Jika dulu, semua nya menggunakan teknik waterfall; yang mana sistemnya kurang lebih: kerjakan > test > fail > fix > test > fail > fix > test > passed.

Dengan konsep waterfall, kita gatau pasti kapan project akan selesai, semuanya mengalir saja layaknya air terjun, kapan selesai yo mbuh.

Bahaya sekali, bukan?

Nah; ada teknik lain yg disebut dengan agile, agile sendiri ada beberapa methology, tapi yang populer adalah SCRUM.

Dengan method scrum, sebuah project akan dengan sangat gampang dianalisa tenggat waktu selesainya (timeline) dan selesai tanpa ada bug (bug free).

Ada 4 proses di dalam scrum:

1. Back log

Iayalah menyusun semua hasil analyst menjadi pecahan kecil2 / task kecil kecil dan disusun seperti story yang berkesinambungan.

2. Sprint

Setelah backlog selesai; masuk ke tahap sprint. Sprint disini iyalah mengerjakan satu feature hasil pecahan backlog tadi dengan target maksimal 2 minggu.

Di dalam sprint ada beberapa hal penting, diantaranya:

  • Todo
  • Doing
  • Testing
  • Done

Todo untuk task yg harus diselesaikan

Doing; task yg sedang dikerjakan

Testing; task yg siap dan sedang di test oleh QA/PM

Done; task yg sudah divalidasi 100% selesai.

Itu simplenya, sebenarnya ada fields lain spt bug, dll.

Ini contoh salah satu project management gue menggunakan trello.

Setiap sprint biasanya 10 hari sampai 2 minggu (ini task bener2 selesai, no bug etc. Perfect).

Setiap hari ada standup meeting dengan durasi per staff 5 menit, dengan 3 pertanya:

  1. What you’ve done?
  2. What is the obstacle?
  3. What’s your next?

Tujuannya untuk mengetahui progress, dan apakah ada hal hal teknis dan non teknis yg menghambat. Misal rekan kerja tidak responsive dll.

Penting bagi semua staff paham cara kerja method yg digunakan, jika tidak, maka itu akan jadi hambatan.

Database Wilayah Indonesia

indonesia

Membangun sistem aplikasi yang akan beroperasi di indonesia, yang memiliki fitur pendafataran users di dalamnya, pasti akan membutuhkan alamat seluruh indonesia, e.g; provinsi > kab/kota> Kec > Desa.

Jika mau egois dan goblok menggunakan metode input manual satu satu ya sah sah saja, tapi gimana kalau waktu input data itu digunakan untuk hal yang lain saja? dan gunakanlah database yang tersedia.

Dari pemerintah sendiri tidak ada API atau database yang bisa langsung di gunakan oleh publik, meski begitu ada saja orang-orang yang membuatnya secara sukarela.

Ini database wilayah yang gue create dan sering gue pakai, sila ambil aja dari gist gue di github.

Database Wilayah

File SQL ini akan men-create 4 table setelah di import ke database sistem;

  • provinces
  • subdistricts
  • districts
  • villages

4 table ini menggunakan sistem relasi one-to-manyย yang artinya dimulai dari provinces ke bawah relasinya one-to-many (Satu provinsi memiliki banyak kota).

e.g; provinces dengan subdistricts

jawa timur | ID: 12

di table subdistricts ada field provinces_id dengan value 12. field itu lah yang akan menghubungkan antara table satu ke table lainnya. Begitu juga subdistricts ke table districts.

database ini sudah sangat lengkap sesuai dengan yang tercatat di sistem pemerintah, terakhir diperbarui sept 2019 lalu.

database wilayah dengan geolocation, lang & long sedang dalam pengembangan. semoga ga males aja ngembangin nya. penyakit males ini datang nya tiba2.