Bagaimana cara menangani filosofi penggunaan kembali kode?


10

Saya selalu menemukan diri saya berpikir tentang penggunaan kembali kode ketika memulai proyek baru.

Sejauh mana saya harus membuat kode saya dapat digunakan kembali?
Haruskah saya membatasi itu pada lingkup aplikasi atau haruskah saya membuatnya dapat digunakan kembali di luar proyek?

Terkadang, saya merasa kode dapat digunakan kembali mungkin menghalangi desain yang sederhana. Tolong, bagikan pemahaman Anda sendiri dan pendekatan penggunaan kembali kode.


Jawaban:


21

Kode harus berfungsi sebelum dapat digunakan kembali. Sehingga menyiratkan desain dan fungsi (utama) harus datang sebelum pertimbangan penggunaan kembali kode.

Adalah baik untuk memikirkan penggunaan kembali, dan menggunakan kembali komponen yang sudah Anda tulis. Tetapi kadang-kadang bisa sama cepat, jika tidak lebih cepat, hanya untuk menulis kode dan membuatnya bekerja. Setelah Anda menyelesaikan masalah aslinya, Anda bisa memperbaiki kode untuk membuatnya lebih dapat digunakan kembali.


2
Apakah "sudah" di kalimat pertama salah ketik "sudah"?

@delnan - apa "itu"? :-) Terima kasih sudah menangkapnya.

9

Ingat KISS dan YAGNI:

Kode re-usability better to be consideredbegitu Anda memiliki dokumen desain Anda siap . Ini akan memungkinkan Anda untuk melihat bagian / bagian kode yang berpotensi digandakan.

Jadi, ketika Anda tidak memiliki desain yang jelas maka terapkan pendekatan KISS dan YAGNI dalam pekerjaan Anda!


1

Ini dari pengalaman saya, tetapi masih percaya itu bisa diterapkan dan sejalan dengan apa yang GlenH7 sebutkan.

Saya bekerja di antara 3 perusahaan yang melakukan berbagai proyek. Perusahaan adalah saudara satu sama lain dengan beberapa praktik standar dan metodologi kerja, tetapi juga unik dalam banyak hal. Dengan itu, saya biasanya memulai setiap proyek baru dan ingin menyelesaikannya atau menunjukkan kemajuan. Kemudian jika saya menjalankan skenario di mana saya ingat sepotong kode atau fungsi yang saya tulis untuk proyek sebelumnya, saya akan melakukan salah satu dari dua hal (tergantung waktu):

  1. Metode Tercepat
    Salin kode sebelumnya dari proyek lain (tidak punya banyak waktu) ke proyek saya saat ini.
  2. Metode Kedua Tercepat
    Salin kode sebelumnya dan letakkan di perpustakaan umum, kemudian sertakan perpustakaan itu dalam proyek saat ini (untuk membuat bergerak maju lebih mudah).

    2b. Jika saya melakukan perubahan pada proyek (asli) lainnya, saya akan menolaknya untuk menggunakan perpustakaan baru [tetapi umumnya tidak akan melakukannya kecuali saya harus menyentuh kembali proyek itu].

Hanya diperingatkan, uji coba keluar dari perpustakaan umum. Perpustakaan umum berarti menciptakan dependensi. Ketergantungan menciptakan titik kegagalan. Meskipun Anda mungkin perlu sesuatu yang sedikit diubah untuk implementasi Anda saat ini, Anda tidak tahu bagaimana itu akan mengubah hal lain menggunakan perpustakaan itu.


Mengapa menggunakan implementasi tunggal dari sesuatu ketika Anda dapat memiliki empat atau lima yang identik? Metode "tercepat" Anda hanya tercepat dalam waktu dekat.
Caleb

@ Caleb: Setuju. Tidak pernah mengatakan itu elegan hanya bahwa tenggat waktu adalah tenggat waktu. Selama refactor saya akan mengenali beberapa proyek menggunakan kode yang sama dan pergi melalui dan memecahnya ke perpustakaan mereka sendiri. Tetapi ketika saya harus mengeluarkannya, salin-tempel berfungsi. Ini juga memberi saya fleksibilitas untuk membuat modifikasi untuk satu proyek itu dan saya mengingat perubahan-perubahan itu ketika saya memecah perpustakaan dan ingin membuatnya solid dan fleksibel.
Brad Christie

1

Terkadang saya menemukan bahwa menyalin & menempel beberapa baris kode adalah solusi yang lebih baik. Bahkan dalam bahasa manusia, ketika Anda ingin mengucapkan kalimat yang Anda katakan sebelumnya hanya dengan sedikit variasi, Anda akan mengulanginya dengan variasi, karena itu membuat lebih sedikit masalah bagi siapa pun.

Namun, jika modul besar Anda perlu digunakan dengan cara yang sedikit berbeda yang tidak didukung, jangan mengkloningnya hanya untuk memodifikasi beberapa baris karena sangat mungkin Anda ingin memperluas fungsionalitas yang menjadi basis dan basisnya. clone share di masa depan. Sebagai gantinya, cukup buat konfigurasi atau ekspor fungsionalitas yang dimiliki oleh basis dan klon ke modul lain yang akan mereka gunakan.


0

Jangan berlebihan. Dan jika Anda tidak yakin, pertahankan cakupan aplikasi hingga Anda menulis cukup banyak proyek untuk melihat di mana Anda dapat menggunakan kembali apa.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.