Buenas Prácticas

Por buenas prácticas, se entiende un conjunto de acciones de programación que han rendido bien en un determinado contexto y que se espera que, en contextos similares, rindan similares resultados. Estas prácticas dependen de las épocas, de las modas y hasta de la empresa consultora o del autor que las preconiza. No es de extrañar que algunas sean incluso contradictorias entre ellas. (Wikipedia)

En mi opinión, el objetivo fundamental, es que todo el equipo de desarrollo debe estar alineado para escribir código de calidad utilizando las mismas técnicas, guiado por una serie de principios y patrones que permita crear código común en las aplicaciones.

Resumiendo:  Así como conocer las reglas del ajedrez no nos convierte en buenos jugadores, lo mismo sucede con los principios, patrones y buenas prácticas, no basta solo con conocerlos, hay que utilizarlos con sentido común y crear buenos diseños para desarrollar aplicaciones mantenibles, extensibles y robustas.

:::

Pirámide del Desarrollador

Con esta pirámide tenemos una visión global de todos los skills y técnicas que debemos aprender para convertirnos en un buen desarrollador.

Piramide-Developer

Principios Básicos

DRY – Don’t Repeat Yourself

KISS – Keep It Simple, Stupid o Keep It Short and Simple

YAGNI – You Ain’t Gonna Need It

GRASP – General Responsibility Assignment Software Patterns

REFACT – Refactoring de Software

SOLID – Acrónimo de estos 5 prinicipios

¿Porque los condicionales ensucian nuestro código?

  • Al usar if anidados estamos complicando la legibilidad y mantenibilidad del codigo, por lo tanto, haciendolo mas confuso.
  • Cada vez que usamos condicionales estamos duplicando el número de pruebas necesarias a realizar en nuestro código
  • Cada vez que añadimos condicionales anidado, estamos elevando al cuadrado la cobertura de las pruebas.
  • Si usamos  herramientas de testing y cobertura de código nos indicará si estamos cumpliendo con las pruebas y el % de código cubierto

Organización de los proyectos

Principios Codificación

  • Evitar código del tipo “Recetas de Cocina”

 SourceMaking

Microsoft  Framework Design Guidelines

Patterns & Practices Fundamentals

Microsoft Framework Development Guide

.NET Framework Application Essentials
Provides information about basic application development tasks, such as programming with application domains and assemblies, using attributes, formatting and parsing base types, using collections, handling events and exceptions, using files and data streams, and using generics.
Data and Modeling in the .NET Framework
Provides information about how to access data using ADO.NET, Language Integrated Query (LINQ), WCF Data Services, and XML.
Developing Client Applications with the .NET Framework
Explains how to create Windows-based applications by using Windows Presentation Foundation (WPF) or Windows Forms.
Developing Web Applications with ASP.NET
Provides links to information about using ASP.NET to build enterprise-class web apps with a minimum of coding.
Developing Service-Oriented Applications with WCF
Describes how to use Windows Communication Foundation (WCF) to build service-oriented applications that are secure and reliable.
Developing Windows Service Applications
Explains how you can use Visual Studio and the .NET Framework to create an application that is installed as a service, and start, stop, and otherwise control its behavior.
Parallel Processing and Concurrency in the .NET Framework
Provides information about managed threading, parallel programming, and asynchronous programming design patterns.
Network Programming
Describes the layered, extensible, and managed implementation of Internet services that you can quickly and easily integrate into your applications.
Configuring Applications
Explains how you can use configuration files to change settings without having to recompile your .NET Framework applications.
Security in the .NET Framework
Provides information about the classes and services in the .NET Framework that facilitate secure application development.
Debugging, Tracing, and Profiling
Explains how to test, optimize, and profile .NET Framework applications and the application environment. This section includes information for administrators as well as developers.
Cross-Platform Development with the .NET Framework
Explains how you can use the .NET Framework Portable Class Library to build assemblies that can be shared across multiple devices such as phones, desktop, and web.
Deploying the .NET Framework and Applications
Explains how to package and distribute your .NET Framework application, and includes deployment guides for both developers and administrators.
Performance in .NET Framework Apps
Provides information about caching, lazy initialization, reliability, and ETW events.
Building Workflows in the .NET Framework
Provides information about the programming model, samples, and tools for using Windows Workflow Foundation (WF).
Advanced Reading for the .NET Framework
Provides information about advanced development tasks and techniques in the .NET Framework, including extensibility, interoperability, and reflection. Also includes the reference topics for unmanaged APIs that can be used by managed applications, such as runtime hosts, compilers, disassemblers, debuggers, and profilers.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s