Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como programming

Principios SOLID. La inversión de dependencias

Hola de nuevo mis estimadísimos programadores. Hoy abordaremos un principio arquitectónico de gran relevancia, el principio de inversión de dependencias. Forma parte de los denominados principios SOLID acerca de los cuales ya les comenté en alguna publicación anterior. De entre toda la documentación que pueden encontrar acerca de estos principios, les voy a reseñar una web que los explica con gran claridad y bonitos ejemplos: Principios SOLID . En este artículo vamos a adaptar, al menos parte de nuestra plataforma, al quinto de los principios, que reza así: 1. Las clases de alto nivel no deberían depender de las clases de bajo nivel. Ambas deberían depender de las abstracciones. 2. Las abstracciones no deberían depender de los detalles. Los detalles deberían depender de las abstracciones. La principal finalidad de la adopción de este principio de diseño es evitar los acoplamientos. ¿Qué significa esto? Bueno, supongamos una clase cualquiera, que es instanciada dentro de otr...

Test 1: Multithreading vs Singlethreading

¡¡ Bien !! Después de unos cuantos arreglos, ya tenemos disponible el primer TEST para nuestra plataforma. Puesto que me gustaría mediante este blog interactuar con las entradas de Stackoverflow , para este primer test he seleccionado este interesante tema:  multithreading slower than singlethreading Y para introducirnos en la filosofía de los TEST, no es mi intención impartir una conferencia sobre este asunto, sino simplemente implementar las casuísticas que nos interesa evaluar, y medir los rendimientos. Vamos a ello. En primer lugar grabamos en BBDD (a través del recién desarrollado interfaz) el test, y los testcases . La cosa quedaría así: A nivel programático, debemos definir una clase cuyo nombre se corresponda con el campo "Clase" del Test. Y tantos métodos como "Casos" asociemos al test, haciendo igualmente coincidir los nombres. En este punto les recuerdo que pueden descargar el proyecto íntegro en  EnigmaLABS - GitHub Para que la comparació...

Primeros ajustes en la plataforma de testeo

Ya tenía muchas ganas de poner a prueba nuestra recién desarrollada plataforma para Test, pero me di cuenta de que necesitaba unos cuantos ajustes antes de ponerla en marcha. Os recuerdo que todo el código está disponible en  Enigma Software - ZM LABS He habilitado un menú en las ramas secundarias del TreeView para grabar un nuevo test: Para que solo se despliegue en las ramas secundarias de tipo "Categoría" programo el evento Opening del Menú: private void contextMenuArbol_Opening ( object sender, CancelEventArgs e) { if (treeCatalogo.SelectedNode != null ) { objects.treeElement _treeelem = (objects.treeElement)treeCatalogo.SelectedNode.Tag; if (_treeelem.ElemType == objects.enumElemType.Categorie && _treeelem.Categorie.categorie_dad != null ) { e.Cancel = false ; } else { e...

Primeros pasos en Enigma Software Labs

En pocas palabras: vamos a probar y estresar distintas soluciones de software para un mismo problema, en busca de realidades matemáticas. Para ello, lo primero que necesitamos en averiguar el modo de publicar código aquí en Blogger . Para ello voy a usar un sistema súper sencillo y eficiente. Ahí va un ejemplo de código C# private void frmMonitor_Load ( object sender, EventArgs e) { TreeNode _tr = new TreeNode( "SQL Server Tips" ); TreeNode _tr2 = new TreeNode( "C# Code" ); treeCatalogo.Nodes.Add(_tr); treeCatalogo.Nodes.Add(_tr2); //splitContainer.Panel1.Focus(); //lstMonitor.Focus(); } Hilarante ¿verdad?   hilite.me  lo hace posible. Bien, paso 2, fácil y sencillo: vamos a crear una plataforma de testeo para C# en una bonita solución que compartiré en el repositorio GIT, para disfrute de todos. Enigma Software - ZM LABS Como posteriormente me dive...