Week #4–5 at Funtrans ❤

Halo, bertemu lagi sesudah sprint review #1 dan UTS yang “cuma” 3 matkul tapi beratnya seperti 5 matkul :” (#lebaynotlebay). Ok, di post kali ini, saya akan membahas minggu keempat dan kelima saya di Funtrans nih, well yang jelas progressnya tidak sebanyak kemaren sih ehehe jadi mohon maaf jika post ini agak singkat (dan banyak gambarnya) :(

Ok skip, jadi melanjutkan post yang lalu mengenai task membuat unit testing, yang waktu itu kan saya belum sempat ngerjain beneran tuh, nah kali ini Alhamdulillah sudah diselesaikan sebelum sprint review kemarin *yeay*

One picture of us nyempil disini won’t hurt #lha

Jadi berikut adalah hasil unit testing buatan saya. Untuk yang fungsi helper dan about sendiri saya bekerja sama dengan Fandika Okdiba (si pembuat about.rb dan helper.rb) demi terjaganya TDD *asik*.

P.S. Tambahan mengenai TDD sudah dijelaskan di post sebelumnya ;)

P.S (lagi) Untuk melihat lebih lengkap per tahap menjalankan testingnya dll, bisa cek di postnya Fandika Okdiba yaa :)

bot_spec.rb
bot.rb
help_spec.rb
help.rb
about_spec.rb
about.rb
Red Phase #1
Red Phase #2
Green Phase #1
Green Phase #2
Green Phase #3
Coverage kami kemarin yang Alhamdulillah sudah 100%

Ok, jadi itu sedikit mengenai hasil pekerjaan saya di task unit testing sebelum sprint review. Nah setelah sprint review, saya mengambil beberapa task baru untuk sprint berikutnya. Salah satu task yang sedang saya kerjakan yaitu membuat salah satu fungsionalitas di web admin kami yaitu untuk menambah entry KB baru. Disini saya sedang bekerja sama dengan Ayu Annisa (si pembuat unit testing) untuk membuatnya. Pekerjaan kami dimulai dengan Ayu yang membuat unit testing berupa feature yang digunakan sebagai “alur” yang seharusnya dijalankan pada kodingan kami saat user melakukan add new KB. Berikut adalah hasil pekerjaan kami sementara ini (belum selesai).

create_kb_spec.rb
create_kb.html.erb

Selain task mengenai add new KB, saya juga telah selesai mengerjakan task untuk redefine mockup for rendering. Jadi disini karena kita telah sepakat merubah bentuk interaksi antara user dengan bot kami, maka tentunya mockup dari bot kami perlu diubah juga. Adapun perubahan interaksinya yaitu sekarang bot kami akan menyediakan button-button yang akan terus menspesifikasi pertanyaan yang diajukan user sehingga akhirnya button terakhir yang paling spesifik akan langsung mengembalikan jawaban dari pertanyaan yang telah diajukan si user tersebut. Berikut adalah beberapa hasil pekerjaan saya.

Slack Screen #1
Slack Screen #2
Slack Screen #3
Slack Screen #4

Ok selain itu, saya juga sudah ikut berdiskusi pada issue yang terdapat di gitlab. *Kedepannya akan lebih rajin lagi + ikutan code review :)

Diskusi issue gitlab

Hal lain lagi, saya membantu teman saya Ayu Annisa untuk membetulkan kodingannya agar sesuai dengan ruby style guide. Tbh entah kenapa saya suka sekali merevise kodingan agar lulus di rubocop, seru aja hehehe._. *rubocop is so exciting yo*

Yikes so many offenses (again)

Dari foto offenses tersebut, bisa dilihat beberapa offenses yang muncul ada yang sama dengan sudah saya share di post sebelumnya. Namun muncul beberapa offenses baru (beberapa terpotong gaada di foto) sehingga saya perlu mencari tahu mengenai offenses tersebut. Adapun offenses yang sebelumnya belum saya temui adalah sebagai berikut.

  • The name of this source file (Gemfile) should use snake_case

Setelah melakukan searching di internet, saya menemukan beberapa orang lain yang memiliki masalah yang sama. Offense diatas memang sering muncul pada baris pertama (non-comment) di tiap file ruby, kadang meskipun sudah menggunakan snake_case bahkan tetap muncul. Solusi dari offense tersebut yaitu dengan menambahkan baris berikut pada file .rubocop.yml.

P.S Quoted from Wikipedia :

Snake case (or snake_case) is the practice of writing compound words or phrases in which the elements are separated with one underscore character (_) and no spaces, with each element’s initial letter usually lowercased within the compound and the first letter either upper or lower case — as in “foo_bar” and “Hello_world”.”
  • Use %i or %I for an array of symbols

Nah offense ini muncul di rubocop versi yang lebih baru (2.0). Contoh penulisan array of symbols yang terkena offense tersebut yaitu :

[:show, :edit, :update, :destroy]

Solusinya ada 2, yang pertama yaitu mengganti versi rubocop kita menjadi versi dibawah 2.0, misal menjadi 1.9 sehingga tidak terkena offense tersebut. Caranya yaitu merubah baris berikut :

Solusi kedua yaitu mengganti format penulisan array of symbols tersebut menjadi :

%i(show edit update destroy) atau %I(show edit update destroy)

  • end at 31, 1 is not aligned with it ‘displays “Select category!”’ do at 25, 4

Offense diatas adalah contoh offense yang muncul beberapa kali di beragam line karena salah peletakan “end” (tidak sejajar dengan mulainya). Solusinya yaitu menyamakan peletakan “end” dengan yang memulainya.

  • Block has too many lines. [33/25]

Offense diatas muncul karena suatu block memiliki terlalu banyak baris. Sesuai ruby style guide, suatu block seharusnya memiliki maksimal 25 baris. Hal ini dapat diatasi dengan 2 solusi. Yang pertama yaitu mengurangi penggunaan baris pada suatu block. Yang kedua yaitu dengan menambahkan baris berikut dalam file .rubocop.yml.

  • Indent ) the same as the start of the line where ( is

Offense diatas adalah contoh offense yang muncul beberapa kali di beragam line karena salah peletakan kurung tutup “)” (tidak sejajar dengan kurung buka “(“). Solusinya yaitu menyamakan peletakan “)” dengan “(“.

  • Unexpected token tLABEL, tCOLON, tLPAREN

Offense diatas sebetulnya 3 offenses yang muncul berbeda namun disebabkan oleh hal yang sama. Hal ini diakibatkan oleh pengeditan line yang terlalu panjang, lalu ketika dibagi menjadi 2 baris, ternyata tidak sesuai dengan penulisan yang diharapkan oleh ruby style guide, contohnya sebagai berikut.

Di Rubocop, tulisannya sih dapat diatasi dengan merubah konfigurasi parameter TargetRubyVersion, namun setelah mencoba hal tersebut dan mencari-cari solusi di internet juga belum ada solusi yang sesuai (yang benar-benar menghilangkan ketiga offenses tersebut secara langsung). Akhirnya saya mencoba merubah penulisan kode tersebut beberapa kali hingga akhirnya ditemukan penulisan yang sesuai dan menghilangkan ketiga offenses tersebut *yeay*

Sebetulnya masalah tidak sampai disitu. Jadi karena di file tersebut terdapat beberapa penulisan kode yang harus diubah menjadi format diatas, munculah offense baru “block has too many lines” *jengjeng*. Tapi akhirnya sudah ditemukan solusinya juga seperti yang telah ditulis sebelumnya :)

Ok setelah bahas offenses-nya dan sudah di-fix, mari kita coba jalanin rubocop lagi. Karena seperti biasa di Windows selalu masih kena offense “carriage return character missing” padahal sebetulnya gpp, saya minta tolong Fandika Okdiba (lagi) untuk mencoba jalanin rubocop ulang di Linux, dan voila!

Yahoo, no offenses!

Nah, saya rasa cukup sampai disini dulu sih karena emang progressnya baru segitu he. Sekali lagi maaf karena progress abis utsnya baru dikit :( segera akan dikejar lagi kok biar ppl tetap mantap. Well then, until later, ciao! ;)

❤ARP

Show your support

Clapping shows how much you appreciated Amiliana Riandya Pasha’s story.