Jadi melihat-lihat sebelumnya saya perhatikan beberapa komentar tentang metode panjang menjadi praktik yang buruk.
Saya tidak yakin saya selalu setuju bahwa metode panjang itu buruk (dan ingin pendapat dari orang lain).
Sebagai contoh, saya memiliki beberapa pandangan Django yang melakukan sedikit pemrosesan objek sebelum mengirimnya ke tampilan, metode yang panjang berupa 350 baris kode. Saya memiliki kode saya yang ditulis sehingga berkaitan dengan parameter - menyortir / memfilter queryset, kemudian sedikit demi sedikit melakukan beberapa pemrosesan pada objek permintaan saya telah kembali.
Jadi pemrosesan adalah agregasi kondisional, yang memiliki aturan yang cukup rumit sehingga tidak dapat dengan mudah dilakukan dalam database, jadi saya memiliki beberapa variabel yang dideklarasikan di luar loop utama kemudian diubah selama loop.
variable_1 = 0
variable_2 = 0
for object in queryset :
if object.condition_condition_a and variable_2 > 0 :
variable 1+= 1
.....
...
.
more conditions to alter the variables
return queryset, and context
Jadi menurut teori saya harus memfaktorkan semua kode menjadi metode yang lebih kecil, sehingga saya memiliki metode tampilan sebagai maksimum satu halaman.
Namun setelah bekerja pada berbagai basis kode di masa lalu, kadang-kadang saya menemukan itu membuat kode kurang mudah dibaca, ketika Anda harus terus-menerus melompat dari satu metode ke metode berikutnya mencari tahu semua bagian itu, sambil tetap menjaga metode terluar di kepala Anda.
Saya menemukan bahwa memiliki metode panjang yang diformat dengan baik, Anda dapat melihat logikanya dengan lebih mudah, karena tidak disembunyikan dalam metode batin.
Saya dapat memfaktorkan kode ke dalam metode yang lebih kecil, tetapi sering kali ada loop dalam yang digunakan untuk dua atau tiga hal, sehingga akan menghasilkan kode yang lebih kompleks, atau metode yang tidak melakukan satu hal kecuali dua atau tiga (alternatifnya) Saya bisa mengulangi loop batin untuk setiap tugas, tetapi kemudian akan ada hit kinerja).
Jadi adakah kasus bahwa metode panjang tidak selalu buruk? Apakah selalu ada kasus untuk metode menulis, ketika mereka hanya akan digunakan di satu tempat?
UPDATE: Sepertinya saya menanyakan pertanyaan ini lebih dari setahun yang lalu.
Jadi saya refactored kode setelah respon (campur) di sini, membaginya menjadi metode. Ini adalah aplikasi Django yang mengambil set kompleks objek terkait dari database, jadi argumen pengujiannya keluar (mungkin akan menghabiskan sebagian besar tahun ini untuk membuat objek yang relevan untuk kasus uji. Saya memiliki tipe "ini perlu dilakukan kemarin" lingkungan kerja sebelum ada yang mengeluh). Memperbaiki bug pada bagian kode itu sedikit lebih mudah sekarang, tetapi tidak secara masif.
sebelum :
#comment 1
bit of (uncomplicated) code 1a
bit of code 2a
#comment 2
bit of code 2a
bit of code 2b
bit of code 2c
#comment 3
bit of code 3
sekarang:
method_call_1
method_call_2
method_call_3
def method_1
bit of (uncomplicated) code 1a
bit of code 2a
def method_2
bit of code 2a
bit of code 2b
bit of code 2c
def method_3
bit of code 3