Estou com uma dúvida pertinente quanto a regras de negócios em sistemas web.
Seguem os mesmos principios das regras de negócio para softwares “convencionais”???
Esse é um exemplo de regra de negócio correto para um projeto web? O site deve sempre apresentar as redes sociais na página principal, onde cada link deverá direcionar para sua página especifica, a ordem de exibição será definida pelo administrador do site.
Acho que regra de negócio é aquilo que não depende da forma que esta apresentando os dados e sim da maneira que trata os dados.
Quando criar a camada de negócio imagine que vai usar ele para qualquer sistema independentemente da tecnologia utilizada para todo seu Business (empresa).
Porem é claro que exitem regras de navegação e forma de apresentação que também queremos aproveitar do OO e também evitar misturar na camada de apresentação … neste caso acho que pode-se usar Classes utilitárias com as regras EX: RegrasPortalUtil ou efetuar as validações na camada de controller responsável por interfacear com as camadas acima de negocio e dados.
Resumindo você tem regras de navegação que não são regras de negócio e regras de negocio que tratam dados e a cominicação com a camada de persistencia.
Esta é minha forma de enxergar porem existem outras formas de ver as coisas como no caso de “Entidades Anêmicas” …
É como jcarlos falou, não misture as coisa. Inicialmente regras de negócio são apenas regras de negócio, depois sim que você vai pensar em como atender estas regras de negócio.
Meu caro, para entender o que são regras de negócio, tente fazer o seguinte exercício:
Como eu executaria essa atividade sem tecnologia?
Se você conseguir fazer essa abstração, você provavelmente tem uma regra de negócio.
Exemplo: Emitir uma nota fiscal
O CPF deve ser preenchido
O CPF deve ser válido
O valor da nota deve ser igual à soma dos valores dos ítens mais o valor do imposto a ser cobrado
Como você pode ver, você pode validar essas regras mesmo sem nenhuma tecnologia. Uma pessoa pode emitir uma nota fiscal em papel e caneta como pode ter um sistema que preencha eletronicamente.
Tenho uma tela de cadastro de funcionário. Para eu cadastrar algum funcionário na empresa preciso ter algumas informações básicas.
Como sendo obrigatório os seguintes campos :
Nome(Todo Funcionário necessita ter um nome)
CPF
Salário
Função
Logo isto é uma regra de negócio no qual um programador vai levar a especificação corresponde ao desenvolvimento da tela de cadastro de funcionário , e fara todas regras e validações para só permitir salvar
caso os campos OBRIGATÓRIOS sejam preenchidos. Lógico podem haver mais campos essencialmente necessários mas isto é só um exemplo de regra de negócio.