Saya telah mendengar banyak orang berbicara tentang logika bisnis di tempat kerja, dan online, dan saya telah membaca beberapa pertanyaan di situs ini tentang hal itu, tetapi istilah itu masih tidak masuk akal bagi saya. Sebagai contoh, berikut adalah beberapa pernyataan (diparafrasekan) yang sering saya lihat:
"Logika bisnis adalah bagian dari program Anda yang menyandikan aturan bisnis yang sebenarnya." Sebagian besar definisi yang saya baca adalah yang melingkar seperti ini.
"Logika bisnis adalah segalanya yang unik untuk aplikasi khusus Anda." Saya tidak melihat bagaimana ini berbeda dari "aplikasi khusus Anda tidak lain adalah logika bisnis", kecuali jika kami secara tidak sengaja menemukan kembali sejumlah roda, kami dapat menggunakan perangkat lunak pihak ke-3 yang ada. Karena itulah judul pertanyaan.
"Seharusnya ada Lapisan Logika Bisnis di atas Lapisan Akses Data Anda dan di bawah Lapisan GUI Anda." Dalam kode yang saya tulis, pengakses database harus tahu data apa yang seharusnya mereka akses, dan kode UI harus tahu banyak tentang apa yang ditampilkan untuk menampilkannya dengan benar, dan tidak ada yang benar-benar dilakukan di antaranya. dua tempat itu selain melewati gumpalan data antara klien dan server. Jadi apa yang sebenarnya seharusnya masuk ke Business Logic Layer?
"Logika bisnis harus terpisah dari logika presentasi." Sebagian besar permintaan fitur yang kami dapatkan adalah mengubah logika presentasi untuk alasan bisnis. Jika salah satu aturan bisnis adalah untuk menampilkan harga obligasi pemerintah AS dalam notasi 32nds secara default (sambil juga menyediakan UI bagi pengguna untuk mengonfigurasinya), logika presentasi perlu setidaknya tahu aturan ini ada, jika tidak sepenuhnya menerapkannya. Selain itu, sepertinya bagian utama dari desain UX membantu pengguna memahami aturan bisnis yang coba diterapkan oleh perangkat lunak kami.
Mungkinkah saya benar-benar berada di tim yang hanya melakukan logika bisnis, dan semua logika non-bisnis dilakukan oleh tim lain? Atau apakah seluruh konsep "logika bisnis" sebagai entitas yang terpisah hanya dapat diterapkan untuk aplikasi atau arsitektur tertentu?
Untuk membantu membuat jawaban menjadi nyata: Berpura-puralah Anda harus mengimplementasikan kembali aplikasi Pizza Domino. Apa logika bisnis, dan apa logika non-bisnis dari aplikasi itu? Dan bagaimana mungkin untuk menempatkan logika bisnis pemesanan pizza dalam "lapisan" kode sendiri, tanpa sebagian besar informasi pizza berdarah ke dalam akses data dan lapisan presentasi?
Pembaruan: Saya sampai pada kesimpulan bahwa tim saya mungkin melakukan 90% kode UI dan sebagian besar - tetapi tidak semua - dari apa yang Anda sebut logika bisnis berasal dari tim atau perusahaan lain. Pada dasarnya, aplikasi kami adalah untuk pemantauandata keuangan, dan hampir semua fitur adalah cara bagi pengguna untuk menyesuaikan data apa yang mereka lihat dan bagaimana mereka melihatnya. Tidak ada pembelian atau penjualan yang terjadi (meskipun kami sedikit mengintegrasikan dengan aplikasi lain dari perusahaan kami yang melakukan itu), dan data aktual dipasok oleh banyak sumber eksternal. Namun kami mengizinkan pengguna untuk melakukan hal-hal seperti mengirim salinan "monitor" mereka ke pengguna lain, jadi detail cara kami menangani hal itu mungkin memenuhi syarat sebagai logika bisnis. Sebenarnya ada aplikasi seluler yang saat ini berbicara dengan beberapa kode backend kami, dan saya tahu persis apa bagian dari kode frontend kami yang saya inginkan untuk dibagikan dengan UI kami di dunia yang ideal (pada dasarnya M dalam kuasi-MVC kami) jadi Saya kira itulah BLL untuk kita.
Saya menerima jawaban user61852 karena itu memberi saya pemahaman yang jauh lebih konkret tentang apa yang "merujuk" logika bisnis dan tidak mengacu.