Divisão lógica

A divisão lógica de código é uma prática importante para garantir que seu código seja fácil de entender, manter e modificar. Você pode seguir princípios de design e boas práticas para organizar seu código de forma mais limpa.

 

1 - Divisão por Responsabilidade

No VsScripter é possível adicionar várias unit´s para um projeto muito grande, e com isso poderá organizar o código que tenham responsabilidades bem definidas. Cada UNIT deve se concentrar em uma tarefa específica. Por exemplo, se você estiver desenvolvendo algo para um gerenciamento de clientes, pode ter unidades separadas para manipular a interface do usuário, processar lógica de negócios, e acessar dados no banco de dados.

Isso poderá ser muito útil quando há um projeto muito grande e que o código está muito extenso, então a dica é refatorar esse código em uma nova UNIT.

 

2 - Evite Código Espaguete

Evite códigos extensos e complexos que são difíceis de entender. Separe lógicas diferentes em funções ou métodos menores e mais específicos.

 

3 - Use Comentários Adequados

Comentários podem ser úteis para explicar partes específicas do código, mas o código em si deve ser autoexplicativo sempre que possível. Comentários em excesso podem tornar o código mais difícil de ler.

 

Aqui está um exemplo básico de como você pode estruturar o código e mantê-lo mais limpo e fácil de prestar manutenção.

Formulário principal: uPrinc

uses Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, uVsClientDataSet, DBClient, DB, uCalculos, uProcessarDados; procedure RealizarCalculos; begin ShowMessage(FloatToStr(Dividir(5, 2))); ShowMessage(FloatToStr(Multiplicar(5, 2))); ShowMessage(FloatToStr(Somar(5, 2))); ShowMessage(FloatToStr(Subtrair(5, 2))); end; procedure ProcessarDados; var vCdsTemp: TVsClientDataSet; begin vCdsTemp:= TVsClientDataSet.Create(nil); try vCdsTemp.Data := dmConexao3c.QueryPegaData( '#SELECT * FROM CIDADE WHERE CIDADE = 02431', '*', [], [], [] ); vCdsTemp.Edit; vCdsTemp.FieldByName('NOME').AsString := 'Documentação boas práticas de codificação no VsScripter'; vCdsTemp.Post; EnviarParaBD(vCdsTemp.Data); finally vCdsTemp.Free; end; end; begin RealizarCalculos; ProcessarDados; end;

 

Formulário de cálculos: uCalculos

uses Classes, SysUtils; function Somar(AValor01: Real; AValor02: Real): Real; begin Result := AValor01 + AValor02; end; function Subtrair(AValor01: Real; AValor02: Real): Real; begin Result := AValor01 - AValor02; end; function Dividir(AValor01: Real; AValor02: Real): Real; begin Result := 0; if AValor02 > 0 then Result := AValor01 / AValor02; end; function Multiplicar(AValor01: Real; AValor02: Real): Real; begin Result := AValor01 * AValor02; end;

 

Formulário de processamento de dados: uProcessarDados

uses Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, uVsClientDataSet, DBClient, DB; procedure EnviarParaBD(AInfoGravar: OleVariant); var vCdsAux: TVsClientDataSet; begin if not Assigned(AInfoGravar) then exit; vCdsAux := TVsClientDataSet.Create(nil); try dmConexao3c.GetDspEdicao(vCdsAux, 'CIDADE'); vCdsAux.Data := AInfoGravar; dmConexao3c.CDSApplyUpdates([vCdsAux]); finally vCdsAux.Free; end; end;

 

Este é um exemplo muito simples, mas mostra a ideia de separação de responsabilidades. A chave é manter cada unidade focada em uma tarefa específica.