İnsanların iş mantığı hakkında işyerinde ve çevrimiçi konuştuğunu duydum ve bu sitede bazı sorular okudum, ancak bu terim hala bana pek bir şey ifade etmiyor. Örneğin, burada sık sık gördüğüm bazı (parola cümleleri) ifadeler:
"İş mantığı, programınızın gerçek iş kurallarını kodlayan bir parçasıdır." Okuduğum tanımların çoğu, bunun gibi dairesel olanlardır.
"İş mantığı, kendi uygulamanıza özgü her şeydir." Bunun, mevcut 3. parti yazılımını kullanabileceğimiz bir takım tekerleği yanlışlıkla yeniden icat etmediğimiz sürece, "sizin özel uygulamanızın iş mantığından başka bir şey" den ne kadar farklı olduğunu anlamıyorum. Dolayısıyla soru başlığı.
"Veri Erişim Katmanınızın üstünde ve GUI Katmanınızın altında bir Business Logic Layer olmalı." Yazdığım kodda, veritabanı erişimcilerinin hangi verilere erişmeleri gerektiğini bilmeleri ve UI kodunun doğru görüntülemek için neyin gösterdiği hakkında çok şey bilmesi gerekiyor ve bunların arasında gerçekten yapılacak hiçbir şey yok. müşteri ve sunucu arasında veri blobları geçmekten başka iki yer Peki aslında İş Mantığı Katmanına girmesi gereken nedir?
"İş mantığı sunum mantığından ayrı olmalıdır." Aldığımız özellik isteklerinin çoğu, ticari nedenlerden dolayı sunum mantığını değiştirmektir. İş kurallarından biri, ABD devlet tahvili fiyatlarının varsayılan olarak 32nds notasyonda gösterilmesi ise (kullanıcının bunu yapılandırması için bir kullanıcı arayüzü sağlarken), sunum mantığının, en azından tam olarak uygulanmadığı takdirde, bu kuralın mevcut olduğunu bilmesi gerekir. Ayrıca, UX tasarımının büyük bir kısmı, kullanıcının yazılımımızın uygulamaya çalıştığı iş kurallarını anlamalarına yardımcı oluyor gibi görünüyor.
Aslında sadece iş mantığını yapan ve tüm iş dışı mantığını başka takımlar tarafından gerçekleştiren bir takımda bulunmam mümkün mü? Yoksa “iş mantığı” kavramı ayrı bir varlık olarak sadece belirli uygulamalar veya mimariler için uygulanabilir mi?
Cevapları somutlaştırmaya yardımcı olmak için: Domino's Pizza uygulamasını yeniden uygulamanız gerekmiş gibi yapın. İş mantığı nedir ve bu uygulamanın iş dışı mantığı nedir? Ve pizza siparişi iş mantığını, veri erişimine ve sunum katmanlarına sızan pizza bilgilerinin birçoğu olmadan kendi “kod katmanına” koymak nasıl mümkün olabilirdi?
Güncelleme: Ekibimin muhtemelen% 90 UI kodu yaptığını ve iş mantığı dediğiniz şeylerin çoğunun diğer ekiplerden veya şirketlerden geldiği sonucuna vardım. Temel olarak, uygulamamız izleme içinfinansal veriler ve neredeyse tüm özellikler, kullanıcının hangi verileri gördüklerini ve nasıl gördüklerini özelleştirmelerinin yollarıdır. Satın alma veya satma söz konusu değildir (bunu yapan firmamızın diğer uygulamalarına biraz entegre etsek de) ve gerçek veriler bir çok dış kaynak tarafından sağlanır. Ancak, kullanıcıların “monitörlerinin” kopyalarını diğer kullanıcılara gönderme gibi şeyleri yapmalarına izin veriyoruz, bu yüzden nasıl işlediğimizin ayrıntıları muhtemelen iş mantığı olarak nitelendiriliyor. Aslında şu anda bazı arka uç kodumuzla konuşan bir mobil uygulama var ve ön uç kodumuzun hangi bölümünü, ideal bir dünyadaki kullanıcı arayüzümüzle paylaşmak istediğimi biliyorum (temel olarak Quasi-MVC'deki M). Sanırım bu bizim için bir BLL.
Kullanıcının61852'nin cevabını kabul ediyorum, çünkü bana "işletme mantığının" ne anlama geldiği ve neye göndermediği hakkında daha somut bir anlayış kazandırdı.