Mostrando las entradas con la etiqueta Paralelismo. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Paralelismo. Mostrar todas las entradas

domingo, 29 de mayo de 2022

Los 10 Mandamientos de la Performance en Desarrollo Web por Luis Duenas (Versión Posters)

 Poster en Castellano


Poster en Ingles



Los 10 Mandamientos de la Performance en Desarrollo Web por Luis Duenas

Comentario Inicial

Un problema frecuente en la programación es la falta de rendimiento o velocidad (Performance) en aplicaciones web y esto se debe a que existen principios que si no los sigues te esperan muchos problemas (aunque al programador no le afecta directamente sino mas bien a los usuarios).

Muchos creen conocer o programar bien pero desconocen estas reglas esenciales en el desarrollo web, por este motivo voy a publicar los 10 mandamientos de la performance en el desarrollo web que te ayudaran a mejorar tus aplicaciones.

Síntomas que indican que los programadores no conocen sobre Performance Web

A continuación te listo algunos síntomas que indican que los programadores no conocen sobre performance web:

1. Las paginas web demoran en cargar

2. Las consultas demoran en mostrarse, sobre todo si tienen cientos o miles de registros

3. La grabación de un registro con muchos campos demora

4. La grabación de varios registros demora

5. La subida de un archivo grande se demora mucho y sobre todo cuando tiene muchos Megabytes nunca se sube y se cae

6. Cuando hay poco ancho de banda no carga la data.

7. Si son muchas imágenes se muestran con lentitud, etc.

Los 10 Mandamientos del Compendio del Catecismo de la Iglesia Católica

Antes de iniciar con la lista, recordemos los 10 Mandamientos del Compendio del Catecismo de la Iglesia Católica:

1. Amarás a Dios sobre todas las cosas.

2. No tomarás el nombre de Dios en vano.

3. Santificarás las fiestas.

4. Honrarás a tu padre y a tu madre.

5. No matarás.

6. No cometerás actos impuros.

7. No robarás.

8. No darás falsos testimonios ni mentirás.

9. No consentirás pensamientos ni deseos impuros.

10. No codiciarás los bienes ajenos.

Los 10 Mandamientos de la Performance en Desarrollo Web

1. En desarrollo Web, elegirás la Performance sobre todas las demás características, tales como Seguridad, Reusabilidad, Mantenibilidad, Responsividad, etc.

2. No harás request en vano. Ni al Servidor Web ni a la Base de Datos, ni a cualquier recurso del Backend. Para esto debes agrupar llamadas al Servidor Web y agrupar lógica en solo un Procedimiento Almacenado en vez de varios.

3. Ahorraras al máximo el ancho de banda. Al hacer get (recibir) o post (enviar) debes reducir los datos seleccionando el mejor formato entre los cuales están: HTML, XML, JSON, CSV, Bytes. A veces es necesario comprimir y descomprimir si no demora.

4. Honrarás la simplicidad en vez de la complejidad y la generalidad en vez de la especificidad del desarrollo. Esto te permitirá reducir el código y te servirá para muchos casos de uso.

5. No matarás la Memoria usando decenas o cientos de variables de todo tipo y funciones en la pila usando excesivas capas de código. También, no matarás la CPU usando bucles excesivos ni recursividad sobre todo en el servidor.

6. No cometerás exceso en el uso de librerías y frameworks que harán mas pesado tu desarrollo. Es preferible crear solo la funcionalidad que necesites en vez de usar algo que viene con cientos de funciones que no las vas a usar y te consumirán mucha memoria.

7. No bloquearas los recursos del backend en llamadas concurrentes al servidor web, base de datos y sistema de archivos. Para esto debes hacer uso de programación asíncrona, paralela y trabajar en memoria en vez de disco.

8. No mentirás a tus usuarios diciendo que las aplicaciones web demoran porque no están locales y hay que viajar hasta el servidor web justificando la demora por falta de conocimiento de técnicas de performance.

9. No consentirás que ninguna tarea demore aunque el ancho de banda sea reducido, para lo cual debes hacer uso de trabajo por bloques sea al enviar o recibir. Puedes optimizar imágenes, crear paquetes de bytes, comprimir, etc.

10. No codiciarás ni envidiarás el código de terceros tales como Librerias y/o Frameworks aunque sea de grandes empresas. Lo mejor es que aprendas a crear tus propios recursos y el desarrollo será cada vez mas rápido. No te dejes influenciar por lo que la mayoría hace y trata de comprobar si es verdad lo que se dice.

Comentario Final

Los que no respeten dichos mandamientos serán considerados pecadores del desarrollo web y les espera el infierno de la lentitud de su aplicación, quejas de los usuarios y la consiguiente perdida para el negocio.

Al igual que en la religión donde la mayoría de personas no cumplen los mandamientos de la Iglesia Católica (siendo católicos), en el desarrollo web los programadores no cumplen ninguna de estas reglas y después se quejan de que sus sistemas están lentos.

Sino quieres que a ti o algún conocido le espere el Infierno de la web comparte esta publicación para que los programadores lo tengan en cuenta.

miércoles, 5 de agosto de 2015

El Libro del Día: Compiladores. Principios, Tecnicas y Herramientas

El Libro del Día: 2015-08-05

Titulo: Compiladores. Principios, Tecnicas y Herramientas
Autor: Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman
Editorial: Addison Wesley
Nro Paginas: 1037

Capítulos:
1 Introducción
2 Un traductor simple orientado a la sintaxis
3 Análisis léxico
4 Análisis sintáctico
5 Traducción orientada por la sintaxis
6 Generación de código intermedio
7 Entornos en tiempo de ejecución
8 Generación de código
9 Optimizaciones independientes de la máquina
10 Paralelismo a nivel de instrucción
11 Optimización para el paralelismo y la localidad
12 Análisis interprocedural
A Un front-end completo
B Búsqueda de soluciones linealmente independientes

Descarga:
Compiladores_Principios_Tecnicas_Herramientas

miércoles, 10 de diciembre de 2014

Entrenamiento - Segundo Seminario de .NET (Programación Asíncrona)

Segundo Seminario de .NET: Programación Asíncrona

A los interesados en los Seminarios de .NET que se esta organizando con la Empresa HTE, quiero comunicar que el día Miércoles 17 de Diciembre se realizará el segundo Seminario sobre "Programación Asíncrona en .NET", de 6:30 pm a 9:30 pm en el mismo auditorio que la primera vez.

Esta vez para poder inscribirse se deberá depositar en la siguiente cuenta de la Empresa HTE:

Cuenta Ahorros Soles BBVA Continental
Código Cuenta Oficina BBVA: 0011 0353 0200442040 08
Código Cuenta Interbancario: 011 353 000200442040 08

A nombre de Herramientas Tecnológicas Empresariales ACEE SAC. (HTE ACEE SAC)

Una vez hecho el pago se debe enviar el voucher escaneado a informes@hte.com.pe con copia a Luis.duenash@gmail.com para confirmar su inscripción.

Los temas a tratar serán:
1. Modelo de Programación Asíncrona (APM)
- Threads y ThreadPool
- Delegados CallBacks: BeginInvoke y EndInvoke
2. Programación Asincrona por Eventos (EAP)
- Métodos Asyn
- Eventos Completed y ProgressChanged
3. Programación Asíncrona por Tareas (TAP)
- Task y CompleteWith
- async y await
4. Problemas en Programación Asíncrona
- Sincronización y Bloqueos
- Threads Cruzados

Los ejemplos serán sobre
- Lectura de Archivos Grandes
- Bajar Archivos de Internet
- Mostrar Miles de Registros en una Grilla, etc.

Las llamadas asíncronas serán en aplicaciones:
- WinForms
- WebForms
- MVC
- WPF

Pueden enviar sus pedidos hasta 2 días antes del seminario, el cual puede ser incluido ese día.

Finalmente, como ya saben estoy pensando irme del país pero hay la posibilidad de quedarse, en realidad depende de varios factores. Hay un refrán criollo que dice "Nadie es profeta en su propia tierra", quizás hay que salir fuera para que te valoren mas.

Llevo enseñando en el Perú mas de 23 años de los cuales mas de 13 en .NET, y siempre fue con las mismas ganas y entusiasmo, tratando de que los profesionales aprendan a crear sus propias Librerías de Clases, Librerías de Controles, Generadores de Código, que le ayuden a desarrollar mas rápido y mas eficiente enseñándoles como funcionan las cosas y cuales son las verdaderas buenas prácticas de desarrollo.

Pero a veces llegas a un momento en el cual ves que "navegar contra la corriente" es dañino para la salud, te genera menos oportunidades económicas, te hace mas "rechazado" por gente que no comprende que es necesario cambiar toda su forma de pensar para poder avanzar al nivel de las grandes potencias.

Espero contar nuevamente con su asistencia este Miércoles 17 de Diciembre y ya saben pueden pasar la voz a cualquier interesado en aprender mas allá del arrastre y el facilismo al que estamos acostumbrados. Todo depende de nosotros mismos, ya que "Somos lo que pensamos de nosotros mismos".

PD: Hoy en la tarde estaré enviando los Demos del primer seminario para los que asistieron (como saben no pude hacerlo por motivos personales), también estaré publicando un Demo sobre "Reportes de Datos en WinForms".

miércoles, 22 de octubre de 2014

El Libro del Día: La Biblia de Visual Basic .NET (Cap 2)

El Libro del Día: 2014-10-22

Titulo: La Biblia de Visual Basic .NET (Capítulo 2)
Autor: Luis Dueñas Huaroto
Editorial: Coredise
Nro Paginas: 111

Capítulo 2: Programando con Visual Basic .NET 2010
1. Trabajar con el Entorno de Windows y el Sistema
1.1. Obtener Información del Sistema
1.2. Obtener Directorios Especiales de Windows
1.3. Acceder al Registro de Windows
1.4. Trabajar con Procesos o Tareas del Sistema
2. Manejo de Entrada y Salida
2.1. Manejar Unidades, Directorios, Rutas y Archivos
2.2. Leer y Escribir en un Archivo
2.3. Dividir y Unir Archivos
2.4. Comprimir y Descomprimir un Archivo
3. Programación Orientada a Objetos (POO)
3.1. Introducción a la POO y MDD
3.2. Creando Bibliotecas de Clases
3.3. Creando una Aplicación que use las Bibliotecas de Clases
4. Programación Asíncrona y Paralelismo
4.1. Threads
4.2. Eventos Asíncronos
4.3. Delegados CallBacks
4.4. Programación Paralela
5. Criptografía o Cifrado de Datos
5.1. Cifrado Simétrico por Caracter
5.2. Cifrado Simétrico por Bloques
5.3. Valores Hash Criptográficos

Descarga:
Biblia_VisualBasicNET_Capitulo2