Buruknya Penggunaan Copy Paste

Buruknya Penggunaan Copy Paste

Menyalin dan menempel kode Copy-Paste adalah bentuk penggunaan ulang perangkat lunak yang primitif tetapi sangat umum. Sayangnya, praktik ini penuh dengan bahaya yang tidak sedikit di antaranya adalah duplikasi bug dan kerusakan keamanan di seluruh sistem. Sementara sejauh mana salin-tempel, sebagai teknik konstruksi kode umum, harus diizinkan atau tidak diizinkan masih bisa diperdebatkan, semua orang dapat setuju bahwa kesalahan yang ditimbulkan melalui modifikasi yang tidak konsisten pada kode yang disalin itu buruk. Pemrogram manusia dapat mendeteksi beberapa contoh salin-tempel secara manual, setidaknya dalam basis kode yang cukup kecil. Melakukan hal ini tidak terlalu sulit untuk alat otomatis, bahkan untuk program besar (meskipun bisa jadi rumit ketika salinannya dimodifikasi, seperti yang sering terjadi). Namun, mendeteksi hanya contoh salin-tempel yang menimbulkan kesalahan langsung jauh lebih sulit, bahkan untuk alat otomatis, dan sangat sulit dilakukan secara manual (karena alasan yang berkaitan dengan psikologi perseptual).

Salin dan Tempel: Kami terus melakukannya dan kami lebih tahu


Sebagian besar pengembang akan setuju bahwa hanya menyalin dan menempel kode adalah bentuk penggunaan ulang yang buruk dan praktik yang buruk secara umum. Namun, hal ini biasa terjadi karena penggunaan ulang yang tepat membutuhkan waktu dan uang ekstra (dalam jangka pendek). Ini mungkin karena kurangnya motivasi untuk digunakan kembali dengan benar dan kurangnya pemikiran ke depan. Apa pun alasannya, ada banyak alasan untuk meminimalkan penyalinan dan penempelan, misalnya:

  1. Penggunaan ulang yang buruk: Biaya sebenarnya untuk mengembangkan perangkat lunak tidak terletak pada pengetikan kode, jadi hanya menggandakan kode tidak akan banyak meningkatkan produktivitas.
  2. Menduplikasi bug berulang kali memperburuk keadaan. Selain itu, kesempatan untuk mengumpulkan dan mendokumentasikan kode yang berguna dan dapat digunakan kembali hilang. Membuat lebih banyak kode akan memindahkan metrik cakupan kode Anda ke arah yang salah dan meningkatkan beban pengujian Anda.
  3. Menduplikasi bug dan kerentanan keamanan: Masalah yang paling jelas adalah menduplikasi masalah yang melekat pada kode asli di seluruh proyek. Lebih buruk lagi adalah bahwa setiap versi yang disalin biasanya dimodifikasi untuk konteks spesifiknya, membuat pelacakan bug lebih sulit.
  4. Memperkenalkan kesalahan baru: Setelah kode disalin, biasanya kode dimodifikasi agar sesuai dengan lokasinya yang baru. Modifikasi semacam itu biasanya merupakan proses pengeditan manual dan karenanya rentan terhadap semua jenis kesalahan manusia yang mengganggu tugas manual yang berulang. Pengeditan ini sering dilakukan dengan tergesa-gesa, tanpa pemahaman penuh tentang kode asli, yang memungkinkan terjadinya kesalahan semantik yang lebih halus.

Masalah perizinan

Kode dapat dengan mudah disalin dan ditempel dari contoh online atau proyek sumber terbuka seperti halnya dari proyek internal. Tidak memahami implikasi lisensi dari sumber yang disalin bisa sangat bermasalah, terlebih lagi untuk perangkat yang disematkan, di mana perangkat lunak onboard dianggap sebagai salinan baru dan unik. GrammaTech tidak mengkhususkan diri dalam bidang ini, tetapi perusahaan lain menyediakan alat untuk jenis analisis ini.

Bagaimana analisis statis lanjutan membantu mendeteksi bug salin dan tempel yang rumit

Alat yang hanya mendeteksi contoh salin-tempel tentu saja berguna bagi mereka yang ingin merestrukturisasi kode yang berfungsi dan ada, tetapi itu akan menjadi instrumen yang sangat tumpul: pengembang tidak akan tahu harus mulai dari mana. Bahkan di antara mereka yang tidak ingin membersihkan dosa salin-tempel di masa lalu, ada minat untuk menemukan kesalahan aktual dalam kode. Analisis statis lanjutan dapat fokus pada menemukan kesalahan salin-tempel, kasus di mana kode digunakan kembali tetapi kesalahan baru diperkenalkan dalam prosesnya. Kesalahan semacam itu biasanya diperkenalkan selama substitusi variabel, proses di mana kode yang ditempelkan disesuaikan dengan konteks barunya.
Ini adalah analisis yang rumit untuk dilakukan. Alat analisis harus terlebih dahulu menemukan pola penggunaan ulang di seluruh rentang kode yang besar dan kemudian menemukan tempat di mana substitusi variabel yang tidak lengkap telah dilakukan dalam kode yang ditempelkan dibandingkan dengan lokasi sumber. Bahkan ini pun bukan bukti yang cukup untuk melaporkan kesalahan, karena ada banyak alasan mengapa modifikasi yang tampaknya tidak konsisten persis seperti yang diinginkan oleh pemrogram dan memang benar. Seseorang harus melangkah lebih jauh dan mencoba melihat ke dalam benak programmer untuk melihat apakah kemungkinan niat mereka cocok dengan kode yang sebenarnya mereka tulis. Ini perlu melakukan ini dengan presisi tinggi.

Kesimpulan

Menyalin dan menempel kode adalah bentuk penggunaan ulang yang paling umum dalam pengembangan perangkat lunak meskipun ada masalah yang ditimbulkannya. Meskipun pemfaktoran dan penggunaan kembali biasanya lebih disukai, untuk kode lama ini mungkin tidak praktis, jadi penggunaan analisis statis lanjutan adalah kunci untuk menemukan kesalahan yang sering terjadi akibat praktik ini sebelum membuatnya menjadi produk akhir (seperti yang ada dalam contoh ). Seperti semua analisis statis, menemukan masalah dalam kode segera setelah diperkenalkan, sebelum upaya pengujian yang mahal dihabiskan untuk itu, adalah keuntungan semua orang. Alat sederhana yang mendeteksi kode yang disalin dan ditempelkan akan menghasilkan banyak pekerjaan untuk Anda, dengan relatif sedikit yang bisa ditampilkan. Alat analisis statis canggih yang hanya menampilkan kesalahan nyata, sering kali tidak kentara, dalam kode yang disalin mengarahkan Anda tepat ke perubahan yang perlu dilakukan, memaksimalkan laba atas investasi pengembangan Anda.

Berkomentar Lah Dengan Sopan, Bijak Dan BerEtika, Karena Setiap Komentar Menjadi Tanggung Jawab Komentator

Post a Comment (0)
Previous Post Next Post