Cara GDE web Erick Wendel mengubah Node.js selamanya dengan dukungan komunitas open-source

MEI 23, 2023
Kevin Hernandez Developer Relations Community Manager

Pernahkah Anda menghadapi bug pada teknologi yang terkenal di seluruh dunia? Apa yang Anda lakukan? 

Jika Anda Erick Wendel, seorang GDE Web, Anda akan menyingsingkan lengan baju dan menemukan solusi untuk bug yang mengganggu perusahaan teknologi besar. 

Erick adalah developer berbasis komunitas yang memulai kariernya di bidang ini melalui komunitas perangkat lunak yang dulu menawarkan kursus gratis di negara asalnya, Brasil. Pengalaman ini menumbuhkan minat terhadap proyek open-source dan kolaborasi yang membantunya memecahkan masalah dalam Node.js dan memengaruhi cara kerja subproses saat runtime. Erick melanjutkan semangat berbagi pengetahuannya dengan menguraikan secara tepat bagaimana ia mengatasi bug tersebut dalam video YouTube yang mendetail (dalam bahasa Portugis).



erickWendelNodeJS
Erick Wendel, GDE Web, berbicara di konferensi FrontInSampa

Bug

Di Node.js, ada modul bernama proses turunan yang memungkinkan Anda membuat tugas di fungsi lain sehingga Anda memproses data di latar belakang. Proses ini memanfaatkan lebih banyak daya dari mesin Anda dan di halaman web, sehingga halaman dapat dimuat lebih cepat. Saat mencoba mengimpor modul dalam JavaScript, ada dua cara utama untuk memuat modul tersebut:

  1. CommonJS: skrip perlu dimuat dalam urutan tertentu. Metode ini memblokir program hingga semua modul dimuat dalam urutan tersebut.
  2. Modul ECMAScript: memungkinkan JavaScript memuat modul secara asinkron, sehingga mencegah pemblokiran program saat memuat file.

Saat membuat kelas pendidikan untuk siswanya, Erick menggunakan modul proses turunan Node.js dan mencoba menjadwalkan fungsi yang akan dijalankan di latar belakang. Jika bekerja dengan benar, proses utama seharusnya mengirim pesan ke program yang berjalan di latar belakang segera setelah memanggil fungsi tersebut. Saat melakukannya, dia menyadari bahwa dia menemukan error dan bahkan menulis ulang kodenya beberapa kali. Erick 100% yakin bahwa kodenya seharusnya berfungsi tetapi meskipun dia yakin, dia terus menemukan kesalahan. Jadi dia berpikir, “Bagaimana jika saya meletakkan fungsi setTimeout di sini hanya untuk menunggu sebentar dan kemudian meminta peristiwanya. Lalu berhasil!” Erick menyadari bahwa ini sebenarnya adalah bug dan langsung membuka repository GitHub Node.js untuk membuat issue dan bekerja sama dengan kontributor lain untuk mencari solusi terbaik.

Menemukan solusi

Setelah momen Eureka Erick, dia ingin memastikan bahwa ini bukan masalah yang hanya memengaruhi dirinya. “Saat saya mencari masalah ini di Google, saya menemukan masalah ini di Facebook Jest, Yarn, dan library besar lainnya yang mungkin digunakan oleh siapa pun yang menjalankan JavaScript,” dia menemukan. Sebagai pelopor proyek open-source dan kolaborasi, Erick membuat issue di GitHub Node.js dan membahas masalah tersebut sementara kontributor lain juga berpartisipasi.

Ketika ditanya tentang sumber daya yang dia gunakan untuk memperbaiki bug ini, Erick dengan cepat menyebutkan komunitas open-source. Dia berbicara dengan Anna Henningsen, salah satu kontributor Node.js yang menurut pendapatnya paling penting. Ide yang diusulkannya adalah untuk memperkenalkan peristiwa baru di modul proses turunan yang akan mengingatkan pengguna ketika peristiwa tersebut “siap”. Namun, seperti yang dikatakan Anna, hal ini akan membawa perubahan yang mengharuskan masyarakat mempelajari cara menggunakan proses baru ini. Sebaliknya dia mengusulkan, “Bagaimana jika Anda memasukkan semua pesan ke dalam antrean dan ketika proses turunan sudah siap, Anda mengirimkan semuanya?” Ini adalah jenis kolaborasi yang dia perjuangkan dan solusi dari Anna ini akan memperbaiki bug tanpa merusak semua aplikasi yang menggunakan Node.js.

Anna memberikan dukungan yang sangat besar dan segera setelah membuka diskusi di GitHub, anggota komunitas mengomentari proyek tersebut dan memberikan masukan mereka. Dia ingat, “Setelah saya mengirimkan versi pertama solusi saya, banyak kontributor yang meninjau kode saya dan berkata, ‘Tidak, tidak, ini bukan cara yang benar, Anda harus memperbaikinya, ini adalah masalah kinerja, dll.’ Jadi, saya mendapat banyak masukan, belajar banyak, dan akhirnya disetujui!” Tanpa bantuan komunitas open-source, dia bisa saja menemukan solusi yang akan menimbulkan lebih banyak masalah. Sebaliknya, komunitas menunjukkan hal yang tak ia lihat dan kolaborasi ini menghasilkan solusi yang mulus.

Dengan solusi Erick, Node.js dapat secara efektif menjalankan tugas latar belakang menggunakan modul ECMAScript dan perusahaan besar berterima kasih kepada Erick serta komunitas open-source karena telah memecahkan masalah yang telah ada sejak awal Node.js.

Dampak

Sejak menyelesaikan masalah ini, Erick telah menjadi anggota inti Node.js di mana dia meninjau pull request, menghadiri diskusi, dan dianggap sebagai developer berpengaruh di bidang tersebut. Erick juga diundang ke konferensi di seluruh dunia untuk berbicara tentang pengembangan open-source dan pengalamannya.

Erick ingin menambah visibilitas pada kekuatan proyek open-source dan memohon semua orang, pelajar dan profesional, untuk membantu open-source. Proyek-proyek ini telah membantunya mencapai tujuannya untuk meninggalkan kesan di dunia dan dia menyatakan, “Saya ingin mencantumkan nama saya pada sesuatu yang akan diingat orang selamanya. Menurut saya inilah kekuatan open-source. Anda dapat menambahkan ide atau mencoba memperbaiki sesuatu dan ini dapat menjadikan Anda developer dan orang yang lebih baik.”

Erick terus memecahkan masalah (solusi terbarunya memperbaiki bug di Node.js dengan satu baris kode), belajar, mendidik melalui saluran YouTube miliknya, dan menantikan tantangan besar berikutnya.

Ucapan terima kasih Erick

Erick mengucapkan terima kasih kepada komunitas open-source dan khususnya Anna Henningsen serta Rich Trott atas dukungan dan kontribusi mereka terhadap solusi ini. Dia berkata, "Saya tahu bahwa bagi kolaborator Node.js yang berpengalaman, bug ini bisa saja diperbaiki hanya dalam hitungan menit dan mereka membiarkan saya membantu dan memberikan yang terbaik. Ini adalah pelajaran yang akan selalu saya ingat."

You can find Erick on Twitter, GitHub and YouTube where he published a step-by-step tutorial (in Brazilian Portuguese) on how he fixed this bug and also gave a summarized tech talk sharing his journey.

Program Google Developer Experts (GDE) adalah jaringan global yang terdiri dari para pakar teknologi, influencer, dan pakar keilmuan yang sangat berpengalaman serta secara aktif mendukung developer, perusahaan, dan komunitas teknologi dengan menjadi pembicara di berbagai acara dan menerbitkan konten.