Selain itu: Saya menulis ini sebagai jawaban atas pertanyaan dallin (sekarang ditutup) tetapi saya masih merasa ini bisa bermanfaat bagi seseorang jadi begini
Saya berpikir bahwa alasan fungsi atomisasi adalah 2 kali lipat, dan seperti yang disebutkan @jozefg bergantung pada bahasa yang digunakan.
Pemisahan Kekhawatiran
Alasan utama untuk melakukan ini adalah untuk menjaga potongan kode yang berbeda terpisah, sehingga setiap blok kode yang tidak secara langsung berkontribusi pada hasil / maksud fungsi yang diinginkan adalah masalah yang terpisah dan dapat diekstraksi.
Katakanlah Anda memiliki tugas latar belakang yang juga memperbarui bilah progres, pembaruan bilah progres tidak terkait langsung dengan tugas yang berjalan lama sehingga harus diekstraksi, bahkan jika itu satu-satunya bagian dari kode yang menggunakan bilah progres.
Katakan dalam JavaScript Anda memiliki fungsi getMyData (), yang 1) membangun pesan sabun dari parameter, 2) menginisialisasi referensi layanan, 3) memanggil layanan dengan pesan sabun, 4) mem-parsing hasilnya, 5) mengembalikan hasilnya. Tampaknya masuk akal, saya telah menulis fungsi persis ini berkali-kali - tetapi sebenarnya itu dapat dibagi menjadi 3 fungsi pribadi hanya termasuk kode untuk 3 & 5 (jika itu) karena tidak ada kode lain yang secara langsung bertanggung jawab untuk mendapatkan data dari layanan .
Peningkatan Pengalaman Debugging
Jika Anda memiliki fungsi atomik sepenuhnya, jejak tumpukan Anda menjadi daftar tugas, daftar semua kode yang berhasil dieksekusi, yaitu:
- Dapatkan Data Saya
- Menginisialisasi Referensi Layanan
- Tanggapan Layanan Parsed - GALAT
akan membagikan lebih menarik kemudian menemukan bahwa ada kesalahan saat mendapatkan data. Tetapi beberapa alat bahkan lebih berguna untuk men-debug pohon panggilan terperinci dari itu, ambil contohnya Microsoft Debugger Canvas .
Saya juga memahami kekhawatiran Anda bahwa mungkin sulit untuk mengikuti kode yang ditulis dengan cara ini karena pada akhirnya, Anda harus memilih urutan fungsi dalam satu file di mana sebagai pohon panggilan Anda akan membagikan lebih rumit dari itu . Tetapi jika fungsi dinamai dengan baik (intellisense memungkinkan saya untuk menggunakan 3-4 kata kasus camal dalam fungsi apa pun yang saya harap tanpa memperlambat saya) dan terstruktur dengan antarmuka publik di bagian atas file, kode Anda akan dibaca seperti pseudo-code yang sejauh ini merupakan cara termudah untuk mendapatkan pemahaman tingkat tinggi dari basis kode.
FYI - ini adalah salah satu dari hal-hal "lakukan apa yang saya katakan tidak seperti yang saya lakukan", menjaga kode atom tidak ada gunanya kecuali Anda secara konsisten konsisten dengan itu IMHO, padahal saya tidak.