Learning Never Exhaust the Mind


 


Hai, allocaters!

Bertemu lagi bersama saya, Glory. Pasti bingung ya kenapa tiba-tiba blog-nya berubah bahasa? Salah satu alasannya sih upaya kemampuan bahasa Indonesia kita tercinta tetap seimbang dengan kemampuan bahasa asing yang kita pelajari hihi..

Pada kesempatan kali ini, saya ingin menceritakan mengenai hal-hal luar biasa yang saya pelajari selama kurang lebih dua minggu terakhir ini.

Setelah usah Sprint Planning untuk Sprint 2, Dev Team allocateam sudah menentukan task-task yang akan dikerjakan selama Sprint 2. Basically, task yang dikerjakan adalah lebih terkait optimasi algoritma dan penyempurnaan beberapa komponen yang telah selesai dikerjakan di Sprint 1. Jumlah task-nya tidak sebanyak sewaktu Sprint 1 dan sekilas.. sekilas ya.. terlihat tidak terlalu sulit. But, reality didn't support my impression. Gilak! Ribet banget ternyata task-task-nya huhu

Di awal, saya mendapat tugas untuk penambahan beberapa komponen pada front-end, terus sempat berpikir, "Ga ribet lah orang tinggal lanjutin yang kemarin," eh ternyata berubah total dong! Jadi harus belajar banyak referensi baru, terutama terkait pagination dan fetching multiple pages from API. Secara logika sih so ez, tapi implementasinya itu loh.. Soalnya saya sendiri kan juga masih terhitung pemula di dunia per-front-end-an ini. Akhirnya, dengan bantuan the most loveliest search engine in the world, google, bisa selesai juga itu task walaupun sempat pusing banget belajarnya karena banyak banget metode yang bisa dipakai.

Berikutnya, saya mulai kembali ke dunia per-back-end-an, setelah Sprint 1 kemarin FULL dapat task front-end only. Terus sempat berpikir lagi, "Akhirnya back-end lagi. Bisa lah ya," eh lah salah lagi dong pikiran saya! Malah kagok soalnya serasa sudah lamaaa banget ga ngoding back-end hehe lebay

Walaupun butuh effort lagi untuk memulai kembali kehidupan per-back-end-an ini, saya sangat semangat, karena basically saya sangat senang ngoding back-end. Banyak hal baru yang saya pelajari yang memperdalam pengetahuan dan skill saya mengenai back-end development. Saya belajar mengenai SQL Alchemy, yaitu ORM-nya flask. Baru pertama kali banget pakai ini, walaupun ga beda jauh sih sama ORM-nya Django. Akhirnya saya pun harus kembali me-review materi-materi database yang pernah saya pelajari, sehubung dengan task saya (dan allocateam secara keseluruhan) sangat berkaitan dengan pengaksesan dan modifikasi database

Selain belajar database, saya juga mempelajari lebih dalam tentang flask back-end testing, terutama dengan pendekatan Test Driven Development. Pendekatan TDD ini sangat membantu saya kali ini (semoga akan selalu membantu sih hehe). Ga tau kenapa, development yang saya lakukan menjadi serasa lebih mudah. Karena, test terkait function yang akan diimplementasikan sudah dibuat di awal, lalu tinggal dilanjutkan dengan implementasinya, lalu di akhir, untuk verifikasi kembali, proses final testing-nya juga menjadi lebih mudah. Dengan testing tersebut, juga lebih menjamin quality dari aplikasi yang dikembangkan, karena code yang dihasilkan sudah teruji pula melalui testing tersebut. Pada tahap testing, saya juga mempelajari lebih dalam terkait mocking. Ternyata, mocking super duper sangat membantu loh! Karena, coba bayangin deh ya, ini data asli allocateam tuh jumlahnya super banyak. Kalau database-nya tidak di-mock, ribet banget sumpah testing-nya. Dengan mock, kita tidak perlu melakukan testing menggunakan data asli (atau dependensi lain) yang sangat kompleks, kita dapat menggunakan data yang lebih simple untuk hanya sekadar testing apakah function kita berjalan sesuai yang diharapkan atau tidak.

Nah, yang terakhir yang saya pelajari adalah error code. OMG this is so awesome! Kita bisa mendefinisikan sendiri error code yang ingin kita gunakan apabila mendapatkan error tertentu yang di catch saat masuk ke try-catch yang kita implementasikan. Namun ada ketentuan yang mengatur pendefinisian error code tersebut. Kurang-lebih seperti ini:
  • 1xx: Informational - Communicates transfer protocol-level information
  • 2xx: Success -Indicates that the client’s request was accepted successfully.
  • 3xx: Redirection - Indicates that the client must take some additional action in order to complete their request.
  • 4xx: Client Error - This category of error status codes points the finger at clients.
  • 5xx: Server Error - The server takes responsibility for these error status codes.

Sangat senang karena dua minggu ini banyak belajar hal-hal yang memperluas pengetahuan saya di bidang Software Engineering. Mungkin terkadang ada masanya jenuh harus mempelajari hal-hal yang sulit, namun, ketika kita berhasil mempelajarinya, itu akan menjadi kebanggaan tersendiri akan diri kita, dan juga saya yakin, tidak ada ilmu yang tidak berguna, especially di dunia Software Engineering, dimana teknologi berkembang dengan sangat cepat, sehingga ilmu pengetahuan pun akan terus-menerus bertambah. Pilihannya hanya dua: pantang menyerah untuk terus belajar atau tertinggal oleh dunia karena kemalasan diri sendiri. Hayo, pilih yang mana? :)


Mungkin itu saja yang ingin saya bagikan di kesempatan kali ini. Semoga bermanfaat bagi allocaters semua. Sampai bertemu di lain kesempatan!

0 komentar:

Post a Comment