6 maneiras de fazer a mesma coisa, o que é considerado boas práticas?

As vezes tem tantas maneiras diferentes de fazer o mesmo código que nós ficamos na dúvida quanto a qual maneira usar. O que seria considerado "boa prática" pela comunidade e o que sua equipe entenderia melhor. Suponhamos que você esteja trabalhando dentro de um método de um Domain Service chamado UmDomainServiceChique(objetoDoDominio) que será chamado por uma API. Você tem uma regra de negócio chique para ser verificada que por enquanto chamarei de VerificaMinhaRegraChiqueComplexa(). Você chama UmDomainServiceChique(objetoDoDominio) e caso VerificaMinhaRegraChiqueComplexa() retorne true você vai querer que UmDomainServiceChique faça o que tem que fazer e a api retornar Ok 200, caso contrário você quer que a API responda um erro qualquer, tipo BadRequest, e retornar uma mensagem dizendo que VerificaMinhaRegraChiqueComplexa deu ruim. Eu vejo 6 maneiras de fazer isso, gostaria de saber a opinião de outrs devs sobre qual seria a maneira menos gambiarr...

Função para criar nova data em SQL

O SQL 2012 e superior tem a função DATEFROMPARTS para criar uma nova data a partir dos inteiros Ano, Mes e Dia, mas as versões 2000, 2005 e 2008 como é que fica?

Fica assim: você mesmo faz a função.



SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ############################################################################################################################################
-- # NOME   : DATEFROMPARTS
-- # PRODUTO  : SQL Server
-- # DEVELOPER  : Vitor Luiz Rubio
-- # COPYRIGHT  : 
-- # OBJETIVO  : Gerar uma data a partir dos seus componentes inteiros
-- # VERSAO   : 1.0
-- # DT. CRIACAO : 2013-04-18
-- # DT. ALTERACAO : 
-- #
-- # DEPENDENCIAS :
-- # 
-- # DEPENDENTES :
-- #
-- # HISTÓRICO
-- # 2013-04-18 : Criação
-- #  
-- ############################################################################################################################################ 

CREATE FUNCTION DATEFROMPARTS
(
 @Year int,
 @Month int,
 @Day int
)
RETURNS datetime
AS
BEGIN
 --data 0 é 1/1/1900
 
 set @Year = @Year - 1900;
 set @Month = @Month - 1;
 set @Day = @Day - 1;

 return dateadd(day, @Day, dateadd(month, @Month, dateadd(year, @Year, 0)))
 
 --teste
 --select dbo.DATEFROMPARTS(2013, 4, 18)
 --select dbo.DATEFROMPARTS(2014, 1, 1)
 --select dbo.DATEFROMPARTS(1983, 2, 14)
 
END
GO



Comentários

Postagens mais visitadas deste blog

Botão Add This para adicionar seu post em qualquer rede

Busca de CEP com o Lazarus - Parte 1 - UrlEncode

Uso de memória no SQL Server