Cara sederhana untuk mendekati jawaban adalah dengan mengenali bahwa "DLL" adalah singkatan dari "dynamic-link library," dan istilah kuncinya adalah "library."
Apa yang Anda inginkan di perpustakaan normal? Buku bagus yang akan dibagikan oleh banyak pembaca (pengguna); barang-barang berguna yang mengumpulkan debu sampai direferensikan oleh pembaca (pengguna) untuk menjawab pertanyaan kritis pada saat yang mungkin putus asa; dan sumber daya yang menghubungkan pembaca (pengguna) dengan sumber daya lain. Pustaka kode serupa. Kami menyimpan hal-hal seperti kode yang sering dibagikan, modul referensi khusus atau bernilai tinggi, dan sumber daya kerangka arsitektur di dalamnya. Pustaka perangkat lunak dapat direpresentasikan dalam beberapa jenis artefak kode, seperti skrip, pustaka statis, pustaka dinamis, komponen, dan file sumber daya.
Secara umum, saya sarankan agar modul yang dapat dieksekusi Anda bertindak seperti skrip. Mereka dengan jelas menguraikan dan mengelola struktur dan aliran utama sistem Anda, tetapi meminta sumber daya dari perpustakaan Anda untuk menangani detail seluk beluk. Saya menemukan pendekatan ini lebih baik daripada memperkeruh logika tingkat tinggi dengan masalah implementasi tingkat rendah yang membingungkan dan terlalu khusus dan teknis.
Ketika mempertimbangkan bagaimana mengalokasikan kode Anda antara executable dan library, Anda perlu mempertimbangkan desain logis dan desain fisik.
Dalam sistem berorientasi objek, misalnya, penting untuk secara logis mengatur kode Anda untuk menetapkan tanggung jawab yang benar ke metode yang tepat di kelas yang tepat. Ini adalah bagian dari desain solusi logis. Desain logis Anda harus jelas, bersih, dan ramping dan harus dinyatakan dalam terminologi yang berhubungan baik dengan domain pengguna Anda.
Ketika Anda berencana untuk benar-benar menginstal sistem Anda di situs pengguna, Anda mungkin khawatir untuk membuat desain fisik yang menentukan bagaimana Anda akan menggabungkan kode Anda ke dalam satu set objek sumber daya perangkat lunak yang mudah digunakan (biasanya file) yang dapat dengan mudah dicampur dan dicocokkan. untuk kebutuhan sistem target tertentu. Menentukan sumber daya mana yang termasuk dalam paket penempatan yang umumnya melibatkan pertimbangan desain fisik tertentu yang tidak ada kaitannya dengan desain logis. Misalnya, Anda mungkin ingin menukar pustaka pemrosesan file gambar tertentu bergantung pada pelanggan mana yang akan menerima set objek penempatan tertentu.
Dalam praktiknya, Anda akan menemukan bahwa desain logis yang baik biasanya mengarah pada desain fisik yang baik.
Sebagai rangkuman, prinsip yang paling penting adalah pengemasan yang cerdas. Dengan mengatur materi kode Anda ke dalam pustaka yang sangat terkait, Anda berakhir dengan artefak kode yang dapat digunakan yang dapat Anda gunakan kembali dengan mudah, berpindah-pindah, atau memberikan.