Saya kira pertanyaan ini akan segera ditandai sebagai subyektif, tetapi menurut Anda mana yang lebih baik:
double volume(double pressure, double n_moles, double temperature) {
return n_moles * BOLTZMANN_CONSTANT * temperature / pressure;
}
atau
double volume(double P, double n, double T) {
return n*R*T/P;
}
Dengan kata lain, haruskah fungsi yang mengimplementasikan beberapa persamaan mengikuti notasi persamaan itu, atau haruskah mereka menggunakan lebih banyak nama verbose?
math
coding-style
readability
bagian belakang
sumber
sumber
Jawaban:
Tergantung siapa yang membacanya. Jika Anda bisa menjamin itu untuk selamanya, programmer berikutnya yang membaca kode Anda juga akrab dengan termodinamika, maka ya, pilih versi terpotong.
Gaya pribadi saya adalah menggunakan variabel seperti itu (yang singkatannya biasa dikenal di lapangan), tetapi sertakan uraiannya dalam komentar.
sumber
GAS_CONSTANT
adalah tidak standar nama variabel; setiap buku teks saya tahu kegunaanR
untuk itu) dan menjelaskan secara singkat mereka dalam komentar adalah hal terbaik yang bisa dilakukan.Hanya dengan melemparkannya ke luar, Anda memiliki pilihan lain:
Ini agak mirip dengan apa yang F # lakukan dengan satuan ukuran, dan memiliki manfaat menghindari masalah seperti mengganti secara tidak sengaja tekanan dengan suhu. Sulit untuk melihat apa argumen harus pergi ke mana tanda tangan itu seperti (ganda, ganda, ganda)
sumber
typedef
Saya lebih memilih ini:
Dengan kata lain, jelaskan arti kode dalam komentar dalam bahasa Inggris (dan matematika; itu adalah komentar, Anda dapat mengembangkannya sebanyak yang diperlukan), tetapi gunakan nama variabel deskriptif sehingga siapa pun yang membaca satu-satunya kode masih dapat memahami dengan mudah - terutama dengan fungsi yang lebih besar. Alasan lain mengapa saya menggunakan kata-kata nyata sebagai nama variabel adalah antarmuka jauh lebih jelas jika Anda perlu menyalin deklarasi fungsi ke file header.
sumber
IMHO itu selalu lebih baik untuk menggunakan notasi mapan dari domain masalah Anda bekerja jika fungsinya sangat spesifik domain. Seseorang yang tidak memahami domain masalah tidak memiliki kesempatan untuk berhasil mempertahankan kode Anda, dan bagi seseorang yang akrab dengan domain tersebut, nama-nama panjang hanya akan berisik, serta lebih banyak mengetik untuk Anda.
OTHO, saya akan mengatakan bahwa saya berharap notasi matematika konvensional lebih banyak bertele-tele dan deskriptif, tetapi terlepas dari itu saya pikir kode matematika harus tetap berpegang pada konvensi matematika.
Sunting: Jawaban ini hanya berlaku jika ada konvensi yang sangat kuat tentang notasi saat menulis rumus secara matematis. Jika tidak ada, dan Anda harus menjelaskan apa yang diwakili variabel dalam komentar bahkan dengan asumsi bahwa pembaca sudah mengenal domain, maka yang terbaik adalah berbuat salah di sisi konvensi yang lebih deskriptif.
sumber
Pendapat murni, tetapi selalu menggunakan kata-kata di atas simbol huruf tunggal. Jika Anda menggunakan kata-kata, semua orang akan mengerti; jika Anda menggunakan simbol, hanya pakar materi pelajaran yang dijamin akan mengikuti. Bahkan kemudian, beberapa orang menggunakan simbol yang berbeda untuk jumlah fisik yang sama. Anda tidak akan rugi dengan menggunakan nama yang lebih panjang.
sumber
Kekhawatiran Anda harus jelas kemudian kebenaran (kode yang salah tetapi jelas mudah diperbaiki) oleh karena itu fungsi Anda harus ditulis untuk pemeliharaan oleh pembuat kode generik sejauh mungkin. Komentar tajuk fungsi harus menjelaskan rumus dan penggunaannya serta menjelaskan parameter masuk / keluar. Setelah itu bagaimana fungsi tubuh diletakkan-keluar seharusnya tidak terlalu penting asalkan konsisten dengan komentar header.
(Saya tahu ini bukan diskusi tetapi - preferensi pribadi saya adalah untuk memberikan nama eksplisit kepada varaibles meskipun dalam kasus ini satu kalimat bisa mencukupi karena ini merupakan fungsi 'murni'; panggilan dengan parameter yang sama akan menghasilkan yang sama hasil selalu jadi seharusnya tidak ada kompleksitas terkait negara yang membutuhkan penjelasan)
sumber
Tergantung pada seberapa "jauh" dari lapisan bisnis kode ... Semakin jauh dalam tumpukan kode, semakin ditargetkan pada fungsi matematika abstrak adalah mengimplementasikan, semakin saya akan mencoba untuk meniru yang diterima secara umum notasi matehmatical dan konvensi penamaan .. Semakin dekat ke ujung depan atau ke lapisan bisnis, semakin saya akan menyesuaikan diri dengan konvensi yang ditetapkan dalam domain masalah.
sumber
Saya suka berpikir seperti ini - Matematikawan salah dengan variabel pendek dan fisikawan mengikutinya. Mengapa mengulangi kesalahan mereka? Kita sekarang tahu bahwa nama yang lebih panjang lebih deskriptif dan menghasilkan lebih sedikit kebingungan, jadi tetap dengan perbaikan. Pada nada yang lebih ringan, saya kadang-kadang mencoba memasukkan variabel yang lebih lama ke dalam matematika saya, di mana semua orang terkejut.
sumber
Format yang benar untuk persamaan pemrograman adalah format yang masih Anda pahami setelah tidak melihatnya selama enam bulan.
Jika Anda kembali ke:
Dan Anda tahu apa yang sedang terjadi, maka itu mungkin baik-baik saja. Biasanya untuk formula lanjutan saya tidak akan ingat apa bagian itu kecuali saya aktif menggunakannya. Untuk saya:
adalah format persamaan yang jauh lebih baik secara khusus karena saya dapat dengan mudah memahami setiap bagian, bahkan jika saya tidak selalu tahu mengapa persamaan ditulis sebagaimana adanya.
sumber
E=m*(c^2)
saya akan memahaminya dalam enam bulan.Lempar koin.
Apakah Anda kadang-kadang juga menghabiskan lebih banyak waktu untuk berpikir tentang cara memberi nama variabel daripada yang Anda habiskan untuk pengkodean itu sendiri?
sumber