1
resposta

Dúvida conceitual Paradigma Orientada a Objeto

Nos cursos de C# anteriores, era batido muito na tecla de que é muito importante o encapsulamento do código, para o resultado final ser um código mais "clean" possível, e assim era feito durante esses cursos iniciais. Praticamente do corpo principal do programa quase não haviam loops e condicionais, era basicamente métodos e funções com parâmetros, ou não, o restante dos códigos estavam em outras classes. Já nesse curso de windows forms, o que eu vejo é um método de codificação um pouco diferente, ainda orientado a objetos, mas existe muito mais código elaborado diretamente no corpo principal do programa. É claro que esse projeto é muito mais complexo que dos cursos anteriores, e talvez seja esse o motivo dessa mudança que estou percebendo. Para superar isso de uma vez por todas, fica aqui meu questionamento, na vida de real de um programador, o código ideal será como esse do curso do windows forms ou mais próximo aos códigos que eram mostrados nos cursos anteriores?

1 resposta

Klayton,

Eu NÃO fiz esse curso do Windows Forms, mas se sobrar um tempo ainda pretendo fazer, embora eu programei mais de 10 anos em Windows Forms tanto em VB6, VB.Net e C#... além de que Windows Forms está COMPLETAMENTE obsoleto, pois tudo é dentro de um browser hoje em dia.

Vou passar minha experiência para você, mas é algo pessoal, okay?

No mercado de trabalho, principalmente em empresas "fundos de quintal", que é 90% das empresas de mercado excetuando-se as empresas-parasitas (empresas intermediárias que te colocam em outras empresas onde REALMENTE você vai atuar), tem MUITA MACARRONADA que é a técnica "GO HORSE" ("VAI CAVALA") também conhecida como "POG" (Programação Orientada a Gambiarras) que quer dizer absolutamente NADA de técnica, sentar na frente do teclado e sair tacando o dedo nas teclas) - eles confundiram o RAD (Rapid Application Designer) com a mais pura putaria. Códigos SEM técnicas de encapsulamento, sem designer patterns ou qualquer tipo de técnica ou conceito, como, por exemplo, o DDD (Domain Driven Design).

Alguns poucos lugares onde eu programei, usei 3 camadas que são basicamente estes quatro grupos:

  • Domain ou Model – Domain Layer (Model) - Modelo da Classe;
  • DAL ou DAO – Data Access Layer (Object) - Camada de Comunicação com o Banco de Dados);
  • BLL – Business Logic Layer (Camada de Regras de Negócio);
  • UI ou WS – Presentation Layer – User Interface – (Camada de Telas);

Três camadas

A técnica de 3 camadas ISOLA o código em UI (User Interface) da DAL, a camada de acesso ao banco de dados... isso já é um grande avanço.

NÃO vi nenhum curso de 3 camadas aqui na Alura... talvez porque já está obsoleto, sei lá.

Fora isso vi outra técnica dentro de uma espécie de "fábrica de software" que era de colocar duas entradas, uma no início e outra no fim de cada CLASSE para fazer uma espécie de enxerto no código personalizando para cada cliente... muito arcaico.

Também vi MVC (Model View Controler), mas SOMENTE para ASP.Net + C#.

Nunca vi em ambiente de trabalho o MVVM (Model-View-ViewModel).

CURIOSIDADE:

Este modelo só vi em uma palestra e nunca mais vi:

Legenda:

  • V – 01 Presentation Layer – User Interface;
  • F – 02 Domain Layer – Facade;
  • E – 02 Domain Layer – Entities;
  • M – 02 Domain Layer – Business Components;
  • X – 03 Infrastructure Layer – Cross-Cutting – Cross-Cutting;
  • S – 03 Infrastructure Layer – Data Persistence – Services Agents;
  • D – 03 Infrastructure Layer – Data Persistence – Data Access Components;

7 camadas

[]'s,

Fabio I.

P.S.: POG, I am your father... KKKKK!!!