Roberto Sánchez - Programador/Desarrollador .NET

NOTICIAS

Diez reglas de oro para un código de calidad.

Escribir código fuente de calidad es mucho más que conocer un lenguaje de programación. Es como escribir una buena novela: no es suficiente saber escribir bien, es también necesario tener grandes conocimientos de estilos literarios. PAra que el código fuente de un programa llegue a las cotas más altaas de calidad, es necesario cumplir varios requisitos que podemos resumirlos en las siguientes diez reglas de oro del código de calidad:

Regla 1: no duplicar.

No hay ninguna situación o contexto que justifique duplicidades de código fuente, absolutamente ninguna. Evidentemente (y esto es de primaria de programación) cualquier operación que se deba repetir en más de una ocasión debe estar contenida en un método aparte al que se llamará cada vez que sea necesaria su realización, aunque para ello sea necesario declararlo como un método estático para acceder a él desde varios puntos de la aplicación.

Sobra decir que el principal problema del código fuente duplicado es que si hay que realizar un cambio en él, debe ser neceario su cambio en todas y cada una de sus repeticiones, lo que aumenta el riesgo de errores y bugs que a la larga pueden ser muy costosos de solventar.

Regla 2: documentar.

Ya no me refiero a comentar líneas, práctica que a mi personalmente no me gusta mucho. Me refiero a la documentación XML del código fuente, que en la plataforma .NET nos permite un método estandarizado de documentación de los métodos, clases, etc. del código fuente.

La documentación, además de ser estandarizada según el sistema para .NET, debe ser sencilla y clara, orientada principalmente para que lo entienda cualquier otro programador además del autor. Hay que tener presente que cuando un proyecto queda "muerto" durante un tiempo, puede ser muy difícil el estudio del código fuente si no está correctamente documentado.

Regla 3: priorizar la herencia de clases.

La herencia es una de las principales características de la programación orientada a objetos, y es también un modo más de ahorro y simplificación de código fuente. Cualquier aplicación medianamente complicada que no haga uso de la herencia es que no está bien construida y cae´ra en duplicidades innecesarias. Para aplicar una buena estructura de herencia es necesario, antes de comenzar a escribir una sola línea de código, plantear correctamente el esquema de la aplicación e insertar la herencia allí donde sea necesaria.

Regla 4: revisión de código.

Cuántas veces hemos publicado una aplicación que hemos visto que aparentemente funciona correctamente y después hemos comprobado bugs no detectados en el proceso de prueba. Para evitarlo, además de un completo proceso de prueba, es necesario revisar el código profundamente, especialmente en aquellas áreas más susceptibles de errores. Es un proceso largo y tedioso, pero eliminará errores que a la larga pueden darnos muchos problemas.

Regla 5: un método - una acción.

No debes construir métodos que realicen más de una acción concreta. La definición de "acción concreta" serás tú el que la determine en consecuencia con las necesidades del proceso, pero básicamente queda claro que un método únicamente debe realizar una acción concreta. Esto nos repercutirá positivamente de dos maneras: métodos no excesivamente largos, y facilidad de reutilización.

Regla 6: código fácilmente entendible.

Es evidente, pero aun así, cuántas veces hemnos escrito código fuente excesivamente complicado porque la tarea a realizar también era excesivamente complicada. El objetivo es que, aunque la tarea a realizar sea muy compleja, el código sea lo más simplificado y sencillo de entender posible. De no lograrlo, debes estudiar la manera de simplificar ese código lo más posible, pues de lo contrario, a la larga, cualquier cambio en él será una tarea complicadísima.

Si para entender plenamente el funcionamiento de un método relativamente complicado debes emplear más de 5 ó 10 minutos, entonces es que ese método necesita simplificación y claridad.

Regla 7: piensa antes de escribir.

Como ya he dicho antes cuando me refería a la herencia. Es importante tener claro el esquema y la estructura de la aplicación. Es común en muchos desarrolladores comenzar a escribir código a o loco, y cuántas veces hemos acabado eliminando o modificando sustancialmente lo ya escrito en un principio... Piensa bien cómo hacer las cosas y luego escribe sobre seguro.

Regla 8: nombres con significación.

Los nombres de los atributos, propiedades, métodos, clases, etc. deben tener una significación clara respecto a su funcionalidad. Por ejemplo, si tenemos una propiedad llamada 'Connected' que evalúa el estado de conexión de la aplicación con un determinado dispositivo, este mismo nombre nos da una clara idea de su funcionalidad, y sería absurdo ponerle otro nombre como 'Conn', 'cnntd', 'DisCon', etc.

Regla 9: reutilización.

O dicho de otra manera, hacer uso de la no duplicación del código fuente. Cualquier aplicación medianamente complicada realizará unas determinadas acciones de forma repetitiva en muchas ocasiones. Para reutilizar ese código, debe estar escrito de forma genérica, es decir, que sea posible llamarlo desde donde sea necesario y que cumpla correctamente su función independientemente de donde sea llamado.

Regla 10: depuración.

Depura el código fuente una y otra vez, detenidamente, despacio, sin prisas, comprobando todas y cada una de las ramas de acción de la aplicación. Una parte del funcionamiento puede parecernos trivial y sencilla y solamente con escribirla parecemos estar seguros de su correcto funcionamiento, pero luego nos damos cuenta de un error absurdo que nos compromete cuando lo menos lo esperamos.

Revisa, revisa y vuelve a revisar. Y si tenemos alquien que pueda revisar la aplicación "desde fuera" mejor, pues será alguien no condicionado por el esquema mental del funcionamiento de ese código fuente y será más fácil encontrar bugs no detectados.

Visual Studio 2017 versión 15.7.

Microsoft vuelve a realizar una nueva actialuzación de su más poderosa herramienta para desarrolladores: Visual Studio versión 15.7.

Compilación release distribuida el pasado día 7 de mayo, aporta, entre otras, las siguientes novedades:

- Compatilibidad para cambio de ubicación de instalación.

- Mejora del cuadro de diálogo de instalación que proporciona más detalles del proceso.

- Se incluye la versión 7.3 de C#.

- Mejorado el tiempo de carga de las soluciones.

- Reducido el tiempo necesario para habilitar IntelliSense en los proectos de .NET Core.

- Nuevas refactorizaciones, como la conversión de las instrucciones 'for' a 'foreach' o la conversión de campos privados en campos de sólo lectura.

- Integración de IntelliSense en los proyectos de Python, así como nuevo comando para busca errores ortográficos.

- Se incluye TypeScript versión 2.8.

- Se agrega compatibilidad para la depuración de JavaScript con el navegador Microsoft Edge.

- Se proporciona IntelliSense en el editor XAML de Xamarin.Forms.

- Actualización de Entity Framework Tools para que funcione en tiempo de ejecución de EF 6.2 y para mejorar la utilización de técnicas de ingeniería inversa de bases de datos existentes.

El equipo de desarrolladores de Microsoft recuerda que podemos informar de problemas mediante el control 'Send Feedback' situado en la esquina superior derecha de la ventana principal de Visual Studio. Asimismo, recuerdan que se puede acceder a Visual Developer Community para realizar preguntas y encontrar respuestas, como también realizar una sugerencia referente al producto.

Reparación de archivos de Windows.

Cuando un archivo de Windows 10 se estropea o queda corrupto el sistema operativo puede comenzar a hacer cosas raras, se bloquea, no reinicia correctamente, va lento o directamente aparece la temida pantalla azul de Windows. Afortunadamente disponemos de una herramienta del sistema para prevenir estas situaciones, y se trata del comprobador de archivos del sistema. Para ejecutar esta solución debes abrir la consola de Windows con permisos de administrador y ejecutar la siguiente línea de comandos:

Un indicador de progeso te informará de la situación del análisis. Cuando éste finalice el sistema te informará que la operación se completó con éxito.

A continuación debes ejecutar otro comando:

Ahora el proceso será más lento y tardará varios minutos. Igual que antes, el sistema irá informando del progreso de la operación y, al finalizar, en el caso de que haya algún error efectuará la reparación.

Los mejores programadores del mundo.

La comunidad de desarrolladores HackerRank ha realizado una publicación relativa a la calidad de los programadores de prácticamente todos los países del mundo. Para ello se han basado en un puntuaciones obtenidas a la hora de analizar código fuente teniendo en cuenta la calidad del mismo y el tiempo empleado en la resolución de diferentes algoritmos. Han recopilado todos los datos y han ofrecido un ránking mundial que sorprende por sus resultados... y es que la fama no implica profesionalidad:

¿Qué ha pasado con Estados Unidos y Reino Unido? Pues eso, que se trata únicamente de la fama. Los programadores chinos han obtenido una puntuación máxima al resolver correctamente todos y cada uno de los desafíos en el tiempo establecido, y los rusos, los polacos y los suizos se han quedado muy de cerca. España no sale mal parada, ocupando el puesto número 18, lo cual sorprende bastante teniendo en cuanta la baja cualificación de programación en los estudios reglados en este país. EEUU, Reino Unido e India quedan por debajo de nosotros, lo cual es muy llamativo y nos ayudará a tener un poco más de confianza en nosotros mismos. Lástima que estas noticias no salgan en los medios de comunicación y la gente siga pensando que los mejores programadores están en los países que siguen teniendo más fama.

Visual Studio 2017 versión 15.6.4.

Microsoft vuelve a realizar una nueva actualización de su más poderosa herramienta para desarrolladores: Visual Studio versión 15.6.4.

Compilación release distribuida el pasado día 22 de marzo, aporta las siguientes novedades:

Rendimiento de carga de la solución. Se ha optimizado en la compilación en tiempo de diseño.

Instalador de Visual Studio. Se han agregado detalles de progreso durante la instalación o la modificación de componentes. Además, ahora es posible pausar la instalación o modificación de componentes para una posterior reanudación, incluso después de un reinicio del sistema, sin esperar errores inesperados. La notificación de instalación pendiente o disponible ahora lleva de manera directa al instalador.

Lenguaje F#. Se ha realizado importantes mejoras para las herramientas de desarrollo del lenguaje F#, concretamente para los proyectos del software development kit de la plataforma .NET Core.

Compilador de C++. Optimización del código para una ejecución más rápida. Además, se ha reducido la sobrecarga de generación del archivo de asignaciones de C++ en escenarios de vinculación completos.

Opciones de depuración. Ahora tenemos opciones de depuración disponibles para la compatibilidad con GCC de ARM

Compilador de C#. Se ha agregado en CoreCLR la firma con nombre seguro.

Xamarin. Varias actualizaciones de productividad nuevas para desarrolladores de Android e iOS.

Python. Ahora ya no necesita una finalización de la base de datos.

Uso de CPU. El generador de perfiles de rendimiento puede mostrar pilas de llamadas lógicas para código asincrónico. Además, se muestra el resaltado de las líneas de código fuente y código async/await con unión de pila de llamadas lógica.

Team Explorer. Ya se puede hacer click en el icono 'Entrega continua' para configurar la compilación automatizada y las implementaciones de la aplicación. Se incluye compatibilidad con TFVC, autenticación de Git sobre SSH y proyectos en contenedores.

Visual Studio Build Tools. Admite TypeScript y Node.js.

ClickOnce. Admite la firma de manifiestos de implementaciones y aplicaciones con el certificado de CNG.

Visual Studio 2017 versión 15.5.

Este es un resumen general de los cambios que han realizado desde la versión anterior:

Redefinición de los aspectos básicos. Una nueva experiencia de instalación significa que puede instalar más rápidamente e instalar lo que desee cuando lo necesite. Si quiere cargar grandes proyectos y soluciones o trabajar con carpetas de código, o incluso un solo archivo de código, Visual Studio se inicia más rápido. Y Visual Studio le ayuda a centrarse en el panorama general, especialmente en el caso de los equipos que están adoptando DevOps.

Rendimiento y productividad. Se han en nuevas y modernas funciones de desarrollo de escritorio, en la nube y móviles. Asimismo, también han mejorado las experiencias de productividad del desarrollador general, el rendimiento y la adquisición general. Visual Studio se inicia más rápido, tiene mejor capacidad de respuesta y utiliza menos memoria que antes.

Desarrollo de aplicaciones en la nube con Azure. Se trata de un conjunto integrado de herramientas de Azure que le permite crear con facilidad aplicaciones principalmente destinadas a la nube con la tecnología de Microsoft Azure. Visual Studio facilita la configuración, la compilación, la depuración, el empaquetado y la implementación de aplicaciones y servicios en Azure.

Desarrollo de aplicaciones para Windows. Use las plantillas de UWP en Visual Studio 2017 para crear un proyecto único para todos los dispositivos Windows 10 PC, tableta, teléfono, Xbox, HoloLens, Surface Hub y mucho más. Luego, genere un paquete de la aplicación y enviélo a Microsoft Store desde Visual Studio para que la aplicación quede a disposición de los clientes.

Desarrollo de aplicaciones móviles. En Visual Studio de 2017, puede innovar y obtener resultados rápidamente con Xamarin, que unifica los requisitos móviles multiplataforma mediante el uso de un código base principal y un conjunto de aptitudes. Pásese a la tecnología móvil con los equipos existentes, las inversiones en tecnología y el código de C# para proporcionar experiencias de nivel consumidor antes de lo previsto y con un coste menor al esperado. Acelere cada paso del ciclo de vida móvil para ofrecer experiencias de consumidor de primera clase o una cartera de aplicaciones de productividad para capacitar a sus empleados.

Desarrollo multiplataforma. Distribuya software en cualquier plataforma de destino sin problemas. Extienda los procesos de DevOps a SQL Server por medio de Redgate Data Tools y automatice con seguridad las implementaciones de base de datos desde Visual Studio. O use .NET Core para escribir aplicaciones y bibliotecas que se ejecuten sin modificarse en sistemas operativos Windows, Linux y macOS. Además, una novedad de la versión 15.3: la compatibilidad en paralelo con los SDK de .NET Core 2.0.

Desarrollo de juegos. Con Visual Studio Tools para Unity (VSTU), puede usar Visual Studio para escribir scripts de editor y juegos en C# y, a continuación, usar su eficaz depurador para buscar y corregir errores. La versión más reciente de VSTU incluye color de sintaxis para el lenguaje del sombreador de ShaderLab de Unity, visualizaciones mejoradas del depurador y generación de código mejorada para el Asistente de MonoBehavior. VSTU también integra los archivos de proyecto de Unity, los mensajes de la consola y la capacidad de iniciar el juego en Visual Studio, de modo que pueda dedicar menos tiempo a conmutar con el editor de Unity al escribir código.

Desarrollo de IA. Con Visual Studio Tools para IA (nuevo en 15.5), puede usar las características de productividad de Visual Studio para acelerar la innovación de IA. Compile, pruebe e implemente soluciones de Deep Learning o IA que se integran perfectamente con Azure Machine Learning para proporcionar funcionalidades de experimentación muy eficaces, como el envío transparente de trabajos de preparación de datos y entrenamiento de modelos a distintos destinos de procesamiento. Además, Visual Studio Tools para IA admite métricas personalizadas y el seguimiento del historial de ejecución, lo que permite la auditoría y reproducibilidad de ciencia de datos.