Mostrando las entradas con la etiqueta best practices. Mostrar todas las entradas
Mostrando las entradas con la etiqueta best practices. Mostrar todas las entradas

miércoles, marzo 10, 2010

Buenas prácticas de programación en C

El siguiente documento describe las buenas prácticas de programación a nivel general de lenguajes de programación orientados a procedimientos y en particular para el lenguaje de programación C.

Estas buenas prácticas las clasificaremos en diferentes grupos.

Nomenclaturas: Se refiere a las reglas aplicables a la denominación de nombres de variables, constantes, funciones, estructuras etc. Estas reglas tiene como objetivo definir un lenguaje común para facilitar la lectura y mantenimiento de un código. Son reglas generales de muchos lenguajes de programación, que son aplicables perfectamente al lenguaje C.

Sintaxis: Se refiere a reglas de la sintaxis en si del lenguaje de programación, y recomendaciones para hacer mas legible el código generado.

Patrones: Los patrones son diseños y recomendaciones generales que solucionan problemas comunes de determinados contextos. Existen patrones de diseño aplicados a diferentes tipos de lenguajes de programación (orientados a procedimientos, objetos, eventos, web etc), para diferentes contextos de ejecución (multitareas, tiempo real, distribuidos, ejecución batch etc), para diseñor en diferentes nivels de abstracción de un sistema, para integración entre sistemas que corren en la misma o diferente plataforma etc.

En nuestro caso nos dedicaremos a los aplicables a lenguajes de programación orientada a procedimientos (como el C).

Manejo de errores y excepciones:
Este tema se podría incluir dentro del grupo de sintaxis (mejores prácticas para manejar los errores) o patrones (patrones de manejo de errores), pero como se considera un tema muy importante en el desarrollo de software de calidad se lo agrega como item aparte.
Se define como un error en un programa a un defecto (bug) que provoca que el programa no funcione correctamente en todas las funcionalidades para el cuall fue diseñado. Un error puede provocar que un cálculo devuelva un dato incorrecto o que el sistema se "cuelgue" en ante ciertos parámetros de entrada. Durante la etapa de pruebas se debe detectar la mayor cantidad de errores posibles, para luego ser corregidos antes de publicar el programa para su utilización productiva.
También existen errores provocados por eventos externos a nuestro programa, como por ejemplo la no existencia de un archivo, permisos inadecuados para ejecutar determinada acción etc. Ante estos errores , que deben ser consdierados en el diseño, el sistema debe responder con un código de error para que el programa que invoque la función pueda actuar en consecuencia.
En cambio una excepción en un problema inesperado que no tiene un manejo como el caso del error. En el entorno Linux se pueden utiizar diferentes técnicas para manejar las excepciones, como pro ejemplo intercepción de mensajes. Lamentablemente el lenguaje C no tiene un buen manejo de excepciones en forma nativa y se debe recurrir a soluciones externas como la mencionada.


Documento completo

lunes, mayo 25, 2009

Windows Communication Fundation

El WCF fue dado a la luz junto con el framework .Net 3.0 en 2006. En ese momento existían addíns para el Visual Studio 2005 que permitían generar proyectos WCF en forma simple, muchas de esas herramientas eran beta, y se debían usar un poco por linea decomandos y un poco dentro del VS2005,algo muy poco práctico para implementar en una empresa o sector de desarrollo de software.
No voy a describir los problemas que tuve con el desarrollo de proyectos WCF en VS2005 pues el el Visual Studio 2008 incluye todas esas herramientas que se debian agregar a la anterior versión del IDE pudiendo generar proyectos WCF en forma mucho más simple.

Para aquellos que aún no han trabajado con el WCF o necesitan una capacitación de diferentes aspectos que provee esa tecnología les sugiero los siguientes recursos. Los WebCasts están basado enel Visual Studio 2008, por ese motivo es conveniente usar ese entorno.

En ingles
WCF Getting Started
http://msdn.microsoft.com/en-us/library/ms734712.aspx

Microsoft Windows Communication Foundation Step by Step, John Sharp
Disponible para su compra en Microsoft-Press

http://www.microsoft-press.co.uk/scripts/product.asp?ref=811252

O bien en librerias online como http://www.books24x7.com

Pro WCF: Practical Microsoft SOA Implementation

by Chris Peiris, Dennis Mulder et al.
Apress © 2007 (505 pages) Citation
ISBN:9781590597026

Providing coverage of the unified programming model, reliable messaging, security, peer-to-peer programming, and more, this is a complete guide to WCF from the SOA architecture perspective and shows why WCF is important to web service development.
(este aun no lo lei,pero me parece muy interesante)

En Portugues (Brasil)

MSDN Webcast: Melhores práticas no uso do WCF
https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=es-ar&eventid=1032409560&flag=3

Webcast Arquitetura: Arquitetura Orientada a Serviços: WCF Boas práticas (do levantamento, construção e hospedagem
https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=es-ar&eventid=1032415471&flag=3